行列の固有値の積は行列式の値と等しくなる。これをEigenで試す。
実行結果
固有値
(16.7075,0)
(-0.905741,0)
(0.198246,0)
行列式
-3
確かめれば
\begin{align}
16.7075 \times (-0.905741) \times 0.198246 = – 2.99999085225 \cdots
\end{align}
となり一致することが確かめられる。(ずれているのは数値計算のための誤差)
ソースコード。
#include <iostream>
#include "../Eigen/Dense"
int main() {
const int n = 3;
const int m = 3;
Eigen::MatrixXf A(n, m);
A << 1, 2, 3, 4, 5, 6, 7, 8, 10;
Eigen::EigenSolver< Eigen::MatrixXf > s(A);
std::cout << "固有値 " << std::endl << s.eigenvalues() << std::endl;
std::cout << "行列式" << std::endl << A.determinant() << std::endl;
return 0;
}
コメント