优化选项参考
优化选项
下表说明优化选项。使用 函数或 为 fminbnd
、fminsearch
、fzero
或 lsqnonneg
创建选项。
有关可用选项值和默认值的信息,请参阅各个函数参考页。
选项的默认值因您使用 options
作为输入参数调用的具体优化函数而异。您可以通过输入 optimoptions('
或等效的 solvername
')optimoptions(@
来确定任何优化函数的默认选项值。例如,solvername
)
optimoptions('fmincon')
返回一个选项列表和默认 'interior-point'
fmincon
算法的默认值。要查找另一个 fmincon
算法的默认值,请设置 algorithm
选项。例如,
opts = optimoptions('fmincon','algorithm','sqp')
optimoptions
会“隐藏”一些选项,这意味着它不显示这些选项的值。这些选项不会出现在此表中。但它们会出现在隐藏选项中。
优化选项
选项名称 | 说明 | 由以下函数使用 | 限制 |
---|---|---|---|
absolutegaptolerance | 非负实数。如果内部计算的目标函数的上界 (
| 仅限于 | |
absolutemaxobjectivecount | f(x) 的数量,用于最小化最差情形绝对值。 | ||
algorithm | 选择求解器使用的算法。 | 、、、、、、、 | |
barrierparamupdate | 选择 | ||
branchrule | 选择分支分量的规则: | 仅限于 | |
checkgradients | 将用户提供的分析导数(梯度或 jacobian 矩阵,取决于所选求解器)与有限差分导数进行比较。 | 、、、、、、、 | 仅限于 。对于 ,使用 derivativecheck |
constrainttolerance | 约束违反度容差。 | 、、、、、、、、 | 仅限于 。对于 ,使用 tolcon |
cutgeneration | 切割生成的级别(请参阅切割生成):
| 仅限于 | |
cutmaxiterations | 在进入分支定界阶段之前经历所有切割生成方法的次数,从 1 到 50 的整数。通过将 cutgeneration 选项设置为 'none' 可禁用切割生成。 | 仅限于 | |
display | 显示级别。
| 全部。有关适用的值,请参阅各个函数参考页。 | |
enablefeasibilitymode | 选择在 | ||
equalitygoalcount | 指定目标 | 仅限于 。对于 ,使用 goalsexactachieve | |
finitedifferencestepsize | 有限差分的标量或向量步长因子。当您将
sign′(x) = sign(x) (例外是 sign′(0) = 1 )。中心有限差分是
finitedifferencestepsize 扩展为向量。对于正向有限差分,默认值为 sqrt(eps) ;对于中心有限差分,默认值为 eps^(1/3) 。 | 、、、、、、、 | 仅限于 。对于 ,使用 findiffrelstep |
finitedifferencetype | 用于估计梯度的有限差分是 | 、、、、、、、 | 仅限于 。对于 ,使用 findifftype |
functiontolerance | 函数值的终止容差。 | 、、、、、、、、、、 | 仅限于 。对于 ,使用 tolfun |
hessianapproximation | hessian 矩阵逼近的方法: 当 | 仅限于 。对于 ,使用 hessian | |
hessianfcn | 用户提供的 hessian 函数,指定为函数句柄(请参阅)。 | 、 | 仅限于 。对于 ,使用 hessfcn |
hessianmultiplyfcn | 用户提供的 hessian 矩阵乘法函数,指定为函数句柄。 当 | 、、 | 仅限于 。对于 ,使用 hessmult |
heuristics | 搜索可行点的算法(请参阅使用启发式方法求出可行解):
| 仅限于 | |
heuristicsmaxnodes | 严格正整数,它限制 intlinprog 在分支定界搜索可行点的过程中可探查的节点数。请参阅使用启发式方法求出可行解。 | 仅限于 | |
honorbounds | 默认值 | 仅限于 。对于 ,使用 alwayshonorconstraints | |
integerpreprocess | 整数预处理的类型(请参阅混合整数规划预处理):
| 仅限于 | |
integertolerance | 1e-6 到 1e-3 范围内的实数,这是解 x 的分量仍被视为整数时相比整数可具有的最大偏差。integertolerance 不是停止条件。 | 仅限于 | |
jacobianmultiplyfcn | 用户定义的 jacobian 矩阵乘法函数,指定为函数句柄。除非对于 、 和 来说 | 、、、 | |
linearsolver | 算法内部线性求解器的类型。对于
对于 | 、 | |
lpmaxiterations | 严格正整数,在分支定界过程中每个节点的单纯形算法迭代的最大次数。 | 仅限于 | |
lpoptimalitytolerance | 非负实数,要将一个变量纳入基,该变量的简化后的代价必须超过 lpoptimalitytolerance 。 | 仅限于 | |
maxfunctionevaluations | 允许的函数计算的最大次数。 | 、、、、、、、、、 | 仅限于 。对于 ,使用 maxfunevals |
maxiterations | 允许的最大迭代次数。 | 除 和 之外的所有函数 | 仅限于 。对于 ,使用 maxiter |
maxfeasiblepoints | 严格正整数。intlinprog 在找到 maxfeasiblepoints 个整数可行点时停止。 | 仅限于 | |
maxnodes | 严格正整数,它是求解器在其分支定界过程中探查的最大节点数。 | ||
maxtime | 算法允许的最长时间(以秒为单位)。 | 、、 | |
nodeselection | 选择下一步要探查的节点。 | 仅限于 | |
objectivecutoff | 大于 -inf 的实数。默认值为 inf 。 | 仅限于 | |
objectiveimprovementthreshold | 非负实数。intlinprog 仅在找到目标函数值比当前可行解的目标函数值低至少 objectiveimprovementthreshold 的另一个解时,才会更改当前可行解:(fold – fnew)/(1 |fold|) > objectiveimprovementthreshold。 | 仅限于 | |
objectivelimit | 如果目标函数值低于 | 、、、 | |
optimalitytolerance | 一阶最优性的终止容差。 | 、、、、、、、(仅限于 | 仅限于 。对于 ,使用 tolfun |
outputfcn | 指定优化函数在每次迭代中调用的一个或多个用户定义的函数。传递函数句柄或函数句柄的元胞数组。请参阅或。 | 、、、、、、、、、、、 | |
plotfcn | 绘制算法执行过程中的各个进度测量值。从预定义绘图中选择,或者自行编写。以列表或函数句柄(如
请参阅或。 | 、、、、、、、、、、、。有关适用的值,请参阅各个函数参考页。 | 仅限于 。对于 ,使用 plotfcns |
relativegaptolerance |
| 仅限于 | |
rootlpalgorithm | 求解线性规划的算法:
| 仅限于 | |
rootlpmaxiterations | 非负整数,它是求解初始线性规划问题要进行的单纯形算法迭代的最大次数。 | 仅限于 | |
scaleproblem | 对于 | ||
specifyconstraintgradient | 非线性约束的用户定义梯度。 | 、、 | 仅限于 。对于 ,使用 gradconstr |
specifyobjectivegradient | 目标函数的用户定义梯度或 jacobian 矩阵。 | 、、、、、、、 | 仅限于 。对于 ,使用 gradobj 或 jacobian |
steptolerance | x 的终止容差。 | 除 和 之外的所有函数 | |
subproblemalgorithm | 确定迭代步的计算方式。 | 、、、、、 | |
typicalx | 数组,用于指定由参数 | 、、、、、、、、、 | |
useparallel | 当为 | 、、、、、、。 |
隐藏选项
optimoptions
会“隐藏”一些选项,这意味着它不显示这些选项的值。要了解如何查看这些选项及其被隐藏的原因,请参阅。
函数参考页以斜体列出这些选项。
隐藏的 optimization toolbox 选项
下表列出了隐藏的 optimization toolbox™ 选项。
optimoptions
隐藏的选项
选项名称 | 说明 | 由以下函数使用 | 限制 |
---|---|---|---|
diagnostics | 显示关于要最小化或求解的函数的诊断信息。 | 除 、、、 之外的所有函数 | |
diffmaxchange | 有限差分中变量的最大变化。 | 、、、、、、、 | |
diffminchange | 有限差分中变量的最小变化。 | 、、、、、、、 | |
funvalcheck | 检查目标函数和约束值是否有效。如果为 注意 当
| 、、、、、、、、、、 | |
hesspattern | 用于有限差分的 hessian 矩阵稀疏模式。矩阵的大小是 n×n,其中 n 是起点 | 、 | |
hessupdate | 拟牛顿更新方案。 | ||
initbarrierparam | 初始障碍值。 | ||
initdamping | 初始 levenberg-marquardt 参数。 | 、、 | 仅限于 |
inittrustregionradius | 信赖域的初始半径。 | ||
jacobpattern | 用于有限差分的 jacobian 矩阵稀疏模式。矩阵的大小是 | 、、 | |
lppreprocess | 松弛线性规划解的预处理类型(请参阅线性规划预处理):
| 仅限于 | |
maxpcgiter | 预条件共轭梯度法允许的最大迭代次数。 | 、、、、、、 | |
maxprojcgiter | 投影共轭梯度迭代次数的容差;这是内部迭代,而不是算法的迭代次数。 | ||
maxsqpiter | 序列二次规划法允许的最大迭代次数。 | 、、 | |
meritfunction | 使用目标达到/最小化最大值评价函数(多目标)与 (单目标)。 | 、 | |
precondbandwidth | pcg 的预条件子的上带宽。设置为 | 、、、、、、 | |
preprocess | 单纯形或对偶单纯形算法迭代前的 lp 预处理的级别。 | 仅限于 | |
rellinesrchbnd | 线搜索步长的相对边界。 | 、、、 | |
rellinesrchbndduration |
| 、、、 | |
scaleproblem | 当使用 | 、、 | |
tolconsqp | 内 sqp 迭代的约束违反度容差。 | 、、、 | |
tolpcg | pcg 迭代的终止容差。 | 、、、、、、 | |
tolprojcg | 投影共轭梯度算法的相对容差;这适用于内部迭代,而不适用于算法迭代。 | ||
tolprojcgabs | 投影共轭梯度算法的绝对容差;这适用于内部迭代,而不适用于算法迭代。 |
隐藏的 global optimization toolbox 选项
有关隐藏这些选项的原因,请参阅 (global optimization toolbox)。
optimoptions
隐藏的选项
选项名称 | 由以下函数使用 |
---|---|
cache |
|
cachesize |
|
cachetol |
|
displayinterval |
|
funvalcheck |
|
hybridinterval |
|
initialpenalty |
|
maxmeshsize |
|
meshrotate |
|
migrationdirection |
|
migrationfraction |
|
migrationinterval |
|
penaltyfactor |
|
plotinterval |
|
stalltest |
|
tolbind | patternsearch |