資源描述:
《用Powell法優(yōu)化設(shè)計程序與一維搜索黃金分割法組合.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、用Powell法優(yōu)化設(shè)計程序與一維搜索黃金分割法組合編程求解函數(shù)的極小點x,初始點x0=[1,1]T,迭代精度ε=0.001。解:已知,初始點x0=[1,1]T,迭代精度ε=0.001。在該優(yōu)化設(shè)計過程中,黃金分割搜索法作為POWELL算法主程序中的一部分。在POWELL算法運行過程中會多次調(diào)用黃金分割搜索算法程序。這樣可以縮短優(yōu)化設(shè)計計算時間。1.MATLAB源程序代碼1.1關(guān)于α的目標函數(shù)源代碼functionm=y(x1,x2,d1,d2,alpha)%建立關(guān)于α的一元函數(shù)y(α)m=(x1+alpha*d1)^2+2*(x2+alpha*d2)^2-4*(x1+alp
2、ha*d1)-2*(x1+alpha*d1)*(x2+alpha*d2);1.2一元函數(shù)最小值區(qū)間函數(shù)源代碼function[a,b]=section(x1,x2,d1,d2)%采用外推法求解一元函數(shù)的最小值區(qū)間x11=x1;x22=x2;d11=d1;d22=d2;h0=1;h=h0;alpha1=0;y1=y(x11,x22,d11,d22,alpha1);alpha2=h;y2=y(x11,x22,d11,d22,alpha2);t=0;ify2>y1h=-h;alpha3=alpha1;y3=y1;t=1;endwhile(1)ift==1alpha1=alpha2;
3、y1=y2;alpha2=alpha3;y2=y3;elset=1;endalpha3=alpha2+h;y3=y(x11,x22,d11,d22,alpha3);ify3alpha3tem=alpha1;alpha1=alpha3;alpha3=tem;a=alpha1;b=alpha3;elsea=alpha1;b=alpha3;end1.3黃金分割搜索法函數(shù)源代碼functionalpha=ALPHA(x1,x2,d1,d2,A,B)%利用黃金分割法求解關(guān)于α的函數(shù)y(α)的極小點α*x11=x1;x2
4、2=x2;d11=d1;d22=d2;a=A;b=B;ep=0.001;r=0.618;alpha1=b-r*(b-a);y1=y(x11,x22,d11,d22,alpha1);alpha2=a+r*(b-a);y2=y(x11,x22,d11,d22,alpha2);while(1)ify1>=y2a=alpha1;alpha1=alpha2;y1=y2;alpha2=a+r*(b-a);y2=y(x11,x22,d11,d22,alpha2);elseb=alpha2;alpha2=alpha1;y2=y1;alpha1=b-r*(b-a);y1=y(x11,x22,d
5、11,d22,alpha1);endifabs(b-a)6、(x(2*i-1),x(2*i),d(2*i-1),d(2*i));alpha(i)=ALPHA(x(2*i-1),x(2*i),d(2*i-1),d(2*i),a(i),b(i));x(2*i+1)=x(2*i-1)+alpha(i)*d(2*i-1);x(2*i+2)=x(2*i)+alpha(i)*d(2*i);ff(i+1)=f(x(2*i+1),x(2*i+2));endfori=1:nDelta(i)=ff(i)-ff(i+1);enddelta=max(Delta);fori=1:nifdelta==Delta(i)m=i;break;endendd(2*n+1
7、)=x(2*n+1)-x(1);d(2*n+2)=x(2*n+2)-x(2);x(2*n+3)=2*x(2*n+1)-x(1);x(2*n+4)=2*x(2*n+2)-x(2);ff(n+2)=f(x(2*n+3),x(2*n+4));f0=ff(1);f2=ff(n+1);f3=ff(n+2);k=k+1;R(k,:)=[k,x',d',ff];iff3