Метод Ньютона для многомерной оптимизации в Matlab

Как вычислить градиент и матрицу Гессиана, когда уравнение не может быть решено численно?

Мое уравнение минимизации:

c=c[(x/y/(1-x)^2)^0.6 + (1-(x/y)/(1-y)^2)^0.6 + 6/y^0

Я попробовал функцию MATLAB "diff", чтобы вычислить градиент и гессиан. Но деривации намного длиннее, чем можно выдержать. Как написать код для вычисления гессиана или градиента?

1 ответ

Почему вы говорите, что уравнение не может быть решено численно? Вы имеете в виду, что это не может быть решено аналитически? Кажется, в вашем утверждении функции c есть опечатка, которую вы хотите оптимизировать. Когда вы ссылаетесь на использование вами функции diff() в Matlab, вы имеете в виду, что вы оценили свою функцию на сетке, а затем дифференцировали ее? Или вы говорите о передаче дескриптора функции в символическую библиотеку Matlab?

Другие вопросы по тегам