0

Я использую команду polyeig в Matlab для решения задачи о полиномном значении знака порядка 2 в Matlab. Я знаю, что система имеет одиночное 0 собственное значение (это связано с формой матрицы нулевого коэффициента, где каждый диагональный элемент равен -1 раз сумме элементов в той же строке, поэтому вектор (1 1 1 ... 1) имеет 0 собственное значение).Повышенная точность polyeig в Matlab

Размер системы составляет около 150 до 150. Когда я использую polyeig команды самые низкие собственный я получаю порядка 1E-4 (который должен быть 0 собственным значением), а второй низким имеет порядок 1E-1. По мере уменьшения размера системы наименьшее собственное значение уменьшается до некоторого порядка 1E-14, что разумно, но 1E-4 слишком велико.

В любом случае, чтобы достичь лучшей точности или любой другой библиотеки, которую вы предлагаете? Я мог бы также превратить проблему полиномиального собственного значения в обобщенную задачу на собственные значения в более высоких измерениях (в 2 раза выше заданной размерности), но я не уверен, как это влияет на скорость и точность. Я хотел бы посмотреть, есть ли более простое решение, прежде чем переформулировать проблему. Поэтому я бы приветствовал любые предложения по этим вопросам.

EDIT: Проблема решена, фактически, речь шла о точности используемого файла INPUT, который был напечатан только до 4 цифр. Найдя лучшие, точность увеличилась. Спасибо в любом случае.

+0

Хорошая работа! Я часто считаю, что просто написать подробный вопрос для StackOverflow поможет мне найти проблему. Можете ли вы разместить свое решение в качестве ответа и принять его? –

ответ

0

Проблема оказалась с используемым файлом ввода, который был напечатан только до 4 десятичных знаков. Теперь даже с матрицами 800x800 у меня возникают проблемы с точностью до e-11, что хорошо.

Смежные вопросы