饮酒驾驶酒精含量数学模型 [文档在线提供](1)
饮酒驾驶模型
摘要:
本文针对酒后驾车造成交通事故死亡率高,以及根据国家质量检验检疫局发布的饮酒后驾车新
,建立了饮酒后血液中酒精含量的数学模型。通过了解酒精在体内吸收,分布和排除的动态过程,及这些过程与人体内酒精反应的定量关系建立微分方程,运用药物动力学原理建立单室和双室模型。得出血液中的酒精含量,与进入体内总酒量C(t)
、时间的函数关系式: tx(t)
ktkt,,a单室模型: ,,,,,,,,Ct,xtv,kxe,evk,kaa0
xtxt,,,,tt,,nn,1pnpn,1,,双室模型: AUC,AUC,,,tppn,,00vv,,
Wagner-Nelson法(待吸收的百分数对时间作图法),与题中给出的本文还运用了
参考数据在计算机运行的结果作对比。
本文还解决了如下问题:
1、从模型分析了大李第二次被判为饮酒驾车是因为二次饮酒,而使血液中酒精含量累积而超标。
2、对喝了低度酒多长时间驾车违反规则作了量化分析;
3、从单室模型得出了一个血液中酒精含量峰值
:
,,t,2.303gkkk,k maxaa
4、用本文的模型对天天喝酒能否开车作了讨论。
本文最后对模型的优点和不足作了评价。
一、问题提出
据报载,2003年全国道路交通事故死亡人数为10.4372万,其中因饮酒驾车造成的占有相当的比例。
大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,又一次遭遇检查时却被定为饮酒驾车,这让他既懊恼又困惑,为什么喝同样多的酒,两次检查结果会不一样呢,
请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模型,并讨论以下问题:
1. 对大李碰到的情况做出解释;
2. 在喝了3瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情况下回答:
1)酒是在很短时间内喝的;
2)酒是在较长一段时间(比如2小时)内喝的。
3. 怎样估计血液中的酒精含量在什么时间最高。
4. 根据你的模型论证:如果天天喝酒,是否还能开车,
5.根据你做的模型并结合新的国家标准写一篇短文,给想喝一点酒的司机如何驾车提出忠告。
- - 1
二、问题假设
1、机体分为中心室(I室)和周边室(II室),两个室的容积(即血液体积或药物分布,1,容积)的过程中保持不变。
2、药物从一室向另一室的转移速率,及向体外的排除速率,与该室的血药浓度成正比。
3、酒精含量的变化基本只受消除速度常数支配。 4、假定消除只发生在中心室,两个房室内酒精初始量都为零(即没有喝酒)。
5、酒在体内运动的配置和消除都是药物动力学过程。 6、人都是在精神状态正常情况下喝酒。 7、酒精可在整个机体内以同速度达到平衡。
三、符号定义
:房室表观分布容积; v
:酒精消除速度常数; k
k:酒精吸收速度常数; a
k:酒精转移速度常数(); kcppc
:时刻体内吸收酒精的速度; tf(t)
C:血酒浓度的最高峰值; m
: 血液中酒精含量; C(t)t时刻的
:进入体内的总酒量; x(t)
x:一次喝下的酒量; 0
,,xt:t时刻体内吸收的酒精量; a
,,xt:t时刻中心室内的酒精量; c
,,xt:t时刻周边室内的酒精量; p
t:第次喝酒的时刻; nn
t:血液浓度达到最高峰值的时刻; m
I :已经代谢排泄酒物总量;
AUC:一次喝酒后的吸收总量; p
四、模型建立
(一)、单室模型
将人的机理作为一个房室处理的模型,人喝酒后,酒精需要一定的吸收过程,可建
立模型图(1):
图(1) 依条件及示意图,得到单室模型;
- - 2
dx (1) ,,,ft,kxdt
,, x0,x
,,,, (2) Ct,xtv
,,C0,C,xv 00
酒精逐渐进入血液循环后;
,kta (3) ,,,,ft,k*xt,keaaax0
得到:
ktkt,,a (4) ,,,,,,xt,kxe,ek,kaa0
将(2)式代入(3)得
ktkt,,a (5) ,,,,,,,,Ct,xtv,kxe,evk,kaa0
根据动力学原理的有关计算
,
出的血液中酒精含量最大峰值和达到最大峰,2, 值时间计算公式
,ktm (6) C,exvmax0
,,t,2.303gkkk,k (7) maxaa,3,(二)、双室模型
二室模型假设酒精进入体内后在两个房室内配置,一个中心室,另一个是外周室,酒精
在体内的配置和消除都是一级动力学过程,但酒精的吸收可以是任意的,见图(2):
图(2)
按照质量平衡原理,时间范围内吸收进入体内的总酒量为 x(t)0,t
t
(8) ,,,,,,,,xt,ftdt,Xt,Xt,Icp,0
其中
t (9) ,,I,kXtdt,c0
代入式(5) 并在等号两边同时除以表观分布容积得到 V
xtxtt,,,,pctkctdt,,,,,,, (10) ,0vv
xt,,c,,ct其中血液中酒精含量=。 v
t,, 根据式(7), 当时,计算酒精吸收分数的公式为:
- - 3
tx(t)p,,,,,,,ctkctdt0,,xtv (11) ,,,,,x,kctdt0
我们运用Wagner-Nelson方法求解,对此,我们在算法作如下基本假设:在时间
,,xtp,,xttt,t和之间外周室酒精量可以用线性插值近似逼近,因此曲线下的面积pn,1nv
tn可用梯形法进行运算 AUCp,1tn
txtxtxtt,,,,,,,,,,t,tnnppn,1pnnn,1 (12) ,,AUC,dt,,p,,,,1t,1t2nnvvv,,tttxtxtxttnn,1nnppp,,,,,,AUC,dt,dt,dtp000tn,1vvv,,,
则 (13)
,,,,xtxtt,,t,tn,1pn,1pnnn,1,,,AUC,,p,,02vv,,
为了叙述方便,令
t,tnn,1 ,t,n2
则有
xtxt,,,,tt,,nn,1pnpn,1,, (14) AUC,AUC,,,tppn,,00vv,,
,,xtt0p0,,,0n,1,2,3,?,n这是一个递推公式,。当时t=0,,,AUC,0n,10p0vt,tt101则根据上述递推公式 ,t,,122
xtxt,,,,tt,,0110pp,,AUC,AUC,,,t1pp,,00vv,, (15)
,,xt1p,,,t1v
外周室的药物量变化微分方程为
dx,,tp,,,,,vkct,kxt (16) cppcpdt
0,t在时间范围内,对式(10)等号两边积分,得到 n
ttnn (17) ,,,,,,xt,vkctdt,kxtdtpncppcp,,00
在上式等号两边同时除以v,得到 ttxtxtpnpnn,,,,,,kctdtkdtcppc,,,,00vv
(18) ,,txtxtt,,,,,,pnpnnn,1,1,,,,,,,,,kctdtkAUCt,,cppcpn,,,00vv,,,,
- - 4
整理上式后
xtt,,tnn,1pn1,kctdt,kAUC,k,t,,cppcppcn,xt,,00pnv (19) ,v1,k,tpcn
2、递推计算过程
用数学不完全归纳法,对式(15)和式(11)进行递推计算, 计算过程为:
时 n,1
t1,t,12 t0AUC,0p0t1kctdt,,xt,,cp,p10 ,v1,k,tpc1
x,,tt1p1AUC,,,t 1p0v
时 n,2
t,t21 ,t,22
xtt,,t21p1kctdt,kAUC,k,,t,,cppcppc2,xt,,00p2v ,v1,k,tpc2
xtxt,,,,,,tt2112pp,, AUC,AUC,,,t2pp,,00vv,,
时 n,3
t,t32 ,t,32
xtt,,t32p2kctdt,kAUC,k,,t,,cppcppc3,xt,,00p3v ,v1,k,tpc3
XtXt,,,,,,tt3223pp,,AUC,AUC,,,t 3pp,,00VV,,如此递推计算可得到:
xtxt,,,,tt,,nn,1pnpn,1 ,,AUC,AUC,,,t (20) ppn,,00vv,,
根据题中所给出的数据和(20)式作出图(3):
- - 5
图(3)
由以上各推导公式我们可以计算人在一次饮酒的量,以及多次饮酒的量后体内酒精含量随时间的变化。
五、模型结果分析及验证
1、对大李的问题给予解释:
,,xtp1,20通过双室模型可以看出,第一次饮酒时,虽然,也就是 v
t1 AUC,20p0
但是第二次饮酒后,由于他第一次饮酒时血液中还残留有一定酒精,有如下关系式
xtxt,,,,,,tt1221pp,,AUC,AUC,,,t 2pp,,00vv,,
xtxt,,,,,,tt1221pp,,AUC,AUC,,,t,20即时,就违反了国家的新标准。 2pp,,00vv,,
2、对喝了3瓶啤酒的在多长时间内驾车就会违反标准。
A、酒是在短时间内喝的:
tt11只要,即内开车,就会违反国家的新标准。 AUC,20,tt,AUC/40np1p00
按照题中给出的参考数据,70?的人在短时间内喝下的2瓶酒后,得到的数据代入,
t同样体重的人喝3瓶啤酒,解得约在11小时内,就会违反国家新标准。
B、酒是较长时间内喝。
我们对上述问题定性地假设长时间内喝了 n次(每次都是在短时间内喝),
- - 6
因为
xtxt,,,,tt,,nn,1pnpn,1,, AUC,AUC,,,tppn,,00vv,,ttnn,1 则有 AUC,AUC,20,tppn00
ttnn,1即 内开车就会违反国家的新标准。 t,(AUC,AUC)/40npp00
3、怎样估计血液中的酒精含量在什么时间最高;
方法一、根据题目给出的参考数据:
时间(小时) 0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 酒精含量 30 68 75 82 82 77 68 68 58 51 50 41 时间小时 6 7 8 9 10 11 12 13 14 15 16 酒精含量 38 35 28 25 18 15 12 10 7 7 4
用Matlab作出图像:
根据图表数据和图像的变化规律,我们可以粗略统计出:
当时,人体内的酒精含量最高。 1,t,1.5
- - 7
方法二、根据我建立的单室模型,和参考药物动力学有关知识,总结出如下关系式
,ktm C,exvmax0
,,t,2.303gkkk,k maxaa
计算出人喝酒后的酒精含量峰值的时间
4、验证如果人天天喝酒还能否开车,
如果人天天喝酒,存在下面关系式
ttnn,1, t,(AUC,AUC)/40npp00
t,24假若算出 小时,就能开车; n
t,24假若算出 小时,就会违反规定。 n
六、模型评价与改进
优点:
(1)、本文有明确的求解方向,以药物动力学的有关原理为参考资料和理论基础。模型具有科学性和普遍的适用性。
(2)、本模型参考药物动力学,建立饮酒后酒精在血液中的含量的数学模型,并对单次饮酒和多次饮酒后的情况进行讨论,具有较强的稳定性。
(3)、本模型以生活的事例为检验资料,所得出的结论基本吻合,并易于推广。
缺点:
(1)、由于变量参数大多,即使将原问题线性化,计算依然相当繁杂。
(2)、由于时间和知识的有限,在求解实际问题时,对人体的机理简单的分为单室模型和双室模型。
模型改进:
基于本模型的参数多,可以通过一些仪器实验算出参数的具体值。基于我们只建立室模型和双室模型,可以进一步考虑多室模型的方向,使酒在人体内消化反应出来,单
使结果更加切合实际。
七、给爱好喝酒的朋友一封信
亲爱的酒友:
首先,我们不是一帮酒鬼,但通过数模竞赛我们对酒有一定的了解:酒对人脑的作用与人体血液中酒精浓度有着密切的关系,它将影响人体思想、行为,少喝固然能促进消化,有益身心健康。但是,多喝的后果是不堪设想的:伤及他人;对人体大脑的伤害;更可怕的是在交通事故中它所扮演的恶性角色。正所谓“多喝”无性,“少喝”怡情。在生活节奏紧张而又繁忙的司机们,想得到一份精神的解脱和轻松,“小喝”怡情,倒也无妨。只是“大喝”无性者,将会失去理性,终将害人害己(见附录一)。看吧,不要因为一时的酒瘾,而失去美好的一切。
参考文献
,1,姜启源 《数学模型》 北京:高等教育出版社 1993年8月第二版 [2] 魏树礼 《生物药剂与药物动力学》 北京:北京医科大学出版社 1997年 [3] 陆瑜 朱家壁 梁秉文 二室模型药物体内吸收计算方法的改进
- - 8
附录一:
酒后血中浓度与行为表现的关系
血中酒精浓度(mg/dl)行为表现
大于30 驾车有障碍
30,50 驾驶能力变坏
50,100 多话、大笑、感觉障碍
100,150 说话含糊、脚步不稳、可能会恶心
150,200 明显酒醉、恶心、步履踌躇
附录二:
Matlab6.1程序清单
(1)
x=[0.25,0.5,0.75,1,1.5,2.0,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16];
y=[30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4];
plot(x,y,'*')
plot(x,y,'*',x,y)
(2)
x=[0.25,0.5,0.75,1,1.5,2.0,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16];
y=[3.75,17,28.125,41,61.5,77,85,102,101.9,102,112.5,102.5,114,122.5,112,112
.5,90,82.5,72,65,49,52.5,32];
plot(x,y,'*')
>> plot(x,y)
>> x1=[0.25,0.5,0.75,1,1.5,2.0,2.5,3]; y1=[3.75,17,28.125,41,61.5,77,85,102]; >> a=polyfit(x1,y1,2)
a =
-6.4863 55.7627 -9.2847
>> x2=0.25:0.5:3;
>> y2=-6.4863*x2.^2+55.7627*x-9.2847; ??? Error using ==> +
Matrix dimensions must agree.
>> x2=0.25:0.5:3;
y2=-6.4863*x2.^2+55.7627*x2-9.2847; >> plot(x,y,'*',x2,y2)
>> polyfit(x1,x2,3)
??? Error using ==> polyfit
X and Y vectors must be the same size.
>> polyfit(x1,y1,3)
- - 9
ans =
2.1562 -16.9706 69.6712 -13.6200
>> y2=2.1562*x2.^3-16.9706*x2.^2+69.6712*x2-13.6200; >> plot(x,y,'*',x2,y2)
>>
x=[0.25,0.5,0.75,1,1.5,2.0,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16];
y=[3.75,17,28.125,41,61.5,77,85,102,101.9,102,112.5,102.5,114,122.5,112,112
.5,90,82.5,72,65,49,52.5,32];
plot(x,y,'*')
>> plot(x,y)
>> x1=[0.25,0.5,0.75,1,1.5,2.0,2.5,3,3.5,4]; y1=[3.75,17,28.125,41,61.5,77,85,102,101.9,102]; >> a=polyfit(x1,y1,2)
a =
-7.7319 59.3789 -10.9764
>> x2=0.25:0.5:4;
>> y2=-7.7319*x2.^2+59.3789*x2.-10.9764; ??? y2=-7.7319*x2.^2+59.3789*x2.-10.9764;
|
Error: "identifier" expected, "-" found.
>> x2=0.25:0.5:4;
y2=-7.7319*x2.^2+59.3789*x2-10.9764; >> plot(x,y,'*',x2,y2)
>> polyfit(x1,y1,3)
ans =
-0.2926 -5.8683 56.1772 -9.7604
>> y2=-0.2926*x2.^3-5.8683*x2.^2+56.1772*x2-9.7604; >> plot(x,y,'*',x2,y2)
>> x3=[4.5,5,6,7];
>> y3=[102,102.5,114,122.5];
>> b=polyfit(x3,y3,2)
b =
- - 10
0.9347 -1.9849 90.9799
>> x3=4:0.5:7;
>> y3=0.9347*x3.^2-1.9849*x3+90.9799; >> plot(x,y,'*',x2,y2,x3,y3)
>> polyfit(x3,y3,3)
ans =
0.0000 0.9347 -1.9849 90.9799
>> x4=4:0.5:7;
>> y4=0.0000*x4.^3+0.9347*x4.^2-1.9849*x4+90.9799;
>> plot(x,y,'*',x2,y2,x4,y4)
>> x5=[7,8,9,10,11,12,13,14,15,16]; >> y5=[122.5,112,112.5,90,82.5,72,65,49,52.5,16];
>> c=polyfit(x5,y5,2)
c =
-0.3201 -3.4140 161.6318
>> x6=7:0.5:16;
>> y6=-0.3201*x6.^2-3.4140*x6+161.6318; >> plot(x,y,'*',x2,y2,x4,y4,x6,y6) >> polyfit(x6,y6,3)
ans =
0.0000 -0.3201 -3.4140 161.6318
>> x6=7:0.5:16;
>> y6=0.0000*x6.^3-0.3201*x6.^2-3.4140*x6+161.6318;
>> plot(x,y,'*',x2,y2,x4,y4,x6,y6)
- - 11