기븐스 회전

기븐스 회전(Givens rotation)은 G ( i , j , θ ) ⋅ x {\displaystyle G(i,j,\theta )\cdot x} 는 θ {\displaystyle \theta } 라디안의 ( i , j ) {\displaystyle (i,j)} 평면에서 벡터 x {\displaystyle x} 의 반 시계 방향 회전을 나타내므로 기븐스 회전이라 명명된다. 수치 해석및선형 대수학에서 기븐스 회전의 주요 용도는 벡터 또는 행렬에 0 {\displaystyle 0} 을 도입하는 것이다. 이 효과는 예를 들어 행렬의 QR 분해를 계산하는 데 사용될 수 있다. 하우스홀더 변환에 비해 장점은 쉽게 병렬처리할 수 있다는 것이다. 또는 비교적 매우 적은 수의 행렬 연산으로 작동된다는 점이다. ( c s − s c ) T ( a b ) = ( r 0 ) {\displaystyle {\begin{pmatrix}c&s\\-s&c\\\end{pmatrix}}^{T}{\begin{pmatrix}a&b\\\end{pmatrix}}={\begin{pmatrix}r&0\\\end{pmatrix}}} r = a 2 + b 2 , {\displaystyle r={\sqrt {a^{2}+b^{2}}},} c = a a 2 + b 2 , s = b a 2 + b 2 {\displaystyle c={{a} \over {\sqrt {a^{2}+b^{2}}}}\;\;,\;\;s={{b} \over {\sqrt {a^{2}+b^{2}}}}} 기븐스 회전(Givens rotation)은 상삼각행렬을 위한 특정한 위치의 값을 0 {\displaystyle 0} 으로하는 행렬을 유도할 수 있다. R X ( θ ) = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] {\displaystyle R_{X}(\theta )={\begin{bmatrix}1&0&0\\0&\cos \theta &-\sin \theta \\0&\sin \theta &\cos \theta \end{bmatrix}}} R Y ( θ ) = [ cos ⁡ θ 0 sin ⁡ θ 0 1 0 − sin ⁡ θ 0 cos ⁡ θ ] → R Y ( θ ) = [ cos ⁡ θ 0 − sin ⁡ θ 0 1 0 sin ⁡ θ 0 cos ⁡ θ ] {\displaystyle R_{Y}(\theta )={\begin{bmatrix}\cos \theta &0&\sin \theta \\0&1&0\\-\sin \theta &0&\cos \theta \end{bmatrix}}\to {\begin{aligned}\\R_{Y}(\theta )={\begin{bmatrix}\cos \theta &0&-\sin \theta \\0&1&0\\\sin \theta &0&\cos \theta \end{bmatrix}}\end{aligned}}} R Z ( θ ) = [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] {\displaystyle {\begin{aligned}\\R_{Z}(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta &0\\\sin \theta &\cos \theta &0\\0&0&1\end{bmatrix}}\end{aligned}}} A 1 = [ 6 5 0 5 1 4 0 4 3 ] {\displaystyle A_{1}={\begin{bmatrix}6&5&0\\5&1&4\\0&4&3\\\end{bmatrix}}} 기븐스 회전의 두번 반복 (여기서는 3 {\displaystyle 3} 행 3 {\displaystyle 3} 열의 성분이 이미 0 {\displaystyle 0} 이다)을 수행하여 QR 분해를 계산하기위한 상삼각행렬을 산출한다. 필요한 행렬을 만들기 위해서는 성분 ( 2 , 1 ) {\displaystyle (2,1)} 과 ( 3 , 2 ) {\displaystyle (3,2)} 를 제로화해야한다. 먼저 성분 ( 2 , 1 ) {\displaystyle (2,1)} 를 0 {\displaystyle 0} 으로 선택하여, 회전 행렬을 적용하면, G 1 = [ c − s 0 s c 0 0 0 1 ] {\displaystyle G_{1}={\begin{bmatrix}c&-s&0\\s&c&0\\0&0&1\\\end{bmatrix}}} G 1 A 1 = A 2 = [ c − s 0 s c 0 0 0 1 ] [ 6 5 0 5 1 4 0 4 3 ] {\displaystyle {\begin{aligned}G_{1}A_{1}&{}=A_{2}\\&{}={\begin{bmatrix}c&-s&0\\s&c&0\\0&0&1\\\end{bmatrix}}{\begin{bmatrix}6&5&0\\5&1&4\\0&4&3\\\end{bmatrix}}\end{aligned}}} r = 6 2 + 5 2 ≈ 7.8102 {\displaystyle r={\sqrt {6^{2}+5^{2}}}\approx 7.8102} c = 6 / r ≈ 0.7682 {\displaystyle c=6/r\approx 0.7682} s = − 5 / r ≈ − 0.6402 {\displaystyle s=-5/r\approx -0.6402} A 2 ≈ [ 7.8102 4.4813 2.5607 0 − 2.4327 3.0729 0 4 3 ] {\displaystyle A_{2}\approx {\begin{bmatrix}7.8102&4.4813&2.5607\\0&-2.4327&3.0729\\0&4&3\\\end{bmatrix}}} 이제 프로세스를 끝내기 위해 ( 3 , 2 ) {\displaystyle (3,2)} 성분을 제로로 만든다. 이전과 같은 아이디어를 사용하여 회전 행렬을 적용한다. G 2 = [ 1 0 0 0 c − s 0 s c ] {\displaystyle G_{2}={\begin{bmatrix}1&0&0\\0&c&-s\\0&s&c\\\end{bmatrix}}} G 2 A 2 = A 3 ≈ [ 1 0 0 0 c − s 0 s c ] [ 7.8102 4.4813 2.5607 0 − 2.4327 3.0729 0 4 3 ] {\displaystyle {\begin{aligned}G_{2}A_{2}&{}=A_{3}\\&{}\approx {\begin{bmatrix}1&0&0\\0&c&-s\\0&s&c\\\end{bmatrix}}{\begin{bmatrix}7.8102&4.4813&2.5607\\0&-2.4327&3.0729\\0&4&3\\\end{bmatrix}}\end{aligned}}} r ≈ ( − 2.4327 ) 2 + 4 2 ≈ 4.6817 {\displaystyle r\approx {\sqrt {(-2.4327)^{2}+4^{2}}}\approx 4.6817} c ≈ − 2.4327 / r ≈ − 0.5196 {\displaystyle c\approx -2.4327/r\approx -0.5196} s ≈ − 4 / r ≈ − 0.8544 {\displaystyle s\approx -4/r\approx -0.8544} A 3 ≈ [ 7.8102 4.4813 2.5607 0 4.6817 0.9664 0 0 − 4.1843 ] = R {\displaystyle A_{3}\approx {\begin{bmatrix}7.8102&4.4813&2.5607\\0&4.6817&0.9664\\0&0&-4.1843\\\end{bmatrix}}=R} 이 새로운 행렬 A 3 {\displaystyle A_{3}} 은 QR 분해을 수행하는데 필요한 상삼각행렬 R {\displaystyle R} 이다. Q {\displaystyle Q} 는 이제 다음과 같은 방식으로 회전 행렬의 전치를 사용하여 형성된다. Q = G 1 T G 2 T {\displaystyle Q=G_{1}^{T}\,G_{2}^{T}} Q ≈ [ 0.7682 0.3327 0.5470 0.6402 − 0.3992 − 0.6564 0 0.8544 − 0.5196 ] {\displaystyle Q\approx {\begin{bmatrix}0.7682&0.3327&0.5470\\0.6402&-0.3992&-0.6564\\0&0.8544&-0.5196\\\end{bmatrix}}} Q R = A {\displaystyle QR=A} QR 분해 플래닛매스(http://planetmath.org/givensrotation)