所有的算法 |
算法
|
选择fminunc 算法。的选择是“拟牛顿” (默认)或“信赖域” 。 的“信赖域” 算法需要你提供梯度(见的描述有趣的 ),否则fminunc 使用“拟牛顿” 算法。选择算法的信息,请参阅选择算法。 |
CheckGradients |
比较用户提供衍生品(客观的梯度)有限差分衍生品。的选择是假 (默认)或真正的 。 为optimset ,名字是DerivativeCheck 和值“上” 或“关闭” 。看到当前和遗留选项名称表。 |
诊断 |
显示诊断信息函数最小化或解决。的选择是“关闭” (默认)或“上” 。 |
DiffMaxChange |
最大的有限差分的变量变化梯度(积极的标量)。默认值是正 。 |
DiffMinChange |
最低有限差分的变量变化梯度(积极的标量)。默认值是0 。 |
显示 |
显示(见水平迭代显示):
“关闭” 或“没有” 显示没有输出。
“通路” 在每个迭代中显示输出,给出了默认退出消息。
“iter-detailed” 在每个迭代中显示输出,给出了技术退出消息。
“通知” 显示输出只有在函数不收敛,并给出默认退出消息。
“notify-detailed” 显示输出只有在函数不收敛,并给出技术退出消息。
“最后一次” (默认)只显示最终的输出,并给出默认退出消息。
最后详细的 只显示最终的输出,并给出了技术退出消息。
|
FiniteDifferenceStepSize |
标量或矢量步长因子有限的差异。当您设置FiniteDifferenceStepSize 一个向量v 向前,有限的差异δ 是
δ= v *信号′(x) *马克斯(abs (x)、TypicalX);
在哪里信号′(x) =标志(x) 除了信号′(0)= 1 。中央有限的差异是
δ= v *马克斯(abs (x)、TypicalX);
标量FiniteDifferenceStepSize 扩大到一个向量。默认值是sqrt (eps) 向前有限的差异,eps ^ (1/3) 中央有限的差异。信赖域算法使用FiniteDifferenceStepSize 只有当CheckGradients 被设置为真正的 。 为optimset ,名字是FinDiffRelStep 。看到当前和遗留选项名称表。 |
FiniteDifferenceType |
有限的差异,用于估算梯度,要么“前进” (默认),或“中央” (中心)。“中央” 需要两倍的功能评估,但应该更准确。信赖域算法使用FiniteDifferenceType 只有当CheckGradients 被设置为真正的 。 为optimset ,名字是FinDiffType 。看到当前和遗留选项名称表。 |
FunValCheck |
检查目标函数值是否有效。默认设置,“关闭” ,不执行一个检查。的“上” 设置显示一个错误当目标函数返回一个值复杂的 ,正 ,或南 。 |
MaxFunctionEvaluations |
最大允许函数值的运算次数,一个正整数。默认值是100 * numberOfVariables 。看到公差和停止条件和迭代和函数计算。 为optimset ,名字是MaxFunEvals 。看到当前和遗留选项名称表。 |
MaxIterations |
最大允许的迭代次数,一个正整数。默认值是400年 。看到公差和停止条件和迭代和函数计算。 为optimset ,名字是麦克斯特 。看到当前和遗留选项名称表。 |
OptimalityTolerance |
终止宽容的一阶最优性(积极的标量)。默认值是1 e-6 。看到一阶最优性测量。 为optimset ,名字是TolFun 。看到当前和遗留选项名称表。 |
OutputFcn |
指定一个或多个用户定义的函数,每个迭代的优化函数调用。通过一个函数处理或处理单元阵列的功能。默认是没有([] )。看到输出函数的语法。 |
PlotFcn |
情节在算法执行时进步的各种措施;从预定义的情节或编写自己的选择。通过一个内置的函数名,函数处理,或单元阵列的内置函数名或函数处理。自定义绘制函数,通过函数处理。默认是没有([] ):
“optimplotx” 当前点的阴谋。
“optimplotfunccount” 情节数的函数。
“optimplotfval” 情节的函数值。
“optimplotstepsize” 情节的步长。
“optimplotfirstorderopt” 情节一阶最优性措施。
自定义函数使用相同的语法作为输出函数。看到输出函数和输出函数的语法。 为optimset ,名字是PlotFcns 。看到当前和遗留选项名称表。 |
SpecifyObjectiveGradient |
由用户定义的目标函数的梯度。看到的描述有趣的 看到如何定义的梯度有趣的 。设置为真正的 有fminunc 使用一个用户定义的目标函数的梯度。默认的假 原因fminunc 估计使用有限差分梯度。你必须提供的梯度,并设置SpecifyObjectiveGradient 来真正的 ,利用信赖域算法。这个选项不需要拟牛顿算法。 为optimset ,名字是GradObj 和值“上” 或“关闭” 。看到当前和遗留选项名称表。 |
StepTolerance |
终止上公差x ,一个积极的标量。默认值是1 e-6 。看到公差和停止条件。 为optimset ,名字是TolX 。看到当前和遗留选项名称表。 |
TypicalX |
典型的x 值。元素的数量TypicalX 等于元素的数量x0 的起点。默认值是的(numberofvariables, 1) 。fminunc 使用TypicalX 为扩展有限差分梯度估计。 的信赖域 算法使用TypicalX 只是为了CheckGradients 选择。 |
信赖域 算法 |
FunctionTolerance |
终止公差函数值,一个积极的标量。默认值是1 e-6 。看到公差和停止条件。 为optimset ,名字是TolFun 。看到当前和遗留选项名称表。 |
HessianFcn |
如果设置为[] (默认),fminunc 接近黑森使用有限的差异。 如果设置为“目标” ,fminunc 为目标函数使用一个用户定义的黑森。海赛第三输出的目标函数(见有趣的 )。 为optimset ,名字是HessFcn 。看到当前和遗留选项名称表。 |
HessianMultiplyFcn |
黑森乘法函数,指定为一个函数处理。大规模的结构性问题,这个函数计算海赛矩阵产品H * Y 没有真正形成H 。的函数形式
在哪里Hinfo 包含用于计算的矩阵H * Y 。 第一个参数是一样的第三个参数返回的目标函数有趣的 例如,
Y 是一个矩阵的行数一样有尺寸问题。矩阵W = H * Y ,虽然H 不是显式地形成的。fminunc 使用Hinfo 计算预调节器。信息如何提供任何额外的参数的值hmfun 需要,请参阅传递额外的参数。
请注意
使用HessianMultiplyFcn 选项,HessianFcn 必须设置为[] 。
例如,看到的最小化茂密的结构化的麻绳,线性等式。 为optimset ,名字是HessMult 。看到当前和遗留选项名称表。 |
HessPattern |
稀疏的黑森有限差分模式。集HessPattern (i, j) = 1 当你可以∂2有趣的 /∂x(我) ∂x (j) ≠0。否则,设置HessPattern (i, j) = 0 。 使用HessPattern 时不方便计算海赛矩阵H 在有趣的 ,但你可以决定(验货)我 组件的梯度有趣的 取决于x (j) 。fminunc 可以近似H 通过稀疏有限差分(梯度)如果你提供稀疏结构的H 的价值HessPattern 。换句话说,提供非零的位置。 当结构是未知的,不确定HessPattern 。就好像默认行为HessPattern 是一个稠密矩阵的。然后fminunc 在每个迭代计算完整的有限差分近似。这个计算可以为大问题是昂贵的,所以通常是更好的确定稀疏结构。 |
MaxPCGIter |
最大数量的预处理共轭梯度迭代(PCG),一个积极的标量。默认值是马克斯(1楼(numberOfVariables / 2)) 。有关更多信息,请参见信赖域算法。 |
PrecondBandWidth |
上的带宽预调节器PCG,一个非负整数。默认情况下,fminunc 上层的带宽使用对角预处理(0)。对于某些问题,增加带宽减少了PCG迭代的数量。设置PrecondBandWidth 来正 使用直接分解(柯列斯基)而非共轭梯度(CG)。直接分解比CG计算更贵,但质量更好一步生成解决方案。 |
SubproblemAlgorithm |
确定迭代步骤是如何计算的。默认的,“重心” ,但不准确的步骤需要一个速度更快“分解” 。看到fminunc信赖域算法。 |
TolPCG |
在PCG迭代终止宽容,积极的标量。默认值是0.1 。 |
拟牛顿 算法 |
HessUpdate |
方法选择拟牛顿算法的搜索方向。的选择是:
“蓄热” ,默认的
“dfp”
“steepdesc”
看到拟牛顿算法和黑森更新对这些方法的描述。
|
ObjectiveLimit |
宽容(停止准则)是一个标量。如果迭代的目标函数值小于或等于ObjectiveLimit 迭代停止,因为问题可能是无界的。默认值是1 e20 。 |
UseParallel |
当真正的 ,fminunc 估计并行梯度。禁用默认设置,假 。信赖域 需要一个梯度的目标UseParallel 不适用。看到并行计算。 |