版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
优化措施上机大作业机械工程与材料能源学部能源与动力学院能源与环境工程联络方式:
x0=[0;1]T;%初始值s0=[-1;1]T;%初始搜索方向c1=0.1;c2=0.5;a=0;b=inf;d=1;n=0;x1=x0+d*s0;g0=[(x0(2)-x0(1)^2)*x0(1)-2*(1-x0(1));(x0(2)-x0(1)^2)];g1=[(x1(2)-x1(1)^2)*x1(1)-2*(1-x1(1));(x1(2)-x1(1)^2)];f1=(x1(2)-x1(1)^2)^2+(1-x1(1))^2;f0=(x0(2)-x0(1)^2)^2+(1-x0(1))^2;while((f0-f1<-c1*d*g0'*s0)||(g1'*s0<c2*g0'*s0))if((f0-f1)<(-c1*d*g0'*s0))b=d;d=(d+a)/2;x1=x0+d*s0;g0=[(x0(2)-x0(1)^2)*x0(1)-2*(1-x0(1));(x0(2)-x0(1)^2)];g1=[(x1(2)-x1(1)^2)*x1(1)-2*(1-x1(1));(x1(2)-x1(1)^2)];f1=(x1(2)-x1(1)^2)^2+(1-x1(1))^2;f0=(x0(2)-x0(1)^2)^2+(1-x0(1))^2;elseif(((g1')*s0)<(c2*(g0')*s0))a=d;if(2*d<=(d+b)/2)d=2*d;elsed=(d+b)/2;endx1=x0+d*s0;g0=[(x0(2)-x0(1)^2)*x0(1)-2*(1-x0(1));(x0(2)-x0(1)^2)];g1=[(x1(2)-x1(1)^2)*x1(1)-2*(1-x1(1));(x1(2)-x1(1)^2)];f1=(x1(2)-x1(1)^2)^2+(1-x1(1))^2;f0=(x0(2)-x0(1)^2)^2+(1-x0(1))^2;endendx1f1=(x1(2)-x1(1)^2)^2+(1-x1(1))^2x1=-0.00001.0000d=1.1102e-016f1=2functionf=fun(x)%UNTITLED3Summaryofthisfunctiongoeshere%Detailedexplanationgoesheref=x(1)^2-2*x(1)*x(2)+2*x(2)^2+x(3)^2+x(4)^2-x(2)*x(3)+2*x(1)+3*x(2)-x(3);Endfunctiong=fun(x)%UNTITLED4Summaryofthisfunctiongoeshere%Detailedexplanationgoeshereg=[2-200;-24-10;0-120;0002]*x+[2;3;-1;0];endx0=[0;0;0;0];%初始值eps=1.0e-4;%精度g0=gfun(x0);s0=-g0;n=0;symsd1;whilenorm(g0)>epsifn<3g=gfun(x0+d1*s0);d=double(solve(s0'*g));x1=x0+d*s0;g1=gfun(x1);ifnorm(g1)<epsn=n+1;x0=x1;breakelses0=-g1+(norm(g1)^2/norm(g0)^2)*s0;x0=x1;g0=g1;endelseifn=3x0=x1;g0=gfun(x0);s0=-g0;n=0;endn=n+1;endx0nfun(x0)x0=-4-3-10n=3ans=-8functionf=fun3_1(x)%FUN3Summaryofthisfunctiongoeshere%Detailedexplanationgoesheref=x(1)+2*x(2)^2+exp(x(1)^2+x(2)^2);endfunctiong=gfun3_1(x)%GFUN3_1Summaryofthisfunctiongoeshere%Detailedexplanationgoeshereg=[1+2*x(1)*exp(x(1)^2+x(2)^2);4*x(2)+2*x(2)*exp(x(1)^2+x(2)^2)];end最速下降法x0=[0;1];%初始值eps=1.0e-5;%精度n=0;g0=gfun3_1(x0);symsd1;whilenorm(g0)>=epss0=-g0;g=gfun3_1(x0+d1*s0);d=double(solve(s0'*g));x1=x0+d*s0;g1=gfun3_1(x1);if(norm(g1)<eps)n=n+1;x0=x1;break;elsex0=x1;g0=gfun3_1(x0);endn=n+1;endf0=fun3_1(x0)x0nf0=0.7729x0=-0.41940.0000n=6(2)牛顿法functiong2=hesse(x)%HESSESummaryofthisfunctiongoeshere%Detailedexplanationgoeshereg2=[2*exp(x(1)^2+x(2)^2)+4*x(1)^2*exp(x(1)^2+x(2)^2),4*x(1)*x(2)*exp(x(1)^2+x(2)^2)4*x(1)*x(2)*exp(x(1)^2+x(2)^2),4+2*exp(x(1)^2+x(2)^2)+4*x(2)^2*exp(x(1)^2+x(2)^2)];endx0=[0;1];%初始值eps=1.0e-5;%精度n=0;g0=gfun3_1(x0);g20=hesse(x0);whilenorm(g0)>=epsd=-g20\g0;x1=x0+d;g1=gfun3_1(x1);if(norm(g1)<eps)n=n+1;x0=x1;break;elsex0=x1;g0=gfun3_1(x0);endn=n+1;endf0=fun3_1(x0)x0nf0=0.7729x0=-0.41940.0000n=35(3)BFGSx0=[0;1];%初始值eps=1.0e-5;%精度n=0;g0=gfun3_1(x0);symsd1;h0=eye(2);whilenorm(g0)>=epss0=-h0*g0;g=gfun3_1(x0+d1*s0);d=double(solve(s0'*g));x1=x0+d*s0;g1=gfun3_1(x1);if(norm(g1)<eps)n=n+1;x0=x1;break;elseh0=h0-(h0*(g1-g0)*(g1-g0)'*h0)/((g1-g0)'*h0*(g1-g0))+...((x1-x0)*(x1-x0)')/((x1-x0)'*(g1-g0))+...((g1-g0)'*h0*(g1-g0))*((x1-x0)*(x1-x0)');x0=x1;g0=gfun3_1(x0);endn=n+1;endf0=fun3_1(x0)x0nf0=0.7729x0=-0.41940.0000n=4function[x,lamk,exitflag,output]=qpact(H,c,Ae,be,Ai,bi,x0)epsilon=1.0e-9;err=1.0e-6;k=0;x=x0;n=length(x);kmax=1.0e3;ne=length(be);ni=length(bi);lamk=zeros(ne+ni,1);index=ones(ni,1);for(i=1:ni)if(Ai(i,:)*x>bi(i)+epsilon),index(i)=0;endendwhile(k<=kmax)Aee=[];if(ne>0),Aee=Ae;endfor(j=1:ni)if(index(j)>0),Aee=[Aee;Ai(j,:)];endendgk=H*x+c;[m1,n1]=size(Aee);[dk,lamk]=qsubp(H,gk,Aee,zeros(m1,1));if(norm(dk)<=err)y=0.0;if(length(lamk)>ne)[y,jk]=min(lamk(ne+1:length(lamk)));endif(y>=0)exitflag=0;elseexitflag=1;for(i=1:ni)if(index(i)&(ne+sum(index(1:i)))==jk)index(i)=0;break;endendendk=k+1;elseexitflag=1;alpha=1.0;tm=1.0;for(i=1:ni)if((index(i)==0)&(Ai(i,:)*dk<0))tm1=(bi(i)-Ai(i,:)*x)/(Ai(i,:)*dk);if(tm1<tm)tm=tm1;ti=i;endendendalpha=min(alpha,tm);x=x+alpha*dk;if(tm<1),index(ti)=1;endendif(exitflag==0),break;endk=k+1;endoutput.fval=0.5*x'*H*x+c'*x;output.iter=k;function[x,lambda]=qsubp(H,c,Ae,be)ginvH=pinv(H);[m,n]=size(Ae);if(m>0)rb=Ae*ginvH*c+be;lambda=pinv(Ae*ginvH*Ae')*rb;x=ginvH*(Ae'*lambda-c);elsex=-ginvH*c;lambda=zeros(m,1);endcallqpact.m文献functioncallqpactH=[20;02];c=[-2-5]';Ae=[];be=[];Ai=[1-2;-1-2;-12;10;01];bi=[-2-6-200]';x0=[00]';[x,lambda,exitflag,output]=qpact(H,c,Ae,be,Ai,bi,x0)运行成果:callqpactx=1.40001.7000lambda=0.8000exitflag=0output=fval:-6.4500iter:7Function[x,mu,lambda,output]=multphr(fun,hf,gf,dfun,dhf,dgf,x0)functionpsi=mpsi(x,fun,hf,gf,dfun,dhf,dgf,mu,lambda,sigma)functionhe=h1(x)he=-x(1)^2-x(2)^2+25.0;functionf=f1(x)f=4*x(1)-x(2)^2-12;functiongi=g1(x)gi=10*x(1)-x(1)^2+10*x(2)-x(2)^2-34;functiondhe=dh1(x)dhe=[-1*x(1),-1*x(2)]';functiondgi=dg1(x)dgi=[10-2*x(1),10-2*x(2)]';functiong=df1(x)g=[4,-2.0*x(2)]';function[x,val,k]=bfgs(fun,gfun,x0,varargin)maxk=500;sigma=2.0;eta=2.0;theta=0.8;k=0;ink=0;epsilon=1e-5;x=x0;he=feval(hf,x);gi=feval(gf,x);n=length(x);l=length(he);m=length(gi);mu=0.1*ones(l,1);lambda=0.1*ones(m,1);btak=10;btaold=10;while(btak>epsilon&k<maxk)[x,ival,ik]=bfgs('mpsi','dmpsi',x0,fun,hf,gf,dfun,dhf,dgf,mu,lambda,sigma);ink=ink+ik;he=feval(hf,x);gi=feval(gf,x);btak=0.0;for(i=1:l),btak=btak+he(i)^2;endfori=1:mtemp=min(gi(i),lambda(i)/sigma);btak=btak+temp^2;endbtak=sqrt(btak);ifbtak>epsilonif(k>=2&btak>theta*btaold)sigma=eta*sigma;endfor(i=1:l),mu(i)=mu(i)-sigma*he(i);endfor(i=1:m)lambda(i)=max(0.0,lambda(i)-sigma*gi(i));endendk=k+1;btaold=btak;x0=x;endf=feval(fun,x);output.fval=f;output.iter=k;output.inner_iter=ink;output.bta=btak;f=feval(fun,x);he=feval(hf,x);gi=feval(gf,x);l=length(he);m=length(gi);psi=f;s1=0.0;for(i=1:l)psi=psi-he(i)*mu(i);s1=s1+he(i)^2;endpsi=psi+0.5*sigma*s1;s2=0.0;for(i=1:m)s3=max(0.0,lambda(i)-sigma*gi(i));s2=s2+s3^2-lambda(i)^2;endpsi=psi+s2/(2.0*sigma);maxk=500;rho=0.55;sigma1=0.4;epsilon1=1e-5;k=0;n=length(x0);Bk=eye(n);while(k<maxk)gk=feval(gfun,x0,varargin{:});if(norm(gk)<epsilon1),break;enddk=-Bk\gk;m=0;mk=0;while(m<20)newf=feval(fun,x0+rho^m*dk,varargin{:});oldf=feval(fun,x0,varargin{:});if(newf<oldf+sigma1*rho^m*gk'*dk)mk=m;break;endm=m+1;endx=x0+rho^mk*dk;sk=x-x0;yk=feval(gfun,x,varargin{:})-gk;if(yk'*sk>0)Bk=Bk-(Bk*sk*sk'*Bk)/(sk'*Bk*sk)+(yk*yk')/(yk'*sk);endk=k+1;x0=x;endval=feval(fun,x0,varargin{:});functiondpsi=dmpsi(x,fun,hf,gf,dfun,dhf,dgf,mu,lambda,sigma)dpsi=feval(dfun,x);he=feval(hf,x);gi=feval(gf,x);dhe=feval(dhf,x);dgi=feval(dgf,x);l=length(he);m=length(gi);for(i=1:l)dpsi=dpsi+(sigma*he(i)-mu(i))*dhe(:,i);endfor(i=1:m)dpsi=dpsi+(sigma*gi(i)-lambda(i))*dgi(:,i);end>>x0=[1,1]';[x,mu,lambda,output]=multphr('f1','h1','g1','df1','dh1','dg1',x0)x=1.00134.8987mu=2.0312lambda=0.7545output=fval:-31.9923iter:5inner_iter:58bta:4.3187e-07function[x,mu,lam,val,k]=sqpm(x0,mu0,lam0)maxk=100;n=length(x0);l=length(mu0);m=length(lam0);rho=0.5;eta=0.1;B0=eye(n);x=x0;mu=mu0;lam=lam0;Bk=B0;sigma=0.8;epsilon1=1e-6;epsilon2=1e-5;[hk,gk]=cons(x);dfk=df1(x);[Ae,Ai]=dcons(x);Ak=[Ae;Ai];k=0;while(k<maxk)[dk,mu,lam]=qpsubp(dfk,Bk,Ae,hk,Ai,gk);mp1=norm(hk,1)+norm(max(-gk,0),1);if(norm(dk,1)<epsilon1)&(mp1<epsilon2)break;enddeta=0.05;tau=max(norm(mu,inf),norm(lam,inf));if(sigma*(tau+deta)<1)sigma=sigma;elsesigma=1.0/(tau+2*deta);endim=0;while(im<=20)if(phi1(x+rho^im*dk,sigma)-phi1(x,sigma)<eta*rho^im*dphi1(x,sigma,dk))mk=im;break;endim=im+1;if(im==20),mk=10;endendalpha=rho^mk;x1=x+alpha*dk;[hk,gk]=cons(x1);dfk=df1(x1);[Ae,Ai]=dcons(x1);Ak=[Ae;Ai];lamu=pinv(Ak)'*dfk;if(l>0&m>0)mu=lamu(1:l);lam=lamu(l+1:l+m);endif(l==0),mu=[];lam=lamu;endif(m==0),mu=lamu;lam=[];endsk=alpha*dk;yk=dlax(x1,mu,lam)-dlax(x,mu,lam);if(sk'*yk>0.2*sk'*Bk*sk)theta=1;elsetheta=0.8*sk'*Bk*sk/(sk'*Bk*sk-sk'*yk);endzk=theta*yk+(1-theta)*Bk*sk;Bk=Bk+zk*zk'/(sk'*zk)-(Bk*sk)*(Bk*sk)'/(sk'*Bk*sk);x=x1;k=k+1;endval=f1(x);functionp=phi1(x,sigma)f=f1(x);[h,g]=cons(x);gn=max(-g,0);l0=length(h);m0=length(g);if(l0==0),p=f+1.0/sigma*norm(gn,1);endif(m0==0),p=f+1.0/sigma*norm(h,1);endif(l0>0&m0>0)p=f+1.0/sigma*(norm(h,1)+norm(gn,1));endfunctiondp=dphi1(x,sigma,d)df=df1(x);[h,g]=cons(x);gn=max(-g,0);l0=length(h);m0=length(g);if(l0==0),dp=df'*d-1.0/sigma*norm(gn,1);endif(m0==0),dp=df'*d-1.0/sigma*norm(h,1);endif(l0>0&m0>0)dp=df'*d-1.0/sigma*(norm(h,1)+norm(gn,1));endfunctionl=la(x,mu,lam)f=f1(x);[h,g]=cons(x);l0=lemgth(h);m0=length(g);if(l0==0),l=f-lam*g;endif(m0==0),l=f-mu'*h;endif(l0>0&m0>0)l=f-mu'*h-lam'*g;endfunctiondl=dlax(x,mu,lam)df=df1(x);[Ae,Ai]=dcons(x);[m1,m2]=size(Ai);[l1,l2]=size(Ae);if(l1==0),dl=df-Ai'*lam;endif(m1==0),dl=df-Ae'*mu;endif(l1>0&m1>0),dl=df-Ae'*mu-Ai'*lam;endfunctionf=f1(x)f=4*x(1)-x(2)^2-12;functiondf=df1(x)df=[4,-2*x(2)]';function[h,g]=cons(x)h=[25-x(1)^2-x(2)^2];g=[x(1);x(2)];function[dh,dg]=dcons(x)dh=[-2*x(1),-2*x(2)];dg=[10;01];Qpsubp.m文献function[d,mu,lam,val,k]=qpsubp(dfk,Bk,Ae,hk,Ai,gk)n=length(dfk);l=length(hk);m=length(gk);gamma=0.05;epsilon=1.0e-6;rho=0.5;sigma=0.2;ep0=0.05;mu0=0.05*zeros(l,1);lam0=0.05*zeros(m,1);d0=ones(n,1);u0=[ep0;zeros(n+l+m,1)];z0=[ep0;d0;mu0;lam0,];k=0;z=z0;ep=ep0;d=d0;mu=mu0;lam=lam0;while(k<=150)dh=dah(ep,d,mu,lam,dfk,Bk,Ae,hk,Ai,gk);if(norm(dh)<epsilon)break;endA=JacobiH(ep,d,mu,lam,dfk,Bk,Ae,hk,Ai,gk);b=beta(ep,d,mu,lam,dfk,Bk,Ae,hk,Ai,gk,gamma)*u0-dh;dz=A\b;if(l>0&m>0)de=dz(1);dd=dz(2:n+1);du=dz(n+2:n+l+1);dl=dz(n+l+2:n+l+m+1);endif(l==0)de=dz(1);dd=dz(2:n+1);dl=dz(n+2:n+m+1);endif(m==0)de=dz(1);dd=dz(2:n+1);du=dz(n+2:n+l+1);endi=0;while(i<=20)if(l>0&m>0)dh1=dah(ep+rho^i*de,d+rho^i*dd,mu+rho^i*du,lam+rho^i*dl,dfk,Bk,Ae,hk,Ai,gk);endif(l==0)dh1=dah(ep+rho^i*de,d+rho^i*dd,mu,lam+rho^i*dl,dfk,Bk,Ae,hk,Ai,gk);endif(m==0)dh1=dah(ep+rho^i*de,d+rho^i*dd,mu+rho^i*du,lam,dfk,Bk,Ae,hk,Ai,gk);endif(norm(dh1)<=(1-sigma*(1-gamma*ep0)*rho^i)*norm(dh))mk=i;break;endi=i+1;if(i==20),mk=10;endendalpha=rho^mk;if(l>0&m>0)ep=ep+alpha*de;d=d+alpha*dd;mu=mu+alpha*du;lam=lam+alpha*dl;endif(l==0)ep=ep+alpha*de;d=d+alpha*dd;lam=lam+alpha*dl;endif(m==0)ep=ep+alpha*de;d=d+alpha*dd;mu=mu+alpha*du;endk=k+1;endval=0.5*d'*Bk*d+dfk'*d;functionp=phi(ep,a,b)p=a+b-sqrt(a^2+b^2+2*ep^2);functiondh=dah(ep,d,mu,lam,dfk,Bk,Ae,hk,Ai,gk)n=length(dfk);l=length(hk);m=length(gk);dh=zeros(n+l+m+1,1);dh(1)=ep;if(l>0&m>0)dh(2:n+1)=Bk*d-Ae'*mu-Ai'*lam+dfk;dh(n+2:n+l+1)=hk+Ae*d;for(i=1:m)dh(n+l+1+i)=phi(ep,lam(i),gk(i)+Ai(i,:)*d);endendif(l==0)dh(2:n+1)=Bk*d-Ai'*lam+dfk;for(i=1:m)dh(n+1+i)=phi(ep,lam(i),gk(i)+Ai(i,:)*d);endendif(m==0)dh(2:n+1)=Bk*d-Ae'*mu+dfk;dh(n+2:n+l+1)=hk+Ae*d;enddh=dh(:);functionbet=beta(ep,d,mu,lam,dfk,Bk,Ae,hk,Ai,gk,gamma)dh=dah(ep,d,mu,lam,dfk,Bk,Ae,hk,Ai,gk);bet=gamma*norm(dh)*min(1,norm(dh));
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版商业楼宇保安承包协议范本版
- 2024版办公家具买卖合同
- 2024版劳务派遣合作协议模板版B版
- 2024年铁瓦建设合作协议
- 2024年水库生态保护与生态补偿承包合同样本3篇
- 2024汽车维修店智能诊断系统采购与应用合同3篇
- 2023-2024年二级建造师之二建建设工程法规及相关知识模拟考试试卷A卷(含答案)
- 2024年环保材料运输合同范本及环保标准3篇
- 2022-2024年三年高考1年模拟英语试题分类:应用文写作(新高考解析版)
- 2024汽车租赁合同98736
- 《病毒》教学设计
- 路面基层允许弯沉值计算+弯沉系数图+允许弯沉值计算公式
- 连铸意外事故处理
- 国家开放大学(中央广播电视大学)报名登记表【模板】
- 新职业英语1-基础篇-Unit 3(课堂PPT)
- 公司各部门协作情况互评表满意度调查表
- 第二章水准测量PPT课件
- 长输管道原油输送基本知识
- 完美世界的材料
- 藻类名称(汉拉对照)
- 劳资专管员任命书
评论
0/150
提交评论