首頁 > 軟體

如何用matlab求解非線性約束優化問題

2019-12-25 05:34:23

對於非線性約束的優化問題,matlab有個很好的函數fmincon可以很容易解決。之前一個經驗已經詳細介紹了fmincon的用法,下面通過一個例子來說明用它來解決非線性約束問題。


1

此題的問題描如下圖。由於本經驗主要是談非線性約束下的最佳化問題,對於其他線性約束就不再考慮。


2

然後啟動matlab。新建一個函數檔案,用來寫目標函數。


3

在編輯器視窗中寫入我們要求的目標函數,並儲存,注意使函數名與檔名相同。




4

然後再新建一個函數檔案,用來編寫非線性約束條件。步驟及其注意事項同上。額外需要注意的是,需要將兩個函數檔案放在同一個資料夾中。



5

最後,在命令列視窗處寫入fmincon命令。此處需要注意的是,對於沒有的線性約束條件的位置藥用空矩陣代替,並且初始條件需要滿足非線性約束條件(本例中寫的是[1,2])。


6

敲下鍵盤上的enter建,結果得出。可以發現exitflag=1是大於0的,所以結果正確。



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