Используя броненосец, вычисляем N количество собственных мод.С eig_pair, он показывает предупреждение и много собственных значений - PullRequest
0 голосов
/ 16 февраля 2019

Используя броненосец, я пытаюсь вычислить N собственных мод.С помощью eig_pair он может вычислять собственное значение и собственный вектор, но матрица выбрасывания плохо обусловлена ​​(но когда я реализую это в Matlab, он эффективно вычисляет собственное значение).Кроме того, вместо N собственных мод рассчитывается более 50 мод (включая комплексные, NaN и inf).Как вычислить только N собственных значений и соответствующих собственных векторов.которые являются действительным числом (не сложным, inf или NaN).

Мне нужно вычислить "N" число собственных значений и соответствующих собственных векторов для матрицы.

mat Re=real(Z);
mat Xe=imag(Z);
cx_vec eigval;
cx_mat eigvec;
eig_pair(eigval, eigvec, Xe, Re);
eigvec.save("eigvec.txt",raw_ascii);

При выполнении этого кода появляется предупреждение:

warning: eig_pair(): given matrices appear ill-conditioned

Кроме того, выходной файл показывает inf, NaN и комплексное значение.Как я могу извлечь только наименьшее N собственных значений и соответствующих собственных векторов для матрицы, которые являются действительными значениями.

...