기본 콘텐츠로 건너뛰기

라벨이 qr인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra]그람 슈미트(Gram-Schmidt) 과정

그람 슈미트(Gram-Schmidt) 과정 그람 슈미트 과정은 0이 아닌 $\mathbb{R}^n$의 부분공간에서 직교 또는 정규직교 기저 를 생성하는 단순한 알고리즘입니다. import numpy as np import numpy.linalg as LA from sympy import * 예 1) 부분공간 W = Span{x 1 , x 2 }일 때 W에 직교 기저인 {v 1 , v 2 }을 결정해 봅니다. $$x_1 =\begin{bmatrix}3\\6\\0\end{bmatrix},\quad x_2=\begin{bmatrix}1\\2\\2\end{bmatrix}$$ 그림 1은 두 기저벡터 x 1 과 x 2 에 의한 부분공간 W를 나타낸 것입니다. 즉, 두 벡터는 부분공간 W의 스판으로 W = Span{x 1 , x 2 }를 나타낸 것입니다. 그림 1. x 1 , x 2 를 기저벡터로 하는 부분공간 W. 그림 1에서 나타낸 것과 같이 부분공간 W에 직교벡터는 v 1 와 v 2 입니다. v 1 는 x 1 와 같으며 그 벡터 위로 x 2 의 정사영은 벡터 p입니다. 그러므로 x 2 는 식 2와 같이 계산됩니다. $$\tag{식 1}x_2 = v_2 + p$$ 기사 직교적 투영에서 소개한 식 4 와 5 를 적용하면 p와 v 2 는 식 2와 같이 계산됩니다. \begin{align} \tag{식 2} p&=\frac{x_2x_1}{x_1x_1}x_1\\v_2& = x_2- \frac{x_2x_1}{x_1x_1}x_1\end{align} 위 계산을 위한 코드는 다음과 같습니다. x1=np.array([3,6,0]).reshape(-1,1) print(x1) [[3] [6] [0]] x2=np.array([1,2,2]).reshape(-1,1) print(x2) [[1] [2] [2]] def orthoCoefS(x, y): x=np.dot(x.T, y) y=np.dot(y.T, y...