수학/Gilbert Strang Linear Algebra

17. Orthogonal Matrices and Gram-Schmidt

공부중인학생 2022. 3. 21. 16:45

 

 

 

이번 강의에서는 직교기저와 직교행렬 그리고 그람-슈미트에 대해서 배웁니다.

직교기저란 무엇일까요? q벡터라는 직교벡터가 존재할 때 이 q벡터가 다른 모든 직교벡터들과 직교를 한다면 직교기저라고 할 수 있습니다. 직교행렬 Q는 직교벡터 q들을 column으로 가지고있는 행렬입니다.

 

 

Orthogonal matrices and Orthogonal basis

 

직교행렬의 성질로는 $Q^TQ = I$, 전치를 하면 역행렬이 나오는 성질을 가지고 있습니다.

- 역행렬을 쉽게 구할 수 있다.

 

대표적인 직교행렬로는 어떤 것들이 있을까요?

 

 

1. 치환행렬

 

PermQ = $\left[\begin{matrix} 0 & 0& 1 \\ 1 & 0& 0 \\ 0 & 1& 0 \end{matrix} \right], \left[\begin{matrix} 0 & 1& 0 \\ 0 & 0& 1 \\ 1 & 0 & 0 \end{matrix} \right]$

두 번째 행렬은 첫 번째 행렬을 전치한 것입니다.

 

또 다른 직교행렬

 

 

 

 

Q가 직교 column을 가지고 있을 때 column space에 투영할 경우 투영행렬이 됩니다.

 

- A대신에 Q를 사용할 경우 다음과 같이 간단하게 표현이 가능합니다.

 

$P = A(A^TA)^{-1}A^T$

$P = Q(Q^TQ)^{-1}Q^T = QQ^T = I$

 

정방행렬이면 column space가 전체 공간과 같아져 버려서 다음과 같이 단위행렬이 되는 것입니다.

다른 투영행렬의 조건들도 한번 확인해보겠습니다.

 

$P^2 = (QQ^T)(QQ^T) = QIQ^T = QQ^T$

 

이렇게 직교행렬을 이용하면 이전 강의에 배웠던 $A^TA \hat{x} = A^Tb$도 간단히 할 수 있습니다.

  • $Q^TQ \hat{x} = Q^Tb = \hat{x} = Q^Tb$

$Q^TQ = I$이기 때문에 간단하게 정리됩니다. 

 

 

Gram-Schmidt

 

- 벡터들을 정규직교(orthonormal)로 만드는 방법

 

 

 

다음과 같이 선형독립인 벡터 a, b가 존재할 때 직교벡터를 얻어보겠습니다. orthonormal은 orthogonal하면서 길이가 1인 경우를 말합니다. 직교벡터를 얻은 다음 자기 자신의 길이로 나눠주면 됩니다.

 

$q_1 = \frac A {||A||}, q_2 = \frac B {||B||}$

 

 

 

a벡터는 수평 방향을 가리키고 있기 때문에 바로 사용할 수 있지만 b벡터는 수직 방향을 가리키고 있지 않습니다. 이것을 어떻게 직교하게 만들어야 할까요?

 

b벡터에서 수평 방향 성분을 없애주면 됩니다. b벡터를 a벡터에 투영해서 수평 성분만 가진 $\hat {b}$를 만들어서 빼줍니다.

 

$B = b - \frac {A^Tb} {A^TA} A$

  • 이렇게 하면 서로 직교하게 됩니다.

 

 

만약 새로운 벡터 c가 orthonormal 하기 위해서는 어떻게 해야 할까요?, 다음과 같이 이미 존재하는 기저들의 성분을 가지지 않게 빼주면 됩니다.

 

$q_3 = \frac C{||C||} = c - \frac {A^Tc}{A^TA}A - \frac {B^Tc}{B^TB}B$

 

 

예제)

 

 

다음과 같이 a와 b는 직교하지 않습니다. 이제 위에서 배운 방법을 사용해서 두 벡터가 직교하게 만들겠습니다. 만들어진 두 벡터를 내적 해서 0이 됨을 확인할 수 있습니다. 

 

 

여기서 행렬 Q와 $q_1, q_2$ 무엇인가요?

 

 

- 구한 값에 길이를 나눠서 orthonormal 벡터를 구함