1 / 84
文档名称:

最优化方法地Matlab实现(公式(完整版)).docx

格式:docx   大小:108KB   页数:84页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最优化方法地Matlab实现(公式(完整版)).docx

上传人:2024678321 2020/11/17 文件大小:108 KB

下载得到文件列表

最优化方法地Matlab实现(公式(完整版)).docx

文档介绍

文档介绍:: .
WORD 格式可编辑
变量:
表 9-7 中为输入变量,表 9-8 中为输出变量的描述。
表 9-17 输出变量描述表
变 量 描 述
为目标函数。 需要最小化的目标函数。 fun 函数需要输入标量参数 x,返回 x 处的目标函数标量
值 f 。可以将 fun 函数指定为命令行,如
x = fminbnd(inline('sin(x*x)'),x0)
同样, fun 参数可以是一个包含函数名的字符串。对应的函数可以是 M文件、内部函数或 MEX
文件。若 fun='myfun' ,则 M文件函数 必须有下面的形式:
function f = myfun(x)
f = ... % 计算 x 处的函数值。
若 fun 函数的梯度可以算得,且 设为'on' (用下式设定) ,
options = optimset('GradObj','on')
则 fun 函数必须返回解 x 处的梯度向量 g 到第二个输出变量中去。注意,当被调用的 fun 函数
只需要一个输出变量时(如算法只需要目标函数的值而不需要其梯度值时),可以通过核对
nargout 的值来避免计算梯度值。
fun
function [f,g] = myfun(x)
f = ... % 计算 x 处得函数值。
if nargout > 1 % 调用 fun 函数并要求有两个输出变量。
g = ... % 计算 x 处的梯度值。
end
若 Hessian 矩阵也可以求得,并且 设为'on', 即,
options = optimset('Hessian','on')
则 fun 函数必须返回解 x 处的 Hessian 对称矩阵 H 到第三个输出变量中去。注意,当被调用的
fun 函数只需要一个或两个输出变量时(如算法只需要目标函数的值 f 和梯度值 g 而不需要
Hessian 矩阵 H 时),可以通过核对 nargout 的值来避免计算 Hessian 矩阵
function [f,g,H] = myfun(x)
f = ... % 计算 x 处得函数值。
专业知识分享
WORD 格式可编辑
if nargout > 1 % 调用 fun 函数并要求有两个输出变量。
g = ... % 计算 x 处的梯度值。
if nargout > 2
H = ... % 计算 x 处的 Hessian 矩阵。
end
优化参数选项。 可以通过 optimset 函数设置或改变这些参数。 其中有的参数适用于所有的优化
算法,有的则只适用于大型优化问题,另外一些则只适用于中型问题。
首先描述适用于大型问题的选项。这仅仅是一个参考,因为使用大型问题算法有一些条件。对
于 fminunc 函数来说,必须提供梯度信息。
LargeScale – 当设为 'on' 时使用大型算法,若设为 'off' 则使用中型问题的算法。
适用于大型和中型算法的参数:
Diagnostics – 打印最小化函数的诊断信息。
Display – 显示水平。选择 'off' ,不显示输出;选择 'iter' ,显示每一步迭代过程的
输出;选择 'final' ,显示最终结果。打印最小化函数的诊断信息。
GradObj – 用户定义的目标函数的梯度。对于大型问题此参数是必选的,对于中型问题
则是可选项。
options MaxFunEvals – 函数评价的最大次数。
MaxIter – 最大允许迭代次数。
TolFun – 函数值的终止容限。
TolX – x 处的终止容限。
只用于大型算法的参数:
Hessian – 用户定义的目标函数的 Hessian 矩阵。
HessPattern – 用于有限差分的 Hessian 矩阵的稀疏形式。若不方便求 fun 函数的稀疏
Hessian 矩阵 H,可以通过用梯度的有限差分获得的 H的稀疏结构 (如非零值的位置等) 来得到
近似的 Hessian 矩阵 H。若连矩阵的稀疏结构都不知道,则可以将 HessPattern 设为密集矩阵,
在每一次迭代过程