Eigenで固有値と固有ベクトルを計算する

Eigenで固有値と固有ベクトルを求めるには

Eigen::EigenSolver< Eigen::MatrixXf > s(A);

とした後、sに対して

s.eigenvalues() 

とすれば固有値を、

s.eigenvectors()

とすれば固有ベクトルを取り出すことができる。

実行結果。

固有値
  (16.7075,0)
(-0.905741,0)
 (0.198246,0)
固有ベクトル
(-0.223514,0) (-0.865846,0)  (0.278296,0)
(-0.503946,0) (0.0856507,0) (-0.831847,0)
(-0.834314,0)  (0.492925,0)   (0.48019,0)

ソースコード。

#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 << s.eigenvectors() << std::endl;

	return 0;
}

コメント

タイトルとURLをコピーしました