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或任何其他程式語言呼叫這...