Ранее рекомендуемый способ установить опции состоял в том, чтобы использовать optimset. Теперь общая рекомендация состоит в том, чтобы использовать optimoptions, с некоторыми описанными ниже протестами.
optimset все еще работает, и это - единственный способ установить опции для решателей, которые доступны без лицензии Optimization Toolbox™: fminbndfminsearchfzero, и 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: []