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 具體輸入命令跟上面的出不多,換成 ...