Здравствуйте! Встала следующая задача:
Найти корни уравнения относительно k:
,
где
является матрицей, каждый элемент которой полином по
степени не выше 2. Т.е.
.
.
Таким образом мы имеем дело с полиномом степени 2*dim(H(k)) у которого нужно найти корни. На практике интересуют dim(H(k))=14, 16 на данный момент. Если бы мы знали явно коэффициенты этого полинома, MATLAB отлично считает ответ. Указываю внизу уже предпринятые попытки решения и прошу помощи в поиске новых.
Уже испробованные методы и причины неудачи(среда MATLAB):
1)
-за 2 часа так и не закончил считать для матрицы 14х14 (для 6х6 считал примерно секунд 60)
2) интерполяция интерполяционным полиномом 28й степени по 28ми точкам с извлечением коэффициентов и использованием roots
- ожидаемо выдает бред на стадии вычисления коэффициентов по причине чувствительности интерполяционного полинома к точности вычислений
3) polyfit по набору точек(более 28) с извлечением коэффициентов и использованием roots
-при достаточном количестве танцев с бубнами для поиска удачного набора точек работает на размерностях до 14, но на 16 врет
4) Численное вычисление
й производной от
в нуле, которая должна бы дать
-пока что не проверена точность вычисления корней, 9я производная считается 50 секунд, 10я 100, 11ю пока жду.... В общем даже если будет работать, то долго, видимо.
Сталкивался ли кто-нибудь с подобной задачей и реально ли ее решить за разумное время(скажем, до 10 минут вычислений на нахождение всех корней)?