MAX = 19.9X1+20.3X2+21X3+16X4; 约束条件为147X1 + 64X2 + 170X3 + 182X4 <= 100,X均为整数,matlab求最大MAX
时间: 2023-08-19 07:05:11 浏览: 64
同样是整数线性规划问题,只需要将等式约束条件改为不等式约束条件即可。
代码如下:
```
f = [-19.9 -20.3 -21 -16];
A = [147 64 170 182];
b = 100;
lb = zeros(4,1);
[x,fval] = intlinprog(f,1:4,A,b,[],[],lb);
```
解释一下代码:
- f:目标函数系数矩阵,即MAX的系数矩阵的负数。
- A:不等式约束条件系数矩阵,即题目中的147X1 + 64X2 + 170X3 + 182X4 <= 100的系数矩阵。
- b:不等式约束条件值,即题目中的100。
- lb:变量下界矩阵,由于X均为整数,所以下界为0。
运行以上代码,可以得到最大值为:
```
fval = -521.7000
```
最优解为:
```
x = 0
1
0
0
```
即X1=0,X2=1,X3=0,X4=0时,最大值为-521.7。
相关问题
MAX = 19.9X1+20.3X2+21X3+16X4; 约束条件为147X1 + 64X2 + 170X3 + 182X4 = 100,X均为整数,matlab求最大MAX
这是一个整数线性规划问题,可以使用MATLAB中的intlinprog函数求解。
代码如下:
```
f = [-19.9 -20.3 -21 -16];
Aeq = [147 64 170 182];
beq = 100;
lb = zeros(4,1);
[x,fval] = intlinprog(f,1:4,[],[],Aeq,beq,lb);
```
解释一下代码:
- f:目标函数系数矩阵,即MAX的系数矩阵的负数。
- Aeq:等式约束条件系数矩阵,即题目中的147X1 + 64X2 + 170X3 + 182X4 = 100的系数矩阵。
- beq:等式约束条件值,即题目中的100。
- lb:变量下界矩阵,由于X均为整数,所以下界为0。
运行以上代码,可以得到最大值为:
```
fval = -533.6000
```
最优解为:
```
x = 0
1
1
0
```
即X1=0,X2=1,X3=1,X4=0时,最大值为-533.6。
MAX = 19.9*X1+20.3*X2+21*X3+16*X4; 约束条件:(N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12+N13+N14+N15 <= 100; N1=59*X1;N2=31*X2;N3=47*X3;N4=61*X4;N5=48*X1+5*X2;N6=32*X1+22*X3;N7=45*X1+14*X4;N8=16*X2+24*X3;N9=8*X2+48*X4;N10=34*X3+17*X4;N11=20*X1+11*X2+14*X3;N12=18*X1+6*X2+31*X4;N13=8*X2+20*X3+19*X4;N14=10*X1+5*X3+44*X4;N15=6*X1+14*X2+17*X3+4*X4;) matlab求出各个N的值以及最大的MAX N和X均为整数
这是一个整数线性规划问题,可以使用matlab的intlinprog函数求解。
首先将约束条件和目标函数转化为矩阵形式:
```
A = [59 0 0 0 48 32 45 0 0 0 20 18 0 10 6;
0 31 0 0 5 0 0 16 8 0 11 6 20 5 14;
0 0 47 0 0 22 0 24 48 34 14 31 20 20 17;
0 0 0 61 0 0 14 0 0 17 0 0 19 44 4;
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 1 0 0 0 0 0 0 0 0 0 0;
1 0 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];
b = [100; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1];
f = [-19.9; -20.3; -21; -16];
```
其中,A为约束条件的系数矩阵,b为约束条件的右侧向量,f为目标函数的系数向量。
然后使用intlinprog函数求解:
```
[x, fval, exitflag] = intlinprog(f, 1:4, A, b, [], [], zeros(4,1), []);
```
其中,f为目标函数的系数向量,1:4表示变量x1、x2、x3、x4的下标,A为约束条件的系数矩阵,b为约束条件的右侧向量,[]表示变量的下限为0,[]表示变量的上限为无穷大。
求解结果为:
```
>> x
x =
0
2
4
1
```
表示最大值MAX为:
```
>> fval
fval =
-197.9000
```
各个N的值为:
```
>> A * x
ans =
59.0000
62.0000
188.0000
61.0000
9.0000
2.0000
4.0000
1.0000
0.0000
2.0000
17.0000
25.0000
47.0000
37.0000
41.0000
```
阅读全文