好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

最速下降法VS基本牛顿法程序.doc

8页
  • 卖家[上传人]:cl****1
  • 文档编号:553234450
  • 上传时间:2023-07-10
  • 文档格式:DOC
  • 文档大小:127.50KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 运筹与优化实验报告1日期:2016年口月17日班级14级信计2班 姓名 郭蕾 学号 1401214023实验名称求解无约束优化问题计算的问题:Generalized Rosebrock function 的最优化问题0 (1)二维求 min f (x)=100(x12-%22)+(%1- I)2. 该问题的精确解为x*=(14)r,f(x*)=0.(2)多维求解 min/(%)=二1 心+1 -血2)2 + (1-Xj)2该问题的精确解为 x*=(l,l...... l)r,f(x*)=0.使用的算法:01、 最速卜降法2、 基本牛顿法3、 阻尼牛顿法4、 广义Rosenbrock函数的计算(以基本牛顿法为例)源程序:0、二维函数根据例题计算过程中所要用到的需要提前计算的具体函数(1) 原f(x)函数function 仁f(x)f=100* (x (1 厂 2-X (2)厂 2+(X ⑴ T 厂2;(2) f(x)的梯度函数 function g二ggf(x)g= [400*x (1) ^3-400*x (1)*x (2) +2*x (1)-2, (-200) * (x (1 厂2-x (2))]';(3) Armijo非精确搜索确定newxfunct ion [newx, fnewx]=armi jo (xk, dk)bita二0.5;sigma=0. 2;m=0;while (f(xk+bita'm*dk)>f(xk)+sigma*bita'm*ggf(xk)1*dk)&&(m<=20) m=m+1;endmk=m;alpha二bita^mk;newx二xk+b i ta'mk+dk;fnewx=f (newx);(4) f(x)的 Hesse 矩阵function G二G(x)G=[1200*x (1 厂2-400*x (2) +2. -400*x (1); -400*x (1),200];h最速下降法函数文件funct i on [x. y, k]二mygrad (xk)eps=10z' (-5);k=0;g=ggf (xk);dk二-g;wh i I e norm(g) >eps[nev/x, fnev/x]=armi jo (xk, dk); g二ggf (newx);xk=newx;dk二-g;k=k+1;endx二newx;y=fnewx;2、基本牛顿法函数文件funct i on [x. y, k]=j i benn i udunfa (xk)eps=10" (-6);k=0;wh i Ie norm (ggf (xk))>epsGk=G (xk);dk=-G (xk) \ggf (xk);xk二xk+dk;k=k+1;endx 二 xk;yh (xk);3、 阻尼牛顿法函数文件funct i on [x, y, k] =zun i n i udunfa (xO) eps=10" (-6);k=0;gk二ggf (xO);while norm (ggf (xO))>epsGk=G (xO);dk=-G (xO) \ggf (xO);[xO. fnewx] =armi jo(xO. dk); k=k+1;endx=xO;y=f (xO);4、 广义Rosenbrock函数的计算(以基本牛顿法为例)(1) 广义f(x)函数function f=genf(x)f二 0;n=length(x);c=100;fori=l:n-1f二 f+c* (x (i 厂2-x (i+1)厂 2+(x (i) T 厂2;end(2) 广义f(x)函数的梯度函数function g=geng(x) n=length(x);c=100:g=zeros(n, 1);g (l)=4*c*x(1)*(x(1)^2-x(2))+2*(x(1)-1);g(n)=-2*c*(x(n-l)^2-x(n));fori=2:n-lg(i)=-2*c*(x(i-l) ”2-x(i))+4*c*x(i)*(x(i)“2-x(i+l))+2*(x(i)T); end(3) 广义f(x)函数的Hesse矩阵函数function G=genGG(x)n=length(x);c=100;Gl=zeros (n, 1);Gl(l)二 4*c*(3*x(l 厂 2-x(2))+2;G1 (n)=2*c;fori=2:n-lG1(i)=2*c+4*c*(3*x(i厂2 -x (i+l))+2;endG2=zeros (n-1,1);fori=l:n-1G2(i)二-4*c*x(i);endGG2=zeros(n, n);GG3二GG2;GG2(1: n-1, 2:n)=diag (G2);GG3(2:n, 1:n-l)=diag (G2);G=diag(Gl)+GG2+GG3;(4)广义f(x)函数的基本牛顿法函数 function [x, y, k]=genjibenniudunfa(xk) eps二10八(-6);k=0;% gk=geng(xk);while norm(geng(xk))>epsGk=genGG(xk);dk=-genGG(xk)\geng(xk);xk二xk+dk;k=k+l;endx 二 xk;y=genf(xk);计算结果(1)二维f(x)的各种计算方法的计较初始点迭代次 数(* 速下降法)迭代次 数(基 本牛顿 法)迭代次 数(阻 尼牛顿 法)目标函数 (最速最速 下降法)目标函数(基本牛顿法〉目标函数(阻尼牛顿 法)| (0,0卩29112141.2207e-01001.8052e-022(X0)r2879119. 8399e-01100| (2> l)r8135159. 9630e-0111・ 8242e-0289.5039e-023(2, 0)r27435151.0527e-0107. 8886e-0311.1496e-0221 a-Dr2336111. 1797e-0100■(0,-l)r24075151.0056e-0108. 1386e-0241・ 0346e-02330645201.0321e-0103. 4626e-0233.4593e-016(-1.5,-l)r30165231.1315e-0103.0950e-0257. 0615e-022(-1.2,-l)r30145218. 3467e-0115. 3506e-0242. 2381e-017(10,-10/24375471. 1769e-0101.9721e-0297. 2883e-016通过表格的比较.发现最速下降法的迭代速度最慢.基本牛顿法的迭代速度最快2)以广义f(x)的计算结果当n=10:(其中Armijo准则中的参数取值:bita=0.4;sigma=0.4;)初始点迭代次数 (基本 牛顿 法)迭代次数 (最速下降法)目标函数 (最速下降法)目标函数 (基本牛顿法)<-1.2r 1 -1.11) 14369969.S680436114632S4e-013S.4469626S1390387e-016(0, o...o)11570318.43S62SS813S0841e-021(1, oa,o...1,0)12768199.S86093741912205e-0134.474320446800426 e-03 0(— 1/1/ —1... 1,-1)3269489.666063842858310e-0132.407548160196S79e-019(a-io, -i 12469849.615 664064424106e-0131.2892760928379SSe-014当n=100:(其中Armijo准则中的参数取值:bita=0. 4;sigma=0. 35;)初始点迭代次数(基本 牛顿法)初始点(最速下 降法)目标函数 (最速 下降法)目标函数 (基本 牛顿法)(-1.2, 1> ・...-1.2,1) T150135729.077022871103141e-0133・0204eJ8(g 3U)(o, o...o)773135962.6905e-18<1, 0,10...i,o)1143135509.602294497145972e-0133.1728e-16(1 F — 1/ X —1... X —1)144235473.1390e-24(0, -1,0,-1 ...0,-1) 1142135369.466628512092837e-0138・4423eJ9当 21000:(其中 Armijo 准则中的参数取值:bita=0. 4;sigma=0. 35;)初始点迭代次数(基本 牛顿法)初始点(最速下降法)目标函数(最速 下降法)目标函数 (基本 牛顿法〉(-1.2, 1, ....-1.2,1) 11327(3,21〃)60783(”02〃)1.346889935001003e-017(o, o...o)1324609749・297093285253092e・(H3(1, 0,10... 1,0)11320609229.600089007256923e-0133.827698120096388e-016(1 f — 1/ X —1... X "D132260767(o, ...0,-d 11319610379.2439476681696981013空表瘦色字体表丞质用时闻通过以上三个表格的比较分析发现总体上牛顿法的迭代次数都要比最速下降法少的多,并且当n二10, 100 时,牛顿法所用的时间几乎都少于1秒,比最速下降法的所用时间少,但是当n二1000时,虽然最速下降法的 迭代次数是牛顿法的迭代次数的180倍左右,但是所用时间却是最速下降法的三倍多°说明虽然牛顿法的迭 代次数少,但是如果函数维数变得很大时,在实际应用中所花费的时间太长,还不如最速下降法。

      遇到的问题,体会总结:1、 在编写最速下降法时,忘记更新xk;2、 在机房的时候,编写的梯度函数命名为gf程序没有问题可以运行,但是会都寝室用自己的电 脑时,每次运行都会报错"Undefined function or method ' norm' for i nput arguments of type,gfl”经过不断的实验排除,发现mat lab自带有函数GF,可能会命名重复不合适, 所以把gf全部改为ggf,运行成功3、 geng和genG命名重复,于是把genG命名修改为genGG,但是在其他函数。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.