심파이에서 행렬객체에 수행할 수 있는 선형대수 관련 연산을 다음 표에 정리하엿다.
[표 1] 선형대수 연산
연산
|
기능
|
A.T
A.H
A.D
|
전치행렬(transposition)
복소전치행렬(hermite conjugation)
Dirac transposition
|
A.rank()
|
행렬의 랭크(rank)
|
A.det()
|
행렬식 (determinant)
|
A.inv()
|
역행렬 (inverse matrix)
|
A.LUsolve(b)
|
행렬방정식 Ax=b 를 푼다.
|
A.norm()
|
norm을 구한다.
|
A.eigenvals(**flags)
A.eigenvecs(**flag)
|
행렬의 고유값을 구한다.
행렬의 고유값과 고유벡터를 구한다.
|
A.evalf()
|
행렬 각 요소의 실수 근사값을 구한다.
|
A.applyfunc(f)
|
행렬 각 요소에 함수 f를 적용한다.
|
숫자로만 이루어진 행렬뿐만 아니라 대수 기호가 포함된 행렬에 대한 연산도 수행 가능하다.
>>> x=symbols('x') # x 를 기호로 설정>>> C=Matrix([[x,2],[1,x]])>>> D=ones(2)*x>>> C[x 2][1 x]>>> D[x x][x x]>>> C.det()2x - 2>>> C*D[ 2 2 ][x + 2*x x + 2*x ][ 2 2 ][ x + x x + x ] |
만약 대수 기호 대신에 숫자를 입력하고 싶다면 subs() 메쏘드를 이용한다.
>>> C.subs(x,11)[11 2 ][1 11]>>> y=symbols('y')>>> D.subs(x,y**2+1)[ 2 2 ][y + 1 y + 1][ 2 2 ][y + 1 y + 1]>>> D.subs(x,sqrt(y))[ ___ ___ ][\/ y \/ y ][ ___ ___ ][\/ y \/ y ] |
댓글 없음:
댓글 쓰기