matlab最小值算法问题 10
f=60462*x(1)+15381*x(1)*log(x(1))+60462*x(2)+15381*x(2)*log(x(2))+60462*x(3)+15381*x(...
f=60462*x(1)+15381*x(1)*log(x(1))+60462*x(2)+15381*x(2)*log(x(2))+60462*x(3)+15381*x(3)*log(x(3))+60462*x(4)+15381*x(4)*log(x(4))+60462*x(5)+15381*x(5)*log(x(5))+60462*x(6)+15381*x(6)*log(x(6))+60462*x(7)+15381*x(7)*log(x(7))+223662*x(8)+15381*x(8)*log(x(8))-169082*x(9)+15381*x(9)*log(x(9));
约束条件0=2*x(1)+x(3)+2*x(4)+x(5)+x(6)+2*x(9)-8;
0=2*x(2)+x(3)+2*x(4)+2*x(6)+x(7)+3*x(8)+x(9)-4;
具体用哪个算法算,有目标函数最小值,方程包括log。9个未知数,2个约束条件 展开
约束条件0=2*x(1)+x(3)+2*x(4)+x(5)+x(6)+2*x(9)-8;
0=2*x(2)+x(3)+2*x(4)+2*x(6)+x(7)+3*x(8)+x(9)-4;
具体用哪个算法算,有目标函数最小值,方程包括log。9个未知数,2个约束条件 展开
展开全部
给出的matlab最小值问题,可以用 fmincon()函数来求得。
首先,建立目标函数
function f =fmincon_fun(x)
f=。。。
end
其二,建立约束函数
function [c,ceq] = fmincon_con(x)
c(1)=[2*x(1)+x(3)+2*x(4)+x(5)+x(6)+2*x(9)-8];
c(2)=[2*x(2)+x(3)+2*x(4)+2*x(6)+x(7)+3*x(8)+x(9)-4];
ceq = [];
end
最后,用fmincon()函数求得最大值
x0=[0.70 0.95 0.20 0.76 0.25 0.19 0.20 0.05 0.02];
lb=[0.07 0.08 0.02 0.03 0.04 0.02 0.03 0.07 0.03];ub=[];
[x,fval,exitflag] = = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x),options);
运行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询