在使用MATLAB求解多元函數極值時,通常會采用fmincon函數。該函數適用于具有約束條件的情況,例如線性不等式約束A*x<=b。我們可以通過設置初始值x0,在其附近搜索局部極小值。下面是一個具體的例子:假設我們要優化的目標函數為:z = 7.2*sqrt(25+(15-x(1))^2) + (7.2+(107/(20-x(1))))*sqrt((8-x(2))^2+(20-x(1))^2) + 7.2*x(2)。這里x(1)和x(2)是待優化的兩個變量。首先,我們需要定義目標函數。在MATLAB中,這可以通過匿名函數來實現:z=@(x)7.2*sqrt(25+(15-x(1))^2)+(7.2+(107/(20-x(1))))*sqrt((8-x(2))^2+(20-x(1))^2)+7.2*x(2);接下來,我們需要定義約束條件。在這個例子中,約束條件為A*x<=b。其中A是一個系數矩陣,b是一個常數向量。我們可以將其定義為:A=[1,0;0,1]; b=[15;8];最后,我們設定一個初始值x0,它將作為優化過程的起點。這里我們可以選擇x0=[1;1]作為初始點:x0=[1;1];現在,我們可以使用fmincon函數來求解這個優化問題:[x,feval]=fmincon(z,x0,A,b)運行上述代碼后,我們將得到局部極小值的坐標和對應的函數值:x = 15.0000 6.6994feval = 231.9944以上就是使用MATLAB求解多元函數極值的一個簡單示例。這種方法適用于具有線性不等式約束的優化問題。