eigenvalues ..... 行列の固有値を求める

書式

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 もある。