首頁 > 其他

如何在MATLAB中用蒙特卡洛法解非線性規劃問題?

2019-12-25 14:21:07

使用MATLAB軟體程式設計,利用蒙特卡洛法的基本思想求解非線性規劃問題

1

在估計的區域內隨機取若干試驗點。

2

然後從實驗點中找出可行點。

3

再從可行點中選擇最小點。

1

試驗點的第j個分量xj服從[aj ,bj]內的均勻分布.

1

先產生一個亂數作為初始試驗點,以後則將上一個試驗點的第j個分量隨機產生,其它分量不變而產生一新的試驗點.這樣,每產生一個新試驗點只需一個新的亂數分量.當K>MAXK或P>MAXP時停止疊代.

2

符號說明:P:?試驗點總數;  MAXP:最大試驗點總數;K:?可行點總數; ??MAXK:最大可行點數;X*:疊代產生的最優點;  Q:疊代產生的最小值f(X*),其初始值為計算機所能表示的最大數.

1

確定求解的非線性規劃問題,如圖所示。


2

依次編寫三個m檔案,首先編寫目標函數的m檔案,如圖所示。


3

然後編寫約束條件的m檔案,如圖所示。


4

再依據蒙特卡洛法求解的基本思想編寫主程式的m檔案。先初始化,利用unifrnd函數產生服從均勻分布的亂數,作為試驗點。


5

然後呼叫目標函數和約束條件的m檔案,找出最優解,如圖所示。


6

最後,顯示找到的最優解,如圖所示。


7

儲存編好的程式,執行結果如圖所示。



IT145.com E-mail:sddin#qq.com