用matlab解優化問題?

Tags: 問題, 命令,

以前matlab針對優化問題有幾種命令,新版本的matlab已經將各種命令統一了,主要是通過fmincon函數來實現規化問題,不論是線性規劃還是非線性規劃,都可以用該命令。

用matlab解優化問題

工具/原料

matlab

方法/步驟

fmincon作為優化問題的萬能命令,既可以解決帶約束的優化問題,有可以解決不帶約束的優化問題。下面簡單介紹一下。

fmincon命令的格式如下。

用matlab解優化問題

解釋如下:

輸出x為解的結果

輸出fval為目標函數的最小值

輸出exitflag為解的情況(大於0表示求解成功)

程序名用於寫目標函數

x0為初始向量

A、AEQ為係數矩陣(A為不等式約束,AEQ為等式約束)

B、BEQ為常數項向量(B為不等式約束的常量,BEQ為等式約束的常量)

L為解的下限

U為解的上限

程序2用於非線性約束

下面用一個實例來說明。如下圖

用matlab解優化問題

首先編寫目標函數。在編輯器中編寫好後,保存。

用matlab解優化問題

然後,將題目轉換會命令語言。其中的

1 1 5

A=1 -2 ,B= 3;

AEQ= -3 2, BEQ=8;

-1 3

L= 4 ,U= 7;

初始值就隨便填寫符合上下限的數就行了,比如[1;1]

最後,在命令窗口中敲入命令。

用matlab解優化問題

或者這樣寫。

用matlab解優化問題

結果如下圖。解釋如下x=[0.4;4.6]表示x=0.4,y=4.6時目標函數在滿足約束的情況下取得最小值fval=-19.16.其中exitflag=1>0表示結果正確。

用matlab解優化問題

相關問題答案