文章目录
参考教材:《数学建模与教学实验》第5版
提示:以下是本篇文章正文内容,来自参考教材课后习题。
问饲料怎样混合,才能使成本最低?
解:设每天每只鸡动物饲料
x
1
k
g
x_1kg
x1kg,谷物饲料
x
2
k
g
x_2kg
x2kg混合喂养。
建立模型:
min
w
=
150
x
1
+
90
x
2
s
.
t
{
x
1
+
x
2
=
1
x
1
⩾
0.2
7
x
2
⩽
12
x
1
,
x
2
⩾
0
\min w=150x_1+90x_2\\s.t\left\{ \begin{array}{c} x_1+x_2=1\\ x_1\geqslant 0.2\\ 7x_2\leqslant 12\\ x_1,x_2\geqslant 0\\\end{array} \right.
minw=150x1+90x2s.t⎩
⎨
⎧x1+x2=1x1⩾0.27x2⩽12x1,x2⩾0
matlab解题:
% 目标函数
f = [150 90];
% 不等式约束
a = [-1 0;0 7];
b = [-0.2;12];
% 等式约束
aeq = [1 1];
beq = [1];
% 上下限
vlb = zeros(2,1);
vub = [];
[x,fval] = linprog(f,a,b,aeq,beq,vlb,vub)

当
x
1
=
0.2
,
x
2
=
0.8
x_1=0.2,x_2=0.8
x1=0.2,x2=0.8时成本最小为102元。
(lingo解题):
model:
minw=150*x1+90*x2;
x1+x2=1;
x1>=0.2;
7*x2<=12;
end

问怎样安排两台机床一个周期的加工任务,才能使加工成本最低?
两台机床加工每个零件的时间和加工每个零件的成本分别如下列各表所示:
加工每种零件时间表(机时)
| 机床 | B 1 B_1 B1 | B 2 B_2 B2 | B 1 B_1 B1 |
|---|---|---|---|
| A 1 A_1 A1 | 1 | 2 | 3 |
| A 2 A_2 A2 | 1 | 1 | 3 |
加工每种零件成本表(元)
| 机床 | B 1 B_1 B1 | B 2 B_2 B2 | B 1 B_1 B1 |
|---|---|---|---|
| A 1 A_1 A1 | 2 | 3 | 5 |
| A 2 A_2 A2 | 3 | 3 | 6 |
解:设
A
1
A_1
A1机床上面加工零件
B
1
,
B
2
,
B
3
B_1,B_2,B_3
B1,B2,B3的个数分别为
X
11
,
X
21
,
X
31
X_{11},X_{21},X_{31}
X11,X21,X31,在
A
2
A_2
A2机床上面加工零件的个数分别为
X
12
,
X
22
,
X
32
X_{12},X_{22},X_{32}
X12,X22,X32
建立模型:
min
w
=
2
x
11
+
3
x
12
+
5
x
13
+
3
x
21
+
3
x
22
+
6
x
23
s
.
t
{
x
11
+
2
x
12
+
3
x
13
⩽
80
x
21
+
x
22
+
3
x
23
⩽
100
x
11
+
x
21
=
70
x
12
+
x
22
=
50
x
13
+
x
23
=
20
x
i
j
⩾
0
,
(
i
j
=
1
,
2
,
3.
)
\min w=2x_{11}+3x_{12}+5x_{13}+3x_{21}+3x_{22}+6x_{23}\\s.t\left\{ \begin{array}{c} x_{11}+2x_{12}+3x_{13}\leqslant 80\\ x_{21}+x_{22}+3x_{23}\leqslant 100\\ x_{11}+x_{21}=70\\ x_{12}+x_{22}=50\\ x_{13}+x_{23}=20\\ x_{ij}\geqslant 0,\left( ij=1,2,3. \right)\\\end{array} \right.
minw=2x11+3x12+5x13+3x21+3x22+6x23s.t⎩
⎨
⎧x11+2x12+3x13⩽80x21+x22+3x23⩽100x11+x21=70x12+x22=50x13+x23=20xij⩾0,(ij=1,2,3.)
变量为整数
matlab解题:
% 目标函数
f = [2 3 5 3 3 6];
% 整数个数
intcon = [1,2,3,4,5,6];
% 不等式约束
a = [1 2 3 0 0 0;0 0 0 1 1 3];
b = [80;100];
% 等式约束
aeq = [1 0 0 1 0 0;0 1 0 0 1 0;0 0 1 0 0 1];
beq = [70;50;20];
% 上下限
vlb = zeros(6,1);
vub = [];
[x,fval] = intlinprog(f,intcon,a,b,aeq,beq,vlb,vub)

A
1
A_1
A1机床上面加工零件
B
1
,
B
2
,
B
3
B_1,B_2,B_3
B1,B2,B3的个数分别为
X
11
=
68
,
X
21
=
0
,
X
31
=
4
X_{11}=68,X_{21}=0,X_{31}=4
X11=68,X21=0,X31=4,在
A
2
A_2
A2机床上面加工零件的个数分别为
X
12
=
2
,
X
22
=
50
,
X
32
=
16
X_{12}=2,X_{22}=50,X_{32}=16
X12=2,X22=50,X32=16,成本最低为408元。
(lingo解题:)
model:
minw=2*x11+3*x12+5*x13+3*x21+3*x22+6*x23;
x11+2*x12+3*x13<=80;
x21+x22+3*x23<=100;
x11+x21=70;
x12+x22=50;
x13+x23=20;
end
每月可供应的原材料数量(单位:t)每万件产品所需各种原料的数量及每万件产品的价格如下表所示:
| 原料 | A 1 A_1 A1 | A 2 A_2 A2 | A 3 A_3 A3 | 每月原料供应量/t |
|---|---|---|---|---|
| 甲 | 4 | 3 | 1 | 180 |
| 乙 | 2 | 6 | 3 | 200 |
| 价格/万元 | 12 | 5 | 4 |
解:设
x
i
j
(
i
j
=
1
,
2
,
3
)
x_{ij}(ij=1,2,3)
xij(ij=1,2,3)表示甲乙两种原料分别生产的三种产品数.
建立模型:
max
w
=
12
x
11
+
5
x
12
+
4
x
13
+
12
x
21
+
5
x
22
+
4
x
23
s
.
t
{
4
x
11
+
3
x
12
+
x
13
⩽
180
2
x
21
+
6
x
22
+
3
x
23
⩽
200
x
i
j
⩾
0
,
(
i
j
=
1
,
2
,
3
)
\max w=12x_{11}+5x_{12}+4x_{13}+12x_{21}+5x_{22}+4x_{23}\\s.t\left\{ \begin{array}{c} 4x_{11}+3x_{12}+x_{13}\leqslant 180\\ 2x_{21}+6x_{22}+3x_{23}\leqslant 200\\ x_{ij}\geqslant 0,\left( ij=1,2,3 \right)\\\end{array} \right.
maxw=12x11+5x12+4x13+12x21+5x22+4x23s.t⎩
⎨
⎧4x11+3x12+x13⩽1802x21+6x22+3x23⩽200xij⩾0,(ij=1,2,3)
matlab解题:
% 目标函数
f = [12 5 4 12 5 4];
% 不等式约束
a = [4 3 1 0 0 0;0 0 0 2 6 3];
b = [180;200];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(6,1);
vub = [];
[x,fval] = linprog(-f,a,b,aeq,beq,vlb,vub)

计划甲生产
A
3
A_3
A3产品180,乙生产
A
1
A_1
A1产品100,总收益最大为1920万元。
lingo求解:


如上结果可得出甲的影子价格为4,乙的影子价格为6;
最优值不变条件下目标函数系数的允许变化范围为:
x
11
(
12
,
16
)
,
x
12
(
5
,
12
)
,
x
13
(
3
,
4
)
,
x
21
(
2.667
,
12
)
,
x
22
(
5
,
36
)
,
x
23
(
4
,
18
)
x_{11}(12,16),x_{12}(5,12),x_{13}(3,4),x_{21}(2.667,12),x_{22}(5,36),x_{23}(4,18)
x11(12,16),x12(5,12),x13(3,4),x21(2.667,12),x22(5,36),x23(4,18)甲乙的原料供应量不能增加。可允许降低。注意:
x
11
x_{11}
x11系数的允许范围想要其他变量保持不变。
某医院负责人每日至少需要下列数量的护士:
| 班次 | 时间 | 最少护士数 |
|---|---|---|
| 1 | 6:00-10:00 | 60 |
| 2 | 10:00-14:00 | 70 |
| 3 | 14:00-18:00 | 60 |
| 4 | 18:00-22:00 | 50 |
| 5 | 22:00-2:00 | 20 |
| 6 | 2:00-6:00 | 30 |
医院领导为满足每班所需要的护士数,最少需要雇佣多少护士?
解:设
x
i
(
i
=
1
,
2
,
.
.
.
,
6
)
x_i(i=1,2,...,6)
xi(i=1,2,...,6)为6班次的护士数。
模型建立:
min
f
=
x
1
+
x
2
+
x
3
+
x
4
+
x
5
+
x
6
s
.
t
{
x
1
⩾
60
x
1
+
x
2
⩾
70
x
2
+
x
3
⩾
60
x
3
+
x
4
⩾
50
x
4
+
x
5
⩾
20
x
5
+
x
6
⩾
30
x
i
⩾
0
(
i
=
1
,
2
,
⋯
,
6
)
为整数
\min f=x_1+x_2+x_3+x_4+x_5+x_6\\s.t\left\{ \begin{array}{c} x_1\geqslant 60\\ x_1+x_2\geqslant 70\\ x_2+x_3\geqslant 60\\ x_3+x_4\geqslant 50\\ x_4+x_5\geqslant 20\\ x_5+x_6\geqslant 30\\ x_i\geqslant 0\left( i=1,2,\cdots ,6 \right) \text{为整数}\\\end{array} \right.
minf=x1+x2+x3+x4+x5+x6s.t⎩
⎨
⎧x1⩾60x1+x2⩾70x2+x3⩾60x3+x4⩾50x4+x5⩾20x5+x6⩾30xi⩾0(i=1,2,⋯,6)为整数
matlab求解:
% 目标函数
f = [1 1 1 1 1 1];
% 整数变量个数
intcon = [1,2,3,4,5,6];
% 不等式约束
a = [1 0 0 0 0 0;1 1 0 0 0 0;0 1 1 0 0 0;0 0 1 1 0 0;0 0 0 1 1 0;0 0 0 0 1 1];
b = [60;70;60;50;20;30];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(6,1);
vub = [];
[x,fval] = intlinprog(f,intcon,-a,-b,aeq,beq,vlb,vub)

最少雇佣150护士。
lingo求解:
model:
min=x1+x2+x3+x4+x5+x6;
x1>=60;
x1+x2>=70;
x2+x3>=60;
x3+x4>=50;
x4+x5>=20;
x5+x6>=30;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);@gin(x6);

各型号产品每件需占用 各工序时数和可获得的利润如下表所示
| 工序 | A 1 A_1 A1 | A 2 A_2 A2 | 可用工时/h |
|---|---|---|---|
| 装配/h | 2 | 3 | 100 |
| 检验/h | 4 | 2 | 120 |
| 利润/元 | 6 | 4 |
解:设生产产品
A
1
为
x
1
A_1为x_1
A1为x1件,
A
2
为
x
2
A_2为x_2
A2为x2件。
建立模型:
max
f
=
6
x
1
+
4
x
2
s
.
t
{
2
x
1
+
3
x
2
⩽
100
4
x
1
+
2
x
2
⩽
120
x
i
⩾
0
(
i
=
1
,
2
)
为整数
\max f=6x_1+4x_2\\s.t\left\{ \begin{array}{c} 2x_1+3x_2\leqslant 100\\ 4x_1+2x_2\leqslant 120\\ x_i\geqslant 0\left( i=1,2 \right) \text{为整数}\\\end{array} \right.
maxf=6x1+4x2s.t⎩
⎨
⎧2x1+3x2⩽1004x1+2x2⩽120xi⩾0(i=1,2)为整数
matlab求解:
% 目标函数
f = [6 4];
% 整数变量个数
intcon = [1,2];
% 不等式约束
a = [2 3;4 2];
b = [100;120];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(2,1);
vub = [];
[x,fval] = intlinprog(-f,intcon,a,b,aeq,beq,vlb,vub)

生产
A
1
=
20
,
A
2
=
20
A_1=20,A_2=20
A1=20,A2=20,最优解为200.
(lingo求解:)
model:
max=6*x1+4*x2;
2*x1+3*x2<=100;
4*x1+2*x2<=120;
@gin(x1);@gin(x2);


其中可以得出每增加一个单位的装配小时,利润增长0.5元,每增加一个单位的检验小时,利润增加1.25元。

在最优值不变的条件下,目标系数允许变化范围:
x
1
(
2.667
,
8
)
,
x
2
(
3
,
9
)
;
x_1(2.667,8),x_2(3,9);
x1(2.667,8),x2(3,9);当影子价格有意义时,约束右边项最多可增加装配时间:80,检验时间:80。
建立模型:
max
f
=
6
x
1
+
4
x
2
+
5
x
3
s
.
t
{
2
x
1
+
3
x
2
+
4
x
3
⩽
100
4
x
1
+
2
x
2
+
2
x
3
⩽
120
x
i
⩾
0
(
i
=
1
,
2
,
3
)
为整数
\max f=6x_1+4x_2+5x_3\\s.t\left\{ \begin{array}{c} 2x_1+3x_2+4x_3\leqslant 100\\ 4x_1+2x_2+2x_3\leqslant 120\\ x_i\geqslant 0\left( i=1,2,3 \right) \text{为整数}\\\end{array} \right.
maxf=6x1+4x2+5x3s.t⎩
⎨
⎧2x1+3x2+4x3⩽1004x1+2x2+2x3⩽120xi⩾0(i=1,2,3)为整数
matlab求解:
% 目标函数
f = [6 4 5];
% 整数变量个数
intcon = [1,2,3];
% 不等式约束
a = [2 3 4;4 2 2];
b = [100;120];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(3,1);
vub = [];
[x,fval] = intlinprog(-f,intcon,a,b,aeq,beq,vlb,vub)

利润在增加,可以投入生产。
问这两煤厂如何分配供煤,才能使总运输量最小?
解:设A,B分别向3个地区供煤
x
i
j
(
i
j
=
1
,
2
,
3
)
x_{ij}(ij=1,2,3)
xij(ij=1,2,3).
模型建立:
min
s
=
10
x
11
+
5
x
12
+
6
x
13
+
4
x
21
+
8
x
22
+
15
x
23
s
.
t
{
x
11
+
x
12
+
x
13
⩾
60
x
21
+
x
22
+
x
23
⩾
100
x
11
+
x
21
⩾
45
x
12
+
x
22
⩾
75
x
13
+
x
23
⩾
40
x
i
j
⩾
0
(
i
j
=
1
,
2
,
3
)
\min s=10x_{11}+5x_{12}+6x_{13}+4x_{21}+8x_{22}+15x_{23}\\s.t\left\{ \begin{array}{c} x_{11}+x_{12}+x_{13}\geqslant 60\\ x_{21}+x_{22}+x_{23}\geqslant 100\\ x_{11}+x_{21}\geqslant 45\\ x_{12}+x_{22}\geqslant 75\\ x_{13}+x_{23}\geqslant 40\\ x_{ij}\geqslant 0\left( ij=1,2,3 \right)\\\end{array} \right.
mins=10x11+5x12+6x13+4x21+8x22+15x23s.t⎩
⎨
⎧x11+x12+x13⩾60x21+x22+x23⩾100x11+x21⩾45x12+x22⩾75x13+x23⩾40xij⩾0(ij=1,2,3)
matlab求解:
% 目标函数
f = [10 5 6 4 8 15];
% 整数变量个数
intcon = [1,2,3,4,5,6];
% 不等式约束
a = [1 1 1 0 0 0;0 0 0 1 1 1;1 0 0 1 0 0;0 1 0 0 1 0;0 0 1 0 0 1];
b = [60 100 45 75 40];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(6,1);
vub = [];
[x,fval] = intlinprog(f,intcon,-a,-b,aeq,beq,vlb,vub)

A厂供煤0 20 40;B厂供煤45 55 0。总运输量为960。
下表列出三种单位产品对每种资源的需求量:
| 产品 | 技术服务 | 劳动力 | 行政管理 | 利润 |
|---|---|---|---|---|
| 一 | 1 | 10 | 2 | 10 |
| 二 | 1 | 4 | 2 | 6 |
| 三 | 1 | 5 | 6 | 4 |
解:设生产一、二、三产品数为
x
i
(
i
=
1
,
2
,
3
)
x_i(i=1,2,3)
xi(i=1,2,3)
模型建立:
max
f
=
10
x
1
+
6
x
2
+
4
x
3
s
.
t
{
x
1
+
x
2
+
x
3
⩽
100
10
x
1
+
4
x
2
+
5
x
3
⩽
600
2
x
1
+
2
x
2
+
6
x
3
⩽
300
x
i
⩾
0
(
i
=
1
,
2
,
3
)
\max f=10x_1+6x_2+4x_3\\s.t\left\{ \begin{array}{c} x_1+x_2+x_3\leqslant 100\\ 10x_1+4x_2+5x_3\leqslant 600\\ 2x_1+2x_2+6x_3\leqslant 300\\ x_i\geqslant 0\left( i=1,2,3 \right)\\\end{array} \right.
maxf=10x1+6x2+4x3s.t⎩
⎨
⎧x1+x2+x3⩽10010x1+4x2+5x3⩽6002x1+2x2+6x3⩽300xi⩾0(i=1,2,3)
matlab求解:
% 目标函数
f = [10 6 4];
% 整数变量个数
intcon = [1,2,3];
% 不等式约束
a = [1 1 1;10 4 5;2 2 6];
b = [100;600;300];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(3,1);
vub = [];
[x,fval] = intlinprog(-f,intcon,a,b,aeq,beq,vlb,vub)

三利润增加到25/3:

产品三利润增加25/3不值得。
lingo求解:
model:
max=10*x1+6*x2+4*x3;
x1+x2+x3<=100;
10*x1+4*x2+5*x3<=600;
2*x1+2*x2+6*x3<=300;
@gin(x1);@gin(x2);@gin(x3);
end

由图可知,影子价格为0.
模型改进:
max
f
=
10
x
1
+
6
x
2
+
4
x
3
+
8
x
4
s
.
t
{
x
1
+
x
2
+
x
3
+
x
4
⩽
100
10
x
1
+
4
x
2
+
5
x
3
+
4
x
4
⩽
600
2
x
1
+
2
x
2
+
6
x
3
+
4
x
4
⩽
300
x
i
⩾
0
(
i
=
1
,
2
,
3
,
4
)
\max f=10x_1+6x_2+4x_3+8x_4\\s.t\left\{ \begin{array}{c} x_1+x_2+x_3+x_4\leqslant 100\\ 10x_1+4x_2+5x_3+4x_4\leqslant 600\\ 2x_1+2x_2+6x_3+4x_4\leqslant 300\\ x_i\geqslant 0\left( i=1,2,3,4 \right)\\\end{array} \right.
maxf=10x1+6x2+4x3+8x4s.t⎩
⎨
⎧x1+x2+x3+x4⩽10010x1+4x2+5x3+4x4⩽6002x1+2x2+6x3+4x4⩽300xi⩾0(i=1,2,3,4)
matlab求解:
% 目标函数
f = [10 6 4 8];
% 整数变量个数
intcon = [1,2,3,4];
% 不等式约束
a = [1 1 1 1;10 4 5 4;2 2 6 4];
b = [100;600;300];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(4,1);
vub = [];
[x,fval] = intlinprog(-f,intcon,a,b,aeq,beq,vlb,vub)

生产一产品33,二产品17,三产品0,四产品50,最优利润为832.
模型改进:
max
f
=
10
x
1
+
6
x
2
+
4
x
3
s
.
t
{
x
1
+
x
2
+
x
3
⩽
100
10
x
1
+
4
x
2
+
5
x
3
⩽
600
2
x
1
+
2
x
2
+
6
x
3
⩽
300
x
3
⩾
10
x
i
⩾
0
(
i
=
1
,
2
,
3
)
\max f=10x_1+6x_2+4x_3\\s.t\left\{ \begin{array}{c} x_1+x_2+x_3\leqslant 100\\ 10x_1+4x_2+5x_3\leqslant 600\\ 2x_1+2x_2+6x_3\leqslant 300\\ x_3\geqslant 10\\ x_i\geqslant 0\left( i=1,2,3 \right)\\\end{array} \right.
maxf=10x1+6x2+4x3s.t⎩
⎨
⎧x1+x2+x3⩽10010x1+4x2+5x3⩽6002x1+2x2+6x3⩽300x3⩾10xi⩾0(i=1,2,3)
matlab求解:
% 目标函数
f = [10 6 4];
% 整数变量个数
intcon = [1,2,3];
% 不等式约束
a = [1 1 1;10 4 5;2 2 6;0 0 -1];
b = [100;600;300;-10];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(3,1);
vub = [];
[x,fval] = intlinprog(-f,intcon,a,b,aeq,beq,vlb,vub)

生产产品一31,生产产品二59,生产产品三10.最优利润为704
有关数据如下:
| 1 | 2 | 3 | 每月设备有效台时 | |
|---|---|---|---|---|
| A | 8 | 2 | 10 | 300 |
| B | 10 | 5 | 8 | 400 |
| C | 2 | 13 | 10 | 420 |
| 单位产品利润/千元 | 3 | 2 | 2.9 |
解:设ABC分别加工123产品数
x
i
j
(
i
j
=
1
,
2
,
3
)
x_ij(ij=1,2,3)
xij(ij=1,2,3)
模型建立:
max
f
1
=
3
x
11
+
2
x
12
+
2.9
x
13
+
3
x
21
+
2
x
22
+
2.9
x
23
+
3
x
31
+
2
x
32
+
2.9
x
33
s
.
t
{
8
x
11
+
2
x
12
+
10
x
13
⩽
300
10
x
21
+
5
x
22
+
8
x
23
⩽
400
2
x
31
+
13
x
32
+
10
x
33
⩽
420
x
i
j
⩾
0
(
i
j
=
1
,
2
,
3
)
\max f_1=3x_{11}+2x_{12}+2.9x_{13}+3x_{21}+2x_{22}+2.9x_{23}+3x_{31}+2x_{32}+2.9x_{33}\\s.t\left\{ \begin{array}{c} 8x_{11}+2x_{12}+10x_{13}\leqslant 300\\ 10x_{21}+5x_{22}+8x_{23}\leqslant 400\\ 2x_{31}+13x_{32}+10x_{33}\leqslant 420\\ x_{ij}\geqslant 0\left( ij=1,2,3 \right)\\\end{array} \right.
maxf1=3x11+2x12+2.9x13+3x21+2x22+2.9x23+3x31+2x32+2.9x33s.t⎩
⎨
⎧8x11+2x12+10x13⩽30010x21+5x22+8x23⩽4002x31+13x32+10x33⩽420xij⩾0(ij=1,2,3)
matlab求解:
% 目标函数
f = [3 2 2.9;3 2 2.9;3 2 2.9];
% 不等式约束
a = [8 2 10 0 0 0 0 0 0;0 0 0 10 5 8 0 0 0;0 0 0 0 0 0 2 13 10];
b = [300;400;420];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(9,1);
vub = [];
[x,fval] = linprog(-f,a,b,aeq,beq,vlb,vub)

A生产产品2数150,B生产产品2数80,C生产产品1数210,利润最大1219
模型改进:
max
f
1
=
3
x
11
+
2
x
12
+
2.9
x
13
+
3
x
21
+
2
x
22
+
2.9
x
23
+
3
x
31
+
2
x
32
+
2.9
x
33
−
18
s
.
t
{
8
x
11
+
2
x
12
+
10
x
13
⩽
300
10
x
21
+
5
x
22
+
8
x
23
⩽
460
2
x
31
+
13
x
32
+
10
x
33
⩽
420
x
i
j
⩾
0
(
i
j
=
1
,
2
,
3
)
\max f_1=3x_{11}+2x_{12}+2.9x_{13}+3x_{21}+2x_{22}+2.9x_{23}+3x_{31}+2x_{32}+2.9x_{33}-18\\s.t\left\{ \begin{array}{c} 8x_{11}+2x_{12}+10x_{13}\leqslant 300\\ 10x_{21}+5x_{22}+8x_{23}\leqslant 460\\ 2x_{31}+13x_{32}+10x_{33}\leqslant 420\\ x_{ij}\geqslant 0\left( ij=1,2,3 \right)\\\end{array} \right.
maxf1=3x11+2x12+2.9x13+3x21+2x22+2.9x23+3x31+2x32+2.9x33−18s.t⎩
⎨
⎧8x11+2x12+10x13⩽30010x21+5x22+8x23⩽4602x31+13x32+10x33⩽420xij⩾0(ij=1,2,3)
matlab求解:
% 目标函数
f = [3 2 2.9;3 2 2.9;3 2 2.9];
% 不等式约束
a = [8 2 10 0 0 0 0 0 0;0 0 0 10 5 8 0 0 0;0 0 0 0 0 0 2 13 10];
b = [300;460;420];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(9,1);
vub = [];
[x,fval] = linprog(-f,a,b,aeq,beq,vlb,vub)
fval = fval-18

合算。
模型建立:
max
f
1
=
3
x
11
+
2
x
12
+
2.9
x
13
+
2.1
x
14
+
1.87
x
15
+
3
x
21
+
2
x
22
+
2.9
x
23
+
2.1
x
24
+
1.87
x
25
+
3
x
31
+
2
x
32
+
2.9
x
33
+
2.1
x
34
+
1.87
x
35
s
.
t
{
8
x
11
+
2
x
12
+
10
x
13
+
12
x
14
+
4
x
15
⩽
300
10
x
21
+
5
x
22
+
8
x
23
+
5
x
24
+
4
x
25
⩽
400
2
x
31
+
13
x
32
+
10
x
33
+
10
x
34
+
12
x
35
⩽
420
x
i
j
⩾
0
(
i
j
=
1
,
2
,
3
,
4
,
5
)
\max f_1=3x_{11}+2x_{12}+2.9x_{13}+2.1x_{14}+1.87x_{15}+3x_{21}+2x_{22}+2.9x_{23}+2.1x_{24}+1.87x_{25}+3x_{31}+2x_{32}+2.9x_{33}+2.1x_{34}+1.87x_{35}\\s.t\left\{ \begin{array}{c} 8x_{11}+2x_{12}+10x_{13}+12x_{14}+4x_{15}\leqslant 300\\ 10x_{21}+5x_{22}+8x_{23}+5x_{24}+4x_{25}\leqslant 400\\ 2x_{31}+13x_{32}+10x_{33}+10x_{34}+12x_{35}\leqslant 420\\ x_{ij}\geqslant 0\left( ij=1,2,3,4,5 \right)\\\end{array} \right.
maxf1=3x11+2x12+2.9x13+2.1x14+1.87x15+3x21+2x22+2.9x23+2.1x24+1.87x25+3x31+2x32+2.9x33+2.1x34+1.87x35s.t⎩
⎨
⎧8x11+2x12+10x13+12x14+4x15⩽30010x21+5x22+8x23+5x24+4x25⩽4002x31+13x32+10x33+10x34+12x35⩽420xij⩾0(ij=1,2,3,4,5)
matlab求解:
% 目标函数
f = [3 2 2.9 2.1 1.87;3 2 2.9 2.1 1.87;3 2 2.9 2.1 1.87];
% 不等式约束
a = [8 2 10 12 4 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 10 5 8 5 4 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 2 13 10 10 12];
b = [300;400;420];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(15,1);
vub = [];
[x,fval] = linprog(-f,a,b,aeq,beq,vlb,vub)

不合算。
模型建立:
max
f
1
=
4.5
x
11
+
2
x
12
+
2.9
x
13
+
4.5
x
21
+
2
x
22
+
2.9
x
23
+
4.5
x
31
+
2
x
32
+
2.9
x
33
s
.
t
{
9
x
11
+
2
x
12
+
10
x
13
⩽
300
12
x
21
+
5
x
22
+
8
x
23
⩽
400
4
x
31
+
13
x
32
+
10
x
33
⩽
420
x
i
j
⩾
0
(
i
j
=
1
,
2
,
3
)
\max f_1=4.5x_{11}+2x_{12}+2.9x_{13}+4.5x_{21}+2x_{22}+2.9x_{23}+4.5x_{31}+2x_{32}+2.9x_{33}\\s.t\left\{ \begin{array}{c} 9x_{11}+2x_{12}+10x_{13}\leqslant 300\\ 12x_{21}+5x_{22}+8x_{23}\leqslant 400\\ 4x_{31}+13x_{32}+10x_{33}\leqslant 420\\ x_{ij}\geqslant 0\left( ij=1,2,3 \right)\\\end{array} \right.
maxf1=4.5x11+2x12+2.9x13+4.5x21+2x22+2.9x23+4.5x31+2x32+2.9x33s.t⎩
⎨
⎧9x11+2x12+10x13⩽30012x21+5x22+8x23⩽4004x31+13x32+10x33⩽420xij⩾0(ij=1,2,3)
matlab求解:
% 目标函数
f = [4.5 2 2.9;4.5 2 2.9;4.5 2 2.9];
% 不等式约束
a = [9 2 10 0 0 0 0 0 0;0 0 0 12 5 8 0 0 0;0 0 0 0 0 0 4 13 10];
b = [300;400;420];
% 等式约束
aeq = [];
beq = [];
% 上下限
vlb = zeros(9,1);
vub = [];
[x,fval] = linprog(-f,a,b,aeq,beq,vlb,vub)

我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor
ruby中有这样的东西吗?send(+,1,2)我想让这段代码看起来不那么冗余ifop=="+"returnarg1+arg2elsifop=="-"returnarg1-arg2elsifop=="*"returnarg1*arg2elsifop=="/"returnarg1/arg2 最佳答案 是的,只需像这样使用send(或者更好的是public_send):arg1.public_send(op,arg2)这是可行的,因为Ruby中的大多数运算符(包括+、-、*、/、andmore)只需调用方法。所以1+2与1.+(2)相同
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
情况:我正在编写一个程序来求解素数。我需要解决4x^2+y^2=n的问题,其中n是一个已知变量。是的,必须是Ruby。我愿意在这个项目上花费大量时间。我最好自己编写方程式的求解算法,并将其作为该项目的一部分。我真正喜欢的是:如果任何人都可以向我提供指南、网站的链接,或者关于与求解代数方程特别相关的形式算法的构造的歧义消除,或者向我提供似乎你是读者它会帮助我完成任务。请不要建议我使用其他语言。如果您在回答之前接受我真的非常想这样做,我将不胜感激。该项目没有范围或时间限制,也不以营利为目的。这是为了我自己的教育。注意:我并不直接反对为Ruby实现和使用现存的数学库/模块/其他东西,但我更喜
我发现许多Rails应用程序主要针对企业、社交网络类型的Web应用程序。我看到有人将Ruby与一些出色的OOPS语言(如Java和C#)进行了比较,但我确实发现很难获得一些数学密集型应用程序。非常感谢任何知识渊博的输入(指向示例程序的链接等),其中轻松显示了语言的用法,就像快速启动或显示该语言如何用于各种数学问题一样。 最佳答案 不幸的是,Ruby并没有在数学和科学计算领域涉足太多。目前,有一个名为SciRuby的pre-alpha库它试图为Ruby带来更多面向数学的功能。他们正试图构建一个NumPy/SciPy等价物。SciRub
link有两个组件:componenta_id和componentb_id。为此,在Link模型文件中我有:belongs_to:componenta,class_name:"Component"belongs_to:componentb,class_name:"Component"validates:componenta_id,presence:truevalidates:componentb_id,presence:truevalidates:componenta_id,uniqueness:{scope::componentb_id}validates:componentb_id
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对
“架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概
目录1.1访问Cisco路由器的方法1.1.1通过Console口访问路由器1.1.2通过Telnet访问路由器1.1.3终端访问服务器1.2终端访问服务器配置命令汇总1.1访问Cisco路由器的方法 路由器没有键盘和鼠标,要初始化路由器需要把计算机的串口和路由器的Console口进行连接。访问Cisco路由器的方法还有Telnet、WebBrowser和网络管理软件(如CiscoWorks)等,本节讨论前2种。1.1.1通过Console口访问路由器 计算机的串口和路由器的Console口是通过反转线(Rollover)进行连接的,反转线的一端接在路由器的Console口上,另一
快速求三阶矩阵的逆矩阵前言一般情况下,我们求解伴随矩阵是要注意符号问题和位置问题的(如下所示)A−1=1[ ][−[ ]−[ ]−[ ] −[ ]]=A−1=1[ ][ M11−[M12] M13−[M21] M22−[M23] M31−[M32] M33]⊤\begin{aligned}&A^{-1}=\frac{1}{[\\]}\left[\begin{array}{cccccc}&-[\\]&\\-[\\]&&-[\\]\\\\&-[\\]&\\\end{array}\right]=\\\\&A^{-1}=\frac{1}{[\\]}\left[\b