数学建模第二章作业答案章绍辉
习题2作业讲评
1. 继续考虑
2.2节的“汽车刹车距离”案例,请问“两秒准则”和“一车长度准则”一样吗?“两秒准则”是否足够安全?对于安全车距,你有没有更好的建议?(“两秒准则”,即后车司机从前车经过某一标志开始,默数2秒之后到达同一标志,而不管车速如何. 刹车距离与车速的经验公式
20.750.082678d v v =+,速度单位为m/s ,距离单位为m )
解答
(1)“两秒准则”表明前后车距与车速成正比例关系. 引入以下符号:
D ~ 前后车距(m );v ~ 车速(m/s );
于是“两秒准则”的数学模型为22D K v v ==. 与“一车长度准则”相比是否一样,依赖于一车长度的选取.
比较2
0.750.082678d v v =+与2D v =,得:
()0.082678 1.25d D v v -=-
所以当15.12 m/s v <(约合54.43 km/h )时,有d
另外,还可以通过绘图直观的解释“两秒准则”够不够安全. 用以下MATLAB 程序把刹车距离实测数据和“两秒准则”都画在同一幅图中(图1).
v=(20:5:80).*0.44704;
d2=[18,25,36,47,64,82,105,132,162,196,237,283,334 22,31,45,58,80,103,131,165,202,245,295,353,418
20,28,40.5,52.5,72,92.5,118,148.5,182,220.5,266,318,376]; d2=0.3048.*d2;
k1=0.75; k2=0.082678; K2=2; d1=[v;v;v].*k1; d=d1+d2;
plot([0,40],[0,K2*40],'k') hold on
plot(0:40,polyval([k2,k1,0],0:40),':k') plot([v;v;v],d,'ok','MarkerSize',2)
title('比较刹车距离实测数据、理论值和两秒准则') legend('两秒准则','刹车距离理论值',...
'刹车距离的最小值、平均值和最大值',2) xlabel('车速v (m/s )') ylabel('距离(m )') hold off
51015
2025
303540
020406080100120
140160180比较刹车距离实测数据、理论值和两秒准则
车速v (m/s )
距离(m )
两秒准则
刹车距离理论值
刹车距离的最小值、平均值和最大值
图1
hold on
plot([10,35]*0.44704,2*[10,35]*0.44704,'k',... [35,60]*0.44704,3*[35,60]*0.44704,'k',... [60,75]*0.44704,4*[60,75]*0.44704,'k') title('t 秒准则,刹车距离的模型和数据') xlabel('车速v (m/s )') ylabel('距离(m )') hold off
51015
2025
303540
020406080100120140160180车速v (m/s )
距离(m )
t 秒准则,刹车距离的模型和数据
t 秒准则
刹车距离理论值
刹车距离的最小值、平均值和最大值
图2
4. 继续考虑2.3节“生猪出售时机”案例,假设在第t 天的生猪出售的市场价格(元/公斤)为
2()(0)p t p gt ht =-+ (1)
其中h 为价格的平稳率,取h =0.0002. 其它模型假设和参数取值保持不变.
(1) 试比较(1)式与(2.3.1)式,解释新的假设和原来的假设的区别与联系;
(2)在新的假设下求解最佳出售时机和多赚的纯利润; (3)作灵敏度分析,分别考虑h 对最佳出售时机和多赚的纯利润的影响;
(4)讨论模型关于价格假设的强健性. 解答一(用MATLAB 数值计算)
(1)比较(1)式与(2.3.1)式,(1)式表明价格先降后升,(2.3.1)式假设价格匀速下降,(1)式更接近实际(图3). 两个假设都满足(0)p g '=-,在最佳出售时机附近误差微小(图4). 绘图的程序
p=@(t)12-0.08*t+0.0002*t.^2; figure(1) n=400;
plot([0,n],[12,12-0.08*n],'k:',... 0:.1:n,p(0:.1:n),'k') axis([0,400,0,20])
title('模型假设(1)式与(2.3.1)式的比较')
legend('p(0) - g t (1)式',... 'p(0) - g t + h t^2 (2.3.1)式') xlabel('t (天)')
ylabel('p (元/公斤) ') figure(2) n=20;
plot([0,n],[12,12-0.08*n],'k:',... 0:.1:n,p(0:.1:n),'k')
title('模型假设(1)式与(2.3.1)式的比较')
legend('p(0) - g t (1)式',... 'p(0) - g t + h t^2 (2.3.1)式') xlabel('t (天)'), ylabel('p (元/公斤) ')
50
100
150
200250
300
350
400
024********
161820
模型假设(1)式与(2.3.1)式的比较
t (天)
p (元/公斤)
p(0) - g t (1)式
p(0) - g t + h t 2 (2.3.1)式
图3
2468
101214161820
10.410.610.81111.211.411.611.812
模型假设(1)式与(2.3.1)式的比较
t (天)
p (元/公斤)
p(0) - g t (1)式
p(0) - g t + h t 2 (2.3.1)式
图4
(2)在(1)式和(2.3.1)式组成的假设下,多赚的纯利润为
()()23()(0)(0)(0)Q t rp gw c t hw gr t hrt =--+-+
保留h ,代入其他具体数值,得
()32()900.08 1.6Q t ht h t t =+-+
令
()2()31800.16 1.60Q t ht h t '=+-+=
解得生猪出售时机为
()2
10.161800.1619.230h h
t -
--=
-(舍去负根)
多赚的纯利润为
()321111900.08 1.6Q ht h t t =+-+.
代入h =0.0002,得113.829t =天,110.798Q =元.
或者用MATLAB 函数fminbnd 计算,脚本如下: C=@(t)3.2*t; w=@(t)90+t;
p=@(t,h)12-0.08*t+h*t.^2;
Q=@(t,h)p(t,h).*w(t)-C(t)-90*12; Qh=@(t)-Q(t,0.0002); t1=fminbnd(Qh,0,30) Q1=Q(t1,0.0002)
为帮助理解,可用以下脚本绘制图5: figure(2) tp=0:250;
plot(tp,Q(tp,0.0002),'k') title('纯利润Q') xlabel('t (天)') ylabel('Q (元) ')
050100
150200250
-600
-500
-400
-300
-200
-100
100
纯利润Q
t (天)
Q (元)
图5
(3)用以下MATLAB 脚本计算灵敏度(,)t t
S t h h h ?=?和(,)Q Q
S Q h h h ?=
?,将结果列表.
结论:h 的微小变化对t 和Q 的影响都很小 Qh=@(t)-Q(t,0.0002*1.01); [tn,Qn]=fminbnd(Qh,0,30); (tn-t1)/t1/0.01 (-Qn-Q1)/Q1/0.01
Qh=@(t)-Q(t,0.0002*1.05); [tn,Qn]=fminbnd(Qh,0,30); (tn-t1)/t1/0.05 (-Qn-Q1)/Q1/0.05
Qh=@(t)-Q(t,0.0002*1.1); [tn,Qn]=fminbnd(Qh,0,30); (tn-t1)/t1/0.1 (-Qn-Q1)/Q1/0.1
表3 数值计算最佳出售时机t 对h 的灵敏度
h h +?
h h ?(%)
t t +?
t t ?(%)
(,)t t S t h h h
?=
?
0.000202 1 13.886 0.41459 0.41459 0.00021 5 14.121 2.1176 0.42352 0.00022
10
14.431 4.3536
0.43536
表4 数值计算多赚的纯利润Q 对h 的灵敏度
h h +?
h h ?(%)
Q Q +?
Q Q ?(%)
(,)Q Q S Q h h h
?=
? 0.000202 1 10.838 0.36936 0.36936 0.00021 5 11.001 1.8802 0.37604 0.00022 10
11.214
3.8479
0.38479
(4)市场价格是经常波动的,如果价格下跌,往往会止跌回稳,模型假设(1)式以二次函数来刻画价格止跌回升的变化趋势,如果考虑的时间段长达数月,(1)式比(2.3.1)式更接近实际(见图3),但是本问题的最佳出售时机不超过20天,(1)式与(2.3.1)式在最佳出售时机附近非常近似(见图4),(1)式导致的模型解答可以由(2.3.1)式导致的解答加上灵敏度分析所代替. 所以采用更为简单的(2.3.1)式作为假设更好.
具体分析如下:
由12()(,)g g t p t h -+?=,得
12(,)
1g p t h g gt
?-=-, 代入h =0.0002,t =13.82852279,g =0.08,得
0.034571g
g
?=-. 由于(,)t g S t g t g
??≈,根据课本2.3节,代入(,) 5.5S t g =-,t =10,算得11.901t t +?=,与t =13.829只相差两天.
用于以上分析计算的MATLAB 脚本: dg_g=(12-p(ts,0.0002))/ts/0.08-1 10+dg_g*10*(-5.5)
解答二(用MATLAB 的Symbolic Math Toolbox 的MuPAD 软件符号计算)
(1)运行以下MuPAD 语句,绘得图6和图7:
plot(plot::Function2d(12-0.08*t+0.0002*t^2,t=0..400), plot::Function2d(12-0.08*t,t=0..150, LineStyle=Dashed));
plot(plot::Function2d(12-0.08*t+0.0002*t^2,t=0..20), plot::Function2d(12-0.08*t,t=0..20, LineStyle=Dashed),#O);
(1)式表明价格先降后升,在实际当中有一定道理. 而 (2.3.1)式假设价格匀速下降. 两个假设都满足(0)p g '=-,在最佳出售时机附近误差微小.
图6 假设(2.3.1)式与(1)式的比较
图7 假设(2.3.1)式与(1)式的比较
(2) 在(1)式和(2.3.1)式组成的假设下,保留h,代入其他具体数值,计算多赚的纯利润. 运行以下MuPAD语句:
C:=t->32/10*t:
w:=t->90+t:
p:=(t,h)->12-8/100*t+h*t^2:
Q:=(t,h)-->expand(w(t)*p(t,h)-C(t)-90*12); plot(plot::Function2d(Q(t,0.0002), t=0..290));
算得2
23
(2)8
25
,905ht h h t Q t t t =+-+,绘得图8.
图8 (,0.0002)Q t 的图像
运行以下MuPAD 语句:
S:=solve(diff(Q(t,h),t),t) assuming h>0; t1:=S[1];
subs(t1,h=0.0002); t2:=S[2];
ts:=subs(t2,h=0.0002); Q2:=Q(t2,h);
Qs:=subs(Q2,h=0.0002);
由方程0Q
t
?=?,解得两根: 238416
5625123841656252253240045004
450025324004
h h h t h h h t -+-+=
+-+-=
代入h =0.0002,得12192.8381439, 13.82852279t t ==(天). 2t 符合题意,1t 应该舍去(对应的Q 是负数). 2t 对应的多赚的纯利润为10.79837809元.
(3)接着上一小题,运行以下MuPAD 语句:
subs(diff(t2,h)*h/t2, h=0.0002); //t 对h 的灵敏度
利用导数算得t 对h 的灵敏度:
d (,)0.4124276803d t h
S t h h t
=?=.
运行以下MuPAD 语句:
subs(diff(Q2,h)*h/Q2,h=0.0002); //Q 对h 的灵敏度,方法一 subs(diff(Q(t,h),h)*h/Q(t,h),t=ts,h=0.0002); //Q 对h 的灵敏度,方法二,更简单
用两种方法利用导数算得Q 对h 的灵敏度:
d (,)0.367739025d Q h
S Q h h Q
=
?=. 结论:h 的微小变化对t 2和Q 2的影响都很小. (4)同解答一
5. 继续考虑第2.3节“生猪出售时机”案例,假设在第t 天的生猪体重(公斤)为
()000()m
t m w w w t w w w e α-=
+- (2)
其中0(0)90w w ==(公斤),270m w =(公斤),其它模型假设和参数取值保持不变.
(1)试比较(2)式与(2.3.2)式,解释新的假设和原来的假设的区别与联系(提示:说明当α (α>0)取何值时,在t =0时可以保持(0)1w r '==;说明当t 增大时,猪的体重会如何变化).
(2)在新的假设下求解最佳出售时机和多赚的纯利润. (3)参数m w 代表猪长成时的最终重量,对m w 做灵敏度分析,分别考虑m w 对最佳出售时机和多赚的纯利润的影响.
(4)讨论模型关于生猪体重假设的强健性. 解答一(用MATLAB 数值计算)
(1)在(2)式中,为使(0)w r '=,必须00()m m w w w w α-=. 当
m w =270,0w =90时,有160α=.
新假设(2)式是阻滞增长模型,假设生猪体重的增长率是体重的线性递减函数,于是体重增加的速率先快后慢,时间充分长后,体重趋于m w . 而(2.3.2)式0()w t w rt =+只假设体重匀速增加. 长时间来看,新假设比原假设更符合实际(图9). 两个假设都满足(0)w r '=,在最佳出售时机附近误差微小(图10).
50
100
150
200250
300
350
400
050
100
150
200
250
300
t (天)
价格 p (元/公斤)
模型假设(2.3.2)式与(2)式的比较
p(0) - g t (2.3.2)式p(0) - g t + h 2 (2)式
图9
2468
101214161820
9095
100
105
110
115
t (天)
价格 p (元/公斤)
p(0) - g t (2.3.2)式p(0) - g t + h 2 (2)式
图10
(2) 在(2.3.1)式和(2)式组成的假设下,用MATLAB 函数fminbnd 计算,可以求得生猪出售时机为t =14.434天,多赚的纯利润为Q =12.151元.
(3) 编程计算(,)m m m t t S t w w w ?=?和(,)m m m
Q Q
S Q w w w ?=?,将
结果列表.
表5 数值计算最佳出售时机t 对m w 的灵敏性
m m w w +?
m m
w w ?(%)
t t +?
t t ?(%)
(,)m m m
t t
S t w w w ?=
?
272.7 1 14.977 3.767 3.767 283.5 5 17.057 18.173 3.6345 297
10
19.46 34.825
3.4825
表6 数值计算多赚的纯利润Q 对m w 的灵敏性
m m w w +?
m m w w ?(%)
Q Q +?
Q Q ?(%)
(,)m m m
Q Q S Q w w w ?=
?
272.7 1 13.108 7.872 7.872 283.5 5 17.121 40.897 8.1794 297
10
22.475
84.963
8.4963
结论:m w 的微小变化对t 和Q 的影响都较小.
(4)模型假设(2)式导致的模型解答可以由(2.3.2)式导致的解答加上灵敏度分析所代替,所以实践中采用更为简单的(2.3.2)式作为假设即可. 具体分析过程见解答二之(4).
MATLAB脚本:
%% (1) 绘图的程序
w=@(t)90*270./(90+180*exp(-t/60));
figure(1)
n=400;
plot([0,n],[90,90+n],'k:',...
0:.1:n,w(0:.1:n),'k')
axis([0,400,0,300])
legend('p(0) - g t (2.3.2)式',... 'p(0) - g t + h^2 (2)式',4) title('模型假设(2.3.2)式与(2)式的比较') xlabel('t(天)')
ylabel('价格 p(元/公斤) ')
figure(2)
n=20;
plot([0,n],[90,90+n],'k:',...
0:.1:n,w(0:.1:n),'k')
legend('p(0) - g t (2.3.2)式',... 'p(0) - g t + h^2 (2)式',2) xlabel('t(天)')
ylabel('价格 p(元/公斤) ')
%% (2) 最佳出售时机和多赚的纯利润
C=@(t)3.2*t;
w=@(t,m)90*m./(90+(m-90)*exp(-t/60)); p=@(t)12-0.08*t;
Q=@(t,m)p(t).*w(t,m)-C(t)-90*12;
Qh=@(t)-Q(t,270);
ts=fminbnd(Qh,0,30)
Qs=Q(ts,270)
%% (3) 灵敏度分析
Qh=@(t)-Q(t,270*1.01);
[tn,Qn]=fminbnd(Qh,0,30);
(tn-ts)/ts/0.01
(-Qn-Qs)/Qs/0.01
Qh=@(t)-Q(t,270*1.05);
[tn,Qn]=fminbnd(Qh,0,30);
(tn-ts)/ts/0.05
(-Qn-Qs)/Qs/0.05
Qh=@(t)-Q(t,270*1.1);
[tn,Qn]=fminbnd(Qh,0,30);
(tn-ts)/ts/0.1
(-Qn-Qs)/Qs/0.1
%% (4) 强健性分析
dr_r=(w(ts,270)-90)/ts-1
10+dr_r*10*6.5
解答二(用MATLAB 的Symbolic Math Toolbox 的MuPAD 软件符号计算)
(1)运行以下MuPAD 语句,算得160α=:
solve(subs(diff(90*270/(90+(270-90)*E^(-a*t)),t), t=0)=1, a);
运行以下MuPAD 语句,绘得图11:
plot(plot::Function2d(90*270/(90+180*E^(-1/60*t)), t=0..400),
plot::Function2d(90+t, t=0..180, LineStyle=Dashed), plot::Line2d([0,270],[400,270],LineStyle=Dotted),#O);
运行以下MuPAD 语句,绘得图12 :
plot(plot::Function2d(90*270/(90+180*E^(-1/60*t)), t=0..20),
plot::Function2d(90+t,t=0..20,LineStyle=Dashed),#O);
(2)式()06000()m
t m w w w t w w w e -=+-是阻滞增长模型,
假设生猪体重的增长率是体重的线性递减函数. 于是,体重w 是时间t 的增函数,体重增加的速率先快后慢,时间充分长后,体重趋于m w . 而(2.3.2)式0()w t w rt =+只假设体重匀速增加. 长时间来看,新假设比原假设更符合实际. 两假设都满足(0)w r '=,在最佳出售时机附近误差微小.