기본 콘텐츠로 건너뛰기

라벨이 전치행렬인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra]행렬 연산(matrix operation)

행렬 연산 행렬의 기본연산은 같은 차원들 사이에서 이루어 집니다. 다음은 같은 차원의 두개 또는 세개 행렬들 사이에서 성립되는 관계를 나타낸 것입니다. A, B, C: 행렬, I: 항등행렬 I, r, s: 스칼라 A + B = B + A (A + B) + C = A + (B + C) A + 0 = A r(A + B) = rA + rB (r + s)A = rA + sA r(sA) = (rs)A A(BC) = (AB)C A(B + C) = AB + AC (B + C)A = BA + CA r(AB) = (rA)B = A(rC) IA = AI = A import numpy as np import scipy.linalg as LA from sympy import * 예 1) 행렬 A,B,C에서의 연산 $$A=\begin{bmatrix}4& 0& 5\\-1& 3& 2\end{bmatrix}\quad B=\begin{bmatrix} 1& 1& 1\\3& 5& 7\end{bmatrix} \quad C=\begin{bmatrix}2& -3\\ 0& 1 \end{bmatrix}$$ A=np.mat("4,0,5;-1,3,2") B=np.mat("1,1,1; 3,5,7") C=np.mat("2,-3; 0,1") print(A+B) [[5 1 6] [2 8 9]] try: A+C except: print("행렬의 사칙연산은 동일한 차원에서 실행됩니다.") 행렬의 사칙연산은 동일한 차원에서 실행됩니다. print(2*B) [[ 2 2 2] [ 6 10 14]] print(A-2*B) [[ 2 -2 3] [ -7 -7 -12]] 행렬곱(matrix product): 행렬들 사이의 각 벡터의 내적을 계산합...

[Linear Algebra] 전치행렬(Transposed matrix)

전치 행렬(Transposed matrix) m×n 형태의 행렬 A의 행과 열을 교환한 행렬을 A의 전치 행렬이라 하며 A T 로 나타냅니다. 그 전치 행렬의 형태는 n×m 입니다. 행렬 A와 전치 행렬 사이에 식 1의 관계가 성립합니다. A i,j = A T j,i (식 1) 전치 행렬은 numpy array 객체의 속성 .T 또는 함수 transpose() 를 사용하여 생성할 수 있습니다. A=np.array([[2, 4, 9], [3, 6, 7]]) print(A) [[2 4 9] [3 6 7]] print(np.transpose(A)) [[2 3] [4 6] [9 7]] print(A.T) [[2 3] [4 6] [9 7]] 식 2와 같이 전치 행렬을 다시 전치시키면 원시행렬(original matrix)이 됩니다. (A T ) T = A (식 2) print(A.T.T==A) [[ True True True] [ True True True]] 두 행렬의 행렬곱의 전치 행렬은 식 3과 같이 계산됩니다. (A·B) T = B T ·A T (식 3) 다음 코드에서 임의의 행렬 객체를 생성하기 위해 numpy.random 모듈의 randint() 함수를 사용하였습니다. 생성된 랜덤수의 재현성을 위해 numpy.random.seed() 함수를 사용하였습니다. np.random.seed(0) B=np.random.randint(-10, 10, (3,3)) print(B) [[ 2 5 -10] [ -7 -7 -3] [ -1 9 8]] # A·B AB=A@B # BT·AT BtAt=np.dot(B.T, A.T) print(np.equal(AB.T, BtAt)) [[ True True] [ True True] [ True True]]