常见数学建模练习题目及解答
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
4
4
∑ ∑ ∑ xi1
xi2
xi3
i =1
= i=1
= i=1
10 16
8
model:
sets:
wu/1..4/:a,b,c;
cang/1..3/:w,v;
link(wu,cang):x;
endsets
data:
a,b,c= 18
480
3200
15
650
3900
23
580
3600
12
390
2950;
x1
+
d
− 2
−
d
+ 2
= 12
对 II 级有
12 −
x1
+
x2
+
d
− 3
−
d
+ 3
= 15
对 III 级有
15 −
x2
+
x3
+
d
− 4
−
d
+ 4
= 15
II,III 级的升级面尽可能达到现有人数的 20%
对 II 级有
x1
+
d
− 5
−
d5+
= 12 × 0.2
对 III 级有
x2
+
d
− 6
−
d
+ 6
需要运输的第 i 种货物的重量,单位重量所占的空间和单位货物的利润。则
(1)目标函数
3
3
wk.baidu.com
3
3
4
3
∑ ∑ ∑ ∑ ∑ ∑ z = c1 x1 j + c2 x2 j + c3 x3 j + c4 x4 j = ci xij
j =1
j =1
j =1
j =1
i=1 j =1
(2)约束条件 i)四种货物的重量约束
先分别建立各目标约束。 年工资总额不超过 60000 元:
2000(10 −10 × 0.1 + x1 ) + 1500(12 − x1 + x2 ) + 1000(15 − x2 + x3 ) + d1− − d1+ = 60000
每级的人数不超过定编规定的人数:
对 I 级有
10(1 −
0.1)
+
⎨ ⎪⎩
y
2
'
=
−
y2 x
− (1 −
1 4x
2
)
y1
y1=dsolve('x^2*D2y+x*Dy+(x^2-1/4)*y','y(pi/2)=2,Dy(pi/2)=-2/pi',' x'); subplot(1,3,1) ezplot(y1,[pi/2,pi]) f=@(x,y) [y(2);-y(2)/x-(1-0.25./x.^2)*y(1)]; [x,y2]=ode45(f,[pi/2,pi],[2,-2/pi]) subplot(1,3,2) plot(x,y2(:,1)) y3=subs(y1,'x',x); subplot(1,3,3) plot(x,y3)
= i=1
= i=1
10 16
8
综上所述,我们建立如下线性规划模型
4
3
∑ ∑ max z = ci xij
i=1 j=1
3
∑ s.t.
xij ≤ ai , i = 1,2,3,4
j =1
4
∑ xij ≤ w j , j = 1,2,3
i =1
4
∑ bi xij ≤ v j , j = 1,2,3
i =1
=
3
−
x2
+
x3
+
d
− 4
−
d
+ 4
=
0
x1
+
d
− 5
−
d
+ 5
=
2.4
x2
+
d
− 6
−
d
+ 6
=3
model: sets: level/1..3/:p,z,goal; variable/1..3/:x; s_con_num/1..6/:g,dplus,dminus; s_con(s_con_num,variable):c; obj(level,s_con_num)/1 1,2 2,2 3,2 4,3 5,3 6/:wplus,wminus; endsets data: ctr=?; goal=? ? 0; g=9000 3 3 0 2.4 3; c=500 500 1000 100 -1 1 0 0 -1 1 100 0 1 0; wplus=1 1 1 1 0 0; wminus=0 0 0 0 1 1; enddata min=@sum(level:p*z);
4.一架货机有三个货舱:前舱、中仓和后舱。三个货舱所能装载的货物的最大重量和
体积有限制如表 2 所示。并且为了飞机的平衡,三个货舱装载的货物重量必须与其最大的容
许量成比例。
表2
前舱
中仓
后舱
重量限制(吨)
15
16
10
体积限制(立方米)
6800
8700
5300
现有四类货物用该货机进行装运,货物的规格以及装运后获得的利润如表 3。
表3
重量(吨)
空间(立方米/吨) 利润(元/吨)
货物 1
18
480
3200
货物 2
15
650
3900
货物 3
23
580
3600
货物 4
12
390
2950
假设: (1)每种货物可以无限细分; (2)每种货物可以分布在一个或者多个货舱内; (3)不同的货物可以放在同一个货舱内,并且可以保证不留空隙。 问应如何装运,使货机飞行利润最大?
3
∑ xij ≤ ai , i = 1,2,3,4
j =1
ii)三个货舱的重量限制
4
∑ xij ≤ w j , j = 1,2,3
i =1
iii)三个货舱的体积限制
4
∑ bi xij ≤ v j , j = 1,2,3
i =1
iv)三个货舱装入货物的平衡限制
4
4
4
∑ ∑ ∑ xi1
xi2
xi3
i =1
8.某商品前 5 年的销售量见表 5。现希望根据前 5 年的统计数据预测第 6 年起该商品 在各季度中的销售量。要求用差分方程和时间序列两种方法预测。
年份 季度
1 2 3 4
第一年
11 16 25 12
表5 第二年 第三年
解 求符号解的MATLAB命令为 y=dsolve('x^2*D2y+x*Dy+(x^2-1/4)*y','y(pi/2)=2,Dy(pi/2)=-2/pi','x ')
下面求数值解,首先把方程化成一阶方程组。
设 y1 = y , y2 = y' ,则二阶方程可以化成如下一阶方程组
⎧ ⎪
y1
'
=
y2
8
2
55
5
2
1
9
7
4
3
3
51
7
6
7
3
9
2
7
1
43
2
3
9
5
7
2
6
5
41
5
5
2
2
8
1
4
3
52
35 37 22 32 41 32 43 38
2. 使用 MATLAB 软件随机生成一个 200 × 200 的矩阵,然后把矩阵的对角线元素修改
成 0,把所得到的矩阵作为 TSP 问题中的距离邻接矩阵。使用纯文本文件和 Excel 文件两种 方法传递数据,用 LINGO 软件编程求最短 Hamilton 圈的长度。
w=15
16
10;
v=6800
8700
5300;
enddata
max=@sum(wu(i):c(i)*@sum(cang(j):x(i,j)));
@for(wu(i):@sum(cang(j):x(i,j))<a(i));
@for(cang(j):@sum(wu(i):x(i,j))<w(j));
@for(cang(j):@sum(wu(i):b(i)*x(i,j))<v(j));
解:用 i = 1,2,3,4 分别表示货物 1,货物 2,货物 3 和货物 4; j = 1,2,3 分别表示前舱,
中舱和后舱。设 xij ( i = 1,2,3,4 , j = 1,2,3,4 )表示第 i 种货物装在第 j 个货舱内的重量,
w j , v j ( j = 1,2,3) 分别表示第 j 个舱的重量限制和体积限制,ai , bi , ci (i = 1,2,3,4) 分别表示
合计
37
42
(要求建立模型,并用LINGO软件求解)
解 设 x1 、 x2 、 x3 分别表示提升到 I、II 级和录用到 III 级的新职工人数。对各目标确
定的优先因子为:
P1 − 不超过年工资总额 60000 元;
P2 − 每级的人数不超过定编规定的人数;
P3 − II、III 级的升级面尽可能达到现有人数的 20%。
6. 用Matlab符号求解命令求微分方程的精确解,并用欧拉方法和龙格—库塔方法求 微分方程数值解,画出解的图形,对结果进行分析比较。
x2 y' '+ xy'+( x2
− n2)y
=
0, y⎜⎛ π ⎟⎞ ⎝2⎠
=
2, y' ⎜⎛ π ⎟⎞ ⎝2⎠
=
−2 π
(Bessel
方程,令 n =
1 2
,精
确解 y = sin x 2π ). x
(3)II,III 级的升级面尽可能达到现有人数的 20%;
(4)III 级不足编制的人数可录用新职工,又 I 级的职工中有 10%要退休。 有关资料汇总于表 4 中,问该领导应如何拟定一个满意的方案。
表4
等级
工资额(元/年)
现有人数
编制人数
I
2000
10
12
II
1500
12
15
III
1000
15
15
@for(cang(j)|j#le#2:@sum(wu(i):x(i,j))/w(j)=@sum(wu(i):x(i,j+1))/w(j+1));
end
5. 某单位领导在考虑本单位职工的升级调资方案时,依次遵守以下规定:
(1)不超过年工资总额 60000 元; (2)每级的人数不超过定编规定的人数;
p(ctr)=1; @for(level(i)|i#ne#ctr:p(i)=0); @for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)*dmin us(j))); @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g( i)); @for(level(i)|i #lt# @size(level):@bnd(0,z(i),goal(i))); @for(variable:@gin(x)); end
解 LINGO 程序如下: model: data:
M=5; enddata sets:
rows/1..M/: b; cols/1..100/: x; table(rows,cols): a;
endsets data:
a=@qrand(); b=@qrand(); enddata min=@sum(cols(i):i*@abs(x(i))); @sum(cols:x)=1; @sum(cols(i):i*x(i))=1; @sum(cols(i)|i#le#50:x(2*i-1))-@sum(cols(i)|i#le#50:x(2*i))=0; @for(rows(i):@sum(cols(j):a(i,j)*x(j))<b(i)); @for(cols:@free(x)); end
7.Lorenz方程是一个三阶的非线性系统,它是由描述大气动力系统的Navier-Stokes 偏微分方程演化而来的。自由系统如下:
⎧x& = σ ( y − x)
⎪ ⎨
y&
=
βx
−
y
−
xz
⎪⎩z& = −λz + xy
当系统参数σ , β , λ 在一定范围内,系统就出现混沌,如σ = 10 , β = 28 , λ = 8 / 3
2008 数学建模练习题目
1. 使用 LINGO 软件的 Excel 文件传递数据,计算 6 个发点 8 个收点的最小费用运输问
题。产销单位运价如表 1。
表 1 运输费用表
单位运价 产地
销地
B1
B2
B3
B4
B5
B6
B7
B8 产量
A1 A2 A3 A4 A5 A6 销量
6
2
6
7
4
2
5
9
60
4
9
5
3
8
5
= 15 × 0.2
对上述目标约束进行化简,建立如下目标规划模型
min
z
=
P1d1+
+
P2
(d
+ 2
+
d3+
+
d
+ 4
)
+
P3
(d
− 5
+
d
− 6
)
s.t. 500x1 + 500x2 + 1000x3 + d1− − d1+ = 9000
x1
+
d
− 2
−
d
+ 2
=3
−
x1
+
x2
+
d
− 3
−
d
+ 3
3.求解下列数学规划
100
min ∑i xi i=1
100
∑ s.t.
xi = 1
i=1
100
∑ixi = 10
i =1
50
50
∑ ∑ x2i−1 − x2i = 0
i=1
i =1
Ax ≤ b
这里的 A 是随机生成的 5×100 矩阵, b 是随机生成的 5 维列向量, x = (x1,L, x100 )T 。
时,出现混沌现象。求在初始条件[x(0), y(0), z(0)] = [5, 13, 17] 时,方程组的数值解,并
画出解的图形。 rho=10; beta=28; lamda=8/3; f=@(t,Y) [rho*(Y(2)-Y(1)) beta*Y(1)-Y(2)-Y(1)*Y(3) -lamda*Y(3)+Y(1)*Y(2)]; [t,Y]=ode45(f,[0,100],[5,13,17]) subplot(2,2,1) plot(t,Y(:,1),'*') subplot(2,2,2) plot(t,Y(:,2),'V') subplot(2,2,3) plot(t,Y(:,3),'O') subplot(2,2,4) plot3(Y(:,1),Y(:,2),Y(:,3))