设置基于问题的优化选项
要以基于问题的方法调整优化解流程,请使用 optimoptions 设置选项并将选项传递给 solve:
options = optimoptions("fmincon",PlotFcn=@optimplotfvalconstr);
[sol,fval] = solve(prob,x0,Options=options);您可能想知道要指定哪个求解器;optimoptions 要求您设置一个求解器,但 solve 选择求解器。您应该为您的选项设置哪个求解器?
要查找 solve 用于求解问题的默认求解器,请使用 solvers。
default = solvers(prob)
default = "lsqnonlin"
如果您想使用默认求解器,您可以指定选项使用 solvers 的第一个输出。
options = optimoptions(default,...);
要找到问题的所有可用求解器,请查看 solvers 的第二个输出。
[~,validsolvers] = solvers(prob)
validsolvers = 1x10 string
"lsqnonlin" "lsqcurvefit" "fmincon" "ga" "patternsearch" "surrogateopt" "particleswarm" "simulannealbnd" "gamultiobj" "paretosearch"您可以使用 Solver 名称值参量为 solve 指定非默认求解器。
[sol,fval] = solve(prob,x0,Options=options,Solver="fmincon");注意
要设置无需 Optimization Toolbox™ 许可证即可使用的求解器选项,请使用 optimset。这些求解器是 fminbnd、fminsearch、fzero 和 lsqnonneg。
设置选项的其余考虑与基于求解器的方法相同。有关详细信息,请参阅设置优化选项。
另请参阅
optimoptions | solve | solvers