Main Content

eig

기호 행렬의 고유값과 고유벡터

설명

예제

lambda = eig(A)는 정사각 기호 행렬 A의 고유값을 기호 벡터로 반환합니다.

예제

[V,D] = eig(A)A의 고유벡터와 고유값을 기호 행렬 VD로 반환합니다. V의 열은 A의 고유벡터를 나타냅니다. D의 주대각선은 A의 고유값을 나타냅니다.

  • V의 크기가 A와 같은 경우 행렬 AA*V = V*D를 충족하는 완전한 1차 독립 고유벡터 집합을 갖습니다.

  • VA보다 적은 개수의 열을 가지고 있는 경우 행렬 A는 부족 행렬입니다. 이 경우 고유값 λ 중 적어도 하나는 대수적 중복도 m이 m > 1이며, λ와 연결된 1차 독립 고유벡터 수가 m보다 작습니다.

예제

[V,D,p] = eig(A)는 인덱스로 구성된 벡터 p도 반환합니다. p의 길이는 1차 독립 고유벡터의 개수와 동일하며, 따라서 A*V = V*D(p,p)를 충족합니다.

예제

모두 축소

5차 마방진의 고유값을 계산합니다.

A = sym(magic(5));
lambda = eig(A)
lambda = 

(656252-531452531452+6252-6252-531452-531452+6252)

가변 정밀도 연산방식을 사용하여 5차 마방진의 수치적 고유값을 계산합니다.

A = magic(5);
lambda = eig(vpa(A))
lambda = 

(65.021.27676547147379553062642669797413.126280930709218802525643085949-13.126280930709218802525643085949-21.276765471473795530626426697974)

6차 마방진에서 5×5 기호 행렬을 만듭니다. eig를 사용하여 행렬의 고유값을 계산합니다.

M = magic(6);
A = sym(M(1:5,1:5));
lambda = eig(A)
lambda = 

(root(σ1,z,1)root(σ1,z,2)root(σ1,z,3)root(σ1,z,4)root(σ1,z,5))where  σ1=z5-100z4+134z3+66537z2-450198z-1294704

eig 함수는 기호 숫자에 대해서는 정확한 고유값을 구할 수 없습니다. 대신 root 함수로 반환합니다.

고유값에 대한 수치적 근삿값을 구하려면 vpa를 사용합니다.

lambdaVpa = vpa(lambda)
lambdaVpa = 

(-2.1810323649846951083546927010659.8395828502812312578803604206392-25.13164166979989160726758463919226.34161761027586903546571650580691.131473574227486422276200413812)

MATLAB® 테스트 행렬 중에서 부족 행렬 하나에 대한 정확한 고유값과 고유벡터를 계산합니다.

A = sym(gallery(5))
A = 

(-911-2163-25270-69141-4211684-575575-11493451-138013891-38917782-23345933651024-10242048-614424572)

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

(021256-711289732561)

D = 

(0000000000000000000000000)

출력값 V는 0으로 구성된 5겹 고유값을 갖는 5×1 열 벡터입니다. 이 결과는 행렬 A가 대수적 중복도 5와 기하적 중복도 1의 고유값 0을 가짐을 나타냅니다.

4×4 기호 행렬의 정확한 고유값과 고유벡터를 계산합니다. 고유값을 해당 1차 독립 고유벡터에 연결하는 인덱스로 구성된 벡터를 반환합니다.

syms c
A = [c 1 0 0; 0 c 0 0; 0 0 3*c 0; 0 0 0 3*c];
[V,D,p] = eig(A)
V = 

(100000010001)

D = 

(c0000c00003c00003c)

p = 1×3

     1     3     4

행렬 A는 두 개의 고유값 c3 c를 가지며, 각 고유값은 두 번 나타납니다. 한편, 1차 독립 고유벡터는 3개입니다. 인덱스로 구성된 벡터 p는 다음을 나타냅니다.

  • p(1) = 1, 즉 첫 번째 고유벡터(V의 첫 번째 열)는 고유값 c가 있는 D의 첫 번째 대각선 요소에 대응됩니다.

  • p(2) = 3, 즉 두 번째 고유벡터(V의 두 번째 열)는 고유값 3 c가 있는 D의 세 번째 대각선 요소에 대응됩니다.

  • p(3) = 4, 즉 세 번째 고유벡터(V의 세 번째 열)는 고유값 3 c가 있는 D의 네 번째 대각선 요소에 대응됩니다.

이 결과는 두 번 나타나는 고유값 c가 단 하나의 1차 독립 고유벡터를 가짐을 나타냅니다(고유값 c는 대수적 중복도 2와 기하적 중복도 1을 가짐). 두 번 나타나는 고유값 3 c는 두 개의 1차 독립 고유벡터를 갖습니다(고유값 3 c는 대수적 중복도 2와 기하적 중복도 2를 가짐).

행렬 A*VV*D(p,p)와 동일함을 확인합니다.

A*V
ans = 

(c0000003c0003c)

V*D(p,p)
ans = 

(c0000003c0003c)

tf = isequal(A*V,V*D(p,p))
tf = logical
   1

입력 인수

모두 축소

정사각 행렬로, 기호 행렬로 지정됩니다.

출력 인수

모두 축소

고유값으로, 기호 열 벡터 또는 기호 숫자로 구성된 열 벡터로 반환됩니다.

우고유벡터(right eigenvector)로, 정사각 기호 행렬로 반환됩니다. V의 열이 A의 우고유벡터입니다.

고유값으로, 기호 대각 행렬로 반환됩니다. A의 고유값이 D의 주대각선에 있습니다.

인덱스로 구성된 벡터로, 기호 행 벡터로 반환됩니다. p의 길이는 A의 1차 독립 고유벡터의 총 개수입니다.

  • 기호 변수를 많이 사용한 행렬 계산은 속도가 느릴 수 있습니다. 계산 속도를 높이려면 일부 변수에 지정된 값을 대입하여 기호 변수의 개수를 줄이십시오.

  • 기호 객체가 아닌 숫자형 행렬(sym, syms 또는 vpa로 만들지 않은 행렬)에 대해 eig를 호출하면 MATLAB® eig 함수가 호출됩니다.

  • 기호 eig 함수는 일반 고유값 문제(입력 인수가 두 개 있음)를 푸는 것을 지원하지 않습니다. 일반 고유값 문제를 풀려면, 입력 행렬을 MATLAB 숫자형으로 변환하고 MATLAB eig 함수를 대신 사용하십시오.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | |

도움말 항목