optimoptions и optimsetРанее рекомендуемый способ задать опции был использовать optimset. Теперь общая рекомендация - использовать optimoptions, с некоторыми оговорками, перечисленными ниже.
optimset все еще работает, и это единственный способ задать опции для решателей, которые доступны без лицензии Optimization Toolbox™: fminbnd, fminsearch, fzero, и lsqnonneg.
Примечание
Некоторые другие тулбоксы используют опции оптимизации и требуют, чтобы вы прошли в опциях, созданных с помощью optimset, не optimoptions. Проверьте документацию для ваших тулбоксов.
optimoptions организует опции решателем, с более сфокусированным и комплексным отображением, чем optimset:
Создает и изменяет только опции, применяемые к решателю
Показывает ваши опции и значения по умолчанию для определенного решателя/алгоритма
Отображает ссылки для получения дополнительной информации об опциях решателя и других доступных алгоритмах решателя
intlinprog использует только optimoptions опции.
Основным различием при создании опций является:
Для optimoptionsВы включаете имя решателя в качестве первого аргумента.
options = optimoptions(SolverName,Name,Value,...)Для optimsetсинтаксис не содержит имя решателя.
options = optimset(Name,Value,...)
В обоих случаях можно запросить или изменить опции с помощью записи через точку. См. «Установка и изменение опций» и «Просмотр опций».
Например, сравните отображение optimoptions по отношению к optimset.
options = optimoptions(@fminunc,'SpecifyObjectiveGradient',true)options =
fminunc options:
Options used by current Algorithm ('trust-region'):
(Other available algorithms: 'quasi-newton')
Set properties:
SpecifyObjectiveGradient: 1
Default properties:
Algorithm: 'trust-region'
CheckGradients: 0
Display: 'final'
FiniteDifferenceStepSize: 'sqrt(eps)'
FiniteDifferenceType: 'forward'
FunctionTolerance: 1.0000e-06
HessianFcn: []
HessianMultiplyFcn: []
MaxFunctionEvaluations: '100*numberOfVariables'
MaxIterations: 400
OptimalityTolerance: 1.0000e-06
OutputFcn: []
PlotFcn: []
StepTolerance: 1.0000e-06
SubproblemAlgorithm: 'cg'
TypicalX: 'ones(numberOfVariables,1)'
Show options not used by current Algorithm ('trust-region')options = optimset('GradObj','on')
options =
struct with fields:
Display: []
MaxFunEvals: []
MaxIter: []
TolFun: []
TolX: []
FunValCheck: []
OutputFcn: []
PlotFcns: []
ActiveConstrTol: []
Algorithm: []
AlwaysHonorConstraints: []
DerivativeCheck: []
Diagnostics: []
DiffMaxChange: []
DiffMinChange: []
FinDiffRelStep: []
FinDiffType: []
GoalsExactAchieve: []
GradConstr: []
GradObj: 'on'
HessFcn: []
Hessian: []
HessMult: []
HessPattern: []
HessUpdate: []
InitBarrierParam: []
InitTrustRegionRadius: []
Jacobian: []
JacobMult: []
JacobPattern: []
LargeScale: []
MaxNodes: []
MaxPCGIter: []
MaxProjCGIter: []
MaxSQPIter: []
MaxTime: []
MeritFunction: []
MinAbsMax: []
NoStopIfFlatInfeas: []
ObjectiveLimit: []
PhaseOneTotalScaling: []
Preconditioner: []
PrecondBandWidth: []
RelLineSrchBnd: []
RelLineSrchBndDuration: []
ScaleProblem: []
Simplex: []
SubproblemAlgorithm: []
TolCon: []
TolConSQP: []
TolGradCon: []
TolPCG: []
TolProjCG: []
TolProjCGAbs: []
TypicalX: []
UseParallel: []