2017-01-30 28 views
0

Я пытаюсь свести к минимуму функцию ~ 120 переменных (я оцениваю параметры с помощью максимального правдоподобия) с помощью функции fminunc из Matlab, но шаги итерации очень медленные , Какими способами я могу ускорить этот процесс?Минимизация функции более ста переменных на matlab

Функция нелинейна и содержит много суммирований.

Я думаю об векторизации максимально возможного определения функции и, возможно, предоставления функции градиента Matlab, но помимо этих решений я не знаю, какие другие возможности доступны.

+0

Часто, когда стандартные алгоритмы работают медленно, вам нужно написать стратегию оптимизации самостоятельно и оптимизировать ее для вашей конкретной проблемы. –

+0

У вас есть проблемы в вашей проблеме или вы можете думать о некоторых логических границах для ваших переменных? В этом случае 'fmincon' может работать лучше для вас. –

ответ

0

Я решил свою проблему, минимизация была медленной, потому что я реализовал суммы в функции с помощью петель for. Вместо этого я как можно больше вектурировал проблему, используя матричные умножения и векторы так часто, как мог, а оптимизация на fminunc была намного быстрее.