이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
eig
고유값(Eigenvalue)과 고유벡터(Eigenvector)
구문
설명
[___] = eig(
은 A
,balanceOption
)balanceOption
이 'nobalance'
일 때, 알고리즘에서 예비 밸런싱 단계를 비활성화합니다. balanceOption
의 디폴트 값은 'balance'
이며, 이 경우 밸런싱이 활성화됩니다. eig
함수는 위에 열거된 구문에 포함된 모든 출력 인수를 반환할 수 있습니다.
[___] = eig(___,
은 위에 열거된 구문에 포함된 입력 인수 또는 출력 인수를 사용하여 outputForm
)outputForm
으로 지정된 형태로 고유값을 반환합니다. outputForm
을 'vector'
로 지정하면 고유값을 열 벡터로 반환하고, 'matrix'
로 지정하면 고유값을 대각 행렬로 반환합니다.
예제
행렬의 고유값
gallery
를 사용하여 양의 정부호 대칭 행렬을 만듭니다.
A = gallery('lehmer',4)
A = 4×4
1.0000 0.5000 0.3333 0.2500
0.5000 1.0000 0.6667 0.5000
0.3333 0.6667 1.0000 0.7500
0.2500 0.5000 0.7500 1.0000
A
의 고유값을 계산합니다. 결과는 열 벡터입니다.
e = eig(A)
e = 4×1
0.2078
0.4078
0.8482
2.5362
또는 outputForm
을 사용하여 대각 행렬에 고유값을 반환합니다.
D = eig(A,'matrix')
D = 4×4
0.2078 0 0 0
0 0.4078 0 0
0 0 0.8482 0
0 0 0 2.5362
행렬의 고유값(Eigenvalue)과 고유벡터(Eigenvector)
gallery
를 사용하여 순환 행렬을 만듭니다.
A = gallery('circul',3)
A = 3×3
1 2 3
3 1 2
2 3 1
A
의 고유값과 우고유벡터를 계산합니다.
[V,D] = eig(A)
V = 3×3 complex
-0.5774 + 0.0000i 0.2887 - 0.5000i 0.2887 + 0.5000i
-0.5774 + 0.0000i -0.5774 + 0.0000i -0.5774 + 0.0000i
-0.5774 + 0.0000i 0.2887 + 0.5000i 0.2887 - 0.5000i
D = 3×3 complex
6.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -1.5000 + 0.8660i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i -1.5000 - 0.8660i
결과가 A*V = V*D
를 충족하는지 확인합니다.
A*V - V*D
ans = 3×3 complex
10-14 ×
-0.2665 + 0.0000i -0.0444 + 0.0222i -0.0444 - 0.0222i
0.0888 + 0.0000i 0.0111 + 0.0777i 0.0111 - 0.0777i
-0.0444 + 0.0000i -0.0111 + 0.0833i -0.0111 - 0.0833i
이상적인 경우라면 고유값 분해는 이 관계를 충족시켜야 합니다. eig
에서 부동소수점 계산을 사용하여 분해를 수행하므로 A*V
는 기껏해야 V*D
에 근접할 수만 있습니다. 다시 말해서 A*V - V*D
는 0
에 가깝지만 정확히 0은 아닙니다.
정렬된 고유값과 고유벡터
기본적으로 eig
는 항상 순서대로 정렬된 고유값과 고유벡터를 반환하지 않습니다. sort
함수를 사용하여 고유값을 오름차순으로 만들고 대응하는 고유벡터를 다시 정렬하십시오.
5×5 마방진 행렬의 고유값과 고유벡터를 계산합니다.
A = magic(5)
A = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
[V,D] = eig(A)
V = 5×5
-0.4472 0.0976 -0.6330 0.6780 -0.2619
-0.4472 0.3525 0.5895 0.3223 -0.1732
-0.4472 0.5501 -0.3915 -0.5501 0.3915
-0.4472 -0.3223 0.1732 -0.3525 -0.5895
-0.4472 -0.6780 0.2619 -0.0976 0.6330
D = 5×5
65.0000 0 0 0 0
0 -21.2768 0 0 0
0 0 -13.1263 0 0
0 0 0 21.2768 0
0 0 0 0 13.1263
A
의 고유값은 D
의 대각선입니다. 그러나 고유값이 정렬되지 않았습니다.
diag(D)
를 사용하여 D
의 대각선에서 고유값을 추출한 다음, 결과 벡터를 오름차순으로 정렬합니다. sort
의 두 번째 출력값은 인덱스의 치환 벡터를 반환합니다.
[d,ind] = sort(diag(D))
d = 5×1
-21.2768
-13.1263
13.1263
21.2768
65.0000
ind = 5×1
2
3
5
4
1
ind
를 사용하여 D
의 대각선 요소를 다시 정렬합니다. D
의 고유값이 V
의 열의 고유벡터에 대응하므로, 동일한 인덱스를 사용하여 V
의 열도 다시 정렬해야 합니다.
Ds = D(ind,ind)
Ds = 5×5
-21.2768 0 0 0 0
0 -13.1263 0 0 0
0 0 13.1263 0 0
0 0 0 21.2768 0
0 0 0 0 65.0000
Vs = V(:,ind)
Vs = 5×5
0.0976 -0.6330 -0.2619 0.6780 -0.4472
0.3525 0.5895 -0.1732 0.3223 -0.4472
0.5501 -0.3915 0.3915 -0.5501 -0.4472
-0.3223 0.1732 -0.5895 -0.3525 -0.4472
-0.6780 0.2619 0.6330 -0.0976 -0.4472
(V,D)
와 (Vs,Ds)
는 둘 다 A
의 고유값 분해를 산출합니다. A*V-V*D
와 A*Vs-Vs*Ds
의 결과는 반올림 오차 범위 내에서 일치합니다.
e1 = norm(A*V-V*D); e2 = norm(A*Vs-Vs*Ds); e = abs(e1 - e2)
e = 1.2622e-29
좌고유벡터(Left Eigenvector)
3×3 행렬을 만듭니다.
A = [1 7 3; 2 9 12; 5 22 7];
우고유벡터 V
, 고유값 D
, 좌고유벡터 W
를 계산합니다.
[V,D,W] = eig(A)
V = 3×3
-0.2610 -0.9734 0.1891
-0.5870 0.2281 -0.5816
-0.7663 -0.0198 0.7912
D = 3×3
25.5548 0 0
0 -0.5789 0
0 0 -7.9759
W = 3×3
-0.1791 -0.9587 -0.1881
-0.8127 0.0649 -0.7477
-0.5545 0.2768 0.6368
결과가 W'*A = D*W'
를 충족하는지 확인합니다.
W'*A - D*W'
ans = 3×3
10-13 ×
-0.0266 -0.2132 -0.1243
0.0056 -0.0286 -0.0072
-0.0022 0 -0.0178
이상적인 경우라면 고유값 분해는 이 관계를 충족시켜야 합니다. eig
에서 부동소수점 계산을 사용하여 분해를 수행하므로 W'*A
는 기껏해야 D*W'
에 근접할 수만 있습니다. 다시 말해서 W'*A - D*W'
는 0
에 가깝지만 정확히 0은 아닙니다.
대각화가 가능하지 않은(결함) 행렬의 고유값
3×3 행렬을 만듭니다.
A = [3 1 0; 0 3 1; 0 0 3];
A
의 고유값과 우고유벡터를 계산합니다.
[V,D] = eig(A)
V = 3×3
1.0000 -1.0000 1.0000
0 0.0000 -0.0000
0 0 0.0000
D = 3×3
3 0 0
0 3 0
0 0 3
A
에는 반복되는 고유값이 있지만 고유벡터는 독립적이지 않습니다. 이는 A
를 대각화할 수 없으므로 결함이 있음을 의미합니다.
A
에 결함이 있더라도 V
와 D
가 방정식 A*V = V*D
를 충족하는지 확인합니다.
A*V - V*D
ans = 3×3
10-15 ×
0 0.8882 -0.8882
0 0 0.0000
0 0 0
이상적인 경우라면 고유값 분해는 이 관계를 충족시켜야 합니다. eig
에서 부동소수점 계산을 사용하여 분해를 수행하므로 A*V
는 기껏해야 V*D
에 근접할 수만 있습니다. 다시 말해서 A*V - V*D
는 0
에 가깝지만 정확히 0은 아닙니다.
일반 고유값
A
와 B
, 두 개의 행렬을 만든 다음, 쌍 (A,B)
에 대한 고유값 및 우고유벡터를 구하는 일반 고유값 문제를 풉니다.
A = [1/sqrt(2) 0; 0 1]; B = [0 1; -1/sqrt(2) 0]; [V,D]=eig(A,B)
V = 2×2 complex
1.0000 + 0.0000i 1.0000 + 0.0000i
0.0000 - 0.7071i 0.0000 + 0.7071i
D = 2×2 complex
0.0000 + 1.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 1.0000i
결과가 A*V = B*V*D
를 충족하는지 확인합니다.
A*V - B*V*D
ans = 2×2
0 0
0 0
잔차 오차 A*V - B*V*D
는 정확히 0입니다.
조건이 나쁜(Badly Conditioned) 행렬에 대해 QZ 알고리즘을 사용하여 일반 고유값
기계 정밀도에 가까운 값을 포함하고 조건이 나쁜(Badly Conditioned) 대칭 행렬을 만듭니다.
format long e A = diag([10^-16, 10^-15])
A = 2×2
1.000000000000000e-16 0
0 1.000000000000000e-15
디폴트 알고리즘을 사용하여 일반 고유값과 일련의 우고유벡터(Right Eigenvector)를 계산합니다. 이 경우 디폴트 알고리즘은 'chol'
입니다.
[V1,D1] = eig(A,A)
V1 = 2×2
1.000000000000000e+08 0
0 3.162277660168380e+07
D1 = 2×2
9.999999999999999e-01 0
0 1.000000000000000e+00
이제 'qz'
알고리즘을 사용하여 일반 고유값과 일련의 우고유벡터를 계산합니다.
[V2,D2] = eig(A,A,'qz')
V2 = 2×2
1 0
0 1
D2 = 2×2
1 0
0 1
'chol'
결과가 A*V1 = A*V1*D1
을 얼마나 잘 충족하는지 확인합니다.
format short
A*V1 - A*V1*D1
ans = 2×2
10-23 ×
0.1654 0
0 -0.6617
이제 'qz'
결과가 A*V2 = A*V2*D2
를 얼마나 잘 충족하는지 확인합니다.
A*V2 - A*V2*D2
ans = 2×2
0 0
0 0
두 행렬 모두 대칭 행렬인 경우 eig
는 기본적으로 'chol'
알고리즘을 사용합니다. 이 경우 QZ 알고리즘이 더 정확한 결과를 반환합니다.
한 행렬이 특이 행렬인 경우 일반 고유값
2×2 단위 행렬 A
와 특이 행렬 B
를 만듭니다.
A = eye(2); B = [3 6; 4 8];
명령 [V,D] = eig(B\A)
를 사용하여 행렬 의 일반 고유값을 계산하려고 시도할 경우, B\A
는 Inf
를 생성하므로 MATLAB®이 오류를 반환합니다.
이번에는 두 행렬을 모두 eig
함수로 전달하여 일반 고유값과 우고유벡터를 계산합니다.
[V,D] = eig(A,B)
V = 2×2
-0.7500 -1.0000
-1.0000 0.5000
D = 2×2
0.0909 0
0 Inf
두 행렬을 별도로 전달하고 eig
가 문제를 해결하는 데 가장 적절한 알고리즘을 선택하도록 하는 것이 좋습니다. 이 경우 eig(A,B)
는 B
가 가역 행렬이 아닌데도 일련의 고유벡터와 하나 이상의 실수 고유값을 반환합니다.
첫 번째 고유값과 첫 번째 고유벡터에 대해 를 확인합니다.
eigval = D(1,1); eigvec = V(:,1); A*eigvec - eigval*B*eigvec
ans = 2×1
10-15 ×
0.1110
0.2220
이상적인 경우라면 고유값 분해는 이 관계를 충족시켜야 합니다. 분해가 부동소수점 계산을 사용하여 수행되므로 이 경우와 마찬가지로 A*eigvec
는 기껏해야 eigval*B*eigvec
에 근접할 수만 있습니다.
입력 인수
A
— 입력 행렬
정사각 행렬
입력 행렬로, 실수 또는 복소수 정사각 행렬로 지정됩니다.
데이터형: double
| single
복소수 지원 여부: 예
B
— 일반 고유값 문제 입력 행렬
정사각 행렬
일반 고유값 문제 입력 행렬로, 실수 또는 복소수 값으로 구성된 정사각 행렬로 지정됩니다. B
는 A
와 크기가 같아야 합니다.
데이터형: double
| single
복소수 지원 여부: 예
balanceOption
— 밸런스 옵션
'balance'
(디폴트 값) | 'nobalance'
밸런스 옵션으로, 예비 밸런싱 단계를 활성화하는 'balance'
나 이 단계를 비활성화하는 'nobalance'
로 지정됩니다. 대부분의 경우 밸런싱 단계는 A
의 조건 지정을 개선하여 더욱 정확한 결과를 생성합니다. 하지만 밸런싱이 잘못된 결과를 생성하는 경우가 있습니다. A
에 스케일이 급격히 달라지는 값이 포함되는 경우 'nobalance'
를 지정하십시오. 예를 들어, A
에 0이 아닌 정수는 물론 거의 0에 가까운 매우 작은 값이 포함되는 경우 밸런싱 단계는 작은 값을 스케일링하여 정수와 같은 유효한 값으로 만들고 부정확한 결과를 생성할 수 있습니다.
'balance'
는 디폴트 동작입니다. 밸런싱에 대한 자세한 내용은 balance
를 참조하십시오.
algorithm
— 일반 고유값 알고리즘
'chol'
| 'qz'
일반 고유값 알고리즘으로, 쌍의 일반 고유값을 계산하는 데 사용할 알고리즘 'chol'
또는 'qz'
로 지정됩니다.
알고리즘 | 설명 |
---|---|
'chol' | B 의 촐레스키 분해(Cholesky Factorization)를 사용하여 A 와 B 의 일반 고유값을 계산합니다. |
'qz' | 일반화된 슈어 분해(Schur Decomposition)라고도 하는 QZ 알고리즘을 사용합니다. 이 알고리즘은 A 와 B 의 대칭성을 무시합니다. |
일반적으로 두 알고리즘은 동일한 결과를 반환합니다. QZ 알고리즘은 조건이 나쁜(Badly Conditioned) 행렬과 같은 특정 문제에 더욱 안정적일 수 있습니다.
algorithm
인수를 생략하면 eig
함수가 A
와 B
의 속성을 기반으로 알고리즘을 선택합니다. 이 함수는 대칭 (에르미트(Hermitian)) 행렬 A
와 양의 정부호 대칭 (에르미트) 행렬 B
에 'chol'
알고리즘을 사용합니다. 그 외의 경우 'qz'
알고리즘을 사용합니다.
지정하는 알고리즘에 상관없이 A
또는 B
가 대칭 행렬이 아닌 경우 eig
함수는 항상 QZ 알고리즘을 사용합니다.
outputForm
— 고유값의 출력 형식
'vector'
| 'matrix'
고유값의 출력 형식으로, 'vector'
또는 'matrix'
로 지정됩니다. 이 옵션을 사용하면 고유값을 열 벡터로 반환할 것인지 아니면 대각 행렬로 반환할 것인지 여부를 지정할 수 있습니다. 디폴트 동작은 다음과 같이 지정된 출력값의 개수에 따라 달라집니다.
e = eig(A)
와 같이 하나의 출력값을 지정한 경우 고유값은 기본적으로 열 벡터로 반환됩니다.[V,D] = eig(A)
와 같이 2~3개의 출력값을 지정한 경우 고유값은 기본적으로 대각 행렬D
로 반환됩니다.
예: D = eig(A,'matrix')
는 출력값을 1개 가진 구문으로 고유값 대각 행렬을 반환합니다.
출력 인수
V
— 우고유벡터(Right Eigenvector)
정사각 행렬
우고유벡터로, 각 열이 A
의 우고유벡터이거나 (A,B)
쌍의 일반화된 우고유벡터인 정사각 행렬로 반환됩니다. V
의 형식과 정규화는 다음과 같이 입력 인수의 조합에 따라 달라집니다.
[V,D] = eig(A)
는 행렬V
를 반환합니다. 행렬의 각 열은A*V = V*D
를 충족하는A
의 우고유벡터입니다.V
내 고유벡터는 각각의 2-노름이 1이 되도록 정규화됩니다.[V,D] = eig(A,'nobalance')
도 행렬V
를 반환합니다. 하지만 각 고유벡터의 2-노름이 반드시 1이 되지는 않습니다.[V,D] = eig(A,B)
와[V,D] = eig(A,B,algorithm)
은 각 열이A*V = B*V*D
를 충족하는 일반화된 우고유벡터인 행렬,V
를 반환합니다. 각 고유벡터의 2-노름은 반드시 1일 필요가 없습니다. 이 경우D
는 주대각선을 따라(A,B)
쌍의 일반 고유값을 포함합니다.eig
에서 대칭(에르미트) 행렬A
와 양의 정부호 대칭(에르미트) 행렬B
로 구성된'chol'
알고리즘을 사용하면,V
에 있는 고유벡터를 정규화하므로, 각 고유벡터의B
-노름은 1입니다.
컴퓨터가 다르거나 MATLAB® 릴리스가 다르면, 같지는 않지만 수치적으로는 정확한 고유벡터가 생성될 수 있습니다.
실수 고유벡터의 경우, 고유벡터의 기호가 달라질 수 있습니다.
복소수 고유벡터의 경우, 크기가 1인 복소수와 고유벡터를 곱할 수 있습니다.
중복 고유값의 경우, 일차 결합을 통해 고유벡터를 다시 결합할 수 있습니다. 예를 들어, Ax = λx이고 Ay = λy인 경우 A(x+y) = λ(x+y)이므로, x+y도 A의 고유벡터입니다.
W
— 좌고유벡터(Left Eigenvector)
정사각 행렬
좌고유벡터(Left Eigenvector)로, 각 열이 A
의 좌고유벡터(Left Eigenvector)이거나 (A,B)
쌍의 일반화된 좌고유벡터(Left Eigenvector)인 정사각 행렬로 반환됩니다. W
의 형식과 정규화는 다음과 같이 입력 인수의 조합에 따라 달라집니다.
[V,D,W] = eig(A)
는 행렬W
를 반환합니다. 이 행렬의 각 열은A
의 좌고유벡터(Left Eigenvector)이며W'*A = D*W'
를 충족시킵니다.W
내 고유벡터는 각각의 2-노름이 1이 되도록 정규화됩니다.A
가 대칭 행렬이면W
는V
와 같습니다.[V,D,W] = eig(A,'nobalance')
도 행렬W
를 반환합니다. 하지만 각 고유벡터의 2-노름이 반드시 1이 되지는 않습니다.[V,D,W] = eig(A,B)
와[V,D,W] = eig(A,B,algorithm)
은 각 열이W'*A = D*W'*B
를 충족하는 일반화된 좌고유벡터인 행렬,W
를 반환합니다. 각 고유벡터의 2-노름은 반드시 1일 필요가 없습니다. 이 경우D
는 주대각선을 따라(A,B)
쌍의 일반 고유값을 포함합니다.A
와B
가 대칭 행렬인 경우W
는V
와 같습니다.
컴퓨터가 다르거나 MATLAB 릴리스가 다르면, 같지는 않지만 수치적으로는 정확한 고유벡터가 생성될 수 있습니다.
실수 고유벡터의 경우, 고유벡터의 기호가 달라질 수 있습니다.
복소수 고유벡터의 경우, 크기가 1인 복소수와 고유벡터를 곱할 수 있습니다.
중복 고유값의 경우, 일차 결합을 통해 고유벡터를 다시 결합할 수 있습니다. 예를 들어, Ax = λx이고 Ay = λy인 경우 A(x+y) = λ(x+y)이므로, x+y도 A의 고유벡터입니다.
세부 정보
대칭 행렬
정사각 행렬
A
는 비켤레 전치와 같을 경우(A = A.'
) 대칭입니다.이를 행렬 요소로 표현하자면 다음을 의미합니다.
실수 행렬은 복소 켤레화의 영향을 받지 않으므로 대칭인 실수 행렬은 에르미트 행렬이기도 합니다. 예를 들어, 다음 행렬은
대칭이자 에르미트 행렬입니다.
반대칭 행렬(Skew-Symmetric Matrix)
정사각 행렬
A
는 비켤레 전치A = -A.'
의 부정과 같을 경우 반대칭 행렬입니다.이를 행렬 요소로 표현하자면 다음을 의미합니다.
실수 행렬은 복소 켤레화의 영향을 받지 않으므로 반대칭 행렬인 실수 행렬은 또한 반 에르미트(Skew-Hermitian) 행렬이기도 합니다. 예를 들어, 다음 행렬은
반대칭 행렬이자 반 에르미트 행렬입니다.
에르미트(Hermitian) 행렬
정사각 행렬
A
는 켤레 복소수 전치와 같을 경우(A = A'
) 에르미트입니다.이를 행렬 요소로 표현하자면 다음을 의미합니다.
에르미트(Hermitian) 행렬의 대각선에 있는 요소는 항상 실수입니다. 실수 행렬은 복소 켤레화의 영향을 받지 않으므로 대칭인 실수 행렬은 에르미트 행렬이기도 합니다. 예를 들어, 다음 행렬은
대칭이자 에르미트 행렬입니다.
에르미트(Hermitian) 행렬의 고유값은 실수입니다.
반 에르미트 행렬
정사각 행렬
A
가 켤레 복소수 전치A = -A'
의 부정과 같을 경우 반 에르미트입니다.이를 행렬 요소로 표현하자면 다음을 의미합니다.
반 에르미트 행렬의 대각선에 있는 요소는 항상 순허수이거나 0입니다. 실수 행렬은 복소 켤레화의 영향을 받지 않으므로 반대칭 행렬인 실수 행렬은 또한 반 에르미트(Skew-Hermitian) 행렬이기도 합니다. 예를 들어, 다음 행렬은
반 에르미트 행렬이자 반대칭 행렬입니다.
반 에르미트 행렬의 고유값은 순허수이거나 0입니다.
팁
eig
함수는 실수 행렬이면서 대칭 행렬인 희소 행렬의 고유값을 계산할 수 있습니다. 희소 행렬의 고유벡터를 계산하거나, 실수 행렬이 아니거나 대칭 행렬이 아닌 희소 행렬의 고유값을 계산하려면eigs
함수를 사용하십시오.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
V
는 다양한 고유벡터의 기저를 나타낼 수 있습니다. 이 표현은 생성된 코드로 계산된 고유벡터가 C 및 C++ 코드와 MATLAB에서 다를 수 있음을 의미합니다.D
의 고유값은 MATLAB의 고유값과 순서가 다를 수 있습니다. 고유값 문제 방정식A*V = V*D
를 사용하여V
값과D
값을 확인할 수 있습니다.표준 고유값 문제
[V,D] = eig(A)
의 경우A
가 에르미트 행렬 또는 반 에르미트 행렬일 때 코드 생성 시에schur
을 사용하여V
와D
를 계산합니다. 그렇지 않으면[V,D] = eig(A)
의 결과는 MATLAB에서[V,D] = eig(A,eye(size(A)),'qz')
를 사용하여 얻어지는 결과와 유사합니다. 단,V
의 열은 정규화된다는 것이 다릅니다.
LAPACK 라이브러리 콜백 클래스를 지정할 경우 코드 생성기는 다음 옵션을 지원합니다.
표준 고유값 문제에서
'balance'
옵션과'nobalance'
옵션.좌고유벡터의 계산.
출력값은 복소수입니다.
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
다음과 같은 단일 입력 인수 구문만 지원됩니다.
e = eig(A)
[V,D] = eig(A)
입력 행렬
A
에NaN
또는Inf
가 포함된 경우 함수는 오류를 반환합니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
사용법 관련 참고 및 제한 사항:
일반적인 사례의 경우,
eig(A,B)
,A
와B
는 실수 대칭 또는 복소수 에르미트여야 합니다. 추가로, 행렬B
는 양의 정부호여야 합니다.다음과 같은 구문은 비희소 분산 배열에 대해 지원되지 않습니다.
[__] = eig(A,B,'qz')
[V,D,W] = eig(A,B)
자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨R2021b: eig
는 유한하지 않은 입력값에 대해 NaN
을 반환함
입력값에 유한하지 않은 값(Inf
또는 NaN
)이 포함되어 있을 때 eig
는 NaN
값을 반환합니다. 이전에는 eig
는 입력값에 유한하지 않은 값이 포함되어 있을 때 오류를 발생시켰습니다.
R2021a: 반 에르미트 행렬에 대한 알고리즘이 향상됨
반 에르미트 입력 행렬에 대한 알고리즘이 향상되었습니다. 함수 호출 [V,D] = eig(A)
(여기서, A
는 반 에르미트임)를 사용하는 경우 이제 eig
는 고유벡터의 행렬 V
가 유니타리가 되고 고유값의 대각 행렬 D
가 순허수가 되도록 보장합니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)