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