资源描述:
《实用最优化方法编程大作业_数学_自然科学_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用最优化方法编程大作业级名师号班姓指学大连理工大学2015年11月27日版木号:MATLAB7.11.0(R2010b)利用Wolfe-Powell准则求解下面问题:min卩(入)=f(xk+Xsk)其中f(x)=100(X2—x孑尸+(1-X1)2xk=(-1,1)7【文件名WP.m]functionx=WP(f,xO,var,sO,eps)clcsymsxlx2;cl=0.1;c2=0.5;b二inf;lambdE;ifnargin==4eps二1.Oe-6;endgradf=jacobian(f,var);gO二
2、subs(gradf,var,xO);fO=subs(f,var,xO);gs二gO*sO';a=0;j二0;whilej<1000new_x=x0+lambda*s0;nowf=subs(f,var,newx);left=fO-nowf;new_g=subs(gradf,var,new_x);new_gs=new_g*s0‘;right二一1*c1*1ambda*gs;ifleft3、newgs;right2=c2*g0;ifIeft24、X2+2x?+x
5、—X2X3+2xi+3x2—心其中步长g的选取可利用习题1或精确一维搜索•【文件名minGETD.m】function[x,minf]=minGETD(f,xO,var,eps)clcsymsxlx2x3formatlong;n=length(xO);ifnargin=3ops二1.0e-3;endx0=x0,;symslambda;gradf=jacobian(f,var);g二subs(gradf,var,xO);s=-g,;k=0;while1t.ol=norm(double(g));iftol〈
6、二epsx=x0;break;endxl二xO+lambda*s;fl二subs(f,var,xl);dvl=diff(fl);lambdaO^solve(dy1);xl=xO+lambdaO*s;gl二subs(gradf,var,xl)tol二norm(double(gl))iftol<=epsx=xl;break;endifk+l==nxO=xl;continue;elsemiu二dot(gl,gl)/dot(g,g)s二-gl'+miu*s;k二k+l;xO二xl;endendx在CommandWindow输入:
7、symsxlx2x3x0=[000];var=[xlx2x3];f=xr2-2*x1*x2+2*x2“2+x3八2-x2*x3+2*x1+3*x2-x3;minGETD(f,xO,var,eps)程序运行后可得出结果:x=[-236894/59711,-178563/59711,-59465/59711]可认为最终解为[-4,-3,T]。习题3取初始点x°=(L0)7,利用变尺度算法求解下面无约束优化问题:minf(x)=xi+2x?+exp(xf+x/其中步长g的选取可利用习题1或精确一维搜索.。取协=/,此时为最速下
8、降法,e取Hk=[S^x*)]-1,此时为牛顿法,。取皿为BFGS公式.通过此习题体会上述三种算法的收敛速度【文件名Excise,m]function[x,minf]=Excise_3(f,xO,var,method,eps)%method表略法,1时为最速下降法,2时为牛顿法,3为BFGSclcticsymsxlx2formatlong;ifnargin==4eps=l.Oe-6;endn=length(xO);H0=eye(2);xO=xO,;gradf=jacobian(f,var);gO=subs(gradf,v
9、ar,xO)';s=-HO*gO;k二0;j二0;%检查初始点是否为最优点tol二norm(double(gO));iftol<=epsx=x0;minf二subs(f,var,x);return;endwhile1lambdaO=WP(f,xO',var,s');xl=xO+lambda0*s;fl=subs(f,