《饮酒驾车模型(14页).doc》由会员分享,可在线阅读,更多相关《饮酒驾车模型(14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-饮酒驾车模型-第 14 页饮酒驾车模型摘要据报载,2003年全国道路交通事故死亡人数为10.4372万,其中因饮酒驾车造成的占有相当的比例,为此国家质量监督检验检疫局2004年5月31日发布了新的车辆驾驶人员血液、呼气酒精含量阈值与检验国家标准。本文根据题意针对酒后驾车问题,建立了人体体液中酒精含量随时间变化的微分方程模型,运用变量分离和matlab对模型求解,通过拟合方法确定参数,依照国家新标准解答题目,得到:(1)大李第一次检查时酒精含量为符合标准,第二次是为饮酒驾车;(2)如果短时饮酒三瓶13.18小时内和两小时内饮等量的酒11.107小时内驾车出行会违反新标准(3)酒后血液中的酒精含
2、量在1.14小时最高;(4)对于天天饮酒者,每天最多可以喝0.4420瓶640ml的啤酒。文中所建模型简明易懂,便于操作,用拟合的方法准确度较高,多处使用matlab绘制酒精含量与时间变化的关系图,清晰明了,利于直观比较,在给出司机建议时,既考虑了所建模型与国家新标准,也结合了实际生活和司机的健康等方面。文中最后合理评价模型,并提出改进方向,利于推广。关键词: 饮酒驾车 变量分离 matlab 拟合问题重述据报载,2003年全国道路交通事故死亡人数为10.4372万,其中因饮酒驾车造成的占有相当的比例。针对这种严重的道路交通情况,国家质量监督检验检疫局2004年5月31日发布了新的车辆驾驶人员
3、血液、呼气酒精含量阈值与检验国家标准,新标准规定,车辆驾驶人员血液中的酒精含量大于或等于20毫克百毫升,小于80毫克百毫升为饮酒驾车(原标准是小于100毫克百毫升),血液中的酒精含量大于或等于80毫克百毫升为醉酒驾车(原标准是大于或等于100毫克百毫升)。大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,又一次遭遇检查时却被定为饮酒驾车,这让他既懊恼又困惑,为什么喝同样多的酒,两次检查结果会不一样呢?请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模型,并讨论以下问题:1. 对大李碰到的情
4、况做出解释;2. 在喝了3瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情况下回答:1) 酒是在很短时间内喝的; 2) 酒是在较长一段时间(比如2小时)内喝的。3. 怎样估计血液中的酒精含量在什么时间最高。4. 根据你的模型论证:如果天天喝酒,是否还能开车? 5. 根据你做的模型并结合新的国家标准写一篇短文,给想喝一点酒的司机如何驾车提出忠告。参考数据1. 人的体液占人的体重的65%至70%,其中血液只占体重的7%左右;而药物(包括酒精)在血液中的含量与在体液中的含量大体是一样的。2. 体重约70kg的某人在短时间内喝下2瓶啤酒后,隔一定时间测量他的血液中酒精含量(毫克百毫升)
5、,得到数据如下:时间(小时)12345酒精含量306875828277686858515041时间(小时)678910111213141516酒精含量3835282518151210774问题分析由上述信息可知,本题是一道关于酒后驾车的问题,考虑司机酒后多长时间可以驾车,才符合新标准,我们了解到酒精摄入体内直接进入胃中,再由胃中进入体液,由体液排除,不考虑人体其他代谢方式产生的酒精。在此前提下建立数学模型,明确酒精含量在体液中随时间的变化规律就可以了。具体分析如下:对问题的分析:在问题中大李喝同样的酒,两次检验结果却不同,也就是说他第一次检验时体液中的酒精含量小于20毫克百毫升,第二次却大于或
6、等于20毫克百毫升,小于80毫克百毫升,为饮酒驾车。我们初步判断大李第二次检查时中午12点摄入体内的酒精还未代谢完,因而此次检查体液中的酒精含量是两次之和。所以根据已知条件建立微分方程,得到饮酒后血液中酒精含量随时间的变化规律,将大李从饮酒到检查的时间间隔代入其中,检验此刻酒精含量是否符合新标准,便可解释大李碰到的情况。问题的分析:在第一种情况下酒是在很短的时间内喝的,要判断酒后多长时间内驾车会违反新标准,需要求出恰好符合新标准的时间,令,即可得到对应的,当时为饮酒驾车或醉酒驾车;第二种情况在较长时间(2小时)内饮酒,要考虑到的影响,为简化问题,我们将时间分割,把每个小时间段饮酒看作是匀速的,
7、在每个短时间内仍然属于第一种情况,将各个时间段的变化综合分析得到饮酒后血液中酒精含量随时间变化规律,令,得到对应的,当时为饮酒驾车或醉酒驾车。问题的分析:题中要求估计血液中的酒精含量在什么时间最高,我们也可分为两种情况,即短时饮酒和长时饮酒,对短时饮酒的求一阶导数,令=0,可解出酒精含量最高的时刻。对长时饮酒,我们根据图示清晰明了的判断出酒精含量最高的时刻。问题、的分析: 根据所建立的模型及新的国家标准,讨论酒后驾车的情况。如果天天喝酒,能否开车,就是要得到司机酒后体液内的酒精量如何变化,在此问题中我们关心的是司机每天饮酒的量和饮酒方式,由不同饮酒方式下的模型求解出符合新标准的时间,并给喝酒的
8、司机提出建议。符号说明1.:房室的酒精含量;2.:房室之间的酒精浓度;3.:酒精进入吸收室的速率;4.:引入的酒精总量5.:房室容积;6.:酒精从吸收室进入中心室的速率;7.:.酒精从中心室排出体外的速率。模型假设1.酒精从体外进入吸收室(胃),单向渗入中心室(体液),从中心室排出体外;2.吸收室和中心室的容积不变;3.酒精在房室间的转移速率及向体外排出的速率与该室酒精浓度成正比;4.酒精在房间内均匀分布;5.人体内原有酒精含量忽略不计。模型的建立房室模型:(排出)吸收室(胃)、中心室(体液)、 图(一)饮酒者喝酒后,酒精进入吸收室(胃),单向渗入中心室(体液),从中心室排出体外,酒精在房室间
9、的转移速率和排出速率均不同,由图(一)我们建立房室模型。吸收室:(1)中心室:(2)模型求解与结果分析方程组(1)利用变量分离求解得,方程组(2)运用数学软件MATLAB解得:在上式中,我们首先查找相关数据得到:每瓶啤酒体积:640ml;啤酒酒精度数:3.6%4.2%;啤酒酒精密度:800mg/l。接下来确定和,我们取啤酒酒精度数为4%,由以上数据可得每瓶啤酒酒精含量为20480mg。人的体液占人的体重的65%至70%,人体体液密度约为mg/100ml,酒精在血液中的含量与在体液中的含量大体一致,体重约为70kg的人在短时间内喝下2瓶啤酒,则为40960mg,(百毫升)。根据题中所给的参考数据
10、,采用MATLAB最小二乘法拟合出待定系数和,(程序见附录(一),。拟合图示如下:图(二)问题一:我们认为:(1) 大李在两次喝酒直到检查时没有服用任何影响体内酒精含量的药物;(2) 大李吃晚饭时间为20:00。则:第一次喝酒到18:00检查时时间间隔t=6代入所得中心室体液含量结果中得,所以检查时符合新的驾车标准。而第二次喝酒到20:00检查时,体液中酒精含量=第一次未代谢完的+第二次射入的。即:所以第二次检查时被定为饮酒驾车。注:程序见附录(二)问题二:喝了3瓶啤酒或白酒,变为,根据上述模型绘制变化规律图。 (1)短时间内饮三瓶酒体液内酒精含量随时间变化如下图: 图(三)我们可以看到在13
11、小时左右酒精含量为20mg,采用MATLAB缩小步距,得到较为准确的时间t,如下图:图(四)由上图可知,短时饮三瓶酒在13.18小时内驾车就会违反新的驾车标准。(2)在较长时间(2小时)内喝三瓶酒,我们把饮酒者喝酒的速度看作是匀速的,将2小时分成六小段,绘制出每小段内喝三瓶酒体液中酒精含量的变化规律,如下图:图(五)在图中我们看到,不管在哪个时间段的变化趋势是一致的,对前五次短时饮酒分析得出t=100分钟以后,体液中酒精含量随时间的变化规律,如图(六),在图(六)中,0点即为t=100分钟。图(六)图(七)综合图(六)、图(七),我们同样采用解决第一种情况的方法,找到的点,(小时),即两小时饮
12、酒三瓶,11.107小时内饮酒驾车违反规定。注:程序见附录(三)问题三: 由于 ,我们对其关于t求一阶导数,令,得到t=1.14(小时),为了更直观看到最高时间,我们给出图示如下:图(八)所以我们通过上面的方法得到血液中的酒精含量在1.14小时最高。问题四: 在本问题中我们假设每天只喝一次酒,是短时间饮酒,每次间隔24小时,因此采用模型结果,并由MATLAB绘制出每天喝不同量啤酒时体液中酒精含量随时间的变化图像:图(九)分析图像可得,当天喝酒少于半瓶时不会违反新的驾车标准,但是如果天天喝酒,体液内的酒精含量就会不断累积,要是不考虑每天的饮酒量,总有一天体液内的酒精含量会超过20mg/100ml
13、,从而违反新的驾车标准,为了确定每天的饮酒量,我们作了如下计算:假设每天饮入的酒精量为,将,代入中求出第一天体液中酒精的残余量为,进而推得第n天体液中的酒精残余量为。当时,令得,则每天饮入的瓶数不超过瓶。问题五:给司机的忠告:我们知道啤酒是一种高热量的酒精性饮料,具有增进食欲、刺激胃酸分泌、提高消化能力的作用,也有助于血液循环。但生活中因为司机酒后驾车引发的安全事故时有发生,为了尽量避免此现象,我们给广大司机朋友提出以下建议:(1) 不要像大李一样以为第一次喝酒没事,第二次就相隔同样的时间喝等量的酒,实际上,前次体内的酒精未代谢完,再次饮酒就有可能违反新标准;(2) 酒后短时间内不宜出行,因为
14、体内的酒精代谢需要一定的时间,如:短时间内喝一瓶啤酒,6小时之后再驾车外出;喝两瓶啤酒,11小时后再出行;喝三瓶啤酒,14小时之后出行(3) 每天喝酒量要少,频率不宜过高,如果天天喝酒,尽管间隔时间较长,但体液内的酒精含量会不断累积,所以每天最多可以喝0.4420瓶640ml的啤酒;(4) 过量饮酒,容易使人发胖,其次长期饮酒会导致急性酒精胃病、肝细胞功能损害、高血压,心律失常等疾病,因而要尽量少喝酒。 所以,为了自己和他人的健康与安全,请广大司机们少喝酒,在喝酒的量与时间上合理把握,祝福大家出行安全,生活愉快!模型的评价优点:(1) 本模型简明易懂,具有良好的实用性,在各个问题的解决中,便于
15、操作;(2) 模型根据题意,假设合理,使得解决过程严谨;(3) 用拟合的方法确定未知参数模拟出体液内酒精浓度与时间的关系,准确度较高;(4) 用matlab绘制关系图,清晰明了,利于直观比较;(5) 给出司机建议时,既考虑了所建模型与国家新标准,也结合了实际生活和司机的健康等方面。缺点:(1) 本模型中存在着近似误差,根据所给数据通过拟合产生;(2) 在求解过程中未考虑不同体重以及对酒精吸收能力不同的人。模型的改进方向和推广改进方向:在饮酒中可以考虑体重和吸收能力不同的人,将其分类,修改模型,使其更有通用性,司机便可以按照自己的身体素质合理饮酒。推广:本模型可以用于药物动力学,对药物在体内的浓
16、度变化进行研究。参考文献【1】 赵东方.数学模型与计算.北京:科学出版社,2007【2】 王高雄.常微分方程M. 北京:高等教育出版社,1983附录附录(一)t=0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16; c=30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4; k0=3,0.5; k=lsqcurvefit(test,k0,t,c)Optimization terminated: relative function v
17、alue changing by less than OPTIONS.TolFun.k = plot(t,c,*) tt=0:0.1:16; cc=test(k,tt); holdCurrent plot held plot(tt,cc,r)附录(二)test(k,6)/2ans = test(k,14)/2ans =附录(三)tt=0:0.1:16; cc=test(k,tt); plot(tt,cc,m) gridtt=12:0.1:14; cc=test(k,tt); plot(tt,cc,m) gridtt=13.1:0.01:13.2; cc=test(k,tt); plot(tt,
18、cc,r) grid tt=0.33:0.1:16; cc=test(k,tt); hold on,plot(tt,cc,r) grid mm=0.66:0.1:16; cc=test(k,mm); hold on,plot(mm,cc,b) tt=0:0.1:16; cc=test2(k,tt); hold on,plot(tt,cc,r) tt=0:0.1:16; cc=test2(k,tt); hold on,plot(tt,cc,k) grid tt=0:0.1:16; cc=test2(k,tt); tt=0:0.1:16; cc=test4(k,tt); hold on,plot(
19、tt,cc,g) tt=0:0.1:16; cc=test5(k,tt); hold on,plot(tt,cc,b) tt=0.33:0.1:16; cc=test(k,tt); hold on,plot(tt,cc,r)Grid mm=tt+0.33;cc=test(k,tt); hold on,plot(mm,cc,k) gg=mm+0.33; cc=test(k,tt); hold on,plot(mm,cc,b) gg=mm+0.33; cc=test(k,tt); hold on,plot(gg,cc,b) nn=gg+0.33; cc=test(k,tt); hold on,pl
20、ot(nn,cc,b) hh=nn+0.33; cc=test(k,tt); hold on,plot(hh,cc,b) yy=hh+0.33; cc=test(k,tt); hold on,plot(yy,cc,b) y=dsolve(Dc1=k1*a*exp(-k1*t)/v-k2*c1,c1(0)=12.5364); yy =(k1/v*a/(-k1+k2)*exp(t*(-k1+k2)+1/2500*(2500*k1*a+31341*v*k1-31341*v*k2)/v/(k1-k2)*exp(-k2*t) k1=2.6858; k2=0.1474; t=0.33; v=467; a=
21、10240; ff = y=dsolve(Dc1=k1*a*exp(-k1*t)/v-k2*c1,c1(0)=24.4776); yy =(k1/v*a/(-k1+k2)*exp(t*(-k1+k2)+1/1250*(1250*k1*a+30597*v*k1-30597*v*k2)/v/(k1-k2)*exp(-k2*t) f=-1/1250*(1250*k1*a*exp(-t*(k1-k2)-1250*k1*a-30597*v*k1+30597*v*k2)*exp(-k2*t)/v/(k1-k2); k1=2.6858; k2=0.1474; a=10240; v=467; t=0.33; ff = y=dsolve(Dc1=k1*a*exp(-k1*t)/v-k2*c1,c1(0)=35.8518); yy =