행렬 간 산술 연산은 +, -, *, ** 연산자로 수행할 수 있다. *은 행렬 간 곱셈을, **은 거듭제곱을 수행한다.
[표 1] 행렬의 기본 연산
연산 | 기능 |
A+B, A-B | 행렬간 덧셈, 뺄셈 |
A*B | 행렬간 곱셈 (A의 열 수와 B의 행 수가 같아야 한다.0 |
A**k | 행렬 A의 k 거듭 제곱 |
v1.dot(v2) | 벡터 v1과 v2의 내적(dot product) |
덧셈과 곱셈은 두 행렬의 크기가 같아야 하고 행렬 간 곱셈은 차수 조건에 맞아야 한다. 즉, 첫 번째 행렬의 열 수와 두 번재 행렬의 행 수가 같아야 곱셈이 성립한다.
>>> A=randMatrix(3,4)>>> B=randMatrix(4,2)>>> A[2 48 28 60][2 9 18 88][79 14 17 25]>>> B[10 49][47 95][18 67][60 59]>>> A*B[6380 10074][6047 7351 ][3254 7815 ]>>> B*A # 오류발생 |
파이썬에서 **가 거듭제곱 연산자이므로 심파이에서도 행렬의 거듭제곱은 ** 연산자로 수행한다. 거듭제곱을 수행하려면 행렬이 정방행렬이어야 한다.
>>> A=Matrix([[1,2],[2,3]])⎡1 2⎤⎣2 3⎦>>> A**10⎡514229 832040 ⎤⎣832040 1346269⎦ |
'프로그래밍언어.Lib > sympy' 카테고리의 다른 글
심파이(sympy)를 이용한 미분방정식 풀이 1 (0) | 2015.06.03 |
---|---|
심파이(sympy) 선형대수 4 : 선형대수 연산 (1) | 2015.06.03 |
심파이(sympy) 선형대수 2 : 행렬의 indexing/slicing (0) | 2015.06.03 |
심파이(sympy) 실행 환경 (0) | 2015.06.03 |
심파이(sympy) 선형대수 1 : 행렬의 생성 (0) | 2015.04.30 |