优化选项参考
优化选项
下表说明优化选项。使用 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 | 将用户提供的解析导数(梯度或雅可比矩阵,取决于所选求解器)与有限差分导数进行比较。 以后的版本中将会删除 | 仅限于 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 | 黑塞矩阵逼近的方法: 当 | 仅限于 optimoptions。对于 optimset,使用 Hessian | |
HessianFcn | 用户提供的黑塞函数,指定为函数句柄(请参阅包含黑塞函数)。 | fmincon, fminunc | 仅限于 optimoptions。对于 optimset,使用 HessFcn |
HessianMultiplyFcn | 用户提供的黑塞矩阵乘法函数,指定为函数句柄。 当 | 仅限于 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 | 用户定义的雅可比矩阵乘法函数,指定为函数句柄。除非对于 | ||
LinearSolver | 算法内部线性求解器的类型。对于
对于 |
| 仅限于 optimoptions |
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 | 指定优化函数在每次迭代中调用的一个或多个用户定义的函数。传递函数句柄或函数句柄的元胞数组。请参阅输出函数和绘图函数语法或intlinprog 输出函数和绘图函数语法。 |
| |
PlotFcn | 绘制算法执行过程中的各个进度测量值。从预定义绘图中选择,或者自行编写。以列表或函数句柄(如
|
| 仅限于 optimoptions。对于 optimset,使用 PlotFcns |
RelativeGapTolerance |
| intlinprog | 仅限于 optimoptions |
RootLPAlgorithm | 求解线性规划的算法:
| intlinprog | 仅限于 optimoptions |
RootLPMaxIterations | 非负整数,它是求解初始线性规划问题要进行的单纯形算法迭代的最大次数。 | 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 的预条件子的上带宽。设置为 |
| |
| Preprocess | 单纯形或对偶单纯形算法迭代前的 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 |