优化选项参考
优化选项
下表说明优化选项。使用 optimoptions 函数或 optimset 为 fminbnd、fminsearch、fzero 或 lsqnonneg 创建选项。
有关可用选项值和默认值的信息,请参阅各个函数参考页。
选项的默认值因您使用 options 作为输入参量调用的具体优化函数而异。您可以通过输入 optimoptions(" 或等效的 solvername")optimoptions(@ 来确定任何优化函数的默认选项值。例如,solvername)
optimoptions("fmincon")返回一个选项列表和默认 "interior-point" fmincon 算法的默认值。要查找另一个 fmincon 算法的默认值,请设置 Algorithm 选项。例如,
opts = optimoptions("fmincon",Algorithm="sqp")
optimoptions 会“隐藏”一些选项,这意味着它不显示这些选项的值。这些选项不会出现在此表中。但它们会出现在隐藏选项中。
优化选项
| 选项名称 | 描述 | 由以下函数使用 | 限制 |
|---|---|---|---|
AbsoluteGapTolerance | 非负实数。如果内部计算的目标函数的上界 (
| intlinprog | 仅限于 optimoptions |
AbsoluteMaxObjectiveCount | F(x) 的数量,用于最小化最差情形绝对值。 | ||
Algorithm | 选择求解器使用的算法。 | fmincon, fminunc, fsolve, linprog, lsqcurvefit, lsqlin, lsqnonlin, quadprog | |
BarrierParamUpdate | 选择 | fmincon | |
ConstraintTolerance | 约束违反值容差。 |
| 仅限于 optimoptions。对于 optimset,使用 TolCon |
Display | 显示级别。
| 全部。有关适用的值,请参阅各个函数参考页。 | |
EnableFeasibilityMode | 选择在 | fmincon | |
EqualityGoalCount | 指定目标 | 仅限于 optimoptions。对于 optimset,使用 GoalsExactAchieve | |
FiniteDifferenceStepSize | 有限差分的标量或向量步长因子。当您将
sign′(x) = sign(x)(例外是 sign′(0) = 1)。中心有限差分是
FiniteDifferenceStepSize 扩展为向量。对于正向有限差分,默认值为 sqrt(eps);对于中心有限差分,默认值为 eps^(1/3)。 |
| 仅限于 optimoptions。对于 optimset,使用 FinDiffRelStep |
FiniteDifferenceType | 用于估计梯度的有限差分是 |
| 仅限于 optimoptions。对于 optimset,使用 FinDiffType |
FunctionTolerance | 函数值的终止容差。 |
| 仅限于 optimoptions。对于 optimset,使用 TolFun |
HessianApproximation | 黑塞矩阵逼近的方法: 当 | 仅限于 optimoptions。对于 optimset,使用 Hessian | |
HessianFcn | 用户提供的黑塞函数,指定为函数句柄(请参阅包含黑塞函数)。 | fmincon, fminunc | 仅限于 optimoptions。对于 optimset,使用 HessFcn |
HessianMultiplyFcn | 用户提供的黑塞矩阵乘法函数,指定为函数句柄。 当 | 仅限于 optimoptions。对于 optimset,使用 HessMult | |
HonorBounds | 默认值 | fmincon | 仅限于 optimoptions。对于 optimset,使用 AlwaysHonorConstraints |
JacobianMultiplyFcn | 用户定义的雅可比矩阵乘法函数,指定为函数句柄。除非对于 | ||
LinearSolver | 算法内部线性求解器的类型。对于
对于 |
| 仅限于 optimoptions |
MaxFunctionEvaluations | 允许的函数计算的最大次数。 |
| 仅限于 optimoptions。对于 optimset,使用 MaxFunEvals |
MaxIterations | 允许的最大迭代次数。 | 仅限于 optimoptions。对于 optimset,使用 MaxIter | |
MaxNodes | 严格正整数,它是求解器在其分支定界过程中探查的最大节点数。 | ||
MaxTime | 算法允许的最长时间(以秒为单位)。 | ||
ObjectiveCutOff | 大于 -Inf 的实数。默认值为 Inf。 | intlinprog | 仅限于 optimoptions |
ObjectiveLimit | 如果目标函数值低于 | fmincon, fminunc, lsqlin, quadprog | |
OptimalityTolerance | 一阶最优性的终止容差。 |
| 仅限于 optimoptions。对于 optimset,使用 TolFun |
OutputFcn | 指定优化函数在每次迭代中调用的一个或多个用户定义的函数。传递函数句柄或函数句柄的元胞数组。请参阅输出函数和绘图函数语法或intlinprog 输出函数和绘图函数语法。 |
| |
PlotFcn | 绘制算法执行过程中的各个进度测量值。从预定义绘图中选择,或者自行编写。以列表或函数句柄(如
|
| 仅限于 optimoptions。对于 optimset,使用 PlotFcns |
RelativeGapTolerance |
| intlinprog | 仅限于 optimoptions |
ScaleProblem | 对于 | fmincon | |
SpecifyConstraintGradient | 非线性约束的用户定义梯度。 | 仅限于 optimoptions。对于 optimset,使用 GradConstr | |
SpecifyObjectiveGradient | 目标函数的用户定义梯度或雅可比矩阵。 |
| 仅限于 optimoptions。对于 optimset,使用 GradObj 或 Jacobian |
StepTolerance | x 的终止容差。 | ||
SubproblemAlgorithm | 确定迭代步的计算方式。 | fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin | |
TypicalX | 数组,用于指定由参数 |
| |
UseParallel | 当为 |
|
隐藏选项
optimoptions 会“隐藏”一些选项,这意味着它不显示这些选项的值。要了解如何查看这些选项及其被隐藏的原因,请参阅查看优化选项。
函数参考页以斜体列出这些选项。
隐藏的 Optimization Toolbox 选项
下表列出了隐藏的 Optimization Toolbox™ 选项。
optimoptions 隐藏的选项
| 选项名称 | 描述 | 由以下函数使用 | 限制 |
|---|---|---|---|
| Diagnostics | 显示关于要最小化或求解的函数的诊断信息。 | 除 | |
| DiffMaxChange | 有限差分中变量的最大变化。 |
| |
| DiffMinChange | 有限差分中变量的最小变化。 |
| |
| FunValCheck | 检查目标函数和约束值是否有效。如果为 注意 当
|
| |
| HessPattern | 用于有限差分的黑塞矩阵稀疏模式。矩阵的大小是 n×n,其中 n 是起点 | ||
| HessUpdate | 拟牛顿更新方案。 | ||
| InitBarrierParam | 初始障碍值。 | fmincon | |
| InitDamping | 初始莱文贝格-马夸特参数。 | fsolve, lsqcurvefit, lsqnonlin | 仅限于 optimoptions |
| InitTrustRegionRadius | 信赖域的初始半径。 | fmincon | |
| JacobPattern | 用于有限差分的雅可比矩阵稀疏模式。矩阵的大小是 | ||
| LPPreprocess | 松弛线性规划解的预处理类型:
| intlinprog | 仅限于 optimoptions |
| MaxPCGIter | 预条件共轭梯度法允许的最大迭代次数。 |
| |
| MaxProjCGIter | 投影共轭梯度迭代次数的容差;这是内部迭代,而不是算法的迭代次数。 | fmincon | |
| MaxSQPIter | 序列二次规划法允许的最大迭代次数。 | ||
| MeritFunction | 使用目标达到/最小化最大值评价函数(多目标)与 | ||
| PrecondBandWidth | PCG 的预条件子的上带宽。设置为 |
| |
| 预求解 | 在内点法或对偶单纯形算法迭代之前,线性规划 (LP) 预处理的级别。 | 仅限于 optimoptions | |
| RelLineSrchBnd | 线搜索步长的相对边界。 | ||
| RelLineSrchBndDuration |
| ||
| ScaleProblem | 当使用 | fsolve, lsqcurvefit, lsqnonlin | |
| TolConSQP | 内 SQP 迭代的约束违反值容差。 | fgoalattain, fmincon, fminimax, fseminf | |
| TolPCG | PCG 迭代的终止容差。 |
| |
| TolProjCG | 投影共轭梯度算法的相对容差;这适用于内部迭代,而不适用于算法迭代。 | fmincon | |
| TolProjCGAbs | 投影共轭梯度算法的绝对容差;这适用于内部迭代,而不适用于算法迭代。 | fmincon |
隐藏的 Global Optimization Toolbox 选项
有关隐藏这些选项的原因,请参阅optimoptions 隐藏的选项 (Global Optimization Toolbox)。
optimoptions 隐藏的选项
| 选项名称 | 由以下函数使用 |
|---|---|
| Cache |
|
| CacheSize |
|
| CacheTol |
|
| DisplayInterval |
|
| FunValCheck |
|
HybridInterval |
|
| InitialPenalty |
|
| MaxMeshSize |
|
| MeshRotate |
|
MigrationDirection |
|
MigrationFraction |
|
MigrationInterval |
|
PenaltyFactor |
|
PlotInterval |
|
StallTest |
|
| TolBind | patternsearch |