Детерминанты огромных матрицы в MATLAB

из задачи моделирования, я хочу вычислить комплексные квадратные матрицы порядка 1000x1000 в MATLAB. Поскольку значения относятся к значениям функций Бесселя, матрицы вовсе не являются разреженными.

Поскольку меня интересует изменение определителя относительно некоторого параметра (энергии искомой собственной функции в моем случае), На данный момент я преодолеваю проблему, сначала ища коэффициент масштабирования для исследуемого диапазона, а затем вычисляя детерминанты,

result(k) = det(pre_factor*Matrix{k});

Теперь это очень неудобное решение и работает только для размеров матрицы, скажем, максимум 500x500.

Имеет ли кто-нибудь знает хорошее решение проблемы? В принципе, взаимодействие с Mathematica могло бы работать, но у меня есть сомнения относительно осуществимости. Заранее благодарю

Роберт

Редактировать: Я не нашел удобного решения проблемы вычислений, так как это потребовало бы перехода на более высокую точность. Вместо этого я использовал тот

ln det M = trace ln M

, который, когда я выводил его относительно k

A = trace(inv(M(k))*dM/dk)

, у меня, по крайней мере, было изменение логарифма определителя относительно k. Исходя из физических предпосылок проблемы, я мог вывести ограничения на A, которые, в конце концов, дали мне обходной путь, применимый для моей проблемы. К сожалению, я не знаю, можно ли обобщить такой обходной путь.

5
задан Robert Filter 10 December 2010 в 22:08
поделиться