optimoptions - Create optimization options - MATLAB (original) (raw)
Create optimization options
Syntax
Description
[options](#btm45w6-options) = optimoptions([SolverName](#btm45w6-SolverName))
returns a set of default options for the SolverName
solver.
[options](#btm45w6-options) = optimoptions([SolverName](#btm45w6-SolverName),[Name,Value](#namevaluepairarguments))
returns options
with specified parameters set using one or more name-value pair arguments.
[options](#btm45w6-options) = optimoptions([oldoptions](#btm45w6-oldoptions),[Name,Value](#namevaluepairarguments))
returns a copy of oldoptions
with the named parameters altered with the specified values.
[options](#btm45w6-options) = optimoptions([SolverName](#btm45w6-SolverName),[oldoptions](#btm45w6-oldoptions))
returns default options for the SolverName
solver, and copies the applicable options in oldoptions
tooptions
.
[options](#btm45w6-options) = optimoptions([prob](#mw%5F86d1db71-d6d1-41f1-993e-864f128d245e))
returns a set of default options for the prob
optimization problem or equation problem.
[options](#btm45w6-options) = optimoptions([prob](#mw%5F86d1db71-d6d1-41f1-993e-864f128d245e),[Name,Value](#namevaluepairarguments))
returns options with specified parameters set using one or more name-value pair arguments.
Examples
Create default options for the fmincon
solver.
options = optimoptions('fmincon')
options = fmincon options:
Options used by current Algorithm ('interior-point'): (Other available algorithms: 'active-set', 'sqp', 'sqp-legacy', 'trust-region-reflective')
Set properties: No properties.
Default properties: Algorithm: 'interior-point' BarrierParamUpdate: 'monotone' ConstraintTolerance: 1.0000e-06 Display: 'final' EnableFeasibilityMode: 0 FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' HessianApproximation: 'bfgs' HessianFcn: [] HessianMultiplyFcn: [] HonorBounds: 1 MaxFunctionEvaluations: 3000 MaxIterations: 1000 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 SpecifyConstraintGradient: 0 SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-10 SubproblemAlgorithm: 'factorization' TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0
Show options not used by current Algorithm ('interior-point')
Set options for fmincon
to use the sqp
algorithm and at most 1500 iterations.
options = optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',1500)
options = fmincon options:
Options used by current Algorithm ('sqp'): (Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective')
Set properties: Algorithm: 'sqp' MaxIterations: 1500
Default properties: ConstraintTolerance: 1.0000e-06 Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' MaxFunctionEvaluations: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 SpecifyConstraintGradient: 0 SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseCodegenSolver: 0 UseParallel: 0
Show options not used by current Algorithm ('sqp')
Update existing options with new values.
Set options for the lsqnonlin
solver to use the levenberg-marquardt
algorithm and at most 1500 function evaluations
oldoptions = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',... 'MaxFunctionEvaluations',1500)
oldoptions = lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'): (Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties: Algorithm: 'levenberg-marquardt' MaxFunctionEvaluations: 1500
Default properties: Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Increase MaxFunctionEvaluations
to 2000.
options = optimoptions(oldoptions,'MaxFunctionEvaluations',2000)
options = lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'): (Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties: Algorithm: 'levenberg-marquardt' MaxFunctionEvaluations: 2000
Default properties: Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Update existing options with new values by using dot notation.
Set options for the lsqnonlin
solver to use the levenberg-marquardt
algorithm and at most 1500 function evaluations
options = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',... 'MaxFunctionEvaluations',1500)
options = lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'): (Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties: Algorithm: 'levenberg-marquardt' MaxFunctionEvaluations: 1500
Default properties: Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Increase MaxFunctionEvaluations
to 2000 by using dot notation.
options.MaxFunctionEvaluations = 2000
options = lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'): (Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties: Algorithm: 'levenberg-marquardt' MaxFunctionEvaluations: 2000
Default properties: Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Transfer nondefault options for the fmincon
solver to options for the fminunc
solver.
Set options for fmincon
to use the sqp algorithm and at most 1500 iterations.
oldoptions = optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',1500)
oldoptions = fmincon options:
Options used by current Algorithm ('sqp'): (Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective')
Set properties: Algorithm: 'sqp' MaxIterations: 1500
Default properties: ConstraintTolerance: 1.0000e-06 Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' MaxFunctionEvaluations: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 SpecifyConstraintGradient: 0 SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseCodegenSolver: 0 UseParallel: 0
Show options not used by current Algorithm ('sqp')
Transfer the applicable options to the fminunc
solver.
options = optimoptions(@fminunc,oldoptions)
options = fminunc options:
Options used by current Algorithm ('quasi-newton'): (Other available algorithms: 'trust-region')
Set properties: FiniteDifferenceType: 'forward' MaxIterations: 1500 OptimalityTolerance: 1.0000e-06 PlotFcn: [] SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06
Default properties: Algorithm: 'quasi-newton' Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' HessianApproximation: 'bfgs' MaxFunctionEvaluations: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OutputFcn: [] TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0
Show options not used by current Algorithm ('quasi-newton')
The algorithm option does not transfer to fminunc
because 'sqp'
is not a valid algorithm option for fminunc
.
Create an optimization problem and find the default solver and options.
rng default x = optimvar('x',3,'LowerBound',0); expr = x'*(eye(3) + randn(3))*x - randn(1,3)*x; prob = optimproblem('Objective',expr); options = optimoptions(prob)
options = quadprog options:
Options used by current Algorithm ('interior-point-convex'): (Other available algorithms: 'active-set', 'trust-region-reflective')
Set properties: No properties.
Default properties: Algorithm: 'interior-point-convex' ConstraintTolerance: 1.0000e-08 Display: 'final' LinearSolver: 'auto' MaxIterations: 200 OptimalityTolerance: 1.0000e-08 ScaleProblem: 0 StepTolerance: 1.0000e-12
Show options not used by current Algorithm ('interior-point-convex')
The default solver is quadprog
.
Set the options to use iterative display. Find the solution.
options.Display = 'iter'; sol = solve(prob,'Options',options);
Solving problem using quadprog. Your Hessian is not symmetric. Resetting H=(H+H')/2.
Iter Fval Primal Infeas Dual Infeas Complementarity
0 2.018911e+00 0.000000e+00 2.757660e+00 6.535839e-01
1 -2.170204e+00 0.000000e+00 8.881784e-16 2.586177e-01
2 -3.405808e+00 0.000000e+00 8.881784e-16 2.244054e-03
3 -3.438788e+00 0.000000e+00 3.356690e-16 7.261144e-09
Minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
ans = 3×1
1.6035
0.0000
0.8029
Input Arguments
Solver name, specified as a character vector, string, or function handle.
Example: 'fmincon'
Example: @fmincon
Data Types: char
| function_handle
| string
Options created with the optimoptions
function, specified as an options object.
Example: oldoptions = optimoptions(@fminunc)
Name-Value Arguments
Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN
, where Name
is the argument name and Value
is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose Name
in quotes.
Example: optimoptions(@fmincon,'Display','iter','FunctionTolerance',1e-10)
sets fmincon
options to have iterative display and aFunctionTolerance
of 1e-10
.
For relevant name-value pair arguments, consult the options table for your solver:
fgoalattain
optionsfmincon
optionsfminimax
optionsfminunc
optionsfseminf
optionsfsolve
optionsga
options (Global Optimization Toolbox)gamultiobj
options (Global Optimization Toolbox)intlinprog
optionslinprog
optionslsqcurvefit
optionslsqlin
optionslsqnonlin
optionsparetosearch
options (Global Optimization Toolbox)particleswarm
options (Global Optimization Toolbox)patternsearch
options (Global Optimization Toolbox)quadprog
optionssimulannealbnd
options (Global Optimization Toolbox)surrogateopt
options (Global Optimization Toolbox)
Alternative Functionality
Extended Capabilities
Version History
Introduced in R2013a