数学建模第二章作业答案章绍辉

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题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<D ,即前后车距大于刹车距离的理论值,可认为足够安全;当15.12 m/s v >时,有d>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,37 6];
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
(2)用最大刹车距离除以车速,得到最大刹车距离所需要的尾随时间(表1),并以尾随时间为依据,提出更安全的“t 秒准则”(表2)——后车司机根据车速快慢的范围,从前车经过某一标志开始,默数t 秒钟之后到达同一标志.
绘制图2的MATLAB程序:
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,37 6];
d2=0.3048.*d2;
k1=0.75; k2=0.082678;
d=d2+[v;v;v].*k1;
vi=0:40;
plot([0,10*0.44704],[0,10*0.44704],'k',...
vi,k1.*vi+k2.*vi.*vi,'k:',...
[v;v;v],d,'ok','MarkerSize',2)
legend('t 秒准则','刹车距离理论值',...
'刹车距离的最小值、平均值和最大值',2)
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 秒准则,刹车距离的模型和数据
图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 (元/公斤)
图3
2468
101214161820
10.410.610.81111.211.411.611.812
模型假设(1)式与(2.3.1)式的比较
t (天)
p (元/公斤)
图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 '=+-+=
解得生猪出售时机为
130t =
-(舍去负根)
多赚的纯利润为
()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 的灵敏度
表4 数值计算多赚的纯利润Q 对h 的灵敏度
(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
∂=∂,解得两根:
12t 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)式的比较
图9
2468
101214161820
9095
100
105
110
115
t (天)
价格 p (元/公斤)
图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 的灵敏性
表6 数值计算多赚的纯利润Q 对m w 的灵敏性
结论: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 '=,在最佳出售时机附近误差微小.
图11 假设(2.3.2)式与(2)式的比较
图12 假设(2.3.2)式与(2)式的比较
w,代入(2)在由(2)式和(2.3.1)式组成的假设下,保留
m
其他具体数值,计算多赚的纯利润. 运行以下MuPAD语句:
C:=t->3.2*t:
w:=(t,wm)->90*wm/(90+(wm-90)*E^(-t/60)): p:=t->12-0.08*t:
Q:=(t,wm)-->w(t,wm)*p(t)-C(t)-90*12;
plot(plot::Function2d(Q(t,270),t=0..30));
算得
()
()60
90120.08
(,) 3.21080
9090e
m
m t
m
w t
Q t w t
w-
-
=--
+-,绘得图13.
图13 (,270)
Q t的图像
运行以下MuPAD语句:
T:=solve(diff(Q(t,270),t),t);
ts:=T[1];
Qs:=Q(ts,270);
可解出Q的驻点的数值解14.43357158
s
t=(天),根据函数图像和问题的实际意义,可知这是所求的最佳出售时机,对应的多赚
的纯利润为12.15129217s Q =元.
(3)接着上一小题,运行以下MuPAD 语句,但是求不出当(,)m Q t w 达到最大值时t 关于m w 的函数解析式:
solve(diff(Q(t,wm),t),t);
运行以下MuPAD 语句:
solve(diff(Q(t,wm),t),wm);
可见当(,)m Q t w 达到最大值时m w 关于t 的反函数解析式却有可能求得出,只是MuPAD 给出的表达式很复杂. 其实可以按如下步骤推出m w 关于t 的反函数解析式:
g1:=diff(Q(t,wm),t)=0; 算得0Q t
∂=∂即: ()()260606030.0812907.2 3.209090902e 90e e m m m m t m t t w t w w w w -----=--⎛⎫++ ⎪⎝⎭
观察上式,发现分母大于零,而且去分母之后,合并m w 的同类项,可以表示为m w 的二次方程:
g2:=g1*((wm-90)/E^(t/60)+90)^2*25*E^(t/60); //去分母 g2:=collect(g2,wm); //合并wm 的同类项,t 当作参数
2606060306060801440016200e 270327038700e e e 648000e 64800012960000e e t m m t t t t t t t w t w ⎛⎫⎛⎫--++-- ⎪ ⎪⎝⎭⎝⎭
+--=
运行以下MuPAD 语句,由图像(图14)可知在实际问题关
心的0<t <30范围内,二次项系数
608027030e
t t -->: plot(plot::Function2d((270-80/E^(t/60)-3*t),t=0..100));
图4 二次项系数的符号
于是,运行以下MuPAD 语句,解方程:
S:=solve(g2,wm);
MuPAD 给出解的四种情况,其中第一种是二次项系数非零,正是本问题所要求的解. 但是二次方程有两个根,要检验哪一个根才是当(,)m Q t w 达到最大值时m w 关于t 的反函数解析式. float(subs(S[1][1],t=ts));
算得当s t t =时,有0.8519704108m w =-,这是增根,舍去; float(subs(S[1][2],t=ts));
算得当s t t =时,有270m w =,这是要找的根;
wms:=S[1][2]; //当Q 达到最大值时wm 关于t 的反函数解析式
float(subs(1/(diff(wms,t))*wm/t,t=ts,wm=270));
//t 对wm 的灵敏度,利用反函数求导数
利用反函数求导数算得t 对m w 的灵敏度:
d 1(,) 3.80183985d d d m m m m m w w t S t w w w t
t t
=⋅=⋅=. Q 对m w 的灵敏度则比较简单,运行以下MuPAD 语句: float(subs(diff(Q(t,wm),wm)*wm/Q(t,wm),
t=ts,wm=270)); //Q 对wm 的灵敏度
利用导数算得Q 对m w 的灵敏度:
d (,)7.786585188d m m m w Q S Q w w Q
=⋅=. 结论:m w 的微小变化对t 和Q 存在一定影响,不算厉害.
(4)模型假设(2)式以阻滞增长模型来刻画生猪体重的变化趋势,如果考虑的时间段长达数月,(2)式比(2.3.2)式更符合实际,但是本问题的最佳出售时机不超过20天,(2)式与(2.3.2)式在最佳出售时机附近非常近似,(2)式导致的模型解答可以由(2.3.2)式导致的解答加上灵敏度分析所代替. 所以采用更为简单的(2.3.2)式作为假设更好. 具体分析如下:
由()90(,)m r r t w t w ++∆=,得
(,)90m w t w r r t
-∆=-, 代入270m w =,14.43357158s t t ==,r =1,得
0.036565352791
r r r ∆∆==. 由于(,)t r S t r t r
∆∆≈,根据2.3节,代入(,) 6.5S t r =,t =10,r =1,算得12.37674793t t +∆=,与14.43357158s t =只相差两天.
以上计算可以用以下MuPAD 语句实现:
dr:=float((w(ts,270)-90)/ts-1);
10+dr*10*6.5;。

相关文档
最新文档