实用最优化方法编程大作业.doc

实用最优化方法编程大作业.doc

ID:49531230

大小:356.97 KB

页数:13页

时间:2020-03-02

实用最优化方法编程大作业.doc_第1页
实用最优化方法编程大作业.doc_第2页
实用最优化方法编程大作业.doc_第3页
实用最优化方法编程大作业.doc_第4页
实用最优化方法编程大作业.doc_第5页
资源描述:

《实用最优化方法编程大作业.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用最优化方法编程大作业班级:姓名:指导老师:学号:大连理工大学2015年11月27日版本号:MATLAB7.11.0(R2010b)【文件名WP.m】functionx=WP(f,x0,var,s0,eps)clcsymsx1x2;c1=0.1;c2=0.5;b=inf;lambda=1;ifnargin==4eps=1.0e-6;endgradf=jacobian(f,var);g0=subs(gradf,var,x0);f0=subs(f,var,x0);gs=g0*s0';a=0;j=0;whilej<1000new_x=x0+lambda*s0;ne

2、w_f=subs(f,var,new_x);left=f0-new_f;new_g=subs(gradf,var,new_x);new_gs=new_g*s0';right=-1*c1*lambda*gs;ifleft

3、mbda;break;endendend在CommandWindow输入:symsx1x2WP(100*(x2-x1^2)^2+(1-x1)^2,[-1,1],[x1x2],[11])程序运行后可得出结果:ans=0.0039【文件名minGETD.m】function[x,minf]=minGETD(f,x0,var,eps)clcsymsx1x2x3formatlong;n=length(x0);ifnargin==3eps=1.0e-3;endx0=x0';symslambda;gradf=jacobian(f,var);g=subs(gradf,var

4、,x0);s=-g';k=0;while1tol=norm(double(g));iftol<=epsx=x0;break;12endx1=x0+lambda*s;f1=subs(f,var,x1);dy1=diff(f1);lambda0=solve(dy1);x1=x0+lambda0*s;g1=subs(gradf,var,x1)tol=norm(double(g1))iftol<=epsx=x1;break;endifk+1==nx0=x1;continue;elsemiu=dot(g1,g1)/dot(g,g)s=-g1'+miu*s;k=k+1;x

5、0=x1;endendx在CommandWindow输入:symsx1x2x3x0=[000];var=[x1x2x3];f=x1^2-2*x1*x2+2*x2^2+x3^2-x2*x3+2*x1+3*x2-x3;minGETD(f,x0,var,eps)程序运行后可得出结果:x=[-236894/59711,-178563/59711,-59465/59711]可认为最终解为[-4,-3,-1]。12【文件名Excise.m】function[x,minf]=Excise_3(f,x0,var,method,eps)%method表算法,1时为最速下降法,2

6、时为牛顿法,3为BFGSclcticsymsx1x2formatlong;ifnargin==4eps=1.0e-6;endn=length(x0);H0=eye(2);x0=x0';gradf=jacobian(f,var);g0=subs(gradf,var,x0)';s=-H0*g0;k=0;j=0;%检查初始点是否为最优点tol=norm(double(g0));iftol<=epsx=x0;minf=subs(f,var,x);return;endwhile1lambda0=WP(f,x0',var,s');x1=x0+lambda0*s;12f1=

7、subs(f,var,x1);g1=subs(gradf,var,x1)';tol=norm(double(g1));iftol<=epsx=x1;break;endifk+1==nx0=x1;H0=eye(2);s=-subs(gradf,var,x0)';k=0;continue;elseswitchmethodcase1%最速下降法H1=eye(n);case2%牛顿法Hesse=jacobian(gradf,var)H1=inv(subs(Hesse,var,x1));case3%BFGSd_x=x1-x0;d_g=g1-g0;v=d_x/(d_x'*

8、d_g)-H0*d_g/(d_g'*H

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。