欢迎来到天天文库
浏览记录
ID:57675015
大小:13.00 KB
页数:2页
时间:2020-08-31
《利用梯度法和牛顿法编程求最优解(matlab).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用梯度法和牛顿法编程求最优解(matlab)软件类2010-11-0915:46:36阅读197评论0 字号:大中小 订阅f(x)=x1^2+4*x2^2 x0=[2;2] e=0.002利用梯度法和牛顿法编程求最优解方法一.梯度法functiony=fun(x1,x2)y=x1^2+4*x2^2; %定义fun.m函数clcsymsx1x2d;f=x1^2+4*x2^2;fx1=diff(f,'x1');fx2=diff(f,'x2');x1=2;x2=2;forn=1:100f0=subs(f);f1=subs(fx1);f2=subs(f
2、x2);if(double(sqrt(f1^2+f2^2))<=0.002)nvpa(x1)vpa(x2)vpa(f0)break;elseD=fun(x1-d*f1,x2-d*f2);Dd=diff(D,'d');dd=solve(Dd);x1=x1-dd*f1;x2=x2-dd*f2;endend %结果n=10,x1=0.2223e-3,x2=-0.1390e-4,f0=0.5021e-7.方法二.牛顿法clcsymsx1x2;f=x1^2+4*x2^2;fx1=diff(f,'x1');fx2=diff(f,'x2');f
3、x1x1=diff(fx1,'x1');fx1x2=diff(fx1,'x2');fx2x1=diff(fx2,'x1');fx2x2=diff(fx2,'x2');x1=2;x2=2;forn=1:100f0=subs(f);f1=subs(fx1);f2=subs(fx2);if(double(sqrt(f1^2+f2^2))<=0.002)nx1=vpa(x1,4)x2=vpa(x2,4)f0=vpa(f0,4)break;elseX=[x1x2]'-inv([fx1x1fx1x2;fx2x1fx2x2])*[f1f2]';x1=X[1,1];x2=X
4、[2,1];endend %结果n=2,x1=0,x2=0,f0=0.
此文档下载收益归作者所有