最优化牛顿法最速下降法共轭梯度法matlab代码(共8页).docx
《最优化牛顿法最速下降法共轭梯度法matlab代码(共8页).docx》由会员分享,可在线阅读,更多相关《最优化牛顿法最速下降法共轭梯度法matlab代码(共8页).docx(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上牛顿法迭代公式:Matlab代码:function x1,k =newton(x1,eps)hs=inline(x-1)4+y2); 写入函数ezcontour(hs,-10 10 -10 10); 建立坐标系hold on; 显示图像syms x y 定义变量f=(x-1)4+y2; 定义函数grad1=jacobian(f,x,y); 求f的一阶梯度grad2=jacobian(grad1,x,y); 求f的二阶梯度k=0; 迭代初始值while 1 循环grad1z=subs(subs(grad1,x,x1(1),y,x1(2); 给f一阶梯度赋初值grad2z
2、=subs(subs(grad2,x,x1(1),y,x1(2); 给f二阶梯度赋初值 x2=x1-inv(grad2z)*(grad1z); 核心迭代公式if norm(x1-x2)eps 黄金分割法 dfx=-fx(x0,y0); dfy=-fy(x0,y0);tl=0;tr=1;确定一维搜索的区间 h=3; nn=0; gerr=10; geps=10(-4); while gerrgeps tll=tl+0.382*abs(tr-tl); trr=tl+0.618*abs(tr-tl); if f(x0+tll*h*dfx,y0+tll*h*dfy)f(x0+trr*h*dfx,y0+
3、trr*h*dfy) tl=tll; else tr=trr; end gerr=abs(tl-tr); 区间的长度之差 tt=0.5*(tl+tr); nn=nn+1;步数增加 if nn200 迭代终止条件 break end end x0=x0+tt*h*dfx; 重新迭代 y0=y0+tt*h*dfy; err=sqrt(fx(x0,y0)2+fy(x0,y0)2); mm=mm+1;步数增加 if mm700 迭代步数超过700,终止 break endendres=x0,y0;输出最后的x,y。toc 计算运行时间拟牛顿法(DFP算法) 这是一个脚本文件可以直接运行syms x1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 牛顿 法最速 下降 共轭 梯度 matlab 代码
限制150内