###発生している問題
mathematicaを使用して、次のような変数mを持つ4x4の行列の固有値を求めようとしています。
mathematica
1testmat = {{m, 0, 0, 1}, {1, m, 0, 0}, {0, 1, m, 0}, {0, 0, 1, 1 + m}}
この行列に対して、Eigenvalues関数を用いて固有値を計算した場合、固有値は計算されず、以下のような解けなかった固有方程式が出力されます。
mathematica
1>{Root[-1 + m^3 + m^4 + (-3 m^2 - 4 m^3) #1 + (3 m + 6 m^2) #1^2 + (-1 - 4 m) #1^3 + #1^4 &, 1], 2 Root[-1 + m^3 + m^4 + (-3 m^2 - 4 m^3) #1 + (3 m + 6 m^2) #1^2 + (-1 - 4 m) #1^3 + #1^4 &, 2], 3 Root[-1 + m^3 + m^4 + (-3 m^2 - 4 m^3) #1 + (3 m + 6 m^2) #1^2 + (-1 - 4 m) #1^3 + #1^4 &, 3], 4 Root[-1 + m^3 + m^4 + (-3 m^2 - 4 m^3) #1 + (3 m + 6 m^2) #1^2 + (-1 - 4 m) #1^3 + #1^4 &, 4]} 5
上記の固有方程式は変数について4次の方程式であるため、解が求まると思うのですが、なぜ求まらないのでしょうか?
###試したこと
固有値は以下のようにEigenvalues関数を使用せず固有値を定義に従って求めることもできるはずで、こちらの場合は解が求まりました。
mathematica
1xmat = {{x, 0, 0, 0}, {0, x, 0, 0}, {0, 0, x, 0}, {0, 0, 0, x}}; 2eigentest = testmat - xmat; 3Solve[Det[eigentest] == 0, x] 4
ちなみにこの方法の場合に解く対象の行列式は、以下になり、Eigenvalues関数で出力された式と一致します。
mathematica
1Collect[Expand[Det[eigentest]], x] 2>-1 + m^3 + m^4 + (-3 m^2 - 4 m^3) x + (3 m + 6 m^2) x^2 + (-1 - 4 m) x^3 + x^4
Eigenvalues関数で解が求まらない理由は何かあるのでしょうか?
どなたかわかる方は教えて頂けると幸いです。
どうぞよろしくお願い致します。
あなたの回答
tips
プレビュー