在使用matlab的fmincon做优化时想要把MaxFunctionalEvaluations设置为10000,但是运行时发现还是默认的3000,设置无效,原始代码如下:
options = optimoptions(@fmincon, 'MaxFunctionEvaluations', 10000);
[opt_x, opt_fval] = fmincon(object, opt_x0, A, b, Aeq, beq, options);
经过多方检索后修改如下,可以正常实现功能:
options = optimoptions(@fmincon, 'MaxFunctionEvaluations', 10000);
[opt_x, opt_fval] = fmincon(object, opt_x0, A, b, Aeq, beq, [], [], [], options);
具体原因和fmincon的用法有关↓
可以发现,要想用上options优化选项,就要使用fmincon的第5种用法,没有的参数空出来就好。