对称矩阵的谱分解, 具体来说,
找到正交矩阵和对角矩阵这样:
如何在 Eigen C++ 中实现这种分解?或任何其他 C++ 实现?
对称矩阵的谱分解, 具体来说,
找到正交矩阵和对角矩阵这样:
如何在 Eigen C++ 中实现这种分解?或任何其他 C++ 实现?
您正在寻找SelfAdjointEigenSolver 类,我在此处报告的用户手册中还有一个示例:
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main()
{
Matrix2f A;
A << 1, 2, 2, 3;
cout << "Here is the matrix A:\n" << A << endl;
SelfAdjointEigenSolver<Matrix2f> eigensolver(A);
if (eigensolver.info() != Success) abort();
cout << "The eigenvalues of A are:\n" << eigensolver.eigenvalues() << endl;
cout << "Here's a matrix whose columns are eigenvectors of A \n"
<< "corresponding to these eigenvalues:\n"
<< eigensolver.eigenvectors() << endl;
}