小弟我想求目標函數x(1)*1.2+x(2)*1.5+x(3)*2+x(4)*1的最小值
又3600<=x(1)+x(2)+x(3)+x(4)
且x(1)<1800 x(2)<1200 x(3)<1200 x(4)<400且皆大於0
程式碼如下
function F = myfun1(x)
F = x(1)*1.2+x(2)*1.5+x(3)*2+x(4)*1;
end
clc;clear all;
x0 = [1000;1000;1000;400]; % Starting guess at the solution
A = [-1 -1 -1 -1];
B = [3600];
Aeq = [];
Beq = [];
LB = [0 0 0 0];
UB = [1800 1200 1200 400];
nonlcon = [];
options = optimset('Display','iter','TolFun',1e-7,'MaxFunEvals',10000);
[x,fval] = fmincon(@myfun1,x0,A,B,Aeq,Beq,LB,UB,nonlcon,options);
可是回傳得到x = [0 0 0 0];
不知道是不是哪邊出問題了@@?
謝謝m(_ _)m