求帮忙用MATLAB求利润的最大值问题.z(利润)=240x11+270x12+180x13+230x14+260x21+270x22+210x23+240x24+210x31+200x32+220x33+20x34,约束条件:x11+x12+x13+x14≤50,x11+x12+x13+x14≤50,x31 + x32 + x33 +x34 ≤50,30≤x11+x21+x31≤30+50,60
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/15 13:36:12
求帮忙用MATLAB求利润的最大值问题.z(利润)=240x11+270x12+180x13+230x14+260x21+270x22+210x23+240x24+210x31+200x32+220x33+20x34,约束条件:x11+x12+x13+x14≤50,x11+x12+x13+x14≤50,x31 + x32 + x33 +x34 ≤50,30≤x11+x21+x31≤30+50,60
求帮忙用MATLAB求利润的最大值问题.
z(利润)=240x11+270x12+180x13+230x14+260x21+270x22+210x23+240x24+210x31+200x32+220x33+20x34,
约束条件:x11+x12+x13+x14≤50,x11+x12+x13+x14≤50,x31 + x32 + x33 +x34 ≤50,30≤x11+x21+x31≤30+50,60≤x12+x22+x32≤60+70,20≤x13+x23+x33≤20+30,
20≤x14+x24+x34≤20+30,xij≥0,i=1,2,3 j=1,2,3,4
求帮忙用MATLAB求利润的最大值问题.z(利润)=240x11+270x12+180x13+230x14+260x21+270x22+210x23+240x24+210x31+200x32+220x33+20x34,约束条件:x11+x12+x13+x14≤50,x11+x12+x13+x14≤50,x31 + x32 + x33 +x34 ≤50,30≤x11+x21+x31≤30+50,60
可以用 fmincon函数.(Matlab里面没有求最大值的函数,所以要求-f的最小值,你懂得~)
function z= lirun( x )
x11=x(1);x12=x(2);x13=x(3);x14=x(4);x21=x(5);x22=x(6);x23=x(7);x24=x(8);x31=x(9);x32=x(10);x33=x(11);x34=x(12);
y=240*x11+270*x12+180*x13+230*x14+260*x21+270*x22+210*x23+240*x24+210*x31+200*x32+220*x33+20*x34;
z=-y;
end % 首先定义函数,编辑在m文件里面,然后保存.
>> A=[1 1 1 1 0 0 0 0 0 0 0 0;0 0 0 0 1 1 1 1 0 0 0 0;0 0 0 0 0 0 0 0 1 1 1 1 ;1 0 0 0 1 0 0 0 1 0 0 0;-1 0 0 0 -1 0 0 0 -1 0 0 0;0 1 0 0 0 1 0 0 0 1 0 0;0 -1 0 0 0 -1 0 0 0 -1 0 0;0 0 1 0 0 0 1 0 0 0 1 0;0 0 -1 0 0 0 -1 0 0 0 -1 0;0 0 0 1 0 0 0 1 0 0 0 1;0 0 0 -1 0 0 0 -1 0 0 0 -1];
b=[50; 60; 50;80;-30;130;-60;50;-20;30;-20]; %然后用矩阵来描述约束条件.
>> x0=20*ones(1,12);lb=zeros(1,12);
>> [x,f]=fmincon('lirun',x0,A,b,[],[],lb,[],[]);
>> -lirun(x) %输出最大利润
>> x %输出此时的x的值
结果如下
ans =
39800
x =
-0.0000 50.0000 -0.0000 0 12.4689 27.5311 -0.0000 20.0000 17.5311
0.0000 32.4689 -0.0000
在第二个条件下的结果如下
ans =
73100
x =
-0.0000 100.0000 0.0000 0 60.0000 30.0000 0 30.0000 20.0000
-0.0000 50.0000 -0.0000
记得我们的承诺,哈哈 ^.^