멱 반복법 (Power Iteration Method)

멱 반복법(Power Iteration)은 주어진 행렬의 최대 절대값을 가지는 고유값과 그에 대응하는 고유벡터를 구하는 데 사용되는 간단한 방법이다. 이 방법은 큰 규모의 행렬에 대해 효율적이며, 다음과 같은 절차를 따른다.

먼저, 초기 벡터 \mathbf{v}_0를 임의로 선택한다. \mathbf{v}_0는 초기 고유벡터의 추정치로 사용되며, 이 벡터는 임의로 설정되지만 0 벡터가 아니어야 한다. 그 다음으로, 반복 계산을 통해 다음 벡터를 구한다:

\mathbf{v}_{k+1} = \frac{\mathbf{A} \mathbf{v}_k}{\|\mathbf{A} \mathbf{v}_k\|}

여기서 \mathbf{A}는 주어진 행렬이고, \|\mathbf{A} \mathbf{v}_k\|는 벡터의 노름(norm)으로, 주로 유클리드 노름을 사용한다. 이 과정을 여러 번 반복하면, \mathbf{v}_k\mathbf{A}의 최대 고유값에 대응하는 고유벡터에 수렴하게 된다.

이 방법의 주요 단점은 고유값이 중첩되어 있거나 매우 근접한 경우, 수렴 속도가 느려질 수 있다는 점이다. 이 경우, 다른 고유값 문제 해결 방법을 사용하는 것이 더 효율적일 수 있다.

QR 알고리즘 (QR Algorithm)

QR 알고리즘은 모든 고유값을 계산하는 매우 강력한 방법으로, 실수 행렬의 경우 특히 유용하다. 이 방법은 주어진 행렬 \mathbf{A}를 QR 분해를 통해 직교 행렬 \mathbf{Q}와 상삼각 행렬 \mathbf{R}로 분해하는 과정을 반복하는 알고리즘이다.

초기 행렬 \mathbf{A}에 대해 QR 분해를 수행하여 다음과 같은 형태로 분해한다:

\mathbf{A} = \mathbf{Q}_1 \mathbf{R}_1

그 다음, 새로운 행렬 \mathbf{A}_1을 다음과 같이 정의한다:

\mathbf{A}_1 = \mathbf{R}_1 \mathbf{Q}_1

이 과정을 계속 반복하면, 행렬 \mathbf{A}_k는 대각 행렬에 점점 가까워지며, 이 대각 원소들이 \mathbf{A}의 고유값이 된다.

QR 알고리즘은 매우 안정적이며, 수치적으로 효율적인 방법이다. 특히, 대칭 행렬에 대해선 모든 고유값이 실수이며, 빠르게 수렴한다는 장점이 있다.

역멱 반복법 (Inverse Power Iteration)

역멱 반복법(Inverse Power Iteration)은 가장 작은 절대값의 고유값과 그에 대응하는 고유벡터를 찾는 방법이다. 기본 원리는 멱 반복법과 비슷하지만, 행렬의 역행렬을 사용한다는 점이 다르다.

먼저, 주어진 행렬 \mathbf{A}의 역행렬 \mathbf{A}^{-1}을 사용하여 반복 과정을 수행한다:

\mathbf{v}_{k+1} = \frac{\mathbf{A}^{-1} \mathbf{v}_k}{\|\mathbf{A}^{-1} \mathbf{v}_k\|}

이 과정을 반복하면, \mathbf{v}_k\mathbf{A}의 최소 고유값에 대응하는 고유벡터로 수렴한다.

역행렬을 직접 구하는 대신, 선형 방정식을 푸는 방식으로 역멱 반복을 구현할 수도 있다. 이는 큰 행렬에 대해 계산 효율성을 높이는 데 도움이 된다.

Shifted Inverse Power Method

Shifted Inverse Power Method는 역멱 반복법의 변형으로, 특정한 고유값 근처의 고유값을 찾는 데 사용된다. 이 방법은 행렬 \mathbf{A}에 스칼라 \sigma를 빼는 방식으로 작동한다.

먼저, 새로운 행렬 \mathbf{B}를 정의한다:

\mathbf{B} = \mathbf{A} - \sigma \mathbf{I}

여기서 \mathbf{I}는 단위 행렬이고, \sigma는 선택한 시프트(shift) 값이다. 그 다음, 역멱 반복법을 \mathbf{B}에 대해 적용한다. 이 방법은 \sigma 근처의 고유값을 찾는 데 효과적이며, 특정 고유값을 찾고자 할 때 유용하다.

Jacobi 방법 (Jacobi Method)

Jacobi 방법은 대칭 행렬의 고유값과 고유벡터를 구하는 방법으로, 반복적으로 행렬을 대각선화하는 과정이다. 이 방법은 각 반복 단계에서 행렬의 최대 비대각 성분을 최소화하여 대각 행렬에 점차 가까워지게 한다.

먼저, 행렬 \mathbf{A}의 최대 비대각 성분을 찾고, 이 성분을 줄이기 위해 회전 행렬 \mathbf{P}를 정의한다. 회전 행렬 \mathbf{P}를 사용하여 행렬 \mathbf{A}를 다음과 같이 변환한다:

\mathbf{A}_{k+1} = \mathbf{P}^\top \mathbf{A}_k \mathbf{P}

이 과정을 반복하면, \mathbf{A}는 점차 대각 행렬로 수렴하며, 이 대각 원소들이 \mathbf{A}의 고유값이 된다.

Householder 변환 (Householder Transformation)

Householder 변환은 주어진 행렬을 삼각화하여 고유값을 구하는 데 사용되는 방법이다. 이 변환은 QR 알고리즘의 초기 단계로, 주어진 행렬을 상삼각 행렬로 변환하는 데 활용된다.

먼저, 주어진 행렬 \mathbf{A}에 대해 대칭 행렬 \mathbf{H}를 정의하는데, 이 \mathbf{H}\mathbf{A}를 반사(reflection)하여 상삼각 행렬로 변환할 수 있는 Householder 행렬이다. Householder 행렬 \mathbf{H}는 다음과 같이 정의된다:

\mathbf{H} = \mathbf{I} - 2\mathbf{v}\mathbf{v}^\top

여기서 \mathbf{v}는 단위 벡터이고, \mathbf{I}는 단위 행렬이다. 이 변환을 통해 행렬 \mathbf{A}는 삼각 행렬 \mathbf{R}로 변환되며, 반복적으로 적용하면 \mathbf{A}를 대각 행렬로 수렴시킬 수 있다. 이 대각 원소들이 고유값이 된다.

Householder 변환의 장점은 수치적으로 안정적이고, 대칭 행렬에 대해 효율적으로 적용될 수 있다는 것이다. 이는 QR 알고리즘의 기초로 사용되어 고유값 문제를 해결하는 데 도움을 준다.

다중 그리드 방법 (Multigrid Method)

다중 그리드 방법(Multigrid Method)은 수치 해석에서 사용되는 방법으로, 특히 큰 규모의 행렬에 대한 고유값 문제를 푸는 데 효과적이다. 이 방법은 행렬을 여러 다른 해상도에서 처리하여, 고유값 계산을 빠르게 수행하는 것을 목표로 한다.

다중 그리드 방법의 기본 아이디어는 낮은 해상도에서 문제를 간단히 해결한 후, 그 결과를 더 높은 해상도로 전달하여 전체 문제를 해결하는 것이다. 이 과정은 다음 단계로 구성된다:

  1. 초기 문제를 저해상도에서 해결하여 초기 추정값을 얻는다.
  2. 저해상도에서 얻은 추정값을 이용하여, 높은 해상도에서 세부적인 계산을 수행한다.
  3. 이 과정에서 얻은 결과를 다시 저해상도로 전달하여, 반복적으로 고유값을 정교하게 계산한다.

이 방법은 특히 대규모의 희소 행렬에서 고유값을 찾는 데 유리하며, 계산 속도를 크게 향상시킬 수 있다.

Lanczos 알고리즘 (Lanczos Algorithm)

Lanczos 알고리즘은 희소 대칭 행렬의 극단적인 고유값을 효율적으로 계산하는 데 사용되는 반복 방법이다. 이 알고리즘은 크기가 큰 대칭 행렬에 대해 빠르게 수렴하는 특성을 가지고 있으며, 고유값과 고유벡터의 근사치를 계산할 수 있다.

Lanczos 알고리즘은 다음과 같은 절차로 진행된다:

  1. 초기 벡터 \mathbf{v}_1을 선택한다.
  2. 초기 벡터를 사용하여 삼변수 직교화(tridiagonalization)를 수행한다.
  3. 삼변수 행렬 \mathbf{T}를 생성하여, 그 고유값을 계산한다.

이 과정을 통해, 주어진 행렬의 극단적인 고유값과 대응하는 고유벡터를 반복적으로 근사할 수 있다. Lanczos 알고리즘은 특히 매우 큰 대칭 행렬에 대해 적은 수의 반복만으로도 유효한 결과를 얻을 수 있는 점에서 실용적이다.

이상으로 고유값 문제를 푸는 대표적인 알고리즘들을 살펴보았다. 각 방법은 고유한 장단점을 가지며, 문제의 특성에 따라 적절한 알고리즘을 선택하여 적용할 수 있다.