作业帮 > 数学 > 作业

matlab线性规划求解最大值Z=y1×5.2×105+(2.5+x1+x2-y1) ×4.3×105+y2×4.7 ×

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/01 15:18:19
matlab线性规划
求解最大值Z=y1×5.2×105+(2.5+x1+x2-y1) ×4.3×105+y2×4.7 × 105+(8.2—x1+x3-y2) ×3.9×105+[0.25×y1+0.2×(2.5+x1+x2-y1)+0.23×y2+0.185×(8.2-x1+x2-y2)-2]×106-x1×2.0×105-x3×8.5×105-x2×10×105
约束条件:3.5-x2-x3≥0
8.2-x1+x3≥0
0≤y1≤2.5+x1+x2
0≤y2≤8.2-x1+x3
7.5y1+6.1 ×(2.5+x1+x2-y1)+9.0y2+7.35×(8.2-x1+x3-y2) ≤96.5
1.4y1+1.65y2≤7.5
0.25y1+0.2×(2.5+x1+x2-y1)+0.23y2+0.185×(8.2-x1+x3-y2) ≥2
x1≥0,x2≥0,x3≥0
我已经编了一个,只是解有些特殊的难以接受,所以想问一下别人
我算出这个结果:
function zfmincon
clc;clear;
x0=[1 1 1 1 1]%初值
LB=[0 0 0 0 0]%下限
%[X,FVAL,EXITFLAG]=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON)
options=optimset('TolCon',1e-007)
[X,FVAL,EXITFLAG]=fmincon(@myfun,x0,[],[],[],[],LB,[],@myfun1,options)
function f=myfun(x)
x1=x(1);x2=x(2);x3=x(3);y1=x(4);y2=x(5);
f1=y1*5.2*105+(2.5+x1+x2-y1)*4.3*105+y2*4.7*105+(8.2-x1+x3-y2)*3.9*105+(0.25*y1+0.2*(2.5+x1+x2-y1)+0.23*y2+0.185*(8.2-x1+x2-y2)-2)*106-x1*2.0*105-x3*8.5*105-x2*10*105;
f=-f1;
function [c ceq]=myfun1(x)
x1=x(1);x2=x(2);x3=x(3);y1=x(4);y2=x(5);
%{
3.5-x2-x3≥0
8.2-x1+x3≥0
0≤y1≤2.5+x1+x2
0≤y2≤8.2-x1+x3
7.5y1+6.1 ×(2.5+x1+x2-y1)+9.0y2+7.35×(8.2-x1+x3-y2) ≤96.5
1.4y1+1.65y2≤7.5
0.25y1+0.2×(2.5+x1+x2-y1)+0.23y2+0.185×(8.2-x1+x3-y2) ≥2
x1≥0,x2≥0,x3≥0
%}
c1=3.5-x2-x3;
c2=8.2-x1+x3;
c3=y1-(2.5+x1+x2);
c4=y2-(8.2-x1+x3);
c5=7.5*y1+6.1*(2.5+x1+x2-y1)+9.0*y2+7.35*(8.2-x1+x3-y2)-96.5;
c6=1.4*y1+1.65*y2-7.5;
c7=0.25*y1+0.2*(2.5+x1+x2-y1)+0.23*y2+0.185*(8.2-x1+x3-y2)-2;
c=[-c1;-c2;c3;c4;c5;c6;-c7];
ceq=[];
结果:
X =
0 0 0 2.5000 2.4242
以上分别为:x1,x2,x3,y1,y2
FVAL = -4.9532e+003 【最大值4.9532e+003 】
EXITFLAG = 1