Set Optimization Options, Problem-Based
To tune your optimization solution process in the problem-based approach, set options
using optimoptions and pass the options to
solve:
options = optimoptions("fmincon",PlotFcn=@optimplotfvalconstr);
[sol,fval] = solve(prob,x0,Options=options);You might wonder which solver to specify; optimoptions requires
you to set a solver, but solve chooses the solver. Which solver
should you set for your options?
To find the default solver that solve uses for a problem, use
solvers.
default = solvers(prob)
default = "lsqnonlin"
If you want to use the default solver, you can specify options use the first output of
solvers.
options = optimoptions(default,...);
To find all available solvers for a problem, view the second output of
solvers.
[~,validsolvers] = solvers(prob)
validsolvers = 1x10 string
"lsqnonlin" "lsqcurvefit" "fmincon" "ga" "patternsearch" "surrogateopt" "particleswarm" "simulannealbnd" "gamultiobj" "paretosearch"You can specify a nondefault solver for solve using the
Solver name-value argument.
[sol,fval] = solve(prob,x0,Options=options,Solver="fmincon");Note
To set options for the solvers that are available without an Optimization Toolbox™ license, use optimset. These solvers are fminbnd,
fminsearch, fzero, and
lsqnonneg.
The remaining considerations for setting options are the same as in the solver-based approach. For details, see Set Optimization Options.
See Also
optimoptions | solve | solvers