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