기븐스 회전

Givens rotation

수치 선형 대수에서 기븐스 회전은 두 개의 좌표 축에 의해 확장된 평면에서 회전하는 것이다.기븐스 회전은 1950년대 아르곤느 국립 연구소에서 일하던 중 수치 분석가들에게 소개한 월리스 기븐스의 이름을 따서 붙여졌다.

행렬 표현

기븐스 회전은 형태의 행렬로 표현된다.

여기서 c = cos θs = sin θ은 교차점에 나타난다. ith와 j번째 행과 열.즉, 고정 i > j의 경우 기븐스 행렬의 0이 아닌 원소는 다음과 같이 주어진다.

제품 G(i, j, θ)xθ 라디안의 (i, j) 평면에서 벡터 x의 반시계방향 회전을 나타내며, 따라서 Givens라는 이름이 회전한다.

수치 선형대수에서 기븐스 회전의 주된 용도는 벡터나 행렬에 0을[clarification needed] 도입하는 것이다.예를 들어, 이 효과는 매트릭스의 QR 분해 계산을 위해 사용될 수 있다.주택소유자 전환에 비해 한 가지 장점은 쉽게 병렬화할 수 있다는 것이고, 또 다른 장점은 매우 희박한 매트릭스의 경우 운용 카운트가 더 낮다는 것이다.

안정계산

Givens 회전 행렬인 G(i, j, θ)가 다른 행렬인 A왼쪽에서 G A로 곱하면 Ai행j행만 영향을 받는다.따라서 우리는 다음과 같은 시계 반대방향 문제에 대한 주의를 제한한다.ab를 주어 c = cos θ과 s = sin θ을 찾으면 다음과 같이 된다.

여기서 = + }은 벡터 의 길이로서 explicit의 명시적 계산은 거의 필요하거나 바람직하다고 할 수 없다.대신에 우리는 직접적으로 c와 s를 구한다.분명한 해결책은

[1]

그러나 r에 대한 계산은 오버플로우 또는 과소 흐름일 수 있다.이 문제를 회피하는 대안적 공식(Golub & Van Lend 1996, §5.1.8)은 많은 프로그래밍 언어에서 하이팟 함수로 구현된다.

다음의 포트란 코드는 실수에 대한 기븐스 회전의 미니멀리즘 구현이다.입력 값 'a' 또는 'b'가 자주 0인 경우 코드는 여기에 제시된 바와 같이 이러한 경우를 처리하도록 최적화될 수 있다.

서브루틴의givens_message(a, b, c, s, r)  진짜a, b, c, s, r 진짜h, d  만일 (b..0.0) 그때     h = 하이픈을 치다(a, b)     d = 1.0 / h     c = 복근(a) * d     s = 서명하다(d, a) * b     r = 서명하다(1.0, a) * h 다른     c = 1.0     s = 0.0     r = a 의 경우에 끝나다.  돌아오다 종지부를 찍다 


더욱이 에드워드 앤더슨이 라팩을 개선하면서 발견한 바와 같이, 이전에 간과했던 수치적 고려는 연속성이다.이를 달성하기 위해 우리는 r이 긍정적일 것을 요구한다.[2]다음 MATLAB/GNU 옥타브 코드는 알고리즘을 보여준다.

기능[c, s, r]한 경우-b== 0;c)sign(를),(c== 0), 요리=1.0,%과 달리 다른 언어 입력 0에 MatLab의 간판 기능 0을 반환하다. 끝의)0;r)abs(를);== 0elseif.c)0;s)sign(b)하며)abs(b), elseif abs(를)>abs(b).)b/a입니다;uxsign(를)*sqrt(1+tMake몸 상태를), 요리=1/너의)c*t;r)a*u, givens_rotation(a, b). 엘se t = a / b; u = 부호(b) * sqrt(1 + t * t); s = 1 / u; c = s * t; r = b * u; end end end

IEEE 754 copysign(x,y)기능, 안전하고 값싼 방법으로 의 표지를 모방할 수 있다.yx. 사용할 수 없는 경우, 복근sgn 함수를 사용하는 x ⋅sgn(y)이 대안이 된다.

삼각화

다음과 같은 3 매트릭스가 주어진다.

QR 분해를 계산하기 위해 상위 삼각 행렬을 산출하기 위해 두 번의 Givens 회전 반복(여기서 사용되는 Givens 회전 알고리즘이 위와 약간 다르다는 점에 유의)을 수행한다.

원하는 행렬을 형성하기 위해서는 원소(2,1)와 (3,2)를 영점화해야 한다.먼저 원소(2,1)부터 0까지 선택한다.회전 행렬 사용:

우리는 다음과 같은 매트릭스 곱셈을 가지고 있다.

어디에

cs에 대해 이러한 값을 연결하고 위의 매트릭스 곱셈을 수행하면 A2:

우리는 이제 그 과정을 끝내기 위해 원소(3,2)를 0으로 만들기를 원한다.이전과 동일한 아이디어를 사용하여 다음과 같은 순환 매트릭스를 제공한다.

우리는 다음과 같은 매트릭스 곱셈을 가지고 있다.

어디에

cs에 대해 이러한 값을 연결하고 곱셈을 수행하면 A3 된다.

이 새로운 매트릭스 A3 QR 분해의 반복을 수행하는 데 필요한 상위 삼각 매트릭스다.Q는 이제 다음과 같은 방식으로 회전 행렬의 전치물을 사용하여 형성된다.

이 행렬 곱셈을 수행하면 다음과 같은 결과가 나온다.

이로써 기븐스 로테이션의 두 번 반복이 완료되고 QR 분해 계산이 이제 이루어질 수 있다.

클리포드 알헤브라의 기븐스 회전

클리포드 알헤브라와 기하학적 대수 회전과 같은 어린이 구조는 이벡터로 표현된다.기븐 회전은 기본 벡터의 외부 제품으로 표현된다. 벡터 , j 의 모든 쌍을 지정할 때 Givens 회전 바이버들은 다음과 같다.

어떤 벡터에서도 그들의 행동은 다음과 같이 기록된다.

어디에

치수 3

차원 3에는 세 가지 기븐 회전수가 있다.

[주 1]

그것들이 내형성이라는 것을 고려할 때, 그들은 g ∘ f ∘ fg를 염두에 두고, 원하는 만큼 서로 구성될 수 있다.

세 가지 기븐 회전은 데이븐포트의 체인 회전 정리에 따라 어떤 회전 행렬도 생성할 수 있다.이는 공간의 표준 기준을 공간의 다른 프레임으로 변환할 수 있다는 것을 의미한다.[clarification needed]

회전이 올바른 순서로 수행될 때, 최종 프레임의 회전각 값은 해당 규약에서 최종 프레임의 오일러 각도와 동일하다.예를 들어 연산자 = (( ). X( 2). ( ( ) transforms the basis of the space into a frame with angles roll, pitch and yaw in the Tait–Bryan convention z-x-y (convention in which the line of nodes is perpendicular to z and Y axes, also named Y-X′-Z″).

같은 이유로, 3D의 회전 행렬은 이들 회전 연산자 중 3명의 제품에서 분해될 수 있다.

두 기븐스 회전 gf의 구성의 의미는 벡터를 f로 먼저 변환한 다음 g로 변환하는 연산자로, 공간의 한 축에 대한 f와 g 회전이다.이는 오일러 각도에 대한 외측 회전 등가치와 유사하다.

합성 회전표

다음 표에는 활성 회전(기본 축에 대한 회전 구성)의 외측 구성과 각도의 양수 기호에 대한 오른손 법칙을 사용한 서로 다른 오일러 각도 규약에 상당하는 3개의 기븐 회전수가 표시된다.

표기법은 c1 cos θ1, s2 sin θ2)을 의미하는 방식으로 단순화되었다.각도의 하위 지수는 외적 구성(내인 회전의 경우 1, 너트의 경우 2, 사전 처리의 경우 3)을 사용하여 적용되는 순서다.

회전은 오일러 회전각표의 반대 순서로 적용되므로, 이 표는 동일하지만 해당 입력과 관련된 각도에서 지수 1과 3을 스와핑한다.zxy와 같은 항목은 먼저 y 회전, 그 다음 x, 그리고 마지막으로 z를 기본 축에 적용하는 것을 의미한다.

모든 구성은 곱한 행렬에 대한 오른손 관례를 가정하여 다음과 같은 결과를 산출한다.

xzx 광택의
Xyx xyz
yxy yxz
이즈 yzx
zyz zyx
zxz 잭시

참고 항목

메모들

  1. ^ 바로 아래의 () 회전 매트릭스는 기븐스 회전이 아니다.바로 ( ){\)} 행렬은 오른쪽 규칙을 존중하며, 컴퓨터 그래픽에서 흔히 볼 수 있는 행렬이지만, 기븐스 회전은 위의 매트릭스 표현 섹션에서 정의한 행렬일 뿐 오른쪽 규칙을 반드시 존중하지는 않는다.아래 행렬은 실제로 - 의 각도를 통한 기븐스 회전이다

인용구

  1. ^ Björck, Ake (1996). Numerical Methods for Least Squares Problems. United States: SIAM. p. 54. ISBN 9780898713602. Retrieved 16 August 2016.
  2. ^ Anderson, Edward (4 December 2000). "Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem" (PDF). LAPACK Working Note. University of Tennessee at Knoxville and Oak Ridge National Laboratory. Retrieved 16 August 2016.

참조