Создание параметров оптимизации
возвращает набор параметров по умолчанию для options = optimoptions(SolverName)SolverName решатель.
прибыль options = optimoptions(SolverName,Name,Value)options с указанными параметрами, заданными с использованием одного или нескольких аргументов пары имя-значение.
возвращает копию options = optimoptions(oldoptions,Name,Value)oldoptions с именованными параметрами, измененными с заданными значениями.
возвращает параметры по умолчанию для options = optimoptions(SolverName,oldoptions)SolverName решатель и копирует применимые опции в oldoptions кому options.
Создание параметров по умолчанию для fmincon решатель.
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 options set.
Default properties:
Algorithm: 'interior-point'
BarrierParamUpdate: 'monotone'
CheckGradients: 0
ConstraintTolerance: 1.0000e-06
Display: 'final'
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')
Задать параметры для fmincon для использования sqp алгоритм и не более 1500 итераций.
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:
CheckGradients: 0
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)'
UseParallel: 0
Show options not used by current Algorithm ('sqp')
Обновление существующих параметров новыми значениями.
Задать параметры для lsqnonlin решатель для использования levenberg-marquardt алгоритм и не более 1500 оценок функций
oldoptions = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',... 'MaxFunctionEvaluations',1500)
oldoptions =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 1500
Default properties:
CheckGradients: 0
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')
Увеличение MaxFunctionEvaluations по 2000 год.
options = optimoptions(oldoptions,'MaxFunctionEvaluations',2000)options =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 2000
Default properties:
CheckGradients: 0
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')
Обновите существующие опции новыми значениями с помощью точечной нотации.
Задать параметры для lsqnonlin решатель для использования levenberg-marquardt алгоритм и не более 1500 оценок функций
options = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',... 'MaxFunctionEvaluations',1500)
options =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 1500
Default properties:
CheckGradients: 0
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')
Увеличение MaxFunctionEvaluations до 2000 с помощью точечной нотации.
options.MaxFunctionEvaluations = 2000
options =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 2000
Default properties:
CheckGradients: 0
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')
Перенос параметров, не используемых по умолчанию, для fmincon решатель в опции для fminunc решатель.
Задать параметры для fmincon для использования алгоритма sqp и не более 1500 итераций.
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:
CheckGradients: 0
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)'
UseParallel: 0
Show options not used by current Algorithm ('sqp')
Перенос применимых опций в fminunc решатель.
options = optimoptions(@fminunc,oldoptions)
options =
fminunc options:
Options used by current Algorithm ('quasi-newton'):
(Other available algorithms: 'trust-region')
Set properties:
CheckGradients: 0
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)'
MaxFunctionEvaluations: '100*numberOfVariables'
ObjectiveLimit: -1.0000e+20
OutputFcn: []
TypicalX: 'ones(numberOfVariables,1)'
UseParallel: 0
Show options not used by current Algorithm ('quasi-newton')
Параметр алгоритма не передается в fminunc потому что 'sqp' не является допустимым параметром алгоритма для fminunc.
Создайте задачу оптимизации и найдите решатель и опции по умолчанию.
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 options set.
Default properties:
Algorithm: 'interior-point-convex'
ConstraintTolerance: 1.0000e-08
Display: 'final'
LinearSolver: 'auto'
MaxIterations: 200
OptimalityTolerance: 1.0000e-08
StepTolerance: 1.0000e-12
Show options not used by current Algorithm ('interior-point-convex')
Решатель по умолчанию: quadprog.
Задайте параметры для использования итеративного отображения. Найдите решение.
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.
sol.x
ans = 3×1
1.6035
0.0000
0.8029
SolverName - Имя решателяИмя решателя, указанное как символьный вектор, строка или дескриптор функции.
Пример: 'fmincon'
Пример: @fmincon
Типы данных: char | function_handle | string
oldoptions - Параметры, созданные с помощью optimoptionsПараметры, созданные с помощью optimoptions функция, заданная как объект options.
Пример: oldoptions = optimoptions(@fminunc)
prob - Проблемный объектOptimizationProblem объект | EquationProblem объектПроблемный объект, указанный как OptimizationProblem объект или EquationProblem объект. Создать prob использование рабочего процесса оптимизации на основе задач или рабочего процесса на основе задач для решения уравнений.
Синтаксы, использующие prob позволяет определить решатель по умолчанию для задачи и изменить алгоритм или другие опции.
Пример: prob = optimproblem('Objective',myobj), где myobj - выражение оптимизации
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
optimoptions(@fmincon,'Display','iter','FunctionTolerance',1e-10) наборы fmincon опции для итеративного отображения и FunctionTolerance из 1e-10.Соответствующие аргументы пары имя-значение см. в таблице опций решателя:
fgoalattain
options
fmincon
options
fminimax
options
fminunc
options
fseminf
options
fsolve
options
ga
options(Панель инструментов глобальной оптимизации)
gamultiobj
options(Панель инструментов глобальной оптимизации)
intlinprog
options
linprog
options
lsqcurvefit
options
lsqlin
options
lsqnonlin
options
paretosearch
options(Панель инструментов глобальной оптимизации)
particleswarm
options(Панель инструментов глобальной оптимизации)
patternsearch
options(Панель инструментов глобальной оптимизации)
quadprog
options
simulannealbnd
options(Панель инструментов глобальной оптимизации)
surrogateopt
options(Панель инструментов глобальной оптимизации)
options - Варианты оптимизацииПараметры оптимизации для SolverName решатель, возвращенный как объект опций.
Задача «Оптимизировать интерактивный редактор» позволяет визуально задавать параметры. Пример см. в разделе Оптимизация задачи интерактивного редактора с помощью решателя fmincon.
Примечания и ограничения по использованию:
Создание кода поддерживает ограниченный набор опций для каждого решателя. Для получения информации о поддерживаемых параметрах см. каждую справочную страницу решателя:
fmincon
Создание кода
fsolve
Создание кода
lsqcurvefit
Создание кода
lsqnonlin
Создание кода
quadprog
Создание кода
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.