줄리아에서 심볼릭 연산 하는 방법
How to Do Symbolic Operations in Julia
개요
줄리아에서 심볼릭 연산은 SymEngine.jl
1 패키지를 통해서 사용할 수 있다.
코드
심볼 정의
심볼은 다음과 같은 방법으로 정의할 수 있다.
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
댓글