蒙特卡羅方法求解有約束的非線性規(guī)劃問題的matlab程序_第1頁
蒙特卡羅方法求解有約束的非線性規(guī)劃問題的matlab程序_第2頁
蒙特卡羅方法求解有約束的非線性規(guī)劃問題的matlab程序_第3頁
蒙特卡羅方法求解有約束的非線性規(guī)劃問題的matlab程序_第4頁
蒙特卡羅方法求解有約束的非線性規(guī)劃問題的matlab程序_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、蒙特卡羅方法求解有約束的非線性規(guī)劃問題的matlab程序首先我們說明一下:觀察函數(shù)f(x,它恰好可以應(yīng)用雅克比矩陣來計算得到:clear;syms x1 x2 x3 x4 x5;y=(1+(x1*x2+x3+x42(1/2/(x5+x32(1/2;f=simple(jacobian(y*x1;x2;x3;x4;x5;然后將得到的f表達(dá)式前面加上(x1,x2,x3,x4,x5:f=(x1,x2,x3,x4,x5-1/4*x3*(2*x1*x2*x3+x5+3*x32+2*x42*x3/(x5+x32/(x5+x32+(x1*x2+x3+x42(1/2*(x5+x32(1/2/(x1*x2+x3+

2、x42(1/2;作為下面程序中的f即可,已經(jīng)驗證過結(jié)果仍然差不多。下面程序中的f仍為原程序所給的f。matlab蒙特卡羅方法程序(相關(guān)原理參見附件文獻(xiàn)):clear;f=(x1,x2,x3,x4,x5-(x3*(3*x32 + 2*x3*x42 + 2*x1*x2*x3 + x5./(4*(x5 + (x42 + x3 + x1*x2(1/2 + x32/(x32 + x5(1/2*(x32 + x52*(x42 + x3 + x1*x2(1/2;MIN=inf;LIMIT=10000;while LIMIT>0    x(3=4.5*rand+0.5;%將【0,1】

3、區(qū)間上的隨機(jī)數(shù)轉(zhuǎn)化到【0.5,5】上的隨機(jī)數(shù),下面其余數(shù)類同    x(4=2*rand+1;    x(5=3*rand+1;    x(1=4.5*rand+0.5;    x(2=4.5*rand+0.5;    while x(1+x(22>=1&x(1+x(22<=10        x1=x(1;x2=x(2;x3=x(3;x4=x(4;x5=x(5;        temp=f(x1

4、,x2,x3,x4,x5;        if temp             MIN=temp;             x0=x;         end;         break;     end;     LIMIT=LIMIT-1; end; MIN,x0 或者clear;f=(x1,x2,x3,x4,

5、x5-(x3*(3*x32 + 2*x3*x42 + 2*x1*x2*x3 + x5./(4*(x5 + (x42 + x3 + x1*x2(1/2 + x32/(x32 + x5(1/2*(x32 + x52*(x42 + x3 + x1*x2(1/2;MIN=inf;LIMIT=10000;while LIMIT>0    x(3=4.5*rand+0.5;    x(4=2*rand+1;    x(5=3*rand+1;    x(1=4.5*rand+0.5;    x(2=4.

6、5*rand+0.5;    if x(1+x(22>=1&x(1+x(22<=10        x1=x(1;x2=x(2;x3=x(3;x4=x(4;x5=x(5;        temp=f(x1,x2,x3,x4,x5;        if temp             MIN=temp;           &#

7、160; x0=x;         end;     end     LIMIT=LIMIT-1; end; MIN,x0 前者幾次模擬計算結(jié)果如下:MIN =   -0.3003x0 =    4.6885    2.2581    1.4226    2.4956    1.1308MIN =   -0.3135x0 =    2.9750 

8、   2.2140    1.3397    2.8936    1.0118MIN =   -0.3173x0 =    4.9725    2.2098    1.5285    2.7026    1.0338注:源程序如下clear;f=(x1,x2,x3,x4,x5-(x3*(3*x32 + 2*x3*x42 + 2*x1*x2*x3 + x5./(4*(x5 + (x42 + x3 + x1*x

9、2(1/2 + x32/(x32 + x5(1/2*(x32 + x52*(x42 + x3 + x1*x2(1/2;MIN=inf;LIMIT=10000;while LIMIT>0    x(3=4.5*rand+0.5;    x(4=2*rand+1;    x(5=3*rand+1;    x(1=4.5*rand+0.5;    x(2=4.5*rand+0.5;    while x(1+x(22<1 | x(1+x(22>10  &

10、#160;     x(1=4.5*rand+0.5;        x(2=4.5*rand+0.5;    end;    x1=x(1;x2=x(2;x3=x(3;x4=x(4;x5=x(5;    temp=f(x1,x2,x3,x4,x5;    if temp         MIN=temp;         x0=x;     end; &#

11、160;   LIMIT=LIMIT-1; end; MIN,x0 其中內(nèi)層while循環(huán)表示當(dāng)x(1+x(22<1 | x(1+x(22>10時,再次令設(shè):        x(1=4.5*rand+0.5;        x(2=4.5*rand+0.5;重新進(jìn)行while循環(huán),只有當(dāng)條件上面條件不滿足才完成內(nèi)層的while循環(huán),接著執(zhí)行后面的語句。所以內(nèi)層while循環(huán)完全等效于如下if判斷:clear;f=(x1,x2,x3,x4,x5-(x3*(3*x32 + 2*x3*x42 + 2

12、*x1*x2*x3 + x5.    /(4*(x5 + (x42 + x3 + x1*x2(1/2 + x32/(x32 + x5(1/2*(x32 + x52*(x42 + x3 + x1*x2(1/2;MIN=inf;LIMIT=10000;k=0;while LIMIT>0    x(3=4.5*rand+0.5;    x(4=2*rand+1;    x(5=3*rand+1;    x(1=4.5*rand+0.5;    x(2=4.5*rand+0.5;    if x(1+x(22<1 | x(1+x(22>10        continue;    end;    x1=x(1;x2=x(2;x3=x(3;x4=x(4;x5=x(5

溫馨提示

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

評論

0/150

提交評論