用Powell法編程求解無約束優(yōu)化問題(共5頁)_第1頁
用Powell法編程求解無約束優(yōu)化問題(共5頁)_第2頁
用Powell法編程求解無約束優(yōu)化問題(共5頁)_第3頁
用Powell法編程求解無約束優(yōu)化問題(共5頁)_第4頁
用Powell法編程求解無約束優(yōu)化問題(共5頁)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上用Powell法編程求解無約束優(yōu)化問題題目:用Powell法編程求解無約束優(yōu)化問題min , 要求:(1)程序流程圖     (2)源程序清單     (3)運(yùn)行結(jié)果求解過程:流程圖.程序清單源程序由以下幾個(gè)部分組成:(1)      目標(biāo)函數(shù)程序清單:建立函數(shù)f()以f.m存盤%函數(shù)名:f(),參數(shù)2個(gè)%函數(shù)作用:帶入?yún)?shù),求解目標(biāo)函數(shù)f()%可以更改目標(biāo)函數(shù)為任意二維函數(shù),結(jié)果由m返回%作者:WYH

2、0;  學(xué)號(hào):xxxxxxxx%function m=f(x1,x2)m=x12+x22-x1*x2-10*x1-4*x2+60; %目標(biāo)函數(shù)(2)      關(guān)于的目標(biāo)函數(shù)清單:建立函數(shù)y()以y.m存盤%函數(shù)名:y(),參數(shù)5個(gè)%函數(shù)作用:帶入?yún)?shù),求解關(guān)于的一元函數(shù)y(),根據(jù)原目標(biāo)函數(shù)更改此函數(shù),%其中原目標(biāo)函數(shù)變量X1x1+alpha*d1,X2x2+alpha*d2結(jié)果由m返回%作者:WYH   學(xué)號(hào):xxxxxxxx%function m=y(x1,x2,d1,d2,al

3、pha)m=(x1+alpha*d1)2+(x2+alpha*d2)2-(x1+alpha*d1)*(x2+alpha*d2)-10*(x1+alpha*d1)-4*(x2+alpha*d2)+60; %含的目標(biāo)函數(shù),其形式與原目標(biāo)函數(shù)f(x)x12+x22-x1*x2-10*x1-4*x2+60一致(3)       外推法求解一元函數(shù)最小值區(qū)間:建立函數(shù)section()以sextion.m存盤%函數(shù)名:section(),參數(shù)4個(gè)%函數(shù)作用:利用外推法求解關(guān)于的函數(shù)y()的極小點(diǎn)*所在的區(qū)間【a,b】,%結(jié)果由a、b返回%作者:

4、WYH   學(xué)號(hào):xxxxxxxx%function a,b=section(x1,x2,d1,d2)x11=x1; %給出起始點(diǎn)坐標(biāo)x1,x2和搜索方向d1,d2x22=x2;d11=d1;d22=d2;h0=1;   %初始化h=h0;alpha1=0;y1=y(x11,x22,d11,d22,alpha1); %代入1求解y1alpha2=h;y2=y(x11,x22,d11,d22,alpha2);t=0;if y2>y1    h=-h;alpha3=alpha1;y3=y1;t=1; %

5、如果y2>y1,則改變搜索方向endwhile(1)    if t=1        alpha1=alpha2;y1=y2; %實(shí)現(xiàn)交換        alpha2=alpha3;y2=y3;    else t=1;    end    alpha3=alpha2+h;y3=y(x11,x22,d11,d2

6、2,alpha3);    if y3<y2        h=2*h; %改變搜索步長(zhǎng),將其加倍    else         break;    endendif alpha1>alpha3    tem=alpha1;alpha1=alpha3;alpha3=tem; %比較大小,保證輸出區(qū)間為【a

7、,b】    a=alpha1;b=alpha3;else a=alpha1;b=alpha3;end(1)      黃金分割法求解區(qū)間已知的一元函數(shù)最小值:建立函數(shù)ALPHA()以ALPHA.m存盤%函數(shù)名:ALPHA(),參數(shù)6個(gè)%函數(shù)作用:利用黃金分割法求解關(guān)于的函數(shù)y()的極小點(diǎn)*,已知所在的%區(qū)間【A,B】,結(jié)果由返回%作者:WYH   學(xué)號(hào):xxxxxxxx%function alpha=ALPHA(x1,x2,d1,d2,A,B)x11=x1;x22=x2;&

8、#160;  %給出起始點(diǎn)坐標(biāo)x1,x2和搜索方向d1,d2d11=d1;d22=d2;a=A;b=B;   %獲取區(qū)間epsilon=0.; %初始化,給定進(jìn)度r=0.618;alpha1=b-r*(b-a);y1=y(x11,x22,d11,d22,alpha1); %代入1求解y1alpha2=a+r*(b-a);y2=y(x11,x22,d11,d22,alpha2);while(1)    if y1>=y2   %根據(jù)區(qū)間消去法原理縮短搜索空間  

9、      a=alpha1;alpha1=alpha2;        y1=y2;        alpha2=a+r*(b-a);        y2=y(x11,x22,d11,d22,alpha2);    else    

10、60;    b=alpha2;alpha2=alpha1;        y2=y1;        alpha1=b-r*(b-a);        y1=y(x11,x22,d11,d22,alpha1);    end    if abs(b-a)&l

11、t;epsilon & abs(y2-y1)<epsilon   %判斷是否滿足進(jìn)度要求        break; %滿足進(jìn)度要求則退出循環(huán)迭代過程    endendalpha=0.5*(a+b); %返回值(2)      主程序,建立Powell.m存盤,運(yùn)行程序%程序名:powell法求解二維函數(shù)的極小值,主程序%程序作用:根據(jù)無約束優(yōu)化方法中的Powell法原理,在二維空

12、間求解f(x1,x2)的%最小點(diǎn),結(jié)果返回最小點(diǎn)變量坐標(biāo)(x1,x2)及最小值fmin%作者:WYH   學(xué)號(hào):xxxxxxxx%clear allclck=0;n=2;x=0;0;ff(1)=f(x(1),x(2);   %初始化epsilon=0.00001;d=1;   0;   0;   1;while(1)    x00=x(1);x(2);    for i=1:n 

13、;   a(i),b(i)=section(x(2*i-1),x(2*i),d(2*i-1),d(2*i); %調(diào)用section()函數(shù)求解一元函數(shù)有y()最小值時(shí)的區(qū)間    alpha(i)=ALPHA(x(2*i-1),x(2*i),d(2*i-1),d(2*i),a(i),b(i); %調(diào)用ALPHA()函數(shù)求解y()最小值點(diǎn)*    x(2*i+1)=x(2*i-1)+alpha(i)*d(2*i-1); %沿di方向搜索    x(2*i+2)=x(2*i)+alpha(

14、i)*d(2*i);    ff(i+1)=f(x(2*i+1),x(2*i+2); %搜索到的點(diǎn)對(duì)應(yīng)的函數(shù)值    end        for i=1:n    Delta(i)=ff(i)-ff(i+1);    end    delta=max(Delta); %求出函數(shù)值之差的最大值    for i=1:n    %

15、尋找函數(shù)值之差最大值的下標(biāo)        if delta=Delta(i)            m=i;            break;        end   

16、; end    d(2*n+1)=x(2*n+1)-x(1);   %求出反射點(diǎn)搜索方向dn+1    d(2*n+2)=x(2*n+2)-x(2);       x(2*n+3)=2*x(2*n+1)-x(1);   %搜索到反射點(diǎn)Xn+1    x(2*n+4)=2*x(2*n+2)-x(2);    ff(n+2)=f(x(2*n+3),x(2*n+

17、4); %反射點(diǎn)所對(duì)應(yīng)的函數(shù)值    f0=ff(1);f2=ff(n+1);f3=ff(n+2);    k=k+1;   %記錄迭代次數(shù)    R(k,:)=k,x',d',ff; %保存迭代過程的中間運(yùn)算結(jié)果        if f3<f0 & (f0-2*f2+f3)*(f0-f2-delta)2<0.5*delta*(f0-f3)2    %

18、判斷是否需要對(duì)原方向組進(jìn)行替換        a(n+1),b(n+1)=section(x(2*n+1),x(2*n+2),d(2*n+1),d(2*n+2);        alpha(n+1)=ALPHA(x(2*n+1),x(2*n+2),d(2*n+1),d(2*n+2),a(n+1),b(n+1);        x(1)=x(2*n+1)+al

19、pha(n+1)*d(2*n+1);   %沿反射方向進(jìn)行搜索,將搜索結(jié)果作為下一輪迭代的始點(diǎn)        x(2)=x(2*n+2)+alpha(n+1)*d(2*n+2);        for i=m:n   %根據(jù)函數(shù)值之差最大值的下標(biāo)值m,對(duì)原方向組進(jìn)行替換         &

20、#160;  d(2*i-1)=d(2*i+1);            d(2*i)=d(2*i+2);        end    else        if f2<f3    %如果不需要對(duì)原方向組進(jìn)行替換,選取終點(diǎn)及反射點(diǎn)中

21、函數(shù)值較小者作為下一輪迭代的始點(diǎn)            x(1)=x(2*n+1);            x(2)=x(2*n+2);        else             x(1)=x(2*n+3);      

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論