공부한 내용/파이썬 문법
[파이썬] Sympy 기초
Silver Shoes
2021. 7. 24. 23:38
0. Sympy가 필요한 이유
-변수를 정할 수 있음
1. Special Symbols
① sympy.pi: 파이
② sympy.E: 자연상수 e
③ sympy.EulerGamma: Euler's constant
④ sympy.I: The imaginary unit
⑤ sympy.oo: 무한대
2. Simplifying Expressions (변수 표현)
import sympy
x = sympy.Symbol("x")
y = sympy.Symbol("y")
Z = sympy.Matrix(sympy.symbols("x_1, x_2"))
expr1 = 2 * (x**2 - x) - x * (x+1)
expr2 = 2 * sympy.cos(x) * sympy.sin(x)
expr3 = sympy.exp(x) * sympy.exp(y)
expr4 = 1 / (x**2 -1) + 1 / (x+1)
#simplify() 함수를 쓰면 함수를 더 단순하게 표현 가능
sympy.simplify(expr1)
#> x(x-3)
3. Functions and Methods on Matrices
① transpose / T: 행렬의 transpose
② adjoint / H: 행렬의 adjoint
③ trace: 행렬의 trace
④ det: 행렬의 determinant
⑤ inv: 행렬의 inverse
⑥ LUdecomposition: 행렬의 LU decomposition
⑦ LUsolve: LU factorization을 사용하여 Mx=b 선형방정식에 대한 해를 구함
⑧ QRdecomposition: 행렬의 QR decomposition
⑨ QRsolve: QR factorization을 사용하여 Mx=b 선형방정식에 대한 해를 구함
⑩ diagonalize: 행렬의 대각화
⑪ norm: 행렬의 norm
⑫ nullspace: 행렬의 null space를 span하는 벡터집합
⑬ rank: 행렬의 rank
⑭ singular_values: 행렬의 singular values(특이값)
⑮ solve: Mx=b 선형방정식에 대한 해를 구함
a, b, c, d = sympy.symbols("a, b, c, d")
M = sympy.Matrix([[a, b], [c, d]])
x = sympy.Matrix(sympy.symbols("x_1, x_2"))
q = sympy.Matrix(sympy.symbols("q_1,q_2"))
x = M.inv()*q
sympy.solve(M*x - q,x)
sympy.transpose(M)
sympy.adjoint(M)
sympy.trace(M)
sympy.det(M)
M.inv()
N = sympy.Matrix([[-4, 2], [6, 7]])
P = sympy.Matrix([[3, 2], [3, 2]])
N.LUdecomposition()
N.QRdecomposition()
N.diagonalize()
N.rank()
sympy.Matrix(P.nullspace())
P.singular_values()