网站大量收购独家精品文档,联系QQ:2885784924

新运筹学与最优化MATLAB编程 教学课件 吴祈宗 郑志勇 第6章.ppt

新运筹学与最优化MATLAB编程 教学课件 吴祈宗 郑志勇 第6章.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.7 大规模无约束优化问题 在计算大规模的无约束问题时,都会对原有算法采用一些有效的数值处理技术。由于该类数值计算比较复杂,这里不再详述,以下仅介绍具体的使用方法。 1.测试函数 2. Fminunc函数的使用 (1) 目标函数程序:LargObjFun.m (2) 函数调用 largUnc.m 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 第6章 无约束优化算法 6.1 最优性条件 6.2 最速下降法 6.3 牛顿算法 6.4 拟牛顿算法(变尺度法) 6.5 单纯形法 6.6 含参数的优化问题 6.7 大规模无约束优化问题 第6章 无约束优化算法 图 6-1 6.1 最优性条件 1.极小点的一阶必要条件 2.极小点的二阶必要条件 3.极小点的二阶充分条件 6.2 最速下降法 6.2.1 算法原理 6.2.2 算法步骤 6.2.3 程序示例 6.2.1 算法原理 图 6-2 6.2.2 算法步骤 6.2.3 程序示例 1.目标函数程序BanaFun.m与BanaFunWithGrad.m 2.参数设置(steepdesc.m) 3.函数计算(steepdesc.m) 1.目标函数程序BanaFun.m与BanaFunWithGrad.m function f=BanaFun(x) (不含导数解析式) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2; function [f,g]=BanaFunWithGrad(x) (含导数解析式) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2; g=[100*(4*x(1)^3-4*x(1)*x(2))+2*x(1)-2; 100*(2*x(2)-2*x(1)^2)]; 2.参数设置(steepdesc.m) LargeScale,off大规模计算模式关闭 HessUpdate,steepdescHess阵修正方式, 采用最速下降法(不需要修正) gradobj,on目标函数导数解析式, on使用, off不使用(差分导数) MaxFunEvals,250最大目标函数计算次数, 250次 3.函数计算(steepdesc.m) x=[-1.9,2]; 初始迭代点 [x,fval,exitflag,output]=fminunc(@BanaFunWithGrad,x,OPTIONS) 6.3 牛顿算法 6.3.1 算法原理 6.3.2 算法步骤 6.3.3 算法特点 6.3.1 算法原理 牛顿算法的基本思想是利用二次函数近似目标函数, 比最速下降法的一次函数更进了一步, 将次二次函数的极小点作为新的迭代点。 6.3.2 算法步骤 给定控制误差ε>0。 步骤1: 取初始点x(0), 令k=0。 步骤2: 计算Δ2f(x(k))。 步骤3: 若s<ε, 则停机, x*=x(k+1); 否则k=k+1, 转步骤2。 6.3.3 算法特点 (1) 牛顿算法是局部收敛的。 (2) 牛顿算法不是下降算法,当二阶Hesse阵非正定时,不能保证产生的方向是下降方向。 (3) 二阶Hesse阵Δ2f(xk)必须可逆,否则算法进行困难。 (4) 对函数要求苛刻(二阶可微,Hesse阵可拟),运算量巨大。 6.4 拟牛顿算法(变尺度法) 6.4.1 算法原理 6.4.2 算法步骤 6.4.3 算法性质 6.4.4 程序示例 6.4.1 算法原理 拟牛顿算法对牛顿算法有两个重要的改进:一是选用对称正定矩阵可以对搜索方向保证下降性质;二是改进变尺度矩阵,通过逐步迭代修正产生,从而避开逐点计算二阶偏导数的大量计算。 6.4.2 算法步骤 拟牛顿算法的具体步骤如下: 步骤1: 给定初始点x(0)、 初始矩阵H(0)(通常取单位阵), 计算g(0),令k=0。 步骤2: 令p=-H*g。 步骤3: 由一维搜索(精确或不精确)确定步长α。 6.4.3 算法性质 (1) 对正定二次函数,精确一维搜索有二次终结性,且对任意初始对称矩阵H(0)有H(n+1)=G-1。 (2) 在(1)的前提下,迭代变量满足拟牛顿方程。 (3) 在(1)的前提下算法产生共轭的方向,当H(0)=I时,产生的梯度相互共轭。 6.4.4 程序示例 (1) 目标函数程序BanaFun.m与BanaFunWithGrad.m (2) 参数设置quasinewton.m (3) 函数计算 (1) 目标函数程序BanaFun.m与BanaFunWithGrad.m function f=BanaFun(x) (不含导数解析式) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2; function [f,g]=Ban

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档