2021-05-12 14:32:11
如何用matlab求解非線性約束優化問題
2019-12-25 05:34:23
對於非線性約束的優化問題,matlab有個很好的函數fmincon可以很容易解決。之前一個經驗已經詳細介紹了fmincon的用法,下面通過一個例子來說明用它來解決非線性約束問題。
1
此題的問題描如下圖。由於本經驗主要是談非線性約束下的最佳化問題,對於其他線性約束就不再考慮。
2
然後啟動matlab。新建一個函數檔案,用來寫目標函數。
3
在編輯器視窗中寫入我們要求的目標函數,並儲存,注意使函數名與檔名相同。
4
然後再新建一個函數檔案,用來編寫非線性約束條件。步驟及其注意事項同上。額外需要注意的是,需要將兩個函數檔案放在同一個資料夾中。
5
最後,在命令列視窗處寫入fmincon命令。此處需要注意的是,對於沒有的線性約束條件的位置藥用空矩陣代替,並且初始條件需要滿足非線性約束條件(本例中寫的是[1,2])。
6
敲下鍵盤上的enter建,結果得出。可以發現exitflag=1是大於0的,所以結果正確。
相關文章