matlab約束非線性規劃問題

2021-08-29 08:23:52 字數 1101 閱讀 3213

1樓:匿名使用者

function main()

% 輸入:

clc; clear all;

x0=zeros(27,1);lb=zeros(27,1);

[x,fval]=fmincon(@myfun,x0,,,,,lb,,@mycon) % myfun.m

function f=myfun(x)

f=x(1)*x(13)+x(2)*x(14)+x(3)*x(15)+x(25)+1.697*(x(4)*x(16)+...

x(5)*x(17)+x(6)*x(18)+x(26))+0.575*(x(7)*x(19)+x(8)*x(20)...

+x(9)*x(21)+x(27))+0.723*(x(10)*x(22)+x(11)*x(23)+x(12)*x(24));

f=-f;% mycon.m

function [c,ceq]=mycon(x)

c(1)=6-x(25)-x(1)*x(13)-x(2)*x(14)-x(3)*x(15);

c(2)=3-x(26)-x(4)*x(16)-x(5)*x(17)-x(6)*x(18);

c(3)=1-x(27)-x(7)*x(19)-x(8)*x(20)-x(9)*x(21);

c(4)=10-x(10)*x(22)-x(11)*x(23)-x(12)*x(24);

ceq(1)=x(1)*x(13)+x(4)*x(16)+x(7)*x(19)+x(10)*x(22)-8;

ceq(2)=x(2)*x(14)+x(5)*x(17)+x(8)*x(20)+x(11)*x(23)-1;

ceq(3)=x(3)*x(15)+x(6)*x(18)+x(9)*x(21)+x(12)*x(24)-8;

2樓:匿名使用者

問題出在fmincon函式的第一個引數,應該是@myfun,你多寫了個負號,不過這個錯誤更正之後仍有問題,那就是fmincon函式的第

三、第四個引數不能為空,因為這兩個引數a,b決定了不可缺少的約束條件a·x≤b,其餘引數由於是可選的所以可以為空。

3樓:匿名使用者

不會吧,你連這個問題都拿出來問,你有才

matlab非線性規劃fmincon函式中目標函式引數傳遞問

使用匿名函式控制代碼就可以了 fmincon 需要 的函式fun只有一個輸入引數 fun x 而你的函式需要多一個能改變的變數。1 在到達迭代次數閾值或目標函式估值次數閾值時,求解器沒有最小化目標到要求的精度,此時求解器停止。接下來,可以嘗試以下方法 1 設定 display 為 iter 檢視每步...

matlab求解非線性不等式約束問題

function zhidao0429 f bai x x 1 2 x 2 function c,ceq nonlcon x c x 1 x 2 3 x 2 x 2 15 ceq endaeq beq a b lb 0,0 ub x0 1,2 x,fval fmincon f,x0,aeq,beq,...

不等式線性規劃應用問題, 不等式線性規劃問題

設生產a產品數量為x1,b產品數量為x2。x1,x2 0,且x1,x2為整數 則由題意此線性規劃問題可化為 max z 300x1 400x2 s.t3x1 x2 11 x1 3x2 9 x1 0 x2 0 x1為整數,x2為整數 解的方法有兩種,1 用lingo 具體輸入命令跟上面的出不多,換成 ...