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