2011-12-26 4 views
1

저는 Mathematica로 일반화 된 고유치 문제를 풀려고합니다. B에 대해 행렬 A의 고유 값과 고유 벡터를 찾고 싶습니다. 그러나 Eigensystem을 사용하면 다음 오류가 발생합니다.Mathematica의 일반화 된 고유치

A = {{1, 2, 3}, {3, 6, 8}, {5, 9, 2}} 
B = {{3, 5, 7}, {1, 7, 9}, {4, 6, 2}} 
Eigensystem[{A, B}] 

Eigensystem::exnum: Eigensystem has received a matrix with non-numerical or exact 
elements. >> 

어떻게해야합니까?

+2

변화'Eigensystem [{A, B}// N]'행렬 항목이 정확한 숫자가 아니므로 Mma가 불평하지 않고 {{1.63593, 0.525975, 0.0111747}, {{0.0936814, 0.782546, -0.615505}, {-0.84891, 0.357536, 0.389254} , {0.8701, -0.491321, 0.0391061}}}을 답으로 사용합니다. – kglr

+0

고마워 친구 ... !! –

+0

고유 벡터와 고유 값을 어떻게 구별합니까? (미안 해요. mathematica를 처음 접했을 때) – flow

답변

3

글쎄, 할 수있는 한, N[]을 던질 수 있습니다.

왜 오류가 발생하는지 확실하지 않습니다. 다른 사람이 알고있을 수 있습니다. 당신이 Root 객체로 정확한 결과를 얻기 위해 이것을 사용할 수 있습니다 역변환 행렬과 these answers에서 직접

A={{1,2,3},{3,6,8},{5,9,2}}; 
B={{3,5,7},{1,7,9},{4,6,2}}; 
Eigensystem[{[email protected],[email protected]}] 

Out[48]= {{1.6359272851306594,0.52597489217711,0.011174745769153706}, 
{{0.0936814383974197,0.7825455672726674,-0.6155048523299302}, 
{-0.8489102791046691,0.3575364071543101,0.389254486922913}, 
{0.8701002165041747,-0.011447429,0.03910610020848224}}}  
+0

Thanku ... 그것은 작동합니다 ..! –

2

복사, : 당신이 한 경우

A = {{1, 2, 3}, {3, 6, 8}, {5, 9, 2}}; 
B = {{3, 5, 7}, {1, 7, 9}, {4, 6, 2}}; 

Eigensystem[Inverse[B].A] // RootReduce 
{{Root[-1 + 92 #1 - 226 #1^2 + 104 #1^3 &, 3], 
    Root[-1 + 92 #1 - 226 #1^2 + 104 #1^3 &, 2], 
    Root[-1 + 92 #1 - 226 #1^2 + 104 #1^3 &, 1]}, 
{{Root[-1418 - 9903 #1 - 3824 #1^2 + 192 #1^3 &, 2], 
    Root[-2817 + 627 #1 + 2480 #1^2 + 192 #1^3 &, 2], 1}, 
    {Root[-1418 - 9903 #1 - 3824 #1^2 + 192 #1^3 &, 1], 
    Root[-2817 + 627 #1 + 2480 #1^2 + 192 #1^3 &, 3], 1}, 
    {Root[-1418 - 9903 #1 - 3824 #1^2 + 192 #1^3 &, 3], 
    Root[-2817 + 627 #1 + 2480 #1^2 + 192 #1^3 &, 1], 1}}}