Для оптимизации применяю функцию fmincon с нелинейными ограничениями. При запуске при параметрах по умолчанию выдается сообщение (хотя оптимизация худо-бедно проходит):
Код
In fmincon at 437
In Optimization at 31
Optimization terminated: no feasible solution found.
Directional derivative predicts change in objective value less
than options.TolFun.
Warning: Trust-region-reflective method does not currently solve this type of problem,
using active-set (line search) instead.
В последней строке призыв к смене метода оптимизации
Trust-region-reflective method на
active-setИз хелпа:
The 'active-set' algorithm is not a large-scale algorithmПотому делаю установку параметров оптимизации следующим образом:
Код
options = optimset('Algorithm','active-set', 'LargeScale', 'off', 'Display', 'iter');
fmincon('opt_fun', x0, [], [], [], [], low, up, 'opt_con', 'options', f, row);
В результате то же самое сообщение о смене алгоритма. Причем, при опции
Display', 'iter', должны отображаться результаты выполнения поитерационно - ничего нет. Более того, ограничения
low и
up в оптимизационной функции
fmincon так же не действуют - случаются "вылеты за ворота" оптимизируемых параметров!!!
Что делать?