アプリ版:「スタンプのみでお礼する」機能のリリースについて

maximaで行列の計算をしております。8次の正方行列の固有値を求めた際に、行列が対称行列に関わらず、固有値が虚数になってしまいます。maximaでは行列の計算は無理なのでしょうか?それとも、良い方法があるのでしょうか?教えて下さいます様、よろしくお願い致します。

A 回答 (3件)

#1です。


行列Aを入力後
fpprec:50$
B:eigenvalues(A);
float(realpart(bfloat(B)));
float(imagpart(bfloat(B)));
を実行してみてください。
Bの固有値はカルダーノの3次方程式が使われているようで虚数単位「%i」が入っていて虚数のように見えますが、実際は実数です。
固有値の実数部、虚数部をとると実数部だけが求まります。

虚数部はMaximaの計算誤差のため出てくるものです。
非常に小さな10^(-49)以下の誤差が入っていますが実際はゼロのはずです(計算精度を上げて計算すれば虚数部の計算誤差はどんどん小さくなっていくかと思います。数値計算では計算誤差はつき物です。本当にゼロかは、計算精度を上げてゼロに近づいていくかで判断します)。

他の数式処理ソフトでも確認済みで、わずかな虚数部が出ます。
    • good
    • 0
この回答へのお礼

なるほど!大変よくわかりました。早速、計算してみようと思います。本当に困っておりましたので、感謝致します。ありがとうございました。

お礼日時:2010/01/06 07:56

手元で試しましたが, この固有値は全て実数です.

    • good
    • 0
この回答へのお礼

わかりました。ありがとうございます

お礼日時:2010/01/06 07:51

やられたMaximaの8次の正方行列表現式を補足に貼り付けて下さい。



そうしていただかないとチェックできず回答できません。

この回答への補足

info22様
早速のお返事ありがとうございます。maximaには以下の様に打ち込みました。
A:matrix([727,0,0,-916,0,1073,-916,0],[0,1250,-1465,0,1194,0,0,-916],[0,-1465,1773,0,-1465,0,0,1073],[-916,0,0,1250,0,-1465,1194,0],[0,1194,-1465,0,1250,0,0,-916],[1073,0,0,-1465,0,1773,-1465,0],[-916,0,0,1194,0,-1465,1250,0],[0,-916,1073,0,-916,0,0,727])

よろしくお願い致します

補足日時:2010/01/05 22:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!