QR 분해

testwiki
둘러보기로 이동 검색으로 이동

틀:위키데이터 속성 추적 선형대수학에서 QR 분해(틀:Llang)는 실수 성분 정사각 행렬직교 행렬상삼각 행렬의 곱으로 나타내는 행렬 분해 M=QR이다.[1] 그람-슈미트 과정이나 하우스홀더 행렬이나 기븐스 회전을 통해 얻을 수 있으며, 선형 최소 제곱법이나 QR 알고리즘 따위에서 쓰인다.

정의

실수체 또는 복소수체 𝕂 성분의 m×n 행렬 M은 항상 다음과 같이 분해할 수 있으며, 이를 M(두꺼운) QR 분해(틀:Llang)라고 한다.[2]틀:Rp

M=QR

여기서

얇은 분해

실수체 또는 복소수체 𝕂 성분의 m×n 행렬 M에 대하여, 만약 mn이라면, M을 다음과 같이 분해할 수 있으며, 이를 M얇은 QR 분해(틀:Llang)라고 한다.[2]틀:Rp

M=QR

여기서

물론, 정사각 행렬의 경우 (m=n) QR 분해와 얇은 QR 분해를 구분할 필요가 없다. 얇은 QR 분해는 QR 분해의 특수한 경우이다. 구체적으로, mn이며, QR 분해 M=QR가 주어졌다고 하자. QQ의 첫 n열 들로 이루어진 m×n 행렬, RR의 첫 n행들로 이루어진 n×n 행렬이라고 하였을 때,

Q=(QQ)
R=(R0)

이므로

M=QR=(QQ)(R0)=QR+Q0=QR

이며, 이는 M의 얇은 QR 분해를 이룬다. 또한, 모든 얇은 QR 분해는 이러한 방식으로 얻을 수 있다.

가역 행렬과 유일성

다음 두 조건이 서로 동치이다.

또한, 이 조건은 mn을 함의한다. m=n인 경우, 추가로 다음 조건이 이와 동치이다.

만약 rankM=n이라면, 다음이 성립한다.

  • Q의 열들은 M의 열들의 선형 생성정규 직교 기저를 이룬다. 보다 일반적으로, k=1,,n에 대하여, Q의 첫 k열은 M의 첫 k열들의 선형 생성정규 직교 기저를 이룬다. Mj번째 열이 Q의 첫 j열들의 선형 결합인 사실은 R상삼각성에 대응한다.
  • Qn+1번째 열과 m번째 열 사이의 열들은 M의 열들의 선형 생성직교 여공간정규 직교 기저를 이룬다.
  • i=1,,n에 대하여, Rii0. 즉, R가역 행렬이다.
  • Rii>0 (i=1,,n)인 경우로 제한하면, R이나 R은 유일하며, Q도 유일하다. 이 경우, RAA숄레스키 분해의 상삼각 성분과 같다. 그러나 Q은 부분 공간의 정규 직교 기저를 전체 공간의 정규 직교 기저로 확충하는 방법에 대응하므로, 일반적으로 유일하지 않다.

이에 따라, QR 분해는 일반적으로 유일하지 않으며, rankM=n이라고 가정하더라도 m>n인 경우 유일하지 않다. 다만, 만약 rankM=n이라면, M의 얇은 QR 분해는 유일하다. 특히, 가역 행렬의 QR 분해는 유일하다.

방법

그람-슈미트 과정

틀:본문 벡터 𝐚1,𝐚2,,𝐚nm일차독립이라 하자. 행렬 A=[𝐚1𝐚2𝐚n] 에 대해, 그람-슈미트 직교정규화를 사용하면

proj𝐞𝐚=𝐞,𝐚𝐞,𝐞𝐞

사영 연산자를 이용해서

𝐮i=𝐚ij=1i1proj𝐮j𝐚i
𝐞i=𝐮i𝐮i

와 같이 직교정규기저 {𝐞1,𝐞2,,𝐞n}를 얻을 수 있다.

,내적 ,노름

위 식을 다시 정리하면

𝐚i=j=1i𝐞j,𝐚i𝐞j

가 되므로,

Q=[𝐞1𝐞2𝐞n]
R=(𝐞1,𝐚1𝐞1,𝐚2𝐞1,𝐚30𝐞2,𝐚2𝐞2,𝐚300𝐞3,𝐚3)

와 같이 놓으면 A=QR이 성립한다.

A=(1251461676842441)

정규 직교 행렬 QQTQ=I의 성질을 갖고있고,

따라서, Q는 다음과 같이 그람-슈미트 절차를 따라서,

U=(u1u2u3)=(126958/561586/543033)
Q=(u1u1u2u2u3u3)=(12/1469/17558/(5×35)6/14158/1756/(5×35)4/1430/17533/(1×35))=(6/769/17558/1753/7158/1756/1752/76/3533/35)

그리고,

QTA=QTQR=R
R=QTA=(1421140175700035)

확인해보면,

A=QR이므로,
(6/769/17558/1753/7158/1756/1752/76/3533/35)(1421140175700035)=(1251461676842441)
QR=A이다.
QR분해 된다.

그러나,

분수에의한 부동소수점연산이 관계함으로 오차가 발생할 수 있다.

RQ 분해와의 관계

RQ 분해는 행렬 A상삼각행렬R (직각 삼각형이라고도 함) 및 직교 행렬Q 의 곱으로 변환한다. QR분해와의 유일한 차이점은 행렬의 순서이다.

QR분해는 첫 번째 열에서 시작된 A 행렬의 열의 그람-슈미트 직교화이다.

RQ 분해는 마지막 행에서 시작하는 A 행렬의 행의 그람-슈미트 직교화이다.

장점과 단점

그람-슈미트 프로세스는 본질적으로 수치적으로 불안정할 수 있다. 투영법의 적용에는 직교화에 대한 주요한 기하학적 유추가 있지만 직교화 자체는 수치 오류가 발생하기 쉽다. 그러나 구현의 용이함이 중요한 장점이다. 사전 작성된 선형 대수 라이브러리(library)를 사용할 수 없거나 용이하지 않은 경우, 이 알고리즘을 프로토타입(prototype)에 사용할 수 있는 유용한 알고리즘으로 적용할 수 있다.

하우스홀더 방법

틀:본문 하우스홀더 리플렉터(하우스홀더 변환,Householder reflection)를 이용하여 한 열씩을 상삼각행렬로 바꾸어감으로써 QR을 구할 수 있다. 이 방법은 Q행렬을 하우스홀더 행렬의 곱으로 구해주기 때문에, 직접 Q를 구할 필요가 없을 때 유용하다.

또, 그람-슈미트 방법은 컴퓨터를 활용하여 계산할 때 0으로 계산되어야 하는 R의 성분이 0이 아닌 값들을 가지는 경우가 많다. 이는 그람-슈미트 방법은 분수의 연산을 수반하고 이에 따른 부동소수점 연산의 오차가 발생하기 때문이다. 크기가 작은 행렬에서는 이 문제가 크게 작용하지 않으나, 크기가 커질수록 오차도 커지게 된다. 때문에 오차를 줄이기 위해서 하우스홀더 변환을 사용하며 본질적으로 이 변환은 R의 특정 성분을 0으로 만들어 상삼각행렬이 되도록 하기 때문에 수치적으로 안정하다. 하지만, 새로운 0 성분을 만드는 모든 변환이 QR 모두를 바꾸기 때문에 하우스홀더 변환 알고리즘은 대역폭이 넓고 병렬화가 불가능하다는 단점이 있다.

A=(1251461676842441)

먼저 행렬 A 의 첫 번째 열을 벡터로 변환하는 리플렉션을 찾아야한다.

a1e1=(14,0,0)T에서,
벡터 a1=(12,6,4)T
u=xαe1
v=uu
α=14
x=a1=(12,6,4)T

따라서,

u=(2,6,4)T=(2)(1,3,2)T
v=(1,3,2)T14

하우스홀더 행렬 Q=I2vvT1에서,

Q1=I2(132)14(132)14
Q1=I21414(132)(132)
=I17(132396264)
=(6/73/72/73/72/76/72/76/73/7).

확인해보면,

Q1A=(14211404914016877)

삼각행렬에 접근하고 있음을 알 수 있다. 32열에서 (3,2)의 성분 값을 0으로 만들면 상삼각행렬을 얻게 된다.

(1,1) 소행렬식에서 다시 위의 절차를 반복해보면,

A=M11=(491416877)

위와 같은 방법으로 하우스홀더 변환(Householder transformation)된 행렬을 얻고,

Q2=(10007/2524/25024/257/25)
Q1,Q2에서 각각 전치행렬을 수행한 후 프로세스가 올바르게 작동하는지 확인해보고,

Q1=Q1T,Q2=Q2T 그리고나서,

Q=Q1TQ2T=(6/769/17558/1753/7158/1756/1752/76/3533/35)

그리고,

Q=Q1TQ2T=(0.85710.39430.33140.42860.90290.03430.28570.17140.9429)
R=Q2Q1A=QTA=(1421140175700035)

행렬 Q직교행렬이고 R상삼각행렬이되고 QR=AQR 분해된다.

기븐스 회전

기븐스 행렬은 특정위치에서 성분값을 0으로 조작할 수 있는 방법으로 기븐스 회전을 제공한다.

이것은 임의의 행렬을 직교행렬과 특정위치의 성분값이 0상삼각행렬로 분해되게 유도할 수 있게된다.

A=(a11a12a13a21a22a23a31a32a33)
A=(1251461676842441)
𝐚31=4
G1,(12,4)
θ=arctan((4)12)
G1=(cos(θ)0sin(θ)010sin(θ)0cos(θ))
=(0.94868...00.31622...0100.31622...00.94868...)
G1A𝐚31=0으로 조작된다.
G1A=(12.64911...55.97231...16.76007...61676806.64078...37.6311...)

G2 그리고 G3 도 이러한 절차를 반복한다.

a21=0 그리고 a32=0으로 조작된다.

결과로 상삼각행렬R을 얻는다. 따라서,

G3G2G1=QT
G3G2G1A=QTA=R
(QT)T=Q

직교행렬에서,

QT=Q1,QQT=QTQ=I

그리고, QR=A이다.

A=QR로 분해된다.

같이 보기

참고 문헌

틀:각주

외부 링크