电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

优化方法-2016VIP免费

优化方法-2016_第1页
1/19
优化方法-2016_第2页
2/19
优化方法-2016_第3页
3/19
优化方法上机大作业上机大作业Ⅰ:编写程序求解下述问题minxf(x)=(1−x1)2+100(x2–x12)2.初始点取x0=0,精度取ε=1e−4,步长由Armijo线搜索生成,方向分别由下列方法生成:1最速下降法2牛顿法3BFGS方法4共轭梯度法1.最速下降法源程序如下:functionx_star=steepest(x0,eps)gk=grad(x0);res=norm(gk);k=0;whileres>eps&&k<=1000dk=-gk;ak=1;f0=fun(x0);f1=fun(x0+ak*dk);slope=dot(gk,dk);whilef1>f0+0.1*ak*slopeak=ak/2;xk=x0+ak*dk;f1=fun(xk);endk=k+1;x0=xk;gk=grad(xk);res=norm(gk);fprintf('--The%d-thiter,theresidualis%f\n',k,res);endx_star=xk;endfunctionf=fun(x)f=(1-x(1))^2+100*(x(2)-x(1)^2)^2;endfunctiong=grad(x)g=zeros(2,1);g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2));g(2)=200*(x(2)-x(1)^2);end运行结果:>>x0=[0,0]';eps=1e-4eps=1.0000e-004>>xk=steepest(x0,eps)--The1-thiter,theresidualis3.271712--The2-thiter,theresidualis2.504194--The3-thiter,theresidualis2.073282……………………………--The998-thiter,theresidualis0.449447--The999-thiter,theresidualis0.449447--The1000-thiter,theresidualis0.449447--The1001-thiter,theresidualis0.449447xk=0.63690.40382.牛顿法源程序如下:functionx_star=newton(x0,eps)gk=grad(x0);bk=[grad2(x0)]^(-1);res=norm(gk);k=0;whileres>eps&&k<=1000dk=-bk*gk;xk=x0+dk;k=k+1;x0=xk;gk=grad(xk);bk=[grad2(xk)]^(-1);res=norm(gk);fprintf('--The%d-thiter,theresidualis%f\n',k,res);endx_star=xk;endfunctionf=fun(x)f=(1-x(1))^2+100*(x(2)-x(1)^2)^2;endfunctiong=grad2(x)g=zeros(2,2);g(1,1)=2+400*(3*x(1)^2-x(2));g(1,2)=-400*x(1);g(2,1)=-400*x(1);g(2,2)=200;endfunctiong=grad(x)g=zeros(2,1);g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2));g(2)=200*(x(2)-x(1)^2);end运行结果:>>x0=[0,0]';eps=1e-4;>>xk=newton(x0,eps)--The1-thiter,theresidualis447.213595--The2-thiter,theresidualis0.000000xk=1.00001.00003.BFGS方法源程序如下:functionx_star=bfgs(x0,eps)g0=grad(x0);gk=g0;res=norm(gk);Hk=eye(2);k=0;whileres>eps&&k<=1000dk=-Hk*gk;ak=1;f0=fun(x0);f1=fun(x0+ak*dk);slope=dot(gk,dk);whilef1>f0+0.1*ak*slopeak=ak/2;xk=x0+ak*dk;f1=fun(xk);endk=k+1;fa0=xk-x0;x0=xk;g0=gk;gk=grad(xk);y0=gk-g0;Hk=((eye(2)-fa0*(y0)')/((fa0)'*(y0)))*((eye(2)-(y0)*(fa0)')/((fa0)'*(y0)))+(fa0*(fa0)')/((fa0)'*(y0));res=norm(gk);fprintf('--The%d-thiter,theresidualis%f\n',k,res);endx_star=xk;endfunctionf=fun(x)f=(1-x(1))^2+100*(x(2)-x(1)^2)^2;endfunctiong=grad(x)g=zeros(2,1);g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2));g(2)=200*(x(2)-x(1)^2);end运行结果:>>x0=[0,0]';>>eps=1e-4;>>xk=bfgs(x0,eps)--The1-thiter,theresidualis3.271712--The2-thiter,theresidualis2.381565--The3-thiter,theresidualis3.448742……………………………--The998-thiter,theresidualis0.004690--The999-thiter,theresidualis0.008407--The1000-thiter,theresidualis0.005314--The1001-thiter,theresidualis0.010880xk=0.99550.99114.共轭梯度法源程序如下:functionx_star=conj(x0,eps)gk=grad(x0);res=norm(gk);k=0;dk=-gk;whileres>eps&&k<=1000ak=1;f0=fun(x0);f1=fun(x0+ak*dk);slope=dot(gk,dk);whilef1>f0+0.1*ak*slopeak=ak/2;xk=x0+ak*dk;f1=fun(xk);endd0=dk;g0=gk;k=k+1;x0=xk;gk=grad(xk);f=(norm(gk)/norm(g0))^2;res=norm(gk);dk=-gk+f*d0;fprintf('--The%d-thiter,theresidualis%f\n',k,res);endx_star=xk;endfunctionf=fun(x)f=(1-x(1))^2+100*(x(2)-x(1)^2)^2;endfunctiong=grad(x)g=zeros(2,1);g(1)=400*x(1)^3-400*x(1)*x(2)+2*x(1)-2;g(2)=-200*x(1)^2+200*x(2);end运行结果:>>x0=[0,0]';>>eps=1e-4;>>xk=Conj(x0,eps)--The1-thiter,theresidualis3.271712--The2-thiter,theresidualis1.380542--The3-thiter,theresidualis4.527780--The4-thiter,theresidualis0.850...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

优化方法-2016

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部