欢迎来到天天文库
浏览记录
ID:52233022
大小:355.00 KB
页数:11页
时间:2020-03-25
《大连理工大学优化作业程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.1程序(Java)publicclassWolfe_Powell{publicstaticdoublegetFx(double[]x){doublex1=x[0];doublex2=x[1];doubleFx=100*(x2-x1*x1)*(x2-x1*x1)+(1-x1)*(1-x1);returnFx;}publicstaticdouble[]getDeltFx(double[]x){doublex1=x[0];doublex2=x[1];double[]deltFx=newdouble[2];d
2、eltFx[0]=-400*(x2-x1*x1)*x1-2*(1-x1);deltFx[1]=200*(x2-x1*x1);returndeltFx;}publicstaticdoublegetDeltFx_Sk(double[]deltFx,double[]Sk){doublea=0;for(inti=0;i3、x[0];doublex2=x[1];doublec1=0.1,c2=0.5,a=0,b=1e8,L=1;doubleFx0,Fx1,deltFx1_Sk,deltFx0_Sk,temp,temp2;double[]deltFx0,deltFx1;Fx0=getFx(x);deltFx0=getDeltFx(x);deltFx0_Sk=getDeltFx_Sk(deltFx0,s);temp=c2*getDeltFx_Sk(deltFx0,s);for(inti=0;i<1e8;i++){10temp2=4、-c1*L*deltFx0_Sk;x[0]=x1+L*s[0];x[1]=x2+L*s[1];Fx1=getFx(x);deltFx1=getDeltFx(x);deltFx1_Sk=getDeltFx_Sk(deltFx1,s);if((Fx0-Fx1)>=temp2&&deltFx1_Sk>=temp){break;}elseif((Fx0-Fx1)=2*L?(2*L):(L+b)5、/2;}}System.out.println("L="+L);System.out.println("计算次数"+i);returnL;}publicstaticvoidmain(String[]args){Wolfe_Powelltemp=newWolfe_Powell();double[]X={-1,1};double[]sk={1,1};temp.getL(X,sk);}}1.2实验结果步长L=0.00390625x=[-0.9992,1.0324]计算次数82.1程序(Java)publiccl6、assGongE{10publicstaticdoublegetFx(double[]x){doublex1=x[0];doublex2=x[1];doubleFx=x1*x1-2*x1*x2+2*x2*x2+x3*x3-x2*x3+2*x1+3*x2-x3;returnFx;}publicstaticdouble[]getDeltFx(double[]x){doublex1=x[0];doublex2=x[1];double[]deltFx=newdouble[x.length];deltFx[0]=27、*x1-2*x2+2;deltFx[1]=-2*x1+4*x2-x3+3;deltFx[2]=2*x3-x2-1;returndeltFx;}publicstaticdouble[]getX(double[]x){double[]g0,g1;double[]s0=newdouble[x.length];double[]s1=newdouble[x.length];doubleg0_L,g1_L,L,temp;double[]x0=x;intk=0;g0=getDeltFx(x0);for(intj=0;j8、
3、x[0];doublex2=x[1];doublec1=0.1,c2=0.5,a=0,b=1e8,L=1;doubleFx0,Fx1,deltFx1_Sk,deltFx0_Sk,temp,temp2;double[]deltFx0,deltFx1;Fx0=getFx(x);deltFx0=getDeltFx(x);deltFx0_Sk=getDeltFx_Sk(deltFx0,s);temp=c2*getDeltFx_Sk(deltFx0,s);for(inti=0;i<1e8;i++){10temp2=
4、-c1*L*deltFx0_Sk;x[0]=x1+L*s[0];x[1]=x2+L*s[1];Fx1=getFx(x);deltFx1=getDeltFx(x);deltFx1_Sk=getDeltFx_Sk(deltFx1,s);if((Fx0-Fx1)>=temp2&&deltFx1_Sk>=temp){break;}elseif((Fx0-Fx1)=2*L?(2*L):(L+b)
5、/2;}}System.out.println("L="+L);System.out.println("计算次数"+i);returnL;}publicstaticvoidmain(String[]args){Wolfe_Powelltemp=newWolfe_Powell();double[]X={-1,1};double[]sk={1,1};temp.getL(X,sk);}}1.2实验结果步长L=0.00390625x=[-0.9992,1.0324]计算次数82.1程序(Java)publiccl
6、assGongE{10publicstaticdoublegetFx(double[]x){doublex1=x[0];doublex2=x[1];doubleFx=x1*x1-2*x1*x2+2*x2*x2+x3*x3-x2*x3+2*x1+3*x2-x3;returnFx;}publicstaticdouble[]getDeltFx(double[]x){doublex1=x[0];doublex2=x[1];double[]deltFx=newdouble[x.length];deltFx[0]=2
7、*x1-2*x2+2;deltFx[1]=-2*x1+4*x2-x3+3;deltFx[2]=2*x3-x2-1;returndeltFx;}publicstaticdouble[]getX(double[]x){double[]g0,g1;double[]s0=newdouble[x.length];double[]s1=newdouble[x.length];doubleg0_L,g1_L,L,temp;double[]x0=x;intk=0;g0=getDeltFx(x0);for(intj=0;j
8、
此文档下载收益归作者所有