[선형대수] 벡터와 직교분해

선형대수 - 벡터와 직교분해

들어가며

좌표계로 표현한 벡터 성질

  • $v = (v_1, v_2, \dots, v_n)$
  • $\text { v의 크기: }|V|=\sqrt{v_{1}^{2}+v_{2}^{2}+\cdots+v_{n}^{2}}$
  • $\frac{1}{|\mathbf{v}|} \mathbf{V}$


좌표계로 표현한 벡터의 내적

$\mathbf{u}=\left(u_{1}, u_{2}, \cdots, u_{n}\right), \mathbf{v}=\left(v_{1}, v_{2}, \cdots, v_{n}\right)$ 의 좌표값을 통해 다음과 같이 계산 된다.

\[\mathbf{u} \cdot \mathbf{v}=u_{1} v_{1}+u_{2} v_{2}+\cdots+u_{n} v_{n}\]


직교

두 벡터간 u,v 간의 내적이 0이면 두벡터는 직교(orthogonal)이다.

\[\mathbf{u} \cdot \mathbf{v}=0 \quad \Longleftrightarrow \quad \mathbf{u} \perp \mathbf{v}\]

직교의 물리적 의미

$u$와 $v$가 직교일때, $u$방향으로의 전진은 $v$방향에서 전형 측정되지 않는다. 그 반대도 마찬가지 이다. 즉, 서로의 전진 방향을 고려하지 않는다 $\rightarrow$ 서로 독립이다. (* 고교과정에서 배운 $xy$-좌표계나 $xyz$-좌표계는 직교 좌표계임을 상기 하자.)


투영

두 벡터 $u$,$a$가 있을 때, 벡터 u를 a위에 투영한 벡터를 $proj_au$라 하고 다음과 같이 구한다.

\[\begin{aligned} \operatorname{proj}_{\mathbf{a}} \mathbf{u}=\left(\mathbf{u} \cdot \frac{1}{\|\mathbf{a}\|}\|\mathbf{a}\|\right) &\left(\frac{1}{\|\mathbf{a}\|}\|\mathbf{a}\|\right)=&\left(\frac{\mathbf{u} \cdot \mathbf{a}}{\|\mathbf{a}\|^{2}}\right) \mathbf{a} \\ (\text { 길이 }) &(\text { 방향 }) &(\text { 기저 } \mathbf{a} \text { 에 대한 좌표값) } \mathbf{a} \end{aligned}\]

벡터 $u$를 $a$위에 투영하고 남은 보완 벡터(complement vector)는 $u - proj_au$ 이다.

즉, $u - proj_au \ \times \ proj_au = 0$ 이 성립한다. 즉 직교 한다.

image-20210429175355412

a를 u로 표기하면 $|u| \cos \theta$로 표기 할 수 있다. 그리고 u와 a의 내적을 생각하면 다음과 같다. $u \cdot a = \lVert u \rVert \lVert a \rVert \; cos\theta$ 이다. 이 식을 활용하면 다음과 같이 나타낼 수 있다.

\[a = ||u|| cos\theta \\ u \cdot a = \lVert u \rVert \lVert a \rVert \ cos\theta\\ a = ||u|| cos\theta = \frac{u \cdot a}{\lVert a \rVert}\]


결국, $\frac{u \cdot a}{\lVert a \rVert}$ 이 성분은 길이 성분이 된다. 방향의 경우 벡터 a에서 크기(길이)만 제거 해주면 방향만 남게 된다. 이렇게 구한 길이(크기)와 방향을 통해 $proj_au$를 구할 수 있게 된다.

$\left(\frac{\mathbf{u} \cdot \mathbf{a}}{|\mathbf{a}|^{2}}\right) \mathbf{a}$ 를 생각해 보면 다음과 같다. $a$는 벡터가 되고 $a$벡터에서 $\left(\frac{\mathbf{u} \cdot \mathbf{a}}{|\mathbf{a}|^{2}}\right)$ 만큼 스칼라배 한 것이라고 생각 해 볼 수 있다. 즉, 기저 $a$에 대한 좌표값이라고 생각 할 수 있다.


정리

두 벡터 u,a가 있을 때, 투영과 보완의 개념을 이용해 직교 분할 할 수 있다.

\[\begin{array}{l} \operatorname{proj}_{\mathbf{a}} \mathbf{u} \perp\left(\mathbf{u}-\operatorname{proj}_{\mathbf{a}} \mathbf{u}\right) \\ \mathbf{u}=\operatorname{proj}_{\mathbf{a}} \mathbf{u}+\left(\mathbf{u}-\operatorname{proj}_{\mathbf{a}} \mathbf{u}\right) \end{array}\]

image-20210429175355412



직교 행렬(Orthogonal Matrix)

직교 행렬(orthogonal matrix)

주어진 행렬의 모든 열벡터가 서로 직교한다면, 이 행렬을 직교 행렬이라고 한다. 직교 행렬은 직교 좌표계를 의미한다.

\[\left[\begin{array}{rl} 1 & 4 \\ -2 & 2 \end{array}\right]\left[\begin{array}{rrr} 2 & 2 & -4 \\ 2 & 1 & 7 \\ 6 & -1 & -1 \end{array}\right]\]

정규직교행렬(orthonormal matrix)

주어진 행렬이 직교행렬이고 모든 열벡터의 크기가 1(=normal) 이라면 이 행렬을 정규직교행렬이라고 한다. 정규직교행렬은 정규직교좌표계를 의미한다.

\[\mathbf{v}_{1}=\left[\begin{array}{c} 3 / \sqrt{11} \\ 1 / \sqrt{11} \\ 1 / \sqrt{11} \end{array}\right] \quad \mathbf{v}_{2}=\left[\begin{array}{c} -1 / \sqrt{6} \\ 2 / \sqrt{6} \\ 1 / \sqrt{6} \end{array}\right] \quad \mathbf{v}_{3}=\left[\begin{array}{c} -1 / \sqrt{66} \\ -4 / \sqrt{66} \\ 7 / \sqrt{66} \end{array}\right]\]


직교행렬을 이용한 선형시스템

선형 시스템 $Ax=b$에서 행렬 $A$가 직교행렬이면, 해 $x$는 역행렬 $A^{-1}$의 계산 없이 다음과 같이 구할 수 있다.

예제

다음과 같이 예제가 주어 졌다.

\[\left[\begin{array}{rr} 1 & 4 \\ -2 & 2 \end{array}\right]\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right]=\left[\begin{array}{r} 6 \\ -2 \end{array}\right]\]

위 식을 그림으로 표현하면 다음과 같다. 위 식의 해는 [2, 1]을 쉽게 할 수 있다. 즉, 바꿔 발하면 [1,4] 벡터를 2 스칼라배 만클 이동하고, [4,2] 벡터를 1 스칼라배 이동한다는 것이다. 위 선형시스템의 해는 곧 행렬 A의 스칼라배를 안다는 것이다.

표준 좌표계에서 [6,-2]의 의미는 x-축을 수선의 발을 내렸던이 6이 있었고, y-축으로 수선의 발을 내렸더니 -2가 있었다 라는 의미이다. 이러한 방식으로, 문제에 제시된 행렬 A라는 좌표계는 90°로 이루어져 있으므로 [6,2]에서 [4,2]로 수선의 발을 내린 것과 [6,2]에서 [1,-2]로 수선의 발을 내린 것을 따로 계산이 가능 하다는 것이다. 다음 그림을 보면 쉽게 이해 될 것이다.

image-20210429184040101

IMG_82172D6D2FBC-1

$\hat{y}=proj_au = \left(\frac{\mathbf{u} \cdot \mathbf{a}}{|\mathbf{a}|^{2}}\right) \mathbf{a}$ 를 생각해 보면 다음과 같다. $a$는 벡터가 되고 $a$벡터에서 $\left(\frac{\mathbf{u} \cdot \mathbf{a}}{|\mathbf{a}|^{2}}\right)$ 만큼 스칼라배 한 것이라고 설명했다. 즉 [1,-2]를 $\left(\frac{\mathbf{u} \cdot \mathbf{a}}{|\mathbf{a}|^{2}}\right)$ 스칼라배 만큼 이동 했다는 것이다.

3차원일 경우

image-20210429184948405

정규직교행렬을 이용한 선형시스템

선형 시스템 $Ax=b$에서 행렬 $A$가 직교행렬이면, 해 $x$는 역행렬 $A^{-1}$의 계산 없이 다음과 같이 구할 수 있다.

예제

이미 norm 만큼 벡터의 크기가 나눠 져 있기 때문에 사영을 구할 때 norm으로 나누지 않아도 된다.



QR 분해

주어진 행렬에서 정교직교 행렬을 추출하기위 한 분해 방법입니다. 직교성을 갖게되면 해을 쉽게 구할 수 있기 때문입니다.

QR 분해 정의

원래의 행렬 A는 일반적으로 어떤 성격을 갖는지 알기 어렵다. QR 분해를 이용하면 Q 행렬에 직교 성분만 추출 해 낼수 있다. 그 나머지 성분은 행렬 R에 들어가게 된다.


QR 분해 장점

QR 분해의 장점은 다음과 같습니다.

\[\begin{aligned} A \mathbf{x}=\mathbf{b} & \Rightarrow(Q R) \mathbf{x}=\mathbf{b} \Rightarrow Q(R \mathbf{x})=\mathbf{b} \\ & \Rightarrow Q \mathbf{y}=\mathbf{b},(\text { 단 }, R \mathbf{x}=\mathbf{y}) \end{aligned}\]

이렇게 구한 위의 식을 통해 선형시스템을 두 단계로 간단하게 해결 할 수 있습니다.

1. 내적(inner product) : y 구하기

직교 벡터만 남기 때문에 내적으로 쉽게 y를 구할 수 있다.

image-20210429223412398

Back-substitution(후방대치법): x구하기

상삼각 행렬을 이용해 x를 구할 수 있다.

image-20210429223420015


그람-슈미트

QR분해는 그람 슈미트 과정을 행렬로 코드화 한 것입니다.

$QR$ 분해의 활용

QR 분해는 다음의 이유로 활용 됩니다.

빠른계산

선형시스템 $Ax=b$의 해를 구할 때, 정규직교행렬(orthogonal matrix) $Q$를 이용한 계산 부분은 병렬처리로 빨리 계산 할 수 있습니다. 그러나 $R$을 이용한 계산 부분은 병렬 처리 할 수 없습니다.

b가 자주 업데이트 되는 경우:

선형시스템 $Ax=b$에서 행렬 A는 고정되어있고 b가 자주 변하는 문제가 종종 있습니다. 이런경우, 행렬 $A$를 미리 $QR$로 분해해 둔다면 $b$가 업데이트 될때마다 선형시스템의 해를 실시간으로 구할 수 있습니다.


QR분해 vs. LU 분해