Introduction
이번에 선형대수를 공부하면서 내용을 정리해보았습니다.
강의 영상 : https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/
Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare
This section contains a complete set of video lectures on linear algebra along with transcripts and related resource files.
ocw.mit.edu
스터디 github : https://github.com/jwkweon/study-linear-algebra
GitHub - jwkweon/study-linear-algebra
Contribute to jwkweon/study-linear-algebra development by creating an account on GitHub.
github.com
참고한 블로그 :
Lecture 17: Orthogonal matrices and Gram-Schmidt
Lecture 17: Orthogonal matrices and Gram-Schmidt (6/6) - 오늘 강의는 직교성 orthogonality에 대한...
blog.naver.com
[Linear Algebra] Lecture 17-(1) 직교행렬(Orthogonal Matrices)과 그람 슈미트 과정(Gram-Schmidt Process)
이번 강의에서 배울 내용은 직교행렬(Orthogonal Matrix)과 그람 슈미트 과정(Gram-Schmidt Process)이다. 먼저 이들을 간략히 설명하면 다음과 같다. 직교 행렬은 모든 column vector가 자기 자신을 제외한 나
twlab.tistory.com
(주로 https://twlab.tistory.com/37블로그의 사진과 내용을 보면서 공부했고 추가로 나머지 블로그를 참고하였습니다.)
(저는 제가 이해하기 쉽게 요약해서 적었으므로 좀더 자세히 공부하고싶다면 위 블로그를 참고하시면 됩니다.)
정규직교벡터(Orthonormal vector)
정규직교벡터(orthonormal vector)란 직교 벡터이면서 단위 벡터인 것을 말한다.
즉, 두 벡터가 90도의 각도를 이루면서 크기가 1이어야 한다.
$$ {\rm Orthonormal \ vector} \ \ : \ \ \boldsymbol{q}_i^T \boldsymbol{q}_j = \begin{cases} 0 & {\rm if} \ \ i \ne j \\ 1 & {\rm if} \ \ j \end{cases} $$
위에서 $\boldsymbol{q}_i$, $\boldsymbol{q}_j$ 두 벡터를 Orthonormal vector라고 했을 때자기 자신과 내적하면 당연히 크기가 1이고 이루는 각도가 0도이기 때문에 내적값으로 1이나오고 서로 다르다면 수직이기 때문에 내적값이 0이될 것이다. 따라서, 벡터들이 서로 직교하면서 동시에 정규화된 벡터이기 때문에 정규직교벡터라 부른다.
직교행렬(Orthogonal Matrices)
직교행렬(orthogonal matrix)은 행렬의 row vector와 column vector들이 자기 자신을 제외한 나머지 모든 row, column vector들과 직교이면서 단위 벡터인 행렬을 말한다.
$$ Q = \begin{bmatrix} | & & | \\ \boldsymbol{q}_1 & \cdots & \boldsymbol{q}_n \\ | & & | \end{bmatrix} $$
위에서 배운 정규 직교 벡터를 행렬의 column vector로 넣으면 된다.
직교행렬을 Transpose한 자기자신과 곱하면 따라서 정규 직교벡터들이 서로 내적하게 되고 자기자신과 내적하면 1 자기자신과 내적하지않으면 1을 갖는 다음과 같은 $I$행렬이 만들어진다.
$$ Q^T Q = I \longrightarrow \begin{bmatrix} - & \boldsymbol{q}_1^T & - \\ & \vdots & \\ - & \boldsymbol{q}_n^T & - \end{bmatrix} \begin{bmatrix} | & & | \\ \boldsymbol{q}_1 & \cdots & \boldsymbol{q}_n \\ | & & | \end{bmatrix} = \begin{bmatrix} 1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & 1 \end{bmatrix}$$
애초에 $Q^T Q$는 row vector와 column vector의 내적을 하는 식이다.
하나씩 내적해보면 $\boldsymbol{q}_1^T \boldsymbol{q}_1 = 1 $, $\boldsymbol{q}_1^T \boldsymbol{q}_2 = 0$, ... 이런식으로 되면서 단위행렬이 만들어질 것이다.
정사각직교행렬(Square Orthogonal Matrix)
여기서 한가지 행렬 Q의 요소들은 모두 다 단위 벡터이다. 즉, 크기가 1이다. 사실 Orthonormal matrix(정규직교행렬)인데 왜인지 모르겠지만 그냥 직교행렬이라 부른다.
그리고 잘생각해보자. 두행렬을 곱했는데 단위행렬이 나온다는 것은 역행렬을 의미한다.
만일, Q가 정사각행렬(Square Matrix)이라면 다음을 만족하게 될 것이다.
$$ Q^T Q = I \longrightarrow Q^{-1} Q = I $$
$$ Q^T = Q^{-1}$$
이번에는 예시로 풀어보자.
이전에 배웠던 치환행렬(permutation matrix)을 떠올려보자. 이 치환행렬이 정규직교벡터로 구성된 직교행렬의 대표적인 예시이다.
$$ perm \ Q = \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} $$
위 치환행렬을 잘보면 일단 vector들의 크기가 1이고 column, row vector들이 서로 내적했을 때 수직임을 알 수 있다.
$$ QQ^T = I \longrightarrow \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} $$
그리고 결국 정방행렬이기 때문에 $Q^T = Q^{-1}$이 될 것이다.
또다른 예시는 다음과 같은 행렬이 있다.
$$ Q = \begin{bmatrix} \cos{ \theta} & - \sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} $$
이것도 크기가 전부 1이고 서로 수직이다. $\sin^2{\theta} + \cos^2{\theta} = 1$을 이용하면 된다.
참고로 위 행렬은 rotation matrix(회전행렬)이며 $\theta$만큼 벡터를 회전시키는 역할이며 transpose를 다시 곱할경우 $ - \theta$만큼 벡터가 다시회전해 원래대로 돌아온다.
또다른 예시를 봐보자.
$$ Q = \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} $$
서로 다른 column, row vector를 내적했는데 0이 나오긴한다. 근데 자기자신과 내적했을 때 1이 나오지 않는다. 이제 이 Q행렬을 직교행렬로 만들기 위해서는 각각의 벡터를 자기자신의 크기로 나눠주면된다. 마치 단위벡터를 만드듯이 말이다.
각 벡터의 크기는 $\sqrt{2}$이다. 따라서, $\sqrt{2}$로 나눠주면
$$ Q =\begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & - \frac{1}{\sqrt{2}} \end{bmatrix} = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} $$
마지막 예시를 봐보자.
이것은 위에서 배운 Q행렬 4개를 붙힌 형태이다. Adhemar matrix라고 이름이 지어졌다고 한다.
$$ Q = \begin{bmatrix} Q & Q \\ Q & -Q \end{bmatrix} = \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}$$
이것도 마찬가지로 직교행렬이 되기 위해선 크기를 1로만들어야한다. 따라서 각각의 벡터 크기로 나누면 다음과 같이 된다. 참고로 각 벡터의 크기는 2가된다.
$$ Q = \frac{1}{2} \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}$$
직사각직교행렬(Rectangular Orthogonal Matrix)
여태까지 정사각행렬에 대해 봤다면 이제 직사각 행렬의 형태도 봐보자.
다음과 같은 단위 벡터가 있다고해보자.
$$ Q = \frac{1}{3} \begin{bmatrix} 1 \\ 2 \\ 2 \end{bmatrix} $$
그런다음 여기서 위 단위벡터와 수직이면서 독립인 벡터 하나를 추가해보자.
$$ Q = \frac{1}{3} \begin{bmatrix} 1 & -2 \\ 2 & -1 \\ 2 & 2 \end{bmatrix} $$
위 두 개의 column vector들은 3차원 공간에서 2차원 부분공간의 column space를 이루는 기저(basis)가 된다.
여기에 한번 더 수직이면서 독립인 벡터 하나를 더 추가해보자.
$$ Q =\frac{1}{3} \begin{bmatrix} 1 & -2 & 2 \\ 2 & -1 & -2 \\ 2 & 2 & 1 \end{bmatrix} $$
여기서 배우려고하는 것은 과연 이렇게 서로 수직이면서 독립인 직교 벡터를 만들어낸지에 대해 배워야한다.
위에서는 그냥 직관에 의해 기존 행렬에 하나씩 추가해 준 것이다. 하지만, 행렬의 크기가 엄청 커진다면 이는 어려운 일이 될 것이다.
그람-슈미트 과정(Gram-Schmidt Process)가 이러한 직교 행렬을 만드는데 도움을주는 방법이다.
직교행렬이 갖는 장점
직교행렬 Q를 활용하여 계산하면 여러가지 장점이 있다.
첫번째로 수식이 굉장히 간단해진다는 것이다. 예를들어 우리가 어떤 벡터 b를 행렬 A의 column space로 투영시키려고 할 때 투영행렬을 사용한다고 배웠었다. 투영행렬 P는 다음과 같다.
$$ P = A(A^T A)^{-1} A^T $$
여기서, A행렬이 직교행렬 Q라면 어떻게 될까?
$$ P = Q(Q^T Q )^{-1} Q^T = Q Q^T \quad \quad \because \ \ Q^TQ = I$$
여기서 심지어 직교행렬 Q가 정사각행렬이면 $P= Q^T Q = Q^I Q = I$ 즉, 투영행렬이 단위행렬이 될 것이다.
아니면 직교행렬 Q가 직사각행렬이면 $P=Q^TQ$는 대칭 행렬이 될 것이다.
예를들어 Q가 2x3의 직사각행렬이면 (3x2)x(2x3) = (3x3)이 되면서 정사각행렬임과 동시에 대칭행렬이 된다. 하지만 단위행렬은 아닐 것이다.
여기서 Q가 정방행렬일 경우 투영행렬이 단위 행렬이 된다는게 무슨 의미인지 잘 생각해보자.
투영 행렬은 임의의 벡터 b를 행렬 Q의 column space로 투영시키는 역할을 한다.
근데, 행렬 Q가 정방행렬이 되면 Q의 column space가 전체 공간과 같아지게 된다.
이러면 임의의 벡터 b는 이미 Q의 column space상에 존재하기 때문에 투영하는 의미가 없어진다. 그래서 단위행렬이 투영행렬이 되는 것이다. 즉, 투영행렬이 단위행렬이라는 것은 투영하는게 의미가 없다는 뜻이다.
그리고 투영행렬의 특성중 다음과 같은 특성이 있다.
$$ P^2 = P $$
투영을 두번하면 투영 한번한 것과 똑같다는 것이다.
이를 위에서 사용했던 직교행렬 Q를 이용하여 다시 식을 써보자.
$$ P^2 = P \longrightarrow P^2 = (Q Q^T ) ( Q Q^T) = Q(Q^T Q)Q^T = Q (I) Q^T = QQ^T = P $$
또한 다음과 같이 우리가 최적해를 구할 때 식을 봐보자.
$$ A^T A \hat{\boldsymbol{x}} = A^Tb $$
여기서, A행렬이 직교행렬 Q라고 해보자.
$$ Q^T Q \hat{\boldsymbol{x}} = Q^T b \longrightarrow I \hat{\boldsymbol{x}} = Q^T b \longrightarrow \hat{\boldsymbol{x}} = Q^T b$$
이렇게 결국 최적해는 간단하게 구할 수 있게 되고
최적해의 각 i번째 성분은 Q행렬의 column space의 기저벡터(즉, 정규직교벡터) 내적 b가 된다는 것이다.
$$ \hat{\boldsymbol{x}}_i = \boldsymbol{q}_i^T b $$
결국 최적해를 구하기 위해서 복잡한 행렬연산 따위가 필요가 없어진다! 그냥 벡터끼리 내적하면 된다.
그람-슈미트 과정(Gram-Schmidt Process)
이제 위에서 배운 것을 통해 나머지 과정을 배울 준비가 되었다.
이제 직교행렬을 맨처음부터 있는 정규직교 벡터로 시작하지 않는다.
그냥 독립적인 벡터가 있고 여기서 부터 시작해서 이것을 정규직교벡터로 만들고 직교행렬을 만들어야한다.
이걸 쉽게하기 위해 나온 것이 그람-슈미트이다.
그람-슈미트는 하나의 계산식이다. 하지만 소거와 비슷하다고 할 수 없다. 왜냐하면 만드려는 목표가 삼각행렬이 아니기 때문이다. 우리의 목표는 행렬을 직교행렬로 만드는 것이다.
자이제, 2개의 독립(independent)인 벡터 a, b에서 시작해보자.
이 두개의 독립 벡터 a, b를 정규직교벡터 q1, q2로 만들고 싶어진다.....
이제 그람 슈미트는 과정의 절차는 다음과 같이 만들어 졌다.
먼저, 그람(Gram)이 맨처음 벡터인 a는 그대로 두고 a를 기준으로 직교한 벡터를 만들어 낸다. 이를 각각 q1, q2라 하자.
슈미트(Schmidt)는 이제 직교 벡터인 q1, q2를 정규직교벡터로 만들기 위해 각각의 크기로 나눠준다.
요약하면 다음과 같다.
순서대로 해보자.
(1) 그람의 아이디어로 직교 벡터를 만들자.
a는 그대로 두고 a를 기준으로 직교한 벡터를 만드는 것이니, a는 그대로 q1으로 바꾸면된다.
이제 b를 q2로 어떻게 바꾸냐인데, 이는 투영을 통해 직교 벡터를 만들면 된다.
이런식으로 a=q1, e=q2로 a에 수직한 벡터인 e를 투영을 통해 만들어 낼 수 있다.
e는 참고로 e = b-p로 만들 수 있다.
이제 e = b-p을 통해 q2=e니깐 q2에 대한 식을 정리해보자.
$$ \boldsymbol{e} = \boldsymbol{b} - \boldsymbol{p}$$
$$ \boldsymbol{q}_2 = \boldsymbol{b} - \frac{\boldsymbol{q_1^T b}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} \quad \because \boldsymbol{e}= \boldsymbol{q_2}, \quad \boldsymbol{p} = x \boldsymbol{q_1} $$
왜냐하면 이전에 p=xa 라고 배웠다.즉, p는 a의 상수배를 한 형태이다.
결과적으로 q1과 q2는 수직이다. 이를 식으로 정리해보자.
$$ \boldsymbol{q_1} \bot \boldsymbol{q_2} = \boldsymbol{q_1^T} \cdot \boldsymbol{q_2} = 0 $$
$$ \boldsymbol{q_1^T} \left( \boldsymbol{b} - \frac{\boldsymbol{q_1^T b}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} \right) = \boldsymbol{q_1^T} \boldsymbol{b} - \boldsymbol{q_1^T} \frac{\boldsymbol{q_1^T b}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} = \boldsymbol{q_1^Tb} - \boldsymbol{q_1^Tb} = 0$$
위에서 분자가 상수이고 분모가 행렬이다. 결국 다시 분자인 상수를 분모에 똑같이 곱해줘서 위와같은 형태가된다.
자 여기까지 a와 b를 가지고 a를 기준으로 서로 직교인 q1과 q2를 만들었다. 이번에는 3번째로 직교인 q3를 만들어보자.
먼저, q3를 만들기 위해서는 a와 b와 독립인 벡터 c가 필요하다.
자이제 q3를 어떻게 만드냐? q1과 q2에 동시에 수직이어야한다. 어떻게하느냐?
위 과정을 두번하면된다. 먼저 c를 a(q1)에 투영하여 에러벡터를 하나찾고 찾은 에러벡터를 다시 q2에 투영하여 거기서 나온 에러벡터가 q3가 될 것이다.
식으로 정리해보자.
먼저 c를 a에 투영시켜 에러벡터 e1을 찾자.
$$ \boldsymbol{e_1} = \boldsymbol{c} - \boldsymbol{p}$$
$$ \boldsymbol{e_1} = \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} \quad \because \boldsymbol{p} = x_1 \boldsymbol{q_1} $$
이렇게 찾은 에러벡터 e1을 다시한번 위과정을 반복하는데 이번에는 q2에 투영하여 에러벡터 e2를 찾으면 된다.
$$ \boldsymbol{e_2} = \boldsymbol{e_1} - \boldsymbol{p}$$
$$ \boldsymbol{p} = x_2 \boldsymbol{q_2} $$
이러면 결국 에러벡터 e2와 벡터 q2는 서로 수직이다.
$$ \boldsymbol{q_2^T e_2} = 0$$
$$ \boldsymbol{q_2^T}( \boldsymbol{e_1} - \boldsymbol{p} ) = 0$$
$$ \boldsymbol{q_2^T}( \boldsymbol{e_1} - x_2 \boldsymbol{q_2} ) = 0 $$
$$ \boldsymbol{q_2^T}\boldsymbol{e_1} - x_2 \boldsymbol{q_2^T} \boldsymbol{q_2} = 0 $$
$$ \therefore \quad x_2 = \frac{\boldsymbol{q_2^T e_1}}{\boldsymbol{q_2^T q_2}} $$
다시 돌아와서
$$ \boldsymbol{e_2} = \boldsymbol{e_1} - \boldsymbol{p}$$
$$ \boldsymbol{p} = x_2 \boldsymbol{q_2} $$
$$ \boldsymbol{e_2} = \boldsymbol{e_1} - x_2 \boldsymbol{q_2}$$
$$ \boldsymbol{e_2} = \boldsymbol{e_1} - \frac{\boldsymbol{q_2^T e_1}}{\boldsymbol{q_2^T q_2}} \boldsymbol{q_2} $$
여기까지가 e2에 대한 식이고 e2에 대한식에서 e1을 없애보자.
$$ \boldsymbol{e_1} = \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} $$
이것을 위에 e2에 대한 식에 그대로 대입해서 전개하자.
$$ \boldsymbol{e_2} = \boldsymbol{e_1} - \frac{\boldsymbol{q_2^T e_1}}{\boldsymbol{q_2^T q_2}} \boldsymbol{q_2} $$
$$ \boldsymbol{e_2} = \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} - \frac{\boldsymbol{q_2^T} \left( \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} \right) }{\boldsymbol{q_2^T q_2}} \boldsymbol{q_2} $$
$$ \boldsymbol{e_2} = \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} - \frac{\boldsymbol{q_2^T} \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_2^T} \boldsymbol{q_1} }{\boldsymbol{q_2^T q_2}} \boldsymbol{q_2} \quad \because \quad \boldsymbol{q_2^T q_1} = 0$$
$$ \boldsymbol{e_2} = \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} - \frac{\boldsymbol{q_2^T} \boldsymbol{c}}{\boldsymbol{q_2^T q_2}} \boldsymbol{q_2} $$
결국 e2가 q3이므로
$$ \boldsymbol{q_3} = \boldsymbol{c} - \frac{\boldsymbol{q_1^T c}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1} - \frac{\boldsymbol{q_2^T} \boldsymbol{c}}{\boldsymbol{q_2^T q_2}} \boldsymbol{q_2} $$
어우힘들당...
결국 q3를 구할 때는 원래 벡터 c에서 q1방향으로 투영된성분과 q2방향으로 투영된성분을 각각 빼면 된다.
만약에 q4를 구하려면 원래 벡터 d에서 q1, q2, q3방향으로 투영된성분을 모두 다 빼면 된다.
그렇다면 qn를 구하려면 원래 벡터 n에서 q1, q2, q3, ..., qn방향으로 투영된성분을 모두 다 빼면 된다.
조건은 원래 벡터가 반드시 서로 독립(independet)이어야 한다.
여기까지가 그람의 아이디어고 이제 직교 벡터가아닌 정규 직교 벡터를 만들자.
(2) 슈미트의 아이디어로 정규 직교 벡터를 만들자.
위에서 구한 직교 벡터는 정규화(normalized)가 되어 있지 않다. 즉, 각 벡터의 크기가 각각 다르므로 이들을 크기와 관련없이 방향 성분만을 나타내도록 정규화를 통해 정규직교벡터로 만들어야한다.
정규직교벡터로 만들기 위해 직교 벡터를 자신의 크기로 나누어 단위 벡터를 만들면 된다.
$$ {\rm orthonormal \ \ vectors } \ \ : \ \ \hat{\boldsymbol{q_1}} = \frac{\boldsymbol{q_1}}{||\boldsymbol{q_1}||}, \quad \hat{\boldsymbol{q_2}} = \frac{\boldsymbol{q_2}}{||\boldsymbol{q_2}||}, \quad \hat{\boldsymbol{q_3}} = \frac{\boldsymbol{q_3}}{||\boldsymbol{q_3}||}$$
이제 이러한 방식으로 한번 정규직교행렬을 예시로 만들어보자!
다음과같이 간단하게 보기 위해 서로 독립인 벡터 a, b가 주어졌다고해보자.
$$ \boldsymbol{a}= \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}, \quad \boldsymbol{b} = \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix} $$
$$ \boldsymbol{a}= \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = \boldsymbol{q_1} $$
$$ \boldsymbol{q}_2 = \boldsymbol{b} - \frac{\boldsymbol{q_1^T b}}{\boldsymbol{q_1^T q_1}} \boldsymbol{q_1}$$
$$ \boldsymbol{q_2} = \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix} - \frac{\begin{bmatrix} 1 & 1 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix}}{\begin{bmatrix} 1 & 1 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}} \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} $$
$$ \boldsymbol{q_2} = \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix} - \frac{3}{3} \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} $$
$$ \boldsymbol{q_2} = \begin{bmatrix} 0 \\ -1 \\ 1 \end{bmatrix} $$
$$ \hat{\boldsymbol{q_1}} = \frac{1}{\sqrt{3}} \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} $$
$$ \hat{\boldsymbol{q_2}} = \frac{1}{\sqrt{2}} \begin{bmatrix} 0 \\ -1 \\ 1 \end{bmatrix} $$
$$ \therefore \quad Q = \begin{bmatrix} & \\ \hat{\boldsymbol{q_1}} & \hat{\boldsymbol{q_2}}\\ & \end{bmatrix} = \begin{bmatrix} \frac{1}{\sqrt{3}} & 0 \\ \frac{1}{\sqrt{3}} & - \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}} & \frac{1}{\sqrt{2}} \end{bmatrix}$$
이렇게 서로 독립인 두개의 벡터로 출발해서 직교행렬을 만들었다.
QR분해(QR decomposition)
QR분해는 지금까지 계산했던 그람-슈미트 방법을 행렬로 정리한 것이다.
A=LU는 A라는 행렬을 소거행렬을 통해 삼각행렬등의 곱으로 분해해서 표현하는 방법이다.
QR 분해 역시 원래의 A행렬을 Q행렬과 R행렬의 곱으로 분해해서 표현하는 방법이다.
여기서, Q행렬이 직교 행렬을의미하고 A행렬이 직교로 바꾸기전의 행렬이다. R행렬은 A와 Q행렬을 연결시켜주는 행렬이다.
특히 R행렬은 상삼각행렬의 형태를 띄고 있는다.
$$ A =QR $$
$$ \begin{bmatrix} & \\ \boldsymbol{a} & \boldsymbol{b} \\ & \end{bmatrix} = \begin{bmatrix} & \\ \hat{\boldsymbol{q_1}} & \hat{\boldsymbol{q_2}} \\ & \end{bmatrix} \begin{bmatrix} \boldsymbol{a_1^T q_1} & \boldsymbol{a_2^T q_1} \\ \boldsymbol{a_1^Tq_2} & \boldsymbol{a_2^Tq_2} \end{bmatrix} $$
강의에서는 대충 이렇게 하고 넘어 갔다.. 자세한것은 직접 찾아서 공부해야될 것 같고 이런게 있다고하고 넘어가자.
결론
우리는 독립인 벡터로부터 정규직규벡터를 만들어 직교행렬을 만들었고, 만드는 방법인 그람-슈미트 방법에 대해 배웠다. 이때 투영에 대한 개념이 나와 투영에 대해 복습하면서 직교행렬을 공부했다.