2020년 8월 9일 일요일

회전 행렬(Rotation Matrix)

[경고] 아래 글을 읽지 않고 "회전 행렬"을 보면 바보로 느껴질 수 있습니다.


[그림 1] 2차원 좌표의 여러 가지 변환(출처: wikipedia.org)

[그림 2] 2차원 상에서 $\phi$방향으로 $\theta$만큼 회전한 벡터(출처: wikipedia.org)

삼각 함수의 합차 공식(angle sum and difference identity)을 이용하면, [그림 2]처럼 $xy$평면에 대한 좌표점의 회전을 쉽게 공식화할 수 있다.

                  (1)

여기서 $x$ = $\rho \cos \phi$, $y$ = $\rho \sin \phi$, 원래 좌표점 $(x, y)$가 $\phi$방향으로 $\theta$만큼 회전한 좌표점이 $(x', y')$이다. 식 (1)을 행렬(matrix) 형태로 쓰면, 2차원에 대한 회전 행렬(rotation matrix)을 다음처럼 얻을 수 있다.

                  (2)

2차원 상의 회전을 쉽게 증명했다고 해서 3차원 상의 회전도 비슷하다고 오판하면 안된다. 3차원 회전은 선형 대수학(linear algebra)을 만든 핵심 개념이다. 연립 방정식(simultaneous equations)을 풀기 위해 행렬이 제안되었다고 오해할 수 있지만, 행렬 개념이 없어도 가우스 소거법(Gaussian elimination)을 이용하면 연립 방정식을 쉽게 해결할 수 있다. 오히려 행렬 개념의 진가는 고유치와 고유 벡터(eigenvalue and eigenvector)에서 드러난다. 행렬이 표현하는 선형 변환(linear transformation)에 관계없이 원래 벡터와 평행한 방향을 유지하면 고유 벡터라 부른다. 당연히 회전축(rotation axis) 방향으로 놓인 벡터는 돌리더라도 같은 방향이므로, 회전 행렬의 회전축이 고유 벡터가 된다. 벡터의 크기도 같아야 하므로, 고유치의 크기는 $1$이다. 이러한 측면에서 회전 행렬은 고유치와 고유 벡터의 개념을 이해하기 매우 좋은 예시이다. 수학사 측면에서 봐도 회전 행렬은 정말 중요하다. 사원수(quaternion), 벡터, 행렬 개념이 나오기 직전인 1840년에 로드리그Olinde Rodrigues(1795–1851)가 3차원 좌표점의 회전을 공식화했다[2], [3]. 이 공식은 로드리그의 회전 공식(Rodrigues' rotation formula)이라 부른다. 사실 로드리그가 회전 공식을 제안하기 한참 전인 1776년에 오일러Leonhard Euler(1707–1783)는 비슷한 공식을 먼저 제안했다[1], [3]. 하지만 벡터 개념에 가깝게 3차원 공간의 회전을 표현한 로드리그에게 공식의 이름이 돌아갔다. 그래서 오일러가 연구한 3차원의 회전 개념이 로드리그를 거쳐 사원수와 행렬에 영향을 주어서 고유치와 고유 벡터에 대한 개념이 정립되었다.

[그림 3] 로드리그의 회전 공식을 위한 좌표계(출처: wikipedia.org)

로드리그가 회전 공식을 증명할 때는 벡터가 없었지만, 우리는 벡터 개념을 알기 때문에 편하게 벡터를 써서 증명해보자.

[로드리그의 회전 공식]
벡터 $\bar v$를 회전축 $\hat k$를 기준으로 오른손 법칙에 따라 $\theta$만큼 회전한 벡터는 다음과 같다.

                  (3a)

                  (3b)

여기서 $\bar v$ = $\bar v_\parallel + \bar v_\bot$, $\bar v_\parallel$과 $\bar v_\bot$은 각각 $\hat k$에 평행 및 수직인 벡터이다.

[증명]
벡터의 회전은 회전축이 아닌 성분에 대해 적용하므로, [그림 3]처럼 회전축에 평행 혹은 수직인 성분으로 $\bar v$를 분해해서 표현한다.

                  (4)

그러면 세 단위 벡터 $\hat k$, $\hat v_\bot$, $\hat w$ = $\hat k \times \hat v_\bot$는 3차원 공간에 대한 정규 직교 기저(orthonormal basis)가 된다. 그러면 벡터 $\bar v$를 $\theta$만큼 회전하는 연산은 $\hat v_\bot$와 $\hat w$가 만드는 평면에서 $\bar v_\bot$가 $\theta$만큼 돌아감을 의미한다. 따라서 [그림 2]를 참고하면 $\bar v_\bot$를 회전한 벡터 $\bar \rho$는 다음과 같다.

                  (5)

최종 결과에는 회전하지 않는 $\bar v_\parallel$도 포함되어야 하므로, 식 (5)를 이용해 회전 벡터를 쉽게 표현할 수 있다.

                  (6)

따라서 식 (3)이 증명된다.
______________________________

벡터의 외적(outer product)행렬 연산으로 바꾸면, 로드리그의 회전 공식을 회전 행렬로 바꿀 수 있다. 벡터의 내적을 피하기 위해 식 (5)와 (6)을 합쳐서 다음처럼 쓸 수 있다.

                  (7)

벡터의 외적을 외적 행렬(cross-product matrix)로 바꾸어서 식 (7)을 행렬로 표현한다.

                  (8)

여기서 $\bf K$는 $\hat k$에 대한 외적 행렬, $\bf R$은 회전 행렬이다. 외적 행렬 $\bf K$를 직접 제곱하면 다음을 얻는다.

                  (9)

                  (10)

여기서 단위 벡터 $\hat k$에 대응하는 열 벡터는 $\bf k$ = $[x~y~z]^T$, $x^2 + y^2 + z^2$ = $1$, $\bf P$는 대칭 행렬(symmetric matrix) 특성을 가진 사영 행렬(projection matrix)이다. 사영 행렬은 ${\bf P}^2$ = $\bf P$를 만족하기 때문에 정사영에 대한 연산이다. 식 (10)을 식 (8)에 대입해서 더 정리하면 다음과 같다.

                  (11)

식 (11)을 행렬 원소로 풀어서 쓸 수도 있다.

                  (12)

여기서 $c$ = $\cos \theta$, $s$ = $\sin \theta$이다.


   1. 벡터의 회전(rotation of vector)   

[단위 벡터의 회전]

                  (1.1)

여기서 각속도(angular velocity) $\omega$ = $d \theta / dt$, 각속도 벡터(angular velocity vector) $\bar \Omega$ = $\omega \hat k$, $\hat k$는 회전축의 단위 벡터, $\hat v$는 $\hat k$ 주위를 오른손 법칙에 따라 회전하는 $\bar v$의 단위 벡터이다.

[증명]
식 (5)와 정규 직교 기저 $\hat k$ = $\hat v_\bot \times \hat w$를 사용해 증명한다.

                  (1.2)

여기서 $\hat \rho$ = $\bar \rho / |\hat v_\bot|$이다.
______________________________

식 (1.1)은 회전축 $\hat k$의 주위를 회전하는 좌표계를 분석할 때 유용한 공식이다. 예를 들어, $\bar v$ = $f \hat v$의 미분 공식은 성분과 단위 벡터를 각각 시간 미분해서 쉽게 구한다.

                  (1.3)

여기서 첫째 항은 좌표계를 바꾸지 않고[단위 벡터를 그대로 두고] $f$의 변화만 추적한다. 식 (1.3)은 운송 정리(transport theorem) 혹은 기본 운동학 방정식(basic kinematic equation)으로 부른다. 좌표계의 회전으로 보면, 식 (1.3)의 좌변은 관찰자 관점의 운동계[회전 운동 밖에 관찰자가 있어서 회전이 감지됨]이며, 우변의 첫째 항은 관찰자 관점의 정지계[관찰자가 회전 운동에 속해 있어서 회전을 느낄 수 없음]이다. 이 관점을 더 강조해서 관찰자 상태를 나타내는 아래첨자를 추가해서 식 (1.3)을 더 읽기 좋게 만들기도 한다.

                  (1.4)

여기서 $[\cdot]_f$는 관찰자가 고정되어(fixed) 회전 운동을 관찰한다는 의미이고, $[\cdot]_r$은 관찰자가 회전(rotated) 운동을 해서 회전을 느끼지 못한다는 표현이다. 식 (1.4)가 제시하는 개념을 회전 역학(rotational mechanics)에 넣으면, 강체 위에서 움직이는 운동체의 속도와 가속도를 즉각적으로 도출할 수 있다.

                  (1.5a)

                  (1.5b)

여기서 $\bar r$ = $r \hat r$, $\bar v$는 속도, $\bar a$는 가속도, 회전축은 고정되므로 $d \bar \Omega / dt$ = $0$이다. 식 (1.5b)에 출현한 $2 \bar \Omega \times \bar v_r$은 코리올리 힘(Coriolis force)에 쓰여서 코리올리 가속도(Coriolis acceleration)라 부른다.


   2. 회전 행렬(rotation matrix)   

[회전 행렬과 직교 행렬]
회전 행렬은 직교 행렬(orthogonal matrix)이다.

[증명]
각도 $\theta$에 $-\theta$를 넣으면, 회전 행렬의 역행렬을 구할 수 있다. 이 행렬은 회전 행렬의 전치 행렬과 같다.

                  (2.1)
______________________________

[정상 회전 행렬의 고유치]
정상 회전 행렬의 고유치는 $1, e^{i \theta}, e^{-i \theta}$이다.

[증명]
정상 회전 행렬(proper rotation matrix)정상 직교 행렬(proper orthogonal matrix)인 회전 행렬이다. 즉, 행렬식 $|{\bf R}|$ = $1$이면 정상 회전 행렬이 된다. 정상 회전 행렬 $\bf R$에 대한 고유치와 고유 벡터는 다음처럼 정의한다.

                  (2.2)

여기서 $(\cdot)^H$는 켤레 전치 행렬(conjugate transpose), 고유치와 고유 벡터는 복소수(complex number)일 수 있다. 식 (2.2)의 두 식을 서로 곱하면 고유 벡터 $\bf x$에 대한 벡터 노름(vector norm) $\|{\bf x}\|$를 정의할 수 있다.

                  (2.3)

식 (2.3)에 의해 고유치의 크기 $|\lambda|$는 항상 $1$이다. 따라서 고유치는 $\lambda$ = $e^{i \alpha}$ 형태를 가진다. 고유치를 위한 행렬식 $\left|{\bf R} - \lambda{\bf I} \right|$와 비슷하게 다음 관계식을 고려하자.

                  (2.4)

그러면 하나의 고유치는 $\lambda$ = $1$이다. 나머지 두 고유치를 $e^{i \alpha}$, $e^{i \beta}$로 두자. 모든 고유치의 곱은 행렬식이므로, $\alpha$와 $\beta$의 관계는 다음과 같다.

                  (2.5)

또한 모든 고유치의 합은 행렬의 대각합(trace)이므로, $\alpha$를 결정할 수 있다.

                  (2.6)
______________________________

행렬식이 $-1$인 이상 회전 행렬(improper rotation matrix)의 고유치는 $-1, e^{i \theta}, e^{-i \theta}$이다. 왜냐하면 식 (2.4)와 비슷한 행렬식이 다음 특성을 가지기 때문이다.

                  (2.7)

[그림 2.1] 일정 반지름 $\rho$를 가진 원상의 회전

[원상의 회전]
회전축 $\hat k$를 법선 벡터(normal vector)로 하는 원상의 회전을 위한 시작 벡터는 $xy$평면에 있는 $\bar u_0$이다. 그 다음에 시작 벡터 $\bar u_0$를 기준으로 회전 공식을 적용한다.

                  (2.8)

여기서 $\hat k$ = $(x, y, z)$, $\rho$는 원의 반지름, $\psi$는 $\hat k$의 정사영(projection) $\bar k_p$가 $x$축과 이루는 각도이다.

[증명]
벡터 $\bar u_0$는 $xy$평면에 있고 $\bar k_p$에 수직이므로, $u_{x0}x + u_{y0}y$ = $0$이 성립한다. 그러면 [그림 2.1]에 있는 초록색 직선의 방정식은 $u_{y0}$ = $- (x/y) u_{x0}$가 된다. 이 직선과 [그림 2.1]의 원과의 교점 중의 하나가 우리가 구하는 $\bar u_0$이다.

                  (2.9)

식 (2.9)의 마지막 결과에서 $u_{x0}$의 부호를 양으로 택하면 식 (2.8)이 쉽게 증명된다.
______________________________

식 (2.8)은 로드리그의 회전 공식을 적용하기 위한 벡터 $\bar v$ = $\bar u_0$임을 뜻한다. 즉, $\bar v$ = $\bar u_0$라 놓고 식 (3)에 따라 $\bar v$를 $\theta$만큼 회전하면, [그림 2.1]에 있는 초록색 벡터를 구할 수 있다. 이 과정을 계속 반복하면서 원상에 있는 회전 벡터를 원하는 대로 얻는다. 여기서 회전된 벡터의 크기는 항상 $\rho$가 된다.[$|\bar v|$ = $\rho$]


[참고문헌]
[1] L. Euler, "Nova methodus motum corporum rigidorum degerminandi (A new method for generating the motion of a rigid body)," Novi Commentarii academiae scientiarum Petropolitanae (New Commentary of the St. Petersburg Scientist Academy), vol. 20, pp. 208–238, 1776.
[3] H. Cheng, K. C. Gupta, "An historical note on finite rotations," J. Appl. Mech., vol. 56, no. 1, pp. 139–145, 1989.

[다음 읽을거리]

2020년 8월 3일 월요일

에르미트 행렬과 유니터리 행렬(Hermitian Matrix and Unitary Matrix)

[경고] 아래 글을 읽지 않고 "에르미트 행렬과 유니터리 행렬"을 보면 바보로 느껴질 수 있습니다.


[그림 1] 켤레 전치 행렬의 정의(출처: wikipedia.org)

행렬 $\bf A$에 대한 에르미트 행렬(Hermitian matrix)은 다음처럼 정의한다.

                       (1)

여기서 행렬의 원소는 일반적으로 복소수(complex number)이다. 식 (1)에 등장하는 ${\bf A}^H$는 $\bf A$의 켤레 전치 행렬(conjugate transpose)이다.

                       (2)

여기서 $(\cdot)^*$는 켤레 복소수(complex conjugate), $(\cdot)^T$는 전치 행렬(transpose)이다. 식 (1)의 정의에 의해, 에르미트 행렬의 대각선 원소는 항상 실수이다. 켤레 전치 행렬은 ${\bf A}^\dagger$처럼 표기할 수도 있다. 또한 켤레 전치 행렬 ${\bf A}^H$는 복소 행렬(complex matrix)을 위해 사용하는 개념이다. 복소 행렬이 아닌 실수 행렬을 고려한다면, 켤레 전치 행렬은 단순한 전치 행렬이 된다. 따라서 복소 영역의 에르미트 행렬은 실수 영역에서 대칭 행렬(symmetric matrix)이 된다. 식 (1)과 비슷하지만 다음과 같은 반대칭(反對稱, skew-symmetry) 특성을 가진 행렬은 반에르미트 행렬(skew-Hermitian matrix)이라 한다.

                       (3)

식 (3)에 의해 반에르미트 행렬의 대각선 원소는 $0$ 혹은 순허수가 된다. 에르미트 행렬과 반에르미트 행렬을 합치면 어떤 복소 행렬이든지 표현할 수 있다. 다른 말로 하면, 임의의 복소 행렬 $\bf A$를 다음처럼 에르미트 행렬과 반에르미트 행렬의 합으로 항상 분해할 수 있다.

                       (4)

식 (4)와 같은 복소 행렬의 관계는 실수 행렬에서 성립하는 대칭(symmetric)과 반대칭(skew-symmetric) 행렬의 합 특성과도 동일하다. 예를 들어 식 (4)에 있는 $\bf A$가 실수 행렬이 되면, 에르미트와 반에르미트 행렬은 대칭과 반대칭 행렬이 된다. 그러면 대칭 행렬의 특성처럼 이 두 행렬의 합은 원래 행렬 $\bf A$가 된다.
여러 행렬 중에서 제일 유명한 행렬이 에르미트 행렬이지만, 식 (1)의 정의는 다소 밋밋하다. 소문난 잔치에 먹을 것이 없는 상황일까? 아니다. 에르미트 행렬은 고유치(eigenvalue)고유 벡터(eigenvector)를 만날 때 빛이 난다.

[에르미트 행렬과 고유치의 관계]
에르미트 행렬의 고유치는 실수이다.

[증명]
행렬 $\bf A$의 고유치 $\lambda$와 고유 벡터 $\bf x$는 다음처럼 표현한다.

                       (5)

식 (5)의 양변에 ${\bf x}^H$를 곱해서 정리하면 다음을 얻는다.

                       (6)

여기서 ${\bf x}^H {\bf x}$는 복소 영역의 내적(inner product)이다. 식 (6)에 의해 $\lambda$ = $\lambda^*$이므로, $\lambda$는 실수가 되어야 한다.
______________________________

식 (6)의 결과를 2차 형식(quadratic form) 관점으로 보면, ${\bf x}^H {\bf Ax}$는 항상 실수이다.

[에르미트 행렬과 고유 벡터의 관계]
서로 다른 고유치를 가진 에르미트 행렬의 고유 벡터는 서로 직교한다.

[증명]
고유치 $\lambda_1, \lambda_2$에 해당하는 고유 벡터를 ${\bf x}_1, {\bf x}_2$라 하면, 식 (6)과 비슷하게 다음 관계식을 만들 수 있다.

                       (7)

식 (7)에서 두 고유치는 다르기 때문에, ${\bf x}_1, {\bf x}_2$는 직교한다.
______________________________

이상의 결과를 종합하면, 에르미트 행렬은 복소 영역으로 일반화한 대칭 행렬(symmetric matrix)이다. 그래서 실수가 원소인 대칭 행렬로 만든 여러 결과에서 대칭 행렬을 에르미트 행렬로 바꾸면, 복소 영역에서 그 결과가 그대로 성립한다. 직교 행렬(orthogonal matrix)에도 동일한 개념을 적용할 수 있다. 실수에서 정의한 벡터의 내적 ${\bf x}^T {\bf y}$를 복소수로 확장하면 ${\bf x}^H {\bf y}$가 된다. 복소 영역의 직교 개념 ${\bf x}^H {\bf y}$ = $0$을 활용하여 행렬을 구성하는 열 벡터를 복소 영역에서 직교시키면, 직교 행렬은 다음과 같은 유니터리 행렬(unitary matrix)이 된다.

                       (8)

여기서 열 벡터는 다음에 표시한 정규 직교 관계가 성립한다.

                       (9)

유니터리 행렬은 단일 행렬로 번역할 수도 있다.[단일 행렬은 잘 쓰지 않는 표현이다. 이해를 위해 강제로 번역했을 뿐이다.] 유니터리 행렬을 구성하는 열 벡터는 복소 영역에서 정규 직교 기저를 이루어서 $n$차원 공간을 계량하는 하나의 단위계로 사용할 수 있다. 그래서 단일화된 혹은 일관된 단위(unit)를 뜻하는 유니터리(unitary)를 도입해서 식 (8)과 같은 행렬의 명칭을 정한다.
에르미트 행렬의 고유치와 고유 벡터가 가진 특성은 기시감이 든다. 이는 정확한 느낌이다. 행렬의 고유치와 고유 벡터는 스튀름–리우빌 이론(Sturm–Liouville theory)에서 봤던 미분 방정식의 고유치와 고유 함수(eigenfunction)와 무척 닮아있다. 수학 분야에서 행렬과 미분 방정식은 굉장히 다른 이론처럼 보이지만, 고유 벡터라는 색안경으로 보면 두 이론은 매우 밀접하게 연결되어 있다. 행렬과 미분 방정식의 연계성은 선형 최소 제곱법(linear least squares)에서도 볼 수 있다.

에르미트 행렬의 성질은 행렬의 고유치 및 고유 벡터와 밀접한 관계를 가지고 있다. 에르미트 행렬의 증명에 자주 등장하는 레일리 몫(Rayleigh quotient) $R_{\bf A}({\bf x})$는 에르미트 행렬 $\bf A$와 고유치 $\lambda$를 연결하는 소중한 개념이다.

                       (10)

여기서 ${\bf x}$는 임의의 열 벡터이며 ${\bf x} \ne {\bf 0}$이어야 한다. 레일리 몫은 미분 방정식을 다루는 스튀름–리우빌 이론(Sturm–Liouville Theory)에서도 중요하게 사용된다.


   1. 다양한 응용(various applications)   

고유치가 실수라는 조건을 이용해서 선형 대수학의 응용에 매우 중요한 에르미트 행렬의 특성을 증명한다.

[레일리–리츠 정리(Rayleigh–Ritz theorem)] [1], [2]
에르미트 행렬 $\bf A$가 가진 순서 있는 고유치 $\lambda_1 < \lambda_2 < \cdots < \lambda_n$에 대해, $k$번째 고유치 $\lambda_k$는 레일리 몫의 최소값과 같다.

                       (1.1)

여기서 $k$ = $1, 2, \cdots, n$, ${\bf U}_k^\perp$는 ${\bf U}_k$에 직교하는 부분 공간, ${\bf U}_k$는 집합 $\{{\bf u}_1, {\bf u}_2, \cdots, {\bf u}_k \}$로 생성(span)한 부분 공간(subspace), ${\bf u}_k$는 식 (9)를 만족하는 $\lambda_k$에 대한 고유 벡터이다.

[증명]
열 벡터 $\bf x$를 ${\bf u}_i$의 선형 결합으로 바꾸어서 레일리 몫을 계산한다.

                       (1.2)

여기서 $\bf x$는 ${\bf U}_{k-1}$는 항상 수직, ${\bf Au}_i$ = $\lambda_i {\bf u}_i$이다. 열 벡터 $\bf x$는 임의로 변할 수 있지만, 식 (1.2)에 의해 레일리 몫은 항상 $\lambda_k$보다 크거나 같다. 결국 레일리 몫의 최소값을 추적한 결과는 고유치 $\lambda_k$에 근접하므로 식 (1.1)이 증명된다.
______________________________

레일리–리츠 정리에 의해 임의의 열 벡터 $\bf x$에 대한 레일리 몫은 다음과 같은 범위에 있다.

                       (1.3)

식 (1.1)과 (1.3)에서 등호가 성립하는 경우는 $\bf x$ = $\alpha_k {\bf u}_k$이다. 레일리–리츠 정리에 사용한 직교 부분 공간 ${\bf U}_k^\perp$의 조건을 완화해서 임의의 부분 공간 ${\bf V}_k$에 대한 레일리 몫과 고유치의 관계를 구하면, 레일리–리츠 정리는 쿠란트-피셔 정리로 진화한다.

[쿠란트–피셔 정리(Courant–Fischer theorem)] [3]
에르미트 행렬 $\bf A$에 대한 레일리 몫의 최소-최대는 $k$번째 고유치 $\lambda_k$와 같다.

                       (1.4)

여기서 $k$ = $1, 2, \cdots, n$, $\lambda_1 < \lambda_2 < \cdots < \lambda_n$, 고유치 $\lambda_k$에 대한 고유 벡터는 ${\bf u}_k$이다.

[증명]
정규 직교 기저(orthonormal basis)인 고유 벡터 ${\bf u}_i$가 만드는 벡터 공간(vector space)을 $V$ = ${\rm span}(\{{\bf u}_1, {\bf u}_2, \cdots, {\bf u}_n \})$이라 한다. 여기서 ${\rm span}({\bf S})$는 집합 $\bf S$의 원소를 선형 결합하여 벡터 공간을 생성하는 연산자, $\bf V$의 차원은 ${\rm dim}({\bf V})$ = $n$이다. 벡터 공간 $\bf V$의 원소를 뽑아서 만든 차원 $k$를 가진 부분 공간은 ${\bf V}_k$ = ${\rm span}(\{{\bf v}_1, {\bf v}_2, \cdots, {\bf v}_k \})$라 한다. 여기서 ${\rm dim}({\bf V}_k)$ = $k$, 기저 ${\bf v}_i$는 고유 벡터 중의 하나이다. 또한 ${\bf V}_k$와는 약간 다르게 차원을 $n-k+1$로 가진 고유 벡터의 부분 공간을 ${\bf W}_k$ = ${\rm span}(\{{\bf u}_k, {\bf u}_{k+1}, \cdots, {\bf u}_n \})$으로 정의한다. 여기서 ${\rm dim}({\bf W}_k)$ = $n-k+1$, ${\bf u}_i$는 고유 벡터이다. 그러면 ${\bf V}_k$와 ${\bf W}_k$는 서로 교차되는 기저가 최소한 하나는 있다.

                       (1.5)

따라서 ${\bf V}_k$에서 뽑아서 만든 열 벡터 $\bf x$에는 ${\bf W}_k$의 기저가 섞이게 되므로 식 (1.2)와 비슷하게 다음 부등식이 성립한다.

                       (1.6)

여기서 $\alpha_i$와 $\mu_i$는 각각 기저 ${\bf v}_i$의 계수 및 고유치, $\lambda_{\max}$는 ${\bf V}_k \cap {\bf W}_k$의 원소가 가진 가장 큰 고유치이다. 최종적으로 식 (1.6)처럼 레일리 몫을 최대로 만드는 조건 하에서 레일리 몫의 최소값을 찾은 최소-최대 연산의 결과는 $\lambda_k$가 된다. 즉, ${\bf V}_k$ = ${\rm span}(\{{\bf u}_1, {\bf u}_2, \cdots, {\bf u}_k \})$로 선택해서 $\max[R_{\bf A}({\bf x})]$가 되는 조건은 ${\bf x}$ = ${\bf u}_k$이다. 고유 벡터 ${\bf u}_k$의 고유치는 차원 $k$를 가진 ${\bf V}_k$가 가질 수 있는 가장 작은 레일리 몫이므로 식 (1.4)의 첫째 줄이 유도된다.
식 (1.6)과 유사한 방법을 따라가면서 식 (1.4)의 둘째 줄도 증명한다. 먼저 부분 공간을 ${\bf W}_k$ = ${\rm span}(\{{\bf w}_k, {\bf w}_{k+1}, \cdots, {\bf w}_n \})$와 ${\bf V}_k$ = ${\rm span}(\{{\bf u}_1, {\bf u}_2, \cdots, {\bf u}_k \})$로 설정한다. 여기서 ${\bf w}_i$는 고유 벡터 중에서 선택한 기저 벡터이며 ${\bf V}_k \cap {\bf W}_k \ge 1$이 성립한다. 이번에는 $\bf x$를 ${\bf W}_k$에서 뽑아서 식 (1.6)과 같은 과정을 거친다.

                       (1.7)

여기서 $\beta_i$와 $\nu_i$는 각각 기저 ${\bf w}_i$의 계수 및 고유치, ${\bf W}_k$의 기저는 ${\bf V}_k$의 원소와 최소한 하나는 겹치며, $\lambda_{\min}$은 ${\bf V}_k \cap {\bf W}_k$의 기저가 만드는 최소 고유치이다. 그래서 $R_{\bf A}({\bf x})$의 최소값을 추적하면 $\lambda_{\min}$을 얻고, 이 $\lambda_{\min}$을 최대로 만들면 $\lambda_k$가 된다. 이 조건은 ${\bf W}_k$ = ${\rm span}(\{{\bf u}_k, {\bf u}_{k+1}, \cdots, {\bf u}_n \})$과 같으므로, $\min[R_{\bf A}({\bf x})]$을 형성하는 $\bf x$는 ${\bf u}_k$가 된다. 결국 ${\bf u}_k$의 고유치인 $\lambda_k$가 ${\bf W}_k$의 최대 레일리 몫이라서 식 (1.4)의 둘째줄도 깔끔하게 증명된다.
______________________________

쿠란트–피셔 정리는 레일리 몫의 최소와 최대를 다루고 있어서 최소-최대 정리(min-max theorem)라고도 불린다.


[참고문헌]
[1] gufotta, "Rayleigh-Ritz theorem," PlanetMath, Mar. 2013. (방문일 2021-11-06)
[2] J. H. Gallier, Appendix A. Rayleigh Ratios and the Courant-Fischer Theorem, Fundamentals of Linear Algebra and Optimization, 2020. (방문일 2021-11-06)
[3] B. G. Bodmann, 4. Variational Characterization of Eigenvalues, Matrix Theory, 2012. (방문일 2021-11-13)

[다음 읽을거리]

특이값 분해(Singular Value Decomposition)

[경고] 아래 글을 읽지 않고 "특이값 분해"를 보면 바보로 느껴질 수 있습니다.


[스트랭Gilbert Strang 교수의 SVD 강의]

행렬의 대각화(diagonalization)에 쓰이는 식 (1)에 제시한 고유 분해(eigendecomposition)는 유용하지만 제한이 많다.

                  (1)

여기서 $\bf S$는 고유 벡터 행렬(eigenvector matrix), $\bf \Lambda$는 고유치 행렬(eigenvalue matrix)이다. 식 (1)이 성립하려면, 행렬 $\bf A$는 정방 행렬이어야 한다. 만약 $\bf A$가 정방 행렬이며 대칭 행렬이라면, 식 (1)을 더 간단히 공식화할 수 있다.

                  (2)

여기서 $\bf Q$는 고유 벡터로 구성한 직교 행렬(orthogonal matrix)이다. 식 (2)처럼 아름다운 고유 분해를 모든 행렬로 확장할 수 있는 방법이 존재한다. 그 비법은 바로 임의의 행렬을 대각화할 수 있는 특이값 분해(singular value decomposition)이다. 특이값 분해는 간단히 SVD라고도 한다. SVD를 쓰면, 정방 행렬 혹은 대칭 행렬 조건에 관계없이 임의의 행렬을 대각화할 수 있다.

[그림 1] 2차원에 적용한 특이값 분해(출처: wikipedia.org)

[특이값 분해]
임의의 $m \times n$ 행렬 $\bf A$를 다음과 같은 행렬의 곱으로 대각화할 수 있다. 

                  (3)

여기서 $\bf \Sigma$는 대각선 원소가 음수가 아닌 특이값(singular value) $\sigma_i$인 대각 행렬, $\bf U$와 $\bf V$는 각각 좌특이 벡터(left-singular vector) ${\bf u}_i$와 우특이 벡터(right-singular vector) ${\bf v}_i$가 열 벡터로 들어가는 직교 행렬(orthogonal matrix), $(\cdot)^T$는 전치 행렬(transpose)이다. 행렬 $\bf \Sigma$, $\bf U$, $\bf V$의 차원은 각각 $m \times n$, $m \times m$, $n \times n$이다.

[증명]
행렬 $\bf A$에 대해 특이값이 $0$이 아닌 좌특이 벡터와 우특이 벡터는 다음과 같다.

                  (4)

여기서 $\sigma_i$ = $\sqrt{\lambda_i}$, $\lambda_i$는 고유치(eigenvalue)이다. 식 (4)를 고유치와 고유 벡터의 관점으로 다시 쓰면 다음과 같다.

                  (5)

여기서 ${\bf u}_i$와 ${\bf v}_i$는 특이 벡터이면서 동시에 고유 벡터이다. 최소 제곱 행렬 ${\bf A}^T {\bf A}$와 ${\bf A} {\bf A}^T$는 $\bf A$에 관계없이 항상 대칭 행렬이다. 또한 두 최소 제곱 행렬의 고유치 $\lambda_i$는 음수가 아니고 서로 같다. 최소 제곱 행렬의 고유 벡터는 서로 직교하는 성질이 있다. 이러한 성질과 식 (5)를 바탕으로 최소 제곱 행렬을 고유 분해한다.

                  (6)

식 (6)에 있는 직교 행렬 $\bf U$, $\bf V$와 대각 행렬 ${\bf \Lambda}_u$, ${\bf \Lambda}_v$는 다음처럼 구성한다.

                  (7)

여기서 $r$ = $\operatorname{rank}({\bf A}) \le \min(m, n)$, 대각 행렬의 고유치는 내림차순으로 $\lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_r \ge 0$처럼 배치한다. 고유치가 서로 다르지 않고 같은 경우가 생기면, 고유 벡터를 선택할 때 자유도가 생긴다. 이때는 그람–슈미트 과정(Gram–Schmidt process)을 이용해서 고유 벡터가 서로 직교하도록 선택한다. 식 (7)에 있는 대각 행렬 ${\bf \Lambda}_u$, ${\bf \Lambda}_v$를 다음처럼 다시 분해할 수 있다.

                  (8)

여기서 특이값도 고유치[$\lambda_i$ = $\sigma_i^2$]처럼 내림차순으로 $\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r \ge 0$을 만족하게 배열한다. 식 (8)을 식 (6)에 대입하고 직교 행렬의 성질인 ${\bf Q} {\bf Q}^T$ = ${\bf Q}^T {\bf Q}$ = $\bf I$를 적용하면, 식 (6)을 더 세부적인 행렬로 분해할 수 있다.

                  (9)

따라서 행렬 $\bf A$는 식 (3)처럼 분해될 가능성이 있다. 마지막으로 식 (3)의 우변이 좌변과 같은지 확인하자[3]. 먼저 임의의 열 벡터 $\bf x$와 ${\bf \Sigma}{\bf V}^T$를 곱해보자.

                  (10)

식 (3)의 우변과 같은 모양을 만들기 위해 식 (10)의 결과에 $\bf U$를 곱한다.

                  (11)

식 (11)에 식 (4)의 첫째식을 대입해서 정리한다.

                  (12)

여기서 ${\bf v}_i$는 정규 직교 기저(orthonormal basis), $i > r$이면 ${\bf A} {\bf v}_i$ = $0$, ${\bf V}{\bf V}^T$ = $\bf I$이다. 따라서 식 (12)는 임의의 $\bf x$에 대한 항등식이어서 식 (3)이 성립한다.
______________________________

특이값의 영어 알파벳이 s로 시작하므로, 특이값을 가진 대각 행렬의 알파벳은 $\Sigma$가 된다. 또한 행렬 $\bf U$는 일반적으로 유니터리 행렬(unitary matrix)이어서 알파벳 U로 표현한다.
명확히 증명한 특이값 분해는 다양한 방식으로 응용할 수 있다.


   1. 기본(basics)   

[유사 역행렬(pseudoinverse)]

                  (1.1)

여기서 ${\bf \Sigma}^+$의 차원은 $n \times m$이며 대각선 원소는 $1/\sigma_1, 1/\sigma_2, \cdots, 1/\sigma_r, 0, \cdots, 0$이다.

[증명]
유사 역행렬의 특성을 확인하기 위해 다음 행렬 곱을 고려한다.

                  (1.2)

                  (1.3)

여기서 $i > r$이면 ${\bf u}_i^T {\bf A}$ = ${\bf v}_i^T {\bf A}^+$ = $0$이다. 행렬 곱 ${\bf  A} {\bf  A}^+$와 ${\bf  A}^+ {\bf  A}$는 완전한 항등 행렬이 아닐 수 있지만,  ${\bf  A}$ 혹은  ${\bf  A}^+$가 곱해진 조건에서는 항등 행렬이 된다. 따라서 식 (1.1)은 유사 역행렬의 표현식이 된다.
______________________________

행렬 ${\bf  A}$의 행 벡터가 모두 선형 독립이면, 식 (1.2)에 의해 ${\bf  A} {\bf  A}^+$ = $\bf I$가 된다. 이 경우 ${\bf  A}^+$는 우역행렬(right inverse)이다. 비슷하게 ${\bf  A}$의 열 벡터가 선형 독립이면, ${\bf  A}^+ {\bf  A}$ = $\bf I$가 되어서 ${\bf  A}^+$는 좌역행렬(left inverse)이 된다. 유사 역행렬은 일반화 역행렬(generalized inverse) 혹은 무어–펜로즈 역행렬(Moore–Penrose inverse)이라고도 한다.

[복소 영역으로 일반화]
에르미트 행렬(Hermitian matrix)과 유니터리 행렬(unitary matrix)을 도입하면 복소 영역에서 특이값 분해를 할 수 있다.

                  (1.4)

여기서 $\bf \Sigma$는 대각선 원소가 음수가 아닌 실수 특이값(singular value) $\sigma_i$인 대각 행렬, $\bf U$와 $\bf V$는 특이 행렬로 구성한 유니터리 행렬, $(\cdot)^H$는 켤레 전치 행렬(conjugate transpose)이다.

[증명]
에르미트 행렬의 고유치는 실수이며, 고유 벡터는 서로 직교한다. 유니터리 행렬은 열 벡터가 서로 정규 직교(orthonormal: 크기는 $1$이면서 서로 직교)한다. 이런 특성을 식 (3)의 증명에 교체해서 적용하면, 식 (1.4)를 증명할 수 있다.
______________________________


[참고문헌]
[1] G. Strang, Linear Algebra and its Applications, 4th ed., Brooks/Cole, 2006.
[2] G. Gundersen, "Proof of the singular value decomposition," Blog, 2018. (방문일 2020-08-03)
[3] M. Hutchings, "Notes on singular value decomposition for Math 54," Linear Algebra and Differential Equations, UC Berkeley, 2017. (방문일 2020-08-04)
[4] P. L. Gilabert, R. N. Braithwaite and G. Montoro, "Beyond the Moore-Penrose inverse: strategies for the estimation of digital predistortion linearization parameters," IEEE Microw. Mag., vol. 21, no. 12, pp. 34–46, Dec. 2020.