Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

고유값

고유값 분해

정사각 행렬 A의 고유값고유벡터는 각각 다음을 충족하는 스칼라 λ와 0이 아닌 벡터 υ입니다.

Aυ = λυ.

대각 행렬 Λ의 대각선이 고유값으로 구성되고, 이에 대응하는 고유벡터가 행렬 V의 열을 구성하면, 다음이 성립됩니다.

AV = VΛ.

V가 정칙 행렬이면 이는 고유값 분해가 됩니다.

A = VΛV–1.

다음 미분 방정식 dx/dt = Ax의 계수 행렬이 좋은 예입니다.

A =
     0    -6    -1
     6     2   -16
    -5    20   -10

이 방정식의 해는 행렬 지수 x(t) = etAx(0)으로 표현할 수 있습니다. 다음 명령문은

lambda = eig(A)

고유값 A가 포함된 열 벡터를 생성합니다. 이 행렬의 경우에는 고유값이 복소수입니다.

lambda =
     -3.0710         
     -2.4645+17.6008i
     -2.4645-17.6008i

각 고유값의 실수부가 음수이므로 t가 증가할수록 eλt가 0에 가까워집니다. 두 고유값의 0이 아닌 허수부(±ω)는 미분 방정식의 해에서 진동 성분 sin(ωt)를 나타냅니다.

eig는 출력 인수 두 개를 사용하여 고유벡터들을 계산하고, 고유값들을 대각 행렬에 저장합니다.

[V,D] = eig(A)
V =
  -0.8326         0.2003 - 0.1394i   0.2003 + 0.1394i
  -0.3553        -0.2110 - 0.6447i  -0.2110 + 0.6447i
  -0.4248        -0.6930            -0.6930          

D =
  -3.0710                 0                 0         
        0           -2.4645+17.6008i        0         
        0                 0           -2.4645-17.6008i

첫 번째 고유벡터는 실수 벡터이며 다른 두 벡터는 서로 켤레 복소수 벡터입니다. 세 벡터는 모두 유클리드 길이(Euclidean Length) norm(v,2)가 1이 되도록 정규화됩니다.

행렬 V*D*inv(V)A의 반올림 오차 범위 내에 있으며, V*D/V로 더욱 간결하게 작성될 수 있습니다. 그리고 inv(V)*A*V, 또는 V\A*V D의 반올림 오차 범위 내에 있습니다.

다중 고유값

일부 행렬에는 고유벡터 분해를 적용할 수 없습니다. 이러한 행렬은 대각화가 불가능합니다. 예를 들면 다음과 같습니다.

A = [ 1    -2    1 
      0     1    4 
      0     0    3 ]

이 행렬의 경우

[V,D] = eig(A)

다음과 같은 결과가 생성됩니다.

V =

    1.0000    1.0000   -0.5571
         0    0.0000    0.7428
         0         0    0.3714


D =

     1     0     0
     0     1     0
     0     0     3

λ = 1이면 중복 고유값이 있고 V의 첫 번째 열과 두 번째 열이 같습니다. 이 행렬의 경우에는 완전한 1차 독립 고유벡터 집합이 존재하지 않습니다.

슈어 분해(Schur Decomposition)

고급 행렬을 계산할 때 고유값 분해를 사용해야 하는 경우는 별로 없습니다. 대신 슈어 분해를 기반으로 고급 행렬 계산을 수행합니다.

A = USU ′ ,

여기서 U는 직교 행렬이고 S는 대각선에 1×1 블록과 2×2 블록이 포함된 블록 상부 삼각 행렬입니다. 고유값은 S의 대각선 요소와 블록으로 나타나며 U의 열은 고유벡터 집합보다 월등한 수치적 속성을 가지는 직교 기저를 제공합니다.

예를 들어, 다음 부족 행렬의 고유값 분해와 슈어 분해를 비교해 보겠습니다.

A = [ 6    12    19 
     -9   -20   -33 
      4     9    15 ];

[V,D] = eig(A)
V =

  -0.4741 + 0.0000i  -0.4082 - 0.0000i  -0.4082 + 0.0000i
   0.8127 + 0.0000i   0.8165 + 0.0000i   0.8165 + 0.0000i
  -0.3386 + 0.0000i  -0.4082 + 0.0000i  -0.4082 - 0.0000i


D =

  -1.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   1.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   1.0000 - 0.0000i
[U,S] = schur(A)
U =

   -0.4741    0.6648    0.5774
    0.8127    0.0782    0.5774
   -0.3386   -0.7430    0.5774


S =

   -1.0000   20.7846  -44.6948
         0    1.0000   -0.6096
         0    0.0000    1.0000

행렬 AV의 두 번째 열과 세 번째 열이 동일하여 완전한 1차 독립 고유벡터 집합을 갖지 않으므로 부족 행렬입니다. V의 모든 열이 1차 독립 열은 아니므로 이 행렬은 약 ~1e8이라는 큰 조건수를 가집니다. 반면, schurU에서 세 개의 다른 기저 벡터를 계산할 수 있습니다. U는 직교 행렬이므로 cond(U) = 1이 됩니다.

행렬 S는 대각선상의 첫 번째 요소에 실수 고유값이 있고, 오른쪽 아래 2×2 블록에는 반복되는 고유값이 있습니다. 2×2 블록의 고유값은 A의 고유값이기도 합니다.

eig(S(2:3,2:3))
ans =

   1.0000 + 0.0000i
   1.0000 - 0.0000i

참고 항목

|

관련 항목