Ранее рекомендуемый способ установить опции состоял в том, чтобы использовать 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: []