优化选项参考
优化选项
下表说明优化选项。使用 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 | |
BranchRule | 选择分支分量的规则: | intlinprog | 仅限于 optimoptions |
CheckGradients | 将用户提供的分析导数(梯度或 Jacobian 矩阵,取决于所选求解器)与有限差分导数进行比较。 |
| 仅限于 optimoptions 。对于 optimset ,使用 DerivativeCheck |
ConstraintTolerance | 约束违反度容差。 |
| 仅限于 optimoptions 。对于 optimset ,使用 TolCon |
CutGeneration | 切割生成的级别(请参阅切割生成):
| intlinprog | 仅限于 optimoptions |
CutMaxIterations | 在进入分支定界阶段之前经历所有切割生成方法的次数,从 1 到 50 的整数。通过将 CutGeneration 选项设置为 'none' 可禁用切割生成。 | intlinprog | 仅限于 optimoptions |
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 | Hessian 矩阵逼近的方法: 当 | 仅限于 optimoptions 。对于 optimset ,使用 Hessian | |
HessianFcn | 用户提供的 Hessian 函数,指定为函数句柄(请参阅包含 Hessian 矩阵)。 | fmincon 、fminunc | 仅限于 optimoptions 。对于 optimset ,使用 HessFcn |
HessianMultiplyFcn | 用户提供的 Hessian 矩阵乘法函数,指定为函数句柄。 当 | 仅限于 optimoptions 。对于 optimset ,使用 HessMult | |
Heuristics | 搜索可行点的算法(请参阅使用启发式方法求出可行解):
| intlinprog | 仅限于 optimoptions |
HeuristicsMaxNodes | 严格正整数,它限制 intlinprog 在分支定界搜索可行点的过程中可探查的节点数。请参阅使用启发式方法求出可行解。 | intlinprog | 仅限于 optimoptions |
HonorBounds | 默认值 | fmincon | 仅限于 optimoptions 。对于 optimset ,使用 AlwaysHonorConstraints |
IntegerPreprocess | 整数预处理的类型(请参阅混合整数规划预处理):
| intlinprog | 仅限于 optimoptions |
IntegerTolerance | 1e-6 到 1e-3 范围内的实数,这是解 x 的分量仍被视为整数时相比整数可具有的最大偏差。IntegerTolerance 不是停止条件。 | intlinprog | 仅限于 optimoptions |
JacobianMultiplyFcn | 用户定义的 Jacobian 矩阵乘法函数,指定为函数句柄。除非对于 | ||
LinearSolver | 算法内部线性求解器的类型。对于
对于 |
| |
LPMaxIterations | 严格正整数,在分支定界过程中每个节点的单纯形算法迭代的最大次数。 | intlinprog | 仅限于 optimoptions |
LPOptimalityTolerance | 非负实数,要将一个变量纳入基,该变量的简化后的代价必须超过 LPOptimalityTolerance 。 | intlinprog | 仅限于 optimoptions |
MaxFunctionEvaluations | 允许的函数计算的最大次数。 |
| 仅限于 optimoptions 。对于 optimset ,使用 MaxFunEvals |
MaxIterations | 允许的最大迭代次数。 | 仅限于 optimoptions 。对于 optimset ,使用 MaxIter | |
MaxFeasiblePoints | 严格正整数。intlinprog 在找到 MaxFeasiblePoints 个整数可行点时停止。 | intlinprog | 仅限于 optimoptions |
MaxNodes | 严格正整数,它是求解器在其分支定界过程中探查的最大节点数。 | ||
MaxTime | 算法允许的最长时间(以秒为单位)。 | ||
NodeSelection | 选择下一步要探查的节点。 | intlinprog | 仅限于 optimoptions |
ObjectiveCutOff | 大于 -Inf 的实数。默认值为 Inf 。 | intlinprog | 仅限于 optimoptions |
ObjectiveImprovementThreshold | 非负实数。intlinprog 仅在找到目标函数值比当前可行解的目标函数值低至少 ObjectiveImprovementThreshold 的另一个解时,才会更改当前可行解:(fold – fnew)/(1 + |fold|) > ObjectiveImprovementThreshold。 | intlinprog | 仅限于 optimoptions |
ObjectiveLimit | 如果目标函数值低于 | fmincon 、fminunc 、lsqlin 、quadprog | |
OptimalityTolerance | 一阶最优性的终止容差。 |
| 仅限于 optimoptions 。对于 optimset ,使用 TolFun |
OutputFcn | 指定优化函数在每次迭代中调用的一个或多个用户定义的函数。传递函数句柄或函数句柄的元胞数组。请参阅Output Function and Plot Function Syntax或intlinprog Output Function and Plot Function Syntax。 |
| |
PlotFcn | 绘制算法执行过程中的各个进度测量值。从预定义绘图中选择,或者自行编写。以列表或函数句柄(如
请参阅绘图函数或intlinprog Output Function and Plot Function Syntax。 |
| 仅限于 optimoptions 。对于 optimset ,使用 PlotFcns |
RelativeGapTolerance |
| intlinprog | 仅限于 optimoptions |
RootLPAlgorithm | 求解线性规划的算法:
| intlinprog | 仅限于 optimoptions |
RootLPMaxIterations | 非负整数,它是求解初始线性规划问题要进行的单纯形算法迭代的最大次数。 | intlinprog | 仅限于 optimoptions |
ScaleProblem | 对于 | fmincon | |
SpecifyConstraintGradient | 非线性约束的用户定义梯度。 | 仅限于 optimoptions 。对于 optimset ,使用 GradConstr | |
SpecifyObjectiveGradient | 目标函数的用户定义梯度或 Jacobian 矩阵。 |
| 仅限于 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 | 用于有限差分的 Hessian 矩阵稀疏模式。矩阵的大小是 n×n,其中 n 是起点 | ||
HessUpdate | 拟牛顿更新方案。 | ||
InitBarrierParam | 初始障碍值。 | fmincon | |
InitDamping | 初始 Levenberg-Marquardt 参数。 | fsolve 、lsqcurvefit 、lsqnonlin | 仅限于 optimoptions |
InitTrustRegionRadius | 信赖域的初始半径。 | fmincon | |
JacobPattern | 用于有限差分的 Jacobian 矩阵稀疏模式。矩阵的大小是 | ||
LPPreprocess | 松弛线性规划解的预处理类型(请参阅线性规划预处理):
| intlinprog | 仅限于 optimoptions |
MaxPCGIter | 预条件共轭梯度法允许的最大迭代次数。 |
| |
MaxProjCGIter | 投影共轭梯度迭代次数的容差;这是内部迭代,而不是算法的迭代次数。 | fmincon | |
MaxSQPIter | 序列二次规划法允许的最大迭代次数。 | ||
MeritFunction | 使用目标达到/最小化最大值评价函数(多目标)与 | ||
PrecondBandWidth | PCG 的预条件子的上带宽。设置为 |
| |
Preprocess | 单纯形或对偶单纯形算法迭代前的 LP 预处理的级别。 | 仅限于 optimoptions | |
RelLineSrchBnd | 线搜索步长的相对边界。 | ||
RelLineSrchBndDuration |
| ||
ScaleProblem | 当使用 | fsolve 、lsqcurvefit 、lsqnonlin | |
TolConSQP | 内 SQP 迭代的约束违反度容差。 | fgoalattain 、fmincon 、fminimax 、fseminf | |
TolPCG | PCG 迭代的终止容差。 |
| |
TolProjCG | 投影共轭梯度算法的相对容差;这适用于内部迭代,而不适用于算法迭代。 | fmincon | |
TolProjCGAbs | 投影共轭梯度算法的绝对容差;这适用于内部迭代,而不适用于算法迭代。 | fmincon |
隐藏的 Global Optimization Toolbox 选项
有关隐藏这些选项的原因,请参阅Options that optimoptions Hides (Global Optimization Toolbox)。
optimoptions
隐藏的选项
选项名称 | 由以下函数使用 |
---|---|
Cache |
|
CacheSize |
|
CacheTol |
|
DisplayInterval |
|
FunValCheck |
|
HybridInterval |
|
InitialPenalty |
|
MaxMeshSize |
|
MeshRotate |
|
MigrationDirection |
|
MigrationFraction |
|
MigrationInterval |
|
PenaltyFactor |
|
PlotInterval |
|
StallTest |
|
TolBind | patternsearch |