数学建模-微分方程模型-饮酒驾车问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dx x dt x(0) x0
观察可得该微分方程为可分离变量型,求解得
x(t ) x0 e t
对于血液中的酒精含量,同时进行胃肠道向血液的转移与血液中的酒精代谢两种 过程, y (t ) 的吸收过程的增长速度是 x (t ) ,代谢过程的减少速度与 y (t ) 本身的大小成 正比,所以 y (t ) 满足微分方程
时刻为 t 时胃肠道中的酒精含量。
y (t ) 时刻为 t 时血液中的酒精含量。
胃肠道中的酒精进入血液的转移率与胃肠道中酒精量的比值。 血液中的酒精的排除率与血液中酒精量的比值。
五、模型的建立与求解
5.1 问题一 根据题目叙述,大李的实际情况符合快速饮酒的模型。为了确定函数中的系数 ,
和 x0 ,将体重 70kg 的某人在快速喝下 2 瓶啤酒之后一段时间内他血液中酒精含量的
测量值进行处理后,得到附录 1 所示的 y0 0 时的一组数据,并采用非线性最小二乘法 拟合算法对系数进行求解,得出参数如下。 x0 5193
=2.00796
=0.1855
同时可以看到,每瓶啤酒含酒精量为 2596.5mg。 所以,得出的血液中酒精含量关于时间的函数如下。
三、问题分析
3.1 快速饮酒模型 为了判断血液中酒精含量是否达到饮酒驾驶的阈值, 首先需要寻求胃肠道中的酒精 量与血液中的酒精量随时间变化的规律,而这些量又同时受到饮酒、酒精的吸收与酒精 的代谢这些过程的影响。根据假设与分析,对胃肠道中的酒精含量 x(t ) 与血液中的酒精 含量 y (t ) 建立如下微分方程模型: 快速饮酒时,对于胃肠道中的酒精含量,因为随着时间的推移,酒精从胃肠道中向 血液的转移, x(t ) 的下降的速度与 x(t ) 本身的大小成正比,所以 x(t ) 满足微分方程
六、模型评价 七、参考文献 八、附录
8.1 某人在喝下 2 瓶啤酒后,一段时间内血液中酒精含量值 t 0.25 0.5 0.75 1 1.5 2
y (t )
1500 2.5 3400 6 1900 12 600 3400 3 3400 7 1750 13 500 3750 3.5 2900 8 1400 14 350 4100 4 2550 9 1250 15 350 4100 4.5 2500 10 900 16 200 3850 5 2050 11 750
dy x y dt y (0) y0
wk.baidu.com
该方程为一阶线性非齐次微分方程,求解得 y (t ) ( y0 于是便得到了快速饮酒模型。 3.2 慢速饮酒模型
x0 t x0 t )e e
四、变量说明
x(t )
8.3 求解快速饮酒 3 瓶后醉酒驾驶时间的程序 #include <stdio.h> #include <math.h> double e=2.718282; double f(double a,double b,double c,double x) { double y,t; t=a*b/(c-b); y=pow(e,-b*x)-pow(e,-c*x); return (y*t); } int main() { double a=7789.5,b=2.00796,c=0.1855,x; for(x=10.0;f(a,b,c,x)>=1000;x=x+0.01); printf("%lf\n",x); return 0; }
经过观察,发现函数曲线与数据拟合得很好,残差均匀地分布在 x 轴两侧,因此 可以认为拟合所得的函数曲线是符合实际的。
下面对问题 1 进行求解,因为大李是在起始时刻( t 0 )时摄入 1 瓶啤酒 ( x0 2596.5 ) ,6 小时后( t 6 )再次摄入 1 瓶酒( x0 x(6) 2596.5 , y0 y (6) ) , 得到大李血液中酒精含量的函数,建立以下模型。
0.1855 t e 2.00756t ) 2860.78604(e y (t ) 0.1855( t 6) 2860.8028e 2.00756(t 6) 3800.7595e
0t 6 6 t 12
利用 matlab 对以上模型进行求解。 图 3 大李血液中酒精含量随时间变化图像
由图可知,当大李第一次喝酒 6 小时后,血液中酒精含量为 939.95mg,即 18.8 毫 克/百毫升,低于饮酒驾驶标准(20 毫克/百毫升) ,而大李第二次饮酒 6 小时后,血液 中酒精含量为 1248.8mg,即 24.98 毫克/百毫升,超出饮酒驾驶标准,所以被判定为饮 酒驾车。 5.2 问题二 5.2.1 快速饮酒情况 对于很短的时间喝下 3 瓶啤酒的情况,与问题一中的情况类似,于是修改快速饮酒 模型,令其中参数
饮酒驾车
摘要
一、 问题重述
据报载,2003 年全国道路交通事故死亡人数为 10.4372 万,其中因饮酒驾车造成的 占有相当的比例。 针对这种严重的道路交通情况, 国家质量监督检验检疫局 2004 年 5 月 31 日发布了 新的《车辆驾驶人员血液、呼气酒精含量阈值与检验》国家标准,新标准规定,车辆驾 驶人员血液中的酒精含量大于或等于 20 毫克/百毫升,小于 80 毫克/百毫升为饮酒驾车 (原标准是小于 100 毫克/百毫升) ,血液中的酒精含量大于或等于 80 毫克/百毫升为醉 酒驾车(原标准是大于或等于 100 毫克/百毫升) 。 大李在中午 12 点喝了一瓶啤酒,下午 6 点检查时符合新的驾车标准,紧接着他在 吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨 2 点才驾车回家,又一次遭遇检查 时却被定为饮酒驾车,这让他既懊恼又困惑,为什么喝同样多的酒,两次检查结果会不 一样呢? 请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模 型,并讨论以下问题: 1. 对大李碰到的情况做出解释; 2. 在喝了 3 瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以 下情况下回答: 酒是在很短时间内喝的; 酒是在较长一段时间(比如 2 小时)内喝的。 3. 怎样估计血液中的酒精含量在什么时间最高。 4. 根据你的模型论证:如果天天喝酒,是否还能开车? 5. 根据你做的模型并结合新的国家标准写一篇短文, 给想喝一点酒的司机如何驾车 提出忠告。
二、问题假设
1.快速饮酒时,所有的酒精瞬间进入胃肠道。 2.慢速饮酒时,酒精在饮酒时间内均匀进入胃肠道。 3.胃肠道中的酒精进入血液的转移率与胃肠道中酒精量成正比,血液中的酒精的 排除率与血液中酒精量成正比。 4.酒精在血液中均匀分布,即酒精从小肠处血液立即向全身扩散均匀。 5.体重为 70kg 的成年人的血液总量为 5000mL。
t
y (t )
t
y (t )
t
y (t )
8.2 利用非线性最小二乘法对函数中未知数拟合的程序 #include <stdio.h> #include <math.h> double t[23]={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}; double y[23]={1500,3400,3750,4100,4100,3850,3400,3400,2900,2550,2500,2050,1900,1750,1400,1 250,900,750,600,500,350,350,200}; double e=2.718282; double f(double a,double b,double c,double x) { double y,t; t=a*b/(c-b); y=pow(e,-b*x)-pow(e,-c*x); return (y*t); } double r(double a,double b,double c) { double s=0.0; int i; for(i=0;i<23;i++) s+=(f(a,b,c,t[i])-y[i])*(f(a,b,c,t[i])-y[i])/23; return s; } int main() { double a,b,c,i,j,k,min=9999999999; for(a=5190;a<5210;a=a+1) { for(b=2.0;b<2.01;b=b+0.00001) for(c=0.185;c<0.187;c=c+0.00001) { if(r(a,b,c)<min) { min=r(a,b,c); i=a; j=b; k=c; } } printf("%.0lf\n",a); } printf("a=%.0lf\nb=%lf\nc=%lf\n",i,j,k); return 0; }
x0 7789.5 y0 0
得到如下模型 y (t ) 8582.35814(e 0.1855t e 2.00756t ) 对以上模型进行求解,得出以下结果。 图 4 快速饮酒情况喝下 3 瓶啤酒后血液中酒精浓度关于时间变化曲线
由图大致估计, y (t ) 1000 的点在 t 10,15 内,通过编程求解,得到 t 11.59 时, y (t ) 1000 ,所以得出结论,在快速饮酒 3 瓶后 11 小时 35 分钟内驾车会被判定 为饮酒驾驶。
y (t ) ( y0 +5721.57208)e 0.1855t 5721.57208e 2.00796t
拟合效果如图。 图 1 函数的拟合效果
图 2 残差分析图
残差分析图
600 500 400 300 200 100 0 10 11 12 13 14 15 0.5 1.5 2.5 3.5 0.25 ‐100 ‐200 ‐300 ‐400 残差 0.75 4.5 16 1 2 3 4 5 6 7 8 9