Используя броненосец, я пытаюсь вычислить 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 собственных значений и соответствующих собственных векторов для матрицы, которые являются действительными значениями.