Я пытаюсь решить проблему собственных значений, используя библиотеку Eigen. Я использую SelfAdjointEigenSolver для получения собственных значений и собственных векторов. Хотя у меня, кажется, есть достаточно хорошее доказательство того, что с собственными значениями все в порядке, с собственными векторами, похоже, все в порядке. Или я что-то не так понимаю.
После расчета собственного вектора vct я создаю еще один vct2=matrix*vct. Сама идея проблемы собственных значений заключается в том, что vct2=lambda*vct, где лямбда — это собственное значение. Итак, я распечатал каждый коэффициент vct2, разделенный на vct, чтобы проверить, является ли он постоянным. Это не. Даже близко. Что не так?
Здесь я создаю случайную матрицу, решаю ее собственную проблему, беру первый собственный вектор и печатаю деление.
Для полученной матрицы результат был такой: :
9,89816 4,10161 -0,765191 -2,27482 3,58762 0,710447 -4.79855 -2.88263 -3.05201 -3.05561
который не похож на строку с тем же номером.
Код для создания проблемы:
#include
#include
using Eigen::MatrixXd;
using Eigen::SelfAdjointEigenSolver;
using namespace Eigen;
using namespace std;
int main(int argc, char **argv)
{
SelfAdjointEigenSolver es;
MatrixXd matrix=MatrixXd::Random(10,10);
es.compute(matrix);
double E0=es.eigenvalues()[0];
VectorXd vct=es.eigenvectors().col(0);
VectorXd vct2=matrix*vct;
for(int i=0;i
Подробнее здесь: https://stackoverflow.com/questions/791 ... genvectors
Собственный c++ — SelfAdjointEigenSolver — собственные векторы не являются собственными векторами ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как создать матрицу с конкретными собственными значениями и собственными векторами?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-