饮酒驾车数学模型代码
- 格式:wps
- 大小:14.00 KB
- 文档页数:2
一、实验目的理解数据拟合基本内容,掌握Matlab软件求解数据拟合的基本方法二、实验用仪器设备、器材或软件环境Matlab软件三、求解问题据报载,2003年全国道路交通事故死亡人数为10.4372万,其中因饮酒驾车造成的占有相当的比例。
针对这种严重的道路交通情况,国家质量监督检验检疫局2004年5月31日发布了新的《车辆驾驶人员血液、呼气酒精含量阈值与检验》国家标准,新标准规定,车辆驾驶人员血液中的酒精含量大于或等于20毫克/百毫升,小于80毫克/百毫升为饮酒驾车(原标准是小于100毫克/百毫升),血液中的酒精含量大于或等于80毫克/百毫升为醉酒驾车(原标准是大于或等于100毫克/百毫升)。
大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,又一次遭遇检查时却被定为饮酒驾车,这让他既懊恼又困惑,为什么喝同样多的酒,两次检查结果会不一样呢?请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模型,并讨论以下问题:1. 对大李碰到的情况做出解释;2. 在喝了3瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情况下回答:1)酒是在很短时间内喝的;2)酒是在较长一段时间(比如2小时)内喝的。
参考数据1. 人的体液占人的体重的65%至70%,其中血液只占体重的7%左右;而药物(包括酒精)在血液中的含量与在体液中的含量大体是一样的。
2. 体重约70kg的某人在短时间内喝下2瓶啤酒后,隔一定时间测量他的血液中酒精含量(毫克/百毫升),得到数据如下:四、数学模型1.模型假设1、假设每瓶啤酒内的酒精含量一定。
2、假设食物不影响人体对酒精的吸收。
3、假设人体血液体积一定。
4、假设人体对酒精的吸收、消化、排泄功能正常。
5、假设人体血液中的酒精量与喝入的酒精量成线性关系。
6、假设酒精进入中心室以后直接排出体外。
数学建模论文饮酒驾车UJ模型HEN system office room [HEN 16H-HENS2AHENS8Q8-HENH1688]0 1饮酒驾车模型摘要交通事故是LI前危害人类生命的笫一杀手,而酒后驾车已经成为引发交通事故的重要原因之一,并日益凸现为社会问题,因此必须加强有效防控,以保障交通安全和秩序.长期以来,我国酒后驾车现象一直处于较快增长的态势,由酒后驾车引发的交通事故屡见不鲜,酒后驾车成为备受社会关注的热点问题.本文主要讨论了在两种饮酒方式下血液中酒精含量如何变化的问题.通过建立了胃、肠和体液里酒精浓度的微分方程,综合分析了饮酒量、饮酒方式和饮酒者质量三个因素对安全驾车的影响.针对饮酒方式的不同,本文将饮酒过程分成快速饮酒、某时间段内匀速饮酒和多次饮酒三种形式来讨论•并分别建立了快速饮酒、匀速饮酒和多次饮酒系统动力学模型,并运用非线性最小二乘法进行数据拟合得到相关参数,从而得到了血液中酒精含量与时间的函数关系(见图二)。
并结合模型I,运用MATLAB工具得到了快速饮用三瓶啤酒时的违规时间分布(见图三)•进而推广到快速饮用不同量的啤酒的违规时间分布图(见图四).最后对相关问题进行了解答,结果表明,模型是合理和有效的.另外,本文在模型分析中具体的解释了大李所遇到的问题(详见模型分析)•并给想喝一点酒的司机在驾车方面提出了相应的建议和指导.关键词最小二乘法房室模型动力学模型matlab软件拟合曲线目录解释题目中大李遇到的问题2喝了三瓶酒或半斤低度白酒后多久才能驾车3估计血液中酒精含量在何时最■—4y.咼 ........................................................................ .. (13)天天喝酒,能否开车 ........................................................................ (14)给司机的忠Zfc. (15)七、模型评价 ........................................................................ (16)八、模型推广 ........................................................................ (17)九、参考文献 ........................................................................ (17)十、附录 ........................................................................ .. (17)一、问题重述据报载,2003年全国道路交通事故死亡人数为万,其中因饮酒驾车造成的占有相当的比例.针对这种严重的道路交通情况,国家质量监督检验检疫局2004年5月31日发布了新的《车辆驾驶人员血液、呼气酒精含量阈值与检验》国家标准,新标准规定,车辆驾驶人员血液中的酒精含量大于或等于20毫克/ 口•毫升,小于80毫克/ 白毫升为饮酒驾车(原标准是小于100毫克/白毫升),血液中的酒精含量大于或等于80毫克/百毫升为醉酒驾车(原标准是大于或等于100毫克/白毫升).大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准,紧接着他在吃晚饭时乂喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,乂一次遭遇检查时却被定为饮酒驾车,这让他既懊恼乂困惑,为什么喝同样多的酒,两次检查结果会不一样呢?并进一步分析快速或匀速饮3瓶啤酒在多长时间内驾车就会违反新标准,估计血液中的酒精含量在什么时间最高,如果某人天天喝酒,是否还能开车等问题•并根据所做岀的结果,结合新国家标准写一篇短文,给想喝一点酒的司机如何驾车提出忠告.二、问题分析根据生物学知识可得,酒精进入机体后,同药物一样,作用于机体而影响某些器官组织的功能;另一方面酒精在机体的影响下,可以发生一系列的运动和体内过程:自用药部位被吸收进入血液循环;然后分布于各器官组织、组织间隙或细胞内;有部分酒精则在血浆、组织中与蛋口质结合;或在各组织(主要是肝脏)发生化学反应而被代谢;最后,酒精可通过各种途径离开机体(排泄);即吸收、分布、代谢和排泄过程。
实例008:判断是否为酒后驾车
如果规定,车辆驾驶员的血液酒精含量小于2021/100ml 不构成酒驾;酒精含量大于或等于2021/100ml 为酒驾;酒精含量大于或等于80mg/100ml 为醉驾。
先编写Python 程序判断是否为酒后驾车。
源程序
#实例008:判断是否为酒后驾车
a=-1
while a!=0:
a=input"请输入酒精含量:"
while not :
a = input"输入不合法,请重新输入酒精含量:"
a=float a
if a<2021print"不够成酒驾!"
elif a>=2021nd a<80:
print"已经到达饮酒驾驶!"
else:
print"已经到达醉酒驾驶标准!"
print"程序运行结束!"
运行结果
请输入酒精含量:2021经到达饮酒驾驶! 请输入酒精含量:15
不够成酒驾!
请输入酒精含量:40
已经到达饮酒驾驶!
请输入酒精含量:80
已经到达醉酒驾驶标准!
请输入酒精含量:0
不够成酒驾!
程序运行结束!
Process finished with eit code 0。
东南大学《数学实验》报告学号 姓名 成绩 实验内容:一 实验目的1.掌握药物注射模型的求解2.掌握曲线拟合的方法3.解决酒驾的实际问题二 实验思路喝酒可以看作成一种药物注射模型,具体的采用快速静脉注射模型,则血液中酒精的浓度变化为c=)(*321t c t c e e C ---。
根据已有的数据,采用最小二乘拟合,求解出C 1 ,C 2,C 3三个参数。
非线性数据拟合函数lsqcurvefit 调用格式为:c=lsqcurvefit ('fun',x0,xdata,ydata )其中'fun'为拟合函数的M 函数文件名,x0为初始向量,xdata,ydata 为参与曲线拟合的实验数据。
函数返回值c 为非线性函数fun 的拟合系数。
三 实验内容与要求1.实验代码及说明Cf-M 文件:function f=cf(c,tdata) %自定义函数,f 为输出形参;cf 为函数名;c ,cdata 为%输入形参f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata)); %函数的具体表达式a2-M 文件:clear all ; %清除所有变量tdata=[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];cdata=[30 68 75 82 84 77 70 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4]; %以上为某人喝了两瓶啤酒后血液酒精浓度的变化 c0=[1 1 1]'; %初始点选为全1向量c=lsqcurvefit('cf',c0,tdata,cdata); %调用最小二乘拟合指令plot(tdata,cdata,'ro'); %绘图操作,汇出每一点,并用ro (红色圆圈)表示点 x=0:0.1:16; %给变量xi 取范围和步长y=cf(c,x); %在拟合得到的参数条件下,计算理论浓度值 grid on ; %给图行添加网格hold on ; %使当前轴及图形保持而不被刷新,准备接受此后将%绘制的图形,多图共存plot(x,y) %绘图操作,汇出理论浓度的变化曲线xlabel('t') %添加图形的横轴说明ylabel('c') %添加图形的纵轴说明title('最小二乘曲线拟合') %添加图形标题legend('原始数据点','拟合曲线') %图形说明c %显示C1 ,C2,C3三个参数2.实验结果(随机运行两次代码,得到不同的结果)(1)参数值及理论公式c =116.25250.18781.9711C=116.2525*)(9711.11878.0t t e e ---(2)拟合曲线图形四、解决实际问题1.对此人情况作出解释?中午12点喝一瓶酒,下午6点酒精残余量:c1=116.2525*)(6*9711.16*1878.0---e e /2=18.8365<20所以此时不构成饮酒驾车中午12点喝一瓶酒,凌晨2点酒精残余量:C2=116.2525*)(14*9711.114*1878.0---e e /2=4.1930晚饭喝一瓶酒,凌晨2点酒精残余量:C3=116.2525*)(6*9711.16*1878.0---e e /2=18.8365所以c2+c3>20,此时构成饮酒驾车2.短时间喝三瓶啤酒后何时才能驾车?t2=0.2:0.1:24;for i=1:239f(i)=116.2525*(exp(-0.1878*t2(i))-exp(-1.9711*t2(i)))*1.5;endhold on ;grid on ;plot(t2,f,t2,20)所以大约12小时之后血液酒精浓度才会低于20,符合驾车标准。
python醉驾题
关于Python醉驾题,这是一道经典的编程问题,通常用来测试编程能力和逻辑思维。
题目大致如下:假设有一个酒驾检测器,需要编写一个Python程序来判断一个人的酒驾程度。
程序需要接收用户输入的血液酒精浓度(单位为mg/100ml),然后根据以下规则判断酒驾程度:
1. 如果血液酒精浓度小于20mg/100ml,输出"酒驾程度为安全"。
2. 如果血液酒精浓度在20mg/100ml和80mg/100ml之间,输出"酒驾程度为轻度醉驾"。
3. 如果血液酒精浓度在80mg/100ml和200mg/100ml之间,输出"酒驾程度为中度醉驾"。
4. 如果血液酒精浓度大于200mg/100ml,输出"酒驾程度为严重醉驾"。
为了解决这个问题,首先需要使用Python的输入输出功能来接
收用户输入的血液酒精浓度。
然后,利用条件语句(如if-elif-else)来根据不同的情况进行判断,并输出相应的结果。
在编写程
序时,需要考虑输入的有效性,例如输入是否为数字、是否在合理
范围内等。
除了实现基本功能外,还可以考虑一些扩展问题,比如如何将
这个程序封装成一个函数、如何进行单元测试以确保程序的正确性、如何处理异常输入等。
这些都是在解决这个问题时可以思考的方向。
总之,通过编写这个Python程序来解决醉驾题,可以锻炼编程
逻辑思维和对条件语句的灵活运用,同时也能加深对Python基本语
法和输入输出的理解。
希望这个回答能够全面地解答你的问题。
五,饮酒驾车问题分析酒精摄入体内直接进入胃中,再由胃中进入体液,由体液排除,不考虑人体其他代谢方式产生的酒精。
他第一次检验时体液中的酒精含量小于20毫克/百毫升,第二次却大于或等于20毫克/百毫升,小于80毫克/百毫升,判断大李第二次检查时中午12点摄入体内的酒精还未代谢完,因而此次检查体液中的酒精含量是两次之和。
所以根据已知条件建立微分方程,得到饮酒后血液中酒精含量m(t)随时间{ EMBED Equation.DSMT4 |t的变化规律,将大李从饮酒到检查的时间间隔代入其中,检验此刻酒精含量是否符合新标准,便可解释大李碰到的情况。
设如下变量:1.,胃和体液的酒精含量;2.:胃和体液的酒精浓度;3.:酒精进入体液的速率;4.:引入的酒精总量5.:胃和体液的体积;6.:酒精从胃进入体液的速率;7.:.酒精从体液排出体外的速率。
模型假设一、酒精从体外进入胃,单向渗入体液,从体液排出体外;二、胃和体液的容积不变;三、酒精在体液的转移速率及向体外排出的速率与体液酒精浓度成正比;模型的建立饮酒者喝酒后,酒精进入胃,单向渗入体液,从体液排出体外,在胃和体液的转移速率和排出速率均不同,所以可得:胃:(1)体液:(2)模型求解与结果分析方程组(1)解得,方程组(2)运用数学软件MATLAB,解得:在现实中每瓶啤酒体积:640ml;啤酒酒精度数:3.6%4.2%;啤酒酒精密度:800mg/l。
取啤酒酒精度数为4%,可得每瓶啤酒酒精含量为20480mg。
人的体液占人的体重的65%至70%,人体体液密度约为mg/100ml,酒精在血液中的含量与在体液中的含量大体一致,体重约为70kg的人在短时间内喝下2瓶啤酒,则为40960mg,(百毫升)。
编写程序如下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 valuechanging by less than OPTIONS.TolFun.k =2.68580.1474plot(t,c,'*')tt=0:0.1:16;cc=test(k,tt);holdCurrent plot heldplot(tt,cc,'r')拟合图示如下:下面来求解问题我们认为:(1)大李在两次喝酒直到检查时没有服用任何影响体内酒精含量的药物;(2)大李吃晚饭时间为20:00。
数学建模饮酒驾车引言饮酒驾车是指酒后驾驶机动车辆的行为,这种行为不仅是违法的,也是极其危险的。
根据世界卫生组织的数据,全球每年因酒后驾驶事故导致的死亡人数高达100万人。
因此,为了减少饮酒驾车事故的发生,数学建模在此领域具有重要的作用。
模型建立饮酒驾车的危险性主要在于酒精的影响。
我们通过建立数学模型,来量化血液中的酒精含量与驾驶能力之间的关系。
1. 血液酒精浓度计算酒精在人体内的分布服从一定的动力学,可以用下面的公式来计算血液酒精浓度:$$ BAC = \\frac{{a \\cdot S}}{{m - w \\cdot t}} $$其中,BAC 表示血液酒精浓度,a 表示饮酒体积,S 表示酒精体积分布系数,m 表示受体体重,w 表示体重分布系数,t 表示经过的时间。
2. 饮酒驾驶风险预测根据研究,饮酒后的驾驶能力会受到影响,我们可以用一些统计模型来预测饮酒驾驶的风险。
我们可以通过分析历史驾驶数据,并结合血液酒精浓度,使用回归分析模型来预测驾驶风险。
具体的模型可以是线性回归模型、逻辑回归模型等。
模型应用建立数学模型后,我们可以通过以下方式来应用模型进行饮酒驾车问题的解决:1. 提醒饮酒驾车风险通过将模型整合到智能手机或车载系统中,当用户输入他们的性别、体重、酒精饮用量和时间时,系统可以自动计算他们的血液酒精浓度,并提醒他们可能存在的饮酒驾车风险。
2. 设定饮酒驾车限制基于模型的预测结果,政府可以制定更有效的饮酒驾车政策。
例如,根据血液酒精浓度的不同阈值设置不同的处罚措施,来强制执行饮酒驾车的限制。
3. 教育和宣传数学模型可以帮助我们了解饮酒驾车的真正危险性。
通过将模型结果可视化,并结合相关的教育和宣传活动,可以提高公众对饮酒驾车风险的认识,从而减少事故的发生。
结论数学建模在饮酒驾车问题上发挥着重要的作用。
通过建立数学模型,我们可以量化血液酒精浓度与驾驶能力之间的关系,并预测饮酒驾车的风险。
这些模型的应用可以帮助我们提醒个体的饮酒驾车风险、制定更有效的政策,以及提高公众对问题的认识。
饮酒驾车模型
黄利军;陈一君;姚俊银;黄国安
【期刊名称】《桂林航天工业学院学报》
【年(卷),期】2006(011)002
【摘要】下列数学模型以饮酒驾车问题为研究对象,根据饮酒方式的不同,分别给出了两个血液中酒精含量的微分方程模型,{dx0(t)/dt=-k1x0+f0(t) x0(0)=P0
f1(t)=k1x0 dx1(t)/dt=f1(t)-k2x1(t) x1(0)=0 x0(t)=v0c1(t) x1(t)=v1c1(t) 模型Ⅰ{dx1(t)/dt=-k2x1+K0 x1(0)=0 c1(t)=x1(t)/v1 模型Ⅱ 对题目中的参考数据和网上资料,利用剩余法,最小二乘法及Mathematica应用软件得出几组k1,k2估计值.选取两个参数估计值k1*=0.7,k2*=0.15,对文中的各个问题都得出较好的结论,证明了饮酒方式与血液中酒精含量的关系.
【总页数】3页(P102-104)
【作者】黄利军;陈一君;姚俊银;黄国安
【作者单位】桂林航天工业高等专科学校计算机系,广西,桂林,541004;桂林航天工业高等专科学校计算机系,广西,桂林,541004;桂林航天工业高等专科学校计算机系,广西,桂林,541004;桂林航天工业高等专科学校计算机系,广西,桂林,541004
【正文语种】中文
【中图分类】O141.4
【相关文献】
1.饮酒与安全驾车问题模型的分析和解决方案 [J], 陈杰;李知谕;倪文龙;唐娜
2.饮酒与安全驾车问题的数学模型 [J], 徐辉军
3.饮酒驾车问题模型 [J], 王贤华;王金亮
4.饮酒驾车问题模型 [J], 王贤华;王金亮
5.饮酒与安全驾车问题的数学模型 [J], 徐辉军
因版权原因,仅展示原文概要,查看原文内容请购买。