logo

줄리아에서 심볼릭 연산 하는 방법 📂줄리아

줄리아에서 심볼릭 연산 하는 방법

개요

줄리아에서 심볼릭 연산은 SymEngine.jl1 패키지를 통해서 사용할 수 있다.

Symbolics.jl과의 차이점

줄리아의 심볼릭 연산 패키지 Symbolics.jl 소개에서 소개된 Symbolics.jl 는 네이티브하게 줄리아로 구현되어 있으며 성능적으로나 인터페이스로나 더 좋은 측면이 많다. 현재는 Symbolics.jl가 사용자도 압도적으로 많고 유지보수도 꾸준히 이루어지고 있어 SymEngine.jl는 그 대안으로써 사용하거나 원래 라이브러리의 기능이 필요한 경우에만 사용하면 된다.

코드

심볼 정의

심볼은 다음과 같은 방법으로 정의할 수 있다.

julia> using SymEngine

julia> x = symbols(:x)
x

julia> x, y = symbols("x y")
(x, y)

julia> @vars x, y
(x, y)
julia> x = symbols(:x)
x

julia> f = 2x + x^2 + cos(x)
2*x + x^2 + cos(x)

벡터와 행렬

julia> v = [symbols("v_$i") for i in 1:3]
3-element Vector{Basic}:
 v_1
 v_2
 v_3

julia> A = [symbols("a_$i$j") for i in 1:2, j in 1:3]
2×3 Matrix{Basic}:
 a_11  a_12  a_13
 a_21  a_22  a_23

julia> A*v
2-element Vector{Basic}:
 v_1*a_11 + v_2*a_12 + v_3*a_13
 v_1*a_21 + v_2*a_22 + v_3*a_23

julia> @vars a, b, c, d, x, y
(a, b, c, d, x, y)

julia> [a b; c d] * [a x; b y]
2×2 Matrix{Basic}:
 a^2 + b^2  a*x + b*y
 a*c + b*d  c*x + d*y

미분

심볼릭 미분은 Calculus.jl 패키지로도 사용할 수 있다.

julia> f = 2x + x^2 + cos(x)
2*x + x^2 + cos(x)

julia> diff(f, x)
2 + 2*x - sin(x)

환경

  • OS: Windows10
  • Version: Julia v1.7.1, SymEngine v0.8.7