書式
eigenvalues(行列)
で用い、「行列」の固有値とその重複度を出力する。
(%i1) A:matrix([1,2],[4,5]);
[ 1 2 ]
(%o1) [ ]
[ 4 5 ]
(%i2) eigenvalues(A);
Warning - you are redefining the MACSYMA function EIGENVALUES
Warning - you are redefining the MACSYMA function EIGENVECTORS
(%o2) [[3 - 2 SQRT(3), 2 SQRT(3) + 3], [1, 1]]
はじめて eigenvalues 関数を実行すると自動的に eigen パッケージが読み込まれ、上記のような警告が出る(が、気にしてはいけない)。なお、手動で eigen パッケージを読み込むには load("eigen"); を実行する。
我々が普段計算する手順で、上記の結果を検証してみる:
(%i3) A - k * ident(2);
[ 1 - k 2 ]
(%o3) [ ]
[ 4 5 - k ]
(%i4) determinant(%);
(%o4) (1 - k) (5 - k) - 8
(%i5) solve(%, k);
(%o5) [k = 3 - 2 SQRT(3), k = 2 SQRT(3) + 3]
ここで、上記の ident(n) は n 次単位行列を生成する関数である。なお、固有値と固有ベクトルを同時に出力する関数 eigenvectors もある。