4.4. Orthonormal Bases and Gram-Schmidt
1. 핵심 주제
이번 강의는 다음을 다룬다.
- 직교기저와 정규직교기저
- 직교행렬
- 정규직교기저를 사용하면 투영과 최소제곱 계산이 왜 쉬워지는지
- 일반 독립 벡터들을 정규직교 벡터들로 바꾸는 그람-슈미트 과정
- 그람-슈미트 과정을 행렬 언어로 표현한 QR 분해
2. 직교기저와 정규직교기저
벡터들이 서로 직교한다는 것은 서로 다른 두 벡터의 내적이 0이라는 뜻이다.
벡터들을 다음과 같이 두자.
q1,q2,…,qn
여기서 문자 q를 쓰는 이유는, 일반 벡터가 아니라 직교성을 가진 벡터를 나타내기 위해서이다.
서로 다른 두 벡터 qi, qj에 대해 다음이 성립하면 이들은 직교한다.
qiTqj=0(i=j)
하지만 벡터는 자기 자신과 직교하지 않는다.
자기 자신과의 내적은 길이의 제곱이다.
qiTqi=∥qi∥2
여기서 각 벡터의 길이를 1로 만들면 다음이 된다.
qiTqi=1
즉, 서로 다른 벡터끼리는 내적이 0이고, 자기 자신과의 내적은 1이다.
이를 한 번에 쓰면 다음과 같다.
qiTqj={10i=ji=j
이런 벡터들의 집합을 정규직교 집합이라고 한다.
- 직교: 서로 수직이다.
- 정규화: 길이가 1이다.
- 정규직교: 서로 수직이고, 각 벡터의 길이가 1이다.
따라서 정규직교기저는 다음 조건을 만족하는 기저이다.
- 모든 벡터가 서로 직교한다.
- 모든 벡터의 길이가 1이다.
- 벡터들이 어떤 공간을 생성하는 기저이다.
3. 정규직교 벡터를 행렬로 모으기
정규직교 벡터들을 행렬의 열벡터로 모은다.
Q=∣q1∣∣q2∣⋯∣qn∣
이제 QTQ를 계산해보자.
QT의 행들은 다음과 같다.
QT=q1Tq2T⋮qnT
따라서 QTQ는 모든 열벡터들 사이의 내적을 모은 행렬이다.
QTQ=q1Tq1q2Tq1⋮qnTq1q1Tq2q2Tq2⋮qnTq2⋯⋯⋱⋯q1Tqnq2Tqn⋮qnTqn
정규직교 벡터들이므로 대각성분은 1이고, 나머지는 0이다.
따라서 다음이 성립한다.
QTQ=I
이것이 정규직교 열벡터를 가진 행렬의 핵심 성질이다.
4. QTQ=I의 의미
일반 행렬 A에 대해 ATA는 열벡터들 사이의 모든 내적을 모은 행렬이다.
하지만 Q의 열벡터들이 정규직교이면 내적들이 매우 단순해진다.
- 같은 벡터끼리의 내적은 1
- 다른 벡터끼리의 내적은 0
그래서 다음이 된다.
QTQ=I
즉, 정규직교 벡터를 열로 가진 행렬은 계산을 극도로 단순하게 만든다.
수치선형대수에서 정규직교 벡터가 중요한 이유도 여기에 있다.
정규직교 벡터들은 길이가 1이기 때문에 계산 과정에서 값이 지나치게 커지거나 작아지는 문제가 줄어든다.
5. 직교행렬
행렬 Q가 정사각행렬이고, 열벡터들이 정규직교이면 Q를 직교행렬이라고 부른다.
정확히는 다음 조건이다.
QTQ=I
그리고 Q가 정사각행렬이면 다음도 성립한다.
QT=Q−1
왜냐하면 역행렬은 곱했을 때 항등행렬을 만드는 행렬이기 때문이다.
QTQ=I
따라서 QT는 Q의 왼쪽 역행렬이다.
정사각행렬에서는 이것이 역행렬이 되므로 다음이 된다.
Q−1=QT
즉, 직교행렬은 역행렬을 구할 필요가 없다.
그냥 전치하면 역행렬이 된다.
6. 예제 1: 순열행렬
다음 행렬을 보자.
Q=010001100
이 행렬의 열벡터는 각각 다음과 같다.
q1=010,q2=001,q3=100
각 열벡터의 길이는 1이다.
또 서로 다른 열벡터끼리 내적하면 0이다.
예를 들어,
q1Tq2=[010]001=0
q1Tq3=[010]100=0
q2Tq3=[001]100=0
따라서 이 행렬은 직교행렬이다.
또한 다음이 성립한다.
QTQ=I
순열행렬은 직교행렬의 가장 쉬운 예이다.
왜냐하면 각 열에 1이 하나씩만 있고, 그 위치가 서로 다르기 때문이다.
7. 예제 2: 회전행렬 형태의 직교행렬
다음 행렬을 보자.
Q=[cosθsinθ−sinθcosθ]
첫 번째 열벡터는 다음과 같다.
q1=[cosθsinθ]
두 번째 열벡터는 다음과 같다.
q2=[−sinθcosθ]
먼저 각 벡터의 길이를 확인한다.
q1Tq1=cos2θ+sin2θ=1
q2Tq2=(−sinθ)2+cos2θ=sin2θ+cos2θ=1
두 벡터의 내적은 다음과 같다.
q1Tq2=cosθ(−sinθ)+sinθ(cosθ)
=−cosθsinθ+sinθcosθ=0
따라서 이 행렬은 직교행렬이다.
이 행렬은 평면에서의 회전행렬로 볼 수 있다.
8. 예제 3: 정규화가 필요한 행렬
다음 행렬을 보자.
[111−1]
이 행렬의 두 열벡터는 다음과 같다.
a1=[11],a2=[1−1]
두 벡터의 내적은 다음과 같다.
a1Ta2=[11][1−1]=1−1=0
따라서 두 벡터는 직교한다.
하지만 길이는 1이 아니다.
∥a1∥2=12+12=2
∥a1∥=2
마찬가지로,
∥a2∥=2
따라서 각 열벡터를 2로 나누어야 정규직교 벡터가 된다.
그래서 직교행렬은 다음과 같다.
Q=21[111−1]
이제 각 열벡터의 길이는 1이고, 서로 직교한다.
따라서 QTQ=I이다.
9. 예제 4: 하다마드 행렬 형태
다음 행렬을 보자.
H=11111−11−111−1−11−1−11
이 행렬의 열벡터들은 성분이 모두 1 또는 −1이다.
서로 다른 열벡터들의 내적을 보면, +1이 나오는 항과 −1이 나오는 항이 서로 상쇄되어 0이 된다.
예를 들어 첫 번째 열과 두 번째 열의 내적은 다음과 같다.
1111T1−11−1=1−1+1−1=0
첫 번째 열의 길이는 다음과 같다.
12+12+12+12=4=2
따라서 각 열벡터를 길이 1로 만들려면 전체 행렬에 21를 곱하면 된다.
Q=2111111−11−111−1−11−1−11
그러면 Q는 직교행렬이 된다.
이런 종류의 행렬은 하다마드 행렬이라고 부른다.
하다마드 행렬은 성분이 1과 −1로만 이루어져 있고, 열벡터들이 서로 직교하는 행렬이다.
강의에서는 크기 2, 4, 16, 64 등에서는 이런 행렬을 만들 수 있지만, 어떤 크기에서 항상 가능한지는 완전히 알려져 있지 않다고 설명한다.
예를 들어 5×5 크기의 하다마드 행렬은 존재할 수 없다고 언급한다.
10. 직사각형 행렬도 정규직교 열벡터를 가질 수 있다
직교행렬이라는 말은 보통 정사각행렬에만 사용한다.
하지만 정사각행렬이 아니더라도 열벡터들이 정규직교일 수 있다.
예를 들어 다음 행렬을 보자.
Q=31122−2−12
첫 번째 열벡터는 다음과 같다.
q1=31122
두 번째 열벡터는 다음과 같다.
q2=31−2−12
먼저 정규화 전의 첫 번째 벡터 길이를 보자.
122=12+22+22=1+4+4=3
두 번째 벡터도 길이가 3이다.
−2−12=(−2)2+(−1)2+22=4+1+4=3
두 벡터의 내적은 다음과 같다.
1(−2)+2(−1)+2(2)=−2−2+4=0
따라서 31을 곱한 두 열벡터는 정규직교이다.
이 행렬은 3×2 행렬이다.
정사각행렬은 아니므로 보통 직교행렬이라고 부르지는 않는다.
하지만 열벡터들은 정규직교이므로 다음은 성립한다.
QTQ=I2
주의할 점은, 이 경우 QQT는 I3가 아니다.
Q가 정사각행렬이 아니기 때문이다.
11. 정규직교 열벡터가 있을 때 투영행렬
일반적으로 행렬 A의 열공간으로의 투영행렬은 다음과 같다.
P=A(ATA)−1AT
이제 A 대신 정규직교 열벡터를 가진 행렬 Q를 사용한다고 하자.
그러면 투영행렬은 다음과 같다.
P=Q(QTQ)−1QT
그런데 정규직교 열벡터에 대해 다음이 성립한다.
QTQ=I
따라서,
(QTQ)−1=I−1=I
그래서 투영행렬은 매우 단순해진다.
P=QQT
즉, 정규직교기저를 사용하면 투영행렬에서 역행렬 계산이 사라진다.
12. Q가 정사각행렬일 때의 투영
만약 Q가 정사각행렬이고 열벡터들이 정규직교이면, 열벡터들이 전체 공간의 기저가 된다.
예를 들어 n×n 행렬 Q의 열벡터들이 독립이면, 그 열공간은 전체 Rn이다.
따라서 전체 공간으로의 투영은 아무것도 바꾸지 않는다.
즉, 투영행렬은 항등행렬이다.
P=I
그리고 정사각 직교행렬에서는 다음이 성립한다.
QQT=I
QTQ=I
따라서 정사각 직교행렬의 경우,
P=QQT=I
이다.
13. 투영행렬의 두 가지 성질
투영행렬 P는 중요한 두 가지 성질을 가진다.
13.1 대칭성
투영행렬은 대칭행렬이다.
PT=P
정규직교 열벡터를 가진 Q에 대해 P=QQT라고 하면,
PT=(QQT)T
전치의 성질에 의해 순서가 바뀐다.
(QQT)T=(QT)TQT
=QQT
따라서,
PT=P
이다.
13.2 멱등성
투영행렬은 두 번 적용해도 한 번 적용한 것과 같다.
P2=P
정규직교 열벡터를 가진 Q에 대해 P=QQT이면,
P2=(QQT)(QQT)
=Q(QTQ)QT
그런데,
QTQ=I
이므로,
P2=QIQT
=QQT
=P
따라서 QQT는 투영행렬의 성질을 만족한다.
14. 정규직교기저와 정규방정식
일반적인 최소제곱 문제에서 정규방정식은 다음과 같다.
ATAx^=ATb
그런데 A의 열벡터들이 정규직교라면 A 대신 Q라고 쓸 수 있다.
그러면 정규방정식은 다음과 같다.
QTQx^=QTb
하지만 정규직교 열벡터에 대해 다음이 성립한다.
QTQ=I
따라서,
Ix^=QTb
즉,
x^=QTb
이다.
이 식은 매우 중요하다.
일반적인 경우에는 ATA를 계산하고, 역행렬 또는 연립방정식 풀이를 통해 x^를 구해야 한다.
하지만 정규직교기저를 쓰면 해는 단순히 내적들의 모음이 된다.
15. 정규직교기저에서 좌표는 내적이다
x^=QTb
라고 하자.
Q의 열벡터가 q1,q2,…,qn이면,
QT=q1Tq2T⋮qnT
따라서,
x^=q1Tbq2Tb⋮qnTb
즉, b를 정규직교기저 방향으로 분해할 때 각 성분은 단순히 b와 해당 기저벡터의 내적이다.
i번째 성분은 다음과 같다.
x^i=qiTb
이것이 정규직교기저의 가장 강력한 장점이다.
16. 그람-슈미트 과정의 목적
이제 문제는 다음과 같다.
처음부터 정규직교기저가 주어지면 계산이 매우 쉽다.
하지만 실제로는 보통 독립 벡터들만 주어진다.
예를 들어 다음과 같은 독립 벡터들이 주어진다고 하자.
a,b
이 벡터들은 서로 직교하지 않을 수 있다.
그람-슈미트 과정은 이런 독립 벡터들을 정규직교 벡터들로 바꾸는 절차이다.
즉, 입력은 일반 독립 벡터들이고,
a,b,c,…
출력은 정규직교 벡터들이다.
q1,q2,q3,…
핵심 아이디어는 다음과 같다.
- 첫 번째 벡터 방향은 그대로 사용한다.
- 두 번째 벡터에서 첫 번째 벡터 방향 성분을 제거한다.
- 세 번째 벡터에서 첫 번째, 두 번째 방향 성분을 제거한다.
- 이렇게 얻은 직교 벡터들을 마지막에 길이 1로 정규화한다.
17. 두 벡터에 대한 그람-슈미트
두 독립 벡터 a, b가 있다고 하자.
목표는 직교 벡터 A, B를 만드는 것이다.
첫 번째 벡터는 그대로 둔다.
A=a
두 번째 벡터 b는 A 방향 성분을 제거해야 한다.
b를 A 방향으로 투영한 벡터는 다음과 같다.
projAb=ATAATbA
따라서 b에서 이 투영 성분을 빼면 A에 수직인 성분만 남는다.
B=b−ATAATbA
이 B는 A와 직교한다.
즉,
ATB=0
이다.
18. 왜 B가 A와 직교하는가
정의에 의해,
B=b−ATAATbA
양쪽에 AT를 곱한다.
ATB=AT(b−ATAATbA)
분배하면,
ATB=ATb−ATAATbATA
오른쪽 두 번째 항에서 ATA가 약분된다.
ATB=ATb−ATb
따라서,
ATB=0
이다.
즉, B는 A와 직교한다.
이것이 그람-슈미트의 핵심이다.
b에서 A 방향의 성분을 빼면, A에 수직인 오차 성분만 남는다.
이때 B는 앞에서 투영 단원에서 본 오차벡터 e와 같은 역할을 한다.
19. 정규화 단계
그람-슈미트 과정에서 먼저 직교 벡터 A, B를 만든다.
그 다음 이 벡터들을 길이로 나누어 단위벡터로 만든다.
q1=∥A∥A
q2=∥B∥B
이렇게 하면 q1, q2는 정규직교 벡터가 된다.
즉,
q1Tq1=1
q2Tq2=1
q1Tq2=0
이다.
20. 세 벡터에 대한 그람-슈미트
세 독립 벡터 a, b, c가 있다고 하자.
목표는 직교 벡터 A, B, C를 만드는 것이다.
첫 번째 벡터는 그대로 둔다.
A=a
두 번째 벡터는 A 방향 성분을 제거한다.
B=b−ATAATbA
세 번째 벡터 c에서는 이미 만든 두 방향 A, B의 성분을 모두 제거해야 한다.
C=c−ATAATcA−BTBBTcB
이렇게 하면 C는 A와도 직교하고, B와도 직교한다.
즉,
ATC=0
BTC=0
이다.
마지막으로 정규화한다.
q1=∥A∥A
q2=∥B∥B
q3=∥C∥C
그러면 q1, q2, q3는 정규직교 벡터가 된다.
21. 그람-슈미트 일반형
독립 벡터들이 다음과 같이 주어졌다고 하자.
a1,a2,…,an
그람-슈미트 과정은 다음과 같이 진행된다.
첫 번째 직교 벡터는 다음과 같다.
A1=a1
두 번째 직교 벡터는 첫 번째 방향 성분을 제거한다.
A2=a2−A1TA1A1Ta2A1
세 번째 직교 벡터는 첫 번째와 두 번째 방향 성분을 제거한다.
A3=a3−A1TA1A1Ta3A1−A2TA2A2Ta3A2
일반적으로,
Ak=ak−j=1∑k−1AjTAjAjTakAj
이다.
그리고 정규화하면,
qk=∥Ak∥Ak
이다.
22. 수치 예제: 두 벡터의 그람-슈미트
강의에서 사용한 예제는 다음 두 벡터이다.
a=111,b=102
이 두 벡터는 직교하지 않는다.
내적을 계산하면,
aTb=[111]102=1+0+2=3
따라서 직교가 아니다.
23. 첫 번째 직교 벡터 구하기
첫 번째 벡터는 그대로 둔다.
A=a=111
24. 두 번째 직교 벡터 구하기
공식은 다음과 같다.
B=b−ATAATbA
여기서 A=a이다.
먼저 ATb를 계산한다.
ATb=[111]102=3
다음으로 ATA를 계산한다.
ATA=[111]111=1+1+1=3
따라서 계수는 다음과 같다.
ATAATb=33=1
그러므로,
B=b−1A
=102−111
=0−11
따라서 두 번째 직교 벡터는 다음과 같다.
B=0−11
25. 직교성 확인
이제 A와 B가 직교하는지 확인한다.
ATB=[111]0−11
=0−1+1=0
따라서 A와 B는 직교한다.
26. 정규화하기
이제 A와 B를 단위벡터로 만든다.
먼저 A의 길이는 다음과 같다.
∥A∥=12+12+12=3
따라서,
q1=∥A∥A=31111
다음으로 B의 길이는 다음과 같다.
∥B∥=02+(−1)2+12=2
따라서,
q2=∥B∥B=210−11
그러므로 그람-슈미트로 얻은 정규직교 행렬 Q는 다음과 같다.
Q=3131310−2121
또는 열벡터 형태로 쓰면,
Q=∣q1∣∣q2∣
이다.
27. 원래 행렬과 새 행렬의 열공간 관계
처음 주어진 두 벡터를 열로 가진 행렬을 다음과 같이 두자.
Aoriginal=111102
그람-슈미트로 얻은 행렬은 다음과 같다.
Q=3131310−2121
이 두 행렬의 열공간은 같다.
즉,
C(Aoriginal)=C(Q)
이다.
왜냐하면 그람-슈미트 과정에서 새 벡터들은 원래 벡터들의 선형결합으로 만들어졌기 때문이다.
예를 들어,
B=b−A
였으므로 B는 a와 b의 선형결합이다.
또 A=a이다.
따라서 새로 만든 벡터 A, B는 원래 벡터 a, b가 만드는 평면 안에 있다.
반대로 원래 벡터들도 새 벡터들의 선형결합으로 표현할 수 있다.
따라서 열공간은 변하지 않는다.
그람-슈미트는 공간을 바꾸는 것이 아니라, 같은 공간 안에서 더 좋은 기저를 만드는 과정이다.
28. 그람-슈미트의 의미
그람-슈미트 과정은 다음과 같이 이해할 수 있다.
처음 주어진 벡터들은 어떤 부분공간의 기저이다.
하지만 그 기저는 계산하기에 좋지 않을 수 있다.
왜냐하면 벡터들이 서로 기울어져 있고, 길이도 제각각이기 때문이다.
그람-슈미트는 같은 부분공간을 생성하면서도 다음 성질을 가진 새 기저를 만든다.
- 서로 직교한다.
- 길이가 1이다.
- 따라서 투영, 최소제곱, 좌표 계산이 쉬워진다.
즉, 그람-슈미트는 일반 기저를 정규직교기저로 바꾸는 과정이다.
29. QR 분해
소거법을 행렬 언어로 표현하면 LU 분해가 된다.
A=LU
마찬가지로 그람-슈미트 과정을 행렬 언어로 표현하면 QR 분해가 된다.
A=QR
여기서,
- A는 원래 독립 열벡터들을 가진 행렬이다.
- Q는 정규직교 열벡터들을 가진 행렬이다.
- R은 상삼각행렬이다.
즉, 그람-슈미트는 행렬 A를 정규직교 행렬 Q와 상삼각행렬 R의 곱으로 표현하는 과정이다.
30. 왜 R은 상삼각행렬인가
A와 Q의 열공간은 같다.
따라서 A의 각 열벡터는 Q의 열벡터들의 선형결합으로 표현될 수 있다.
즉,
A=QR
이다.
여기서 R의 성분들은 Q의 열벡터들과 A의 열벡터 사이의 내적에서 나온다.
두 열벡터만 있는 경우를 생각하자.
A=∣a1∣∣a2∣
Q=∣q1∣∣q2∣
그러면 A=QR에서 R은 대략 다음과 같은 형태를 가진다.
R=[q1Ta1q2Ta1q1Ta2q2Ta2]
그런데 그람-슈미트 과정에서 q2는 첫 번째 원래 벡터 a1에 수직이 되도록 만들어졌다.
따라서,
q2Ta1=0
그래서 R은 다음과 같은 상삼각행렬이 된다.
R=[q1Ta10q1Ta2q2Ta2]
일반적인 경우에도 같은 원리가 적용된다.
뒤에 만들어진 qj는 앞선 원래 벡터들의 방향 성분을 제거해서 만들어졌기 때문에, 앞선 열벡터들과 직교한다.
따라서 R의 아래쪽 성분들이 0이 되고, R은 상삼각행렬이 된다.
31. 강의 예제를 QR 분해 관점에서 보기
원래 행렬은 다음과 같다.
A=111102
그람-슈미트로 얻은 Q는 다음과 같다.
Q=3131310−2121
Q의 열벡터들은 정규직교이므로,
QTQ=I
A=QR에서 양쪽에 QT를 곱하면,
QTA=QTQR
QTA=IR
따라서,
R=QTA
이제 R을 계산한다.
먼저,
q1=31111
q2=210−11
그리고,
a1=111,a2=102
R의 각 성분은 다음과 같다.
r11=q1Ta1
=31[111]111
=33=3
다음으로,
r12=q1Ta2
=31[111]102
=33=3
다음으로,
r21=q2Ta1
=21[0−11]111
=20−1+1=0
마지막으로,
r22=q2Ta2
=21[0−11]102
=20+0+2=2
따라서,
R=[3032]
결국 QR 분해는 다음과 같다.
A=QR
111102=3131310−2121[3032]
확인해보자.
첫 번째 열은,
3q1+0q2=3⋅31111=111
두 번째 열은,
3q1+2q2
=3⋅31111+2⋅210−11
=111+0−11
=102
따라서 실제로 A=QR이 성립한다.
32. 전체 흐름 요약
이번 강의의 핵심 흐름은 다음과 같다.
32.1 정규직교 열벡터
열벡터들이 정규직교이면,
QTQ=I
이다.
32.2 직교행렬
Q가 정사각행렬이고 정규직교 열벡터를 가지면 직교행렬이다.
이때,
Q−1=QT
이다.
32.3 정규직교기저에서 투영
일반 투영행렬은 다음과 같다.
P=A(ATA)−1AT
하지만 정규직교기저 Q를 쓰면,
P=QQT
이다.
32.4 정규직교기저에서 최소제곱
일반 정규방정식은 다음과 같다.
ATAx^=ATb
하지만 정규직교기저 Q를 쓰면,
x^=QTb
이다.
각 성분은 다음과 같다.
x^i=qiTb
즉, 좌표는 단순히 내적이다.
32.5 그람-슈미트
그람-슈미트는 일반 독립 벡터들을 정규직교 벡터들로 바꾸는 과정이다.
두 벡터의 경우,
A=a
B=b−ATAATbA
그리고,
q1=∥A∥A
q2=∥B∥B
이다.
32.6 QR 분해
그람-슈미트 과정을 행렬로 표현하면 다음과 같다.
A=QR
여기서,
- Q는 정규직교 열벡터를 가진 행렬이다.
- R은 상삼각행렬이다.
- A와 Q는 같은 열공간을 가진다.
33. 직관 정리
정규직교기저는 좌표계를 가장 깔끔하게 정리한 것이다.
일반 기저에서는 벡터들이 서로 기울어져 있기 때문에 좌표를 구하려면 연립방정식을 풀어야 한다.
하지만 정규직교기저에서는 각 방향이 서로 완전히 독립적이다.
그래서 한 방향의 성분을 구할 때 단순히 그 방향과 내적하면 된다.
성분=qiTb
그람-슈미트는 기울어진 기저를 같은 공간 안에서 직각 기저로 바꾸는 과정이다.
QR 분해는 그 과정을 행렬 방정식으로 표현한 것이다.
A=QR
즉, A의 복잡한 열벡터 구조를 정규직교 구조 Q와 상삼각 구조 R로 분해하는 것이다.
34. 꼭 기억해야 할 공식
QTQ=I
Q−1=QTif Q is square
P=A(ATA)−1AT
P=QQTif columns of Q are orthonormal
ATAx^=ATb
x^=QTbif columns of Q are orthonormal
B=b−ATAATbA
qi=∥Ai∥Ai
A=QR
35. 요약
정규직교기저를 쓰면 투영과 최소제곱 계산이 단순한 내적 계산으로 바뀌며, 그람-슈미트 과정은 일반 독립 벡터들을 이런 정규직교기저로 바꾸고, 그 결과를 행렬로 표현한 것이 QR 분해이다.