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: []