Matlab中fmincon的使用?

時間 2022-01-14 07:09:45

1樓:風鈴貓

好的,那我們就用著名的Rosenbrock's banana函式做例子吧,當然這個例子也是matlab文件裡面改過來的的

我們給出如下的約束條件:

1、2、

3、 在以(1/3,1/3)為圓心,1/3為半徑的圓內 ,就是:

4、 5、

然後,求 的最小值

然後,我們用fmincon解決

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

也就是說,我們的目標函式長這個樣子:

fun=@(x

)100*(

x(2)

-x(1

)^2)^2+(

1-x(

1))^2

;線性約束部分:

lb = [0,0.2];

ub = [0.5,0.8];

A=[1,1;1,2];

b=[2;3];

非線性約束部分:

function [c,ceq] = circlecon(x)

c = (x(1)-1/3)^2 + (x(2)-1/3)^2 - (1/3)^2; % 預設為小於等於0

ceq不存在等式限制

在可行域內選乙個點作為迭代起始點:

x0 = [1/4,1/4];

然後開始求解:

nonlcon = @circlecon;

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

最後得到

x = 0.5000 0.2500

也就是 ,

MATLAB中可以生成NaN的方法?

易夕 補充幾個。與空矩陣有關的 cov mean median var std mode 與inf有關的 eps inf rem inf,1 特定函式 findgroups interp1 1 2 1,1 0,linear 類似的還有interp2,interp3erfinv 2 erfcinv 1...

MATLAB中如何把cftool擬合的函式輸出到命令列?

有兩個專門處理擬合結果的函式可滿足你的要求,乙個叫coeffnames,乙個叫coeffvalues。用法參見幫助中的例子 coeffnames f fittype a x 2 b exp n x ncoeffs numcoeffs f ncoeffs 3 coeffs coeffnames f c...

數學中求解整數規劃在matlab中怎麼使用呢?

整數規劃用LINGO啊,比MATLAB簡單超級多。變數定義好了也就幾行就可以得到答案,而且非常精簡只管一目了然。學數學到現在我最愛的軟體也就是LINGO了。 留德華叫獸 一般用CPlex或者Gurobi或者FICO Xpress。這些可以理解為優化的函式庫,然後用matlab或任何其他程式語言呼叫這...