酒后血液中酒精含量的数学模型
摘要:本文针对酒后驾车人员血液中酒精含量是否符合驾车标准这一问题,详细分析了人体对酒精的吸收,以及吸收后的分解过程。并建立了血液中酒精含量随时间变化的数学模型,以便了解酒后不同时段,血液中的酒精含量有什么规律。对于酒后不同时段,根据数学模型来计算出血液中的酒精含量,针对《车辆驾驶人员血液、呼吸酒精含量阈值与检验》的国家标准,来给出酒后人员经过多长时间,才符合驾车标准。
本文参考药物在体内的分解模型(房室模型),把胃看成是酒精吸收的一个中间容器(吸收室),考虑胃与体液(血液看成是体液的一部分)之间的酒精的渗透关系,主要考虑胃内酒精向体液的渗透,以及体液中酒精的分解,建立体液中酒精含量的微分方程。再通过体液中酒精含量与浓度之间的关系,转换成关于体液中酒精浓度的微分方程。针对短时间内快速饮酒的情况(在很短的时间内所饮酒全部注入吸收室),如果我们记吸收室(胃)内酒精量为)(0t x ,中心室(体液)内的酒精量为)(1t x ,由吸收室到中心室的酒精转移率系数为01k ,而由吸收室分解排放的酒精转移系数为k 。则我们可以建立微分方程如下:
)(1t x
=01k )(0t x -k )(1t x 此微分方程说明:在一个很小的时间段内,中心室(体液)中酒精的改变量可由两部分来决定,一部分是由吸收室转移得到,一部分是分解排除。然后根据边界条件,以及浓度与酒精量和酒精体积的关系
1x =1c 1v
其中,1c 为中心室的酒精浓度,1v 为中心室的体积,解出微分方程的解析解,形式如:
)(1t c =)()
(010101t k kt e e k k k A ----, A 与吸入酒精量及体重有关。用此解去拟和试验数据,得到参数01k ,k 的值。这样就得到了快速饮酒时体液酒精浓度与时间的函数关系。
接下来我们又根据此模型对长时间饮酒的情况做了分析,把饮酒时间适当分割,每个时间段看成是快速饮入一定量的酒,用多个快速饮酒去模拟长时间饮酒的情况,进而得到了长时间饮酒时血液酒精浓度随时间变化的函数关系。
1、 问题的提出:
据报载,2003年全国交通事故死亡人数为10.4372万,其中因饮酒驾车造成的占有相当比例。
针对这种严重的交通情况,国家质量监督检验检疫局2004年5月31日发布了新的《车辆驾驶人员血液、呼气酒精含量阈值与检验》国家标准,新标准规定,车辆驾驶人员血液中的酒精含量大于或等于20毫克/百毫升,小于80毫克/百毫升为饮酒驾车(原标准是小于100毫克/百毫升),血液中的酒精含量大于或等于80毫克/百毫升为醉酒驾车(原标准是大于或等于100毫克/百毫升)。
大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,又一次遭遇检查时被定为饮酒驾车,这让他既懊恼又困惑,为什么喝同样多的酒,两次检查结果会不一样呢?
我们将参考下面给出的数据,建立饮酒后血液中酒精含量的数学模型,并讨论以下问题:
1、对大李碰到的情况做出解释;
2、在3瓶啤酒或半斤低度白酒后多长时间内驾车就会违反上述标准,分别对以下情
况进行分析:
1)酒在很短时间内喝的;
2)酒在较长一段时间(比如2小时)内喝的。
3、怎样估计血液中的酒精含量在什么时间最高。
4、根据模型论证:如果天天喝酒,是否还能开车?
参考数据
1.人的体液占人的体重的65%至70%,其中血液只占体重的7%左右;而药物(包括酒精)在血液中的含量与在体液中的含量大体是一样的。
2.体重约70kg的某人在短时间内喝下2瓶啤酒后,隔一定时间测量他的血液中的
2、问题的分析
考虑饮酒后酒精在人体内的变化情况,酒精被饮入体内首先是进入胃中,然后再随着血液循环进入体液,然后再由体液分解排出体外。所以我们可以对问题进行如下化简:在酒精吸收和分解的过程中,我们考虑酒精在进入胃的过程中没有损失,而胃内的酒精只是在向体液中渗透,并不考虑体液中的酒精反向渗透回胃内。因为酒精在体液中的浓度和酒精在血液中的浓度大体上是一样的,所以我们不把血液和体液分开来考虑,而把它们看成是一个整体。所以我们建立模型时就把胃看成了一个空间,把血液和体液整体看成了一个空间,而这两个空间的关系是酒精从胃渗透向体液,而体液中的酒精只是通过分解排出。
(1)对问题一的分析
首次饮酒后经过了六个小时后再次饮酒,这个时候血液中的酒精浓度计算应该是,首次饮酒在血液中的残留继续分解,而第二次饮酒还要经过一个吸收和分解的过程,所以再过八小时测出的血液中的酒精浓度和首次饮酒也有关系。
(2)对问题二的分析
在短时间喝一定量的酒,经过模型可直接求解出各个时刻的血液酒精浓度,而对于长时间饮酒,我们可以认为酒是匀速饮入,我们对时间进行分割,然后在每个小时间段内看成是快速饮入定量的酒。在每个小时间段内用模型模拟。
(3)对问题三的分析
无论是短时间饮酒,还是长时间饮酒,我们都可以根据模型很容易求出血液中酒精的含量在何时最大。
3、模型的假设
这个问题的本身尚有一些不确定的因素,比如说身体素质就会影响人对酒精的吸收与分解。为了使问题简化,我们给出了如下的假设:
(1) 酒精从胃部向体液的转移速率,及向外排除的速率分别与胃部和体液中的
酒精浓度成正比。
(2) 体液总体积保持不变。
(3) 酒精只是通过胃部进入体液。
(4) 酒精并不会从体液反向渗入到胃部。
(5) 血液和其它体液看成一个整体。
(6) 酒精只会通过体液排出体外。
4、符号的说明:
)(0t x 吸收室(胃)内酒精量 )(1t x 中心室(体液)内的酒精量
01k 由吸收室到中心室的酒精转移率系数 k 由吸收室分解排放的酒精转移系数 )(1t c 体液中酒精的浓度 1v 体液的体积 0D 饮入酒精量0f 酒精由吸收室转移到中心室的速率
5、模型建立
基于上述对问题的讨论,对于短时间内饮入酒的情况我们可以建立下述模型
)(0t x
=-01k )(0t x )(0t x =0D 解此微分方程得,)(0t x =0D t k e 01-(1), 所以可知,)(0t f =01k 0D t k e 01-。
对中心室创建微分方程,可得,
)(1t x
=01k )(0t x -k )(1t x
考虑到,1x =1c 1v 及(1) )(1t c =t k e v k D 0110101--)(1t kc )0(1c =0
解此微分方程得 )(1t c =)()
(01011010t k kt e e k k v k D ---- (01k ≠k ) 接下来,我们通过题中所给实验数据来拟和求出两个系数,01k ,k
每瓶啤酒的体积为640毫升,啤酒的酒精度约为4%,酒精的密度为800毫克/毫升,所以可以计算得到每瓶啤酒中含有酒精为20480毫克。体液约占体重的65%-70%,体液的密度约为1.05510?毫克/百毫升。可以计算70公斤的人的体液约为467百毫升。所以对于题中实验数据,可以确定0D (代表饮入的酒精量,单位为毫克)等于40960毫克,1v (人体的体液的体积,单位为百毫升)467百毫升。又体液中酒精浓度和血液中酒精浓度相同。
用函数)(1t c =)()
(01011010t k kt e e k k v k D ---- 拟和题中实验数据得图形如下:
01k =2.6853 k =0.1474
所以得到拟和函数:)(1t c =)(92.8029 1474.06853.2t t e e --- 。y 轴表示酒精血液浓度,x 表示时间。
6、模型求解
下面对书中的问题用模型做出解答
(1)首先给出快速饮酒一瓶时血液中酒精浓度的函数)(1t c =)(46.4014 1474.06853.2t t e e --- 做出图象:
大李中午12点饮酒一瓶啤酒经过六小时,血液中酒精浓度19.1620mg/dml ,所以六小时后大李通过了检查。
大李凌晨2点再一次检查时血液中的酒精含量应为两部分组成,第一部分是中午12点喝的酒经过了14个小时后在血液中的残量,应为5.8927 mg/dml ,它属于一直分解后的残量,第二部分是晚上6点又喝了一瓶酒后经过吸收和分解的过程,在过了八小时后在血液中的浓度为:14.2695 mg/dml ,所以血液中的酒精总浓度为20.1622 mg/dml ,大于20 mg/dml ,所以没通过检查。(以上数据均为通过模型精确计算得到)。
(2)(一),给出快速喝进3瓶啤酒后的血液酒精浓度随时间变化的函数:)(1t c =)(139.2042 1474.06853.2t t e e ---,图象为:
经过计算,在饮酒13.1629小时内血液中酒精浓度大于20mg/dml,违反标准。
在饮酒3.7574小时内血液中酒精浓度大于80mg/dml,属于醉酒驾车。
(二),如果酒是在较长一段时间内(2小时)喝的,我们可以认为酒是匀速饮入,我们对时间进行分割,然后在每个小时间段内看成是快速饮入定量的酒。在每个小时间段内用模型模拟,如果我们把时间分为6等份,也就是每20分喝半瓶啤酒,每次饮酒看成是快速饮酒,用快速饮酒模型分别模拟得图象:(下图:3瓶啤酒六次速饮各曲线)
在每个时间点把每个函数值相加就得到在这一时刻,血液中酒精的浓度,经过计算在14.0113小时内血液中酒精浓度大于20mg/dml.属于违规。
在饮酒4.6051小时内血液中酒精浓度大于80mg/dml,属于醉酒驾车。
(3)对于快速饮酒,无论饮酒量为多少(如下图),酒会在很短的时间内进入到胃中,这时胃中的酒精浓度会短时间内达到很高,这时酒精高速渗透向体液,随着时间的增加,体液中排出酒的速度会增加,而当体液排出酒精的速度等于胃向体液渗透的速度时,体液中的酒精浓度达到最大,对于快速饮酒,会很快达到最大。经过计算,快速饮1或2或3瓶酒时,体液中酒精浓度达到最大的时刻均为:1.1015小时。
对于在较长时间内喝完酒,因为酒可看成是匀速饮入,酒精渗入体液的速度相对增加较慢,相对于快速饮酒,血液中酒精浓度达到最大值的时间要靠后,经过计算对于上述2小时喝三瓶酒达到最大的时间为:2.3416小时。
(4)根据对上述求解的分析,得出以下结论:(一)每天不论短时间内还是长时间内饮过量的酒,就不能在很长一个时间中恢复标准,题(2)中的两个数据:在饮酒13.1629小时内血液中酒精浓度大于20mg/dml,14.0113小时内血液中酒精浓度大于20mg/dml,这样就不能驾驶。(二)即使长时间内均匀时间段中喝少量的酒,人体血液中的酒精的含量也会积少成多,超过标准。题(2)中的第二模型很直观的反映出。因此,我们要做到适量,适时的喝酒。
(5)给想喝酒的司机一点建议
酒后驾车是导致交通事故的重要危险因素之一。目前我国在饮酒与交通安全方面的形式十分严峻,据我国公安部统计,近10年来因饮酒所导致的道路交通事故,人员伤亡及经济损失仍逐年增加,2002年因饮酒所导致的道路事故数、死亡人数、受伤人数和经济损失分别达到1996年的262.3%,184.4%,325.3%和144.3%。
但是酒作为人类社会交往活动的一种载体与介质,在人类文化和精神生活中的多样性发展过程中扮演了重要角色,丰富了人类的物质和精神生活。但它同时也带来了一些不良的后果,而车与酒的“完美结合”,似乎更使事故的发生率成倍的增加。
或许让驾车的人滴酒不沾那是不可能的,那么想喝点酒的司机朋友们千万要注意几个问题。
首先,不要天天,餐餐不离酒。因为酒精在人体体液中的吸收和分解是受时间影响的。你若6小时喝一次,你每天喝的酒中的酒精依然有一部分残留在体液中,那么到一定时间,你体液中的酒精的浓度自然超过20毫克/百毫升,那样的话就违反的国家标准。
其次不饮急酒,不饮空腹酒,饮酒要有下酒菜,最好先吃一些主食,边吃边饮。这样可以延续酒精的吸收,减少对胃粘膜的过度刺激。
再则,若在中午的时候喝了一定量的酒,大概一瓶以上,那样的话,下午出车最好应在喝完酒两小时后,因为酒精在体液中的浓度达到最高是在喝完一个半小时左右。否则
极易出事。
除此之外,在各种应酬中还应掌握几个原则:饮酒要适量,以舒服为原则,不能逞英雄;身体不适,情绪不良尽量避免饮酒,以免加重症状。
“醉里从为客,诗成觉有神”,“俯仰各有志,得酒诗自成”,酒不仅是一种物质的存在,也是一种文化的象征。酒是一个变化多端精灵,它既缠绵如梦萦,柔软如棉缎,但它也让人觉得狠毒如恶魔,让人沉到最深渊最底处。
司机一滴泪,亲人两行泪!司机朋友们,为了你的安全,他人的安全,更为了让你的亲人放心,请你们健康的饮酒!安全的驾车!
7、模型的评价:
①.利用MATLAB数学软件进行编程求解,所得结果误差小,数据准确合理。
②.模型通过严密的理论推导,能够比较准确地反映实际情况。
③.对各种模拟给出了直观的图形,便于更好的分析和解决问题。
④.在建立模型的时候,有些假设有点理想化。
参考文献:
[1].姜启源,数学模型(第133页到137页),北京,高等教育出版社,1993年;
[2].满晓宇,战胜MATLAB必做练习50题(第86页到89页),北京,北京大学出版
社,2001年;
[3].精锐创作组科学运算完整解决方案(第79页到90页),北京,人民邮电出版
社,2001年;
[4].李淳廉,酒精如何被人体吸收,https://www.wendangku.net/doc/8210685967.html, 2004-9-18
附件:
以下是本文用到的MATLAB编程的一些程序
程序一(拟和题中所给试验数据的程序, 该程序用来拟和短时间内喝2瓶啤酒的图象) nihe.m
xdata=[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]; ydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4 ]; x = lsqcurvefit(@myfun7,[1 2],xdata, ydata)
xi=(0.25:0.05:16);
zi= (40960*x(2)./(467*(x(2)-x(1)))).*(exp(-x(1).*xi)-exp(-x(2).*xi)); hold on
plot(xi,zi,'r')
grid on
plot(xdata,ydata,’*’)
myfan7.m
function F = myfun7(x,xdata)
F = (40960*x(2)./(467.*(x(2)-x(1)))).*(exp(-x(1).*xdata)-exp(-x(2).*xdata));
0246810121416
010
20
30
40
50
60
70
80
90
0246810121416
020
40
60
80
100
120
140
0246810121416
010
20
30
40
50
60
70
80
90