2011-12-26 35 views
1

Mathematicaで一般化された固有値問題を解こうとしています。行列Aの固有値と固有ベクトルをBに対して求めます。しかし、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

変更を行った場合、 '固有システム[{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

ありがとうございました...それは働く..! –

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}}}