MATLAB怎样编写饮酒驾车问题程序?

MATLAB怎样编写饮酒驾车问题程序?,第1张

饮酒驾车

一 、摘要

本文建立了一个为确定司机酒后驾车时酒精含量是否超标提供参考的数学模型。首先,将酒精含量视为血药浓度,借用药物动力学的喊雀房室模型,将酒精在肠胃的吸收过程和在血液中的分解过程抽象为吸收室和中心室里所发生的作用,运用微分方程理论推导出了吸收速率和分解速率随时间变化的规律(,),并用回归分析方法结合题述经验数据具体导出一人在未喝过酒的情况下,饮入2瓶啤酒的血液中酒精含量与时间的关系模型(),以此为基础回答题述的五个问题。

本文的最大特点是将房室模型灵活运用于司机各种不同的饮酒方式,使模型的应用范围和解释力都得到了郑顷早加强。

二、问题的重述

据报载,2003年全国道路交通事故死亡人数为10.4372万,其中因饮酒驾车造成的占有相当的比例。

针对这种严重的道路交通情况,国家质量监督检验检疫局2004年5月31日发布了新的《车辆驾驶人员血液、呼气酒精含量阈值与检验》国家标准,新标准规定,车辆驾驶人员血液中的酒精含量大于或等于20毫克/百毫升,小于80毫克/百毫升为饮酒驾车(原标准是小于100毫克/百毫升),血液中的酒精含量大于或等于80毫克/百毫升为醉酒驾车(原标准是大于或等于100毫克/百毫升)。

大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,又一次遭遇检查时却被定为饮酒驾车,这让他既懊恼又困惑,为什么喝同样多的酒,两次检查结乎燃果会不一样呢?

请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模型,并讨论以下问题:

1. 对大李碰到的情况做出解释;

2. 在喝了3瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情况下回答:

酒是在很短时间内喝的;

酒是在较长一段时间(比如2小时)内喝的。

3. 怎样估计血液中的酒精含量在什么时间最高。

4. 根据你的模型论证:如果天天喝酒,是否还能开车?

5. 根据你做的模型并结合新的国家标准写一篇短文,给想喝一点酒的司机如何驾车提出忠告。

参考数据

1. 人的体液占人的体重的65%至70%,其中血液只占体重的7%左右;而药物(包括酒精)在血液中的含量与在体液中的含量大体是一样的。

2. 体重约70kg的某人在短时间内喝下2瓶啤酒后,隔一定时间测量他的血液中酒精含量(毫克/百毫升),得到数据如下:

时间(小时) 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

三、问题分析.

该部分包含于 五、模型的建立与分析 中.

四、模型假设与符号约定

假设人体密度是均匀的,而且酒精进入体液的时候马上均匀分布,且血液和体液的酒精浓度是一样的,都以c2 表示。

为了方便计算,保守计啤酒的酒精浓度为5%(g/ml)。

机体分为吸收室和中心室,两个室的的容积(v1,v2),即肠胃容积和体液(血液是其中的一部分)的体积在过程中保持不变。两室的酒精总量分别为x1, x2 。两室的酒精含量分别以浓度c1,c2表示。

酒精从一室向另一室的转移速率(速率系数k1),及中心室分解酒精的速率(速率系数k2),与该室的酒精浓度成正比。

吸收室从外界补给酒精,并将其吸收和散布在体液中;中心室把体液中的酒精分解并将其产物排出中心室外的环境。两室某一时刻的酒精吸收速率或酒精的分解速率分别为,。

g0为酒精的补给速率,是啤酒补给量对时间的导数。

7、喝入2瓶啤酒的酒精总量为D0 。

在这些假设下的一种二室模型示意图如图所示。

中心室(2室)

x2 (t) ,c2(t),v2

吸收室(1室)

x1 (t) ,c1 (t),v1

K2

K1

G0

五、模型的建立与分析

5.1. 下面建立一人在未喝过酒的情况下,短时间内饮入2瓶啤酒的酒精含量与时间的关系模型。

由假设条件与上图,可以写出两个房室中酒精量所满足的微分方程。

的变化率由1室向2室的转移, 1室的酒精补给速率组成;的变化率由由1室向2室的转移及2室向体液外的转移组成。于是有

-------------------------------------------(1)

--------------------------------------------(2)

-------------------------------------------------(3)

由 (1)、(2)、(3)式,得

---------------------------(4)

-----------------------------(5)

(4)、(5)两式构成线性常系数非齐次微分方程,

一人在未喝过酒的情况下,短时间内饮入2瓶啤酒,g0=0,即一下子喝完啤酒,(4)式可化为

=------------------------------------(6)

同时,有c1(0)= ,c2(0)=0 , 由(5)、(6)联合,通过MATLAB可解得

c1(t)=---------------------------------(7)

c2(t)= ---------------(8)

令A =,则(8)可化为

c2(t)= A—A-----------------------------(9)

不妨设<,

第一、当t很大时,(9)可看成是

c2(t)= A ------------------------------- (10)

两边取对数,使得(10)变为线性,得

ln c2(t)=lnA-k2t-------------------------------(11)

通过运用MATLAB进行线性回归分析, 得

lnA=4.9078

A=135.34

k2=0.20507

第二、由(9)得A= A—c2(t) ,在第一步的基础上代入k2,A,t可得出A—c2(t)的一系列具体的值,所以

ln(A)=lnA-k1t=ln(A—c2(t))

就可以通过MATLAB做线性回归分析得出k1=1.4976 ,lnA=4.9425 ,A=140.1201

由第一步和第二步的出的lnA有点误差,但从它们的线性残差分析可见,这两个结果都可用,把上面得出的结果代入(9)式,得

c2(t)= ---------------(12)

这是一人在未喝过酒的情况下,短时间内饮入2瓶啤酒的酒精含量与时间的关系模型,(12)式作图如下:

下面是题目给出的数据作出的散点图,对比一下上图,可见上图拟合的结果是比较精确的。

5. 2 下面建立一人在未喝过酒的情况下,短时间内饮入n 瓶啤酒的酒精含量与时间的关系模型.

---------------------------(6)

-----------------------------(5)

c1(0)= ,c2(0)=0

c1(t)=-------------------------------------(13)

c2(t)= ---------------------------(14)

其中, A=135.34 , k2=0.20507 , k1=1.4976

5. 3. 当一人喝酒前肠胃(吸收室)里没有酒精或酒精已被吸收完了,而体液里(中心室)的酒精仍有残余,这时他立即在短时间内喝完n瓶酒,吸收室酒精总量为nD0/2 ,此时体液酒精浓度(设为初始浓度)c2(0)=a ,吸收室酒精初始浓度为c1(0)= nD0/2/v1,结合以下两式

---------------------(5)

=-----------------------(6)

c2(0)=a , c1(0)= nD0/2/v1

用MATLAB解之并化简得

-------------------------------(13)

---------------(15)

其中, A=135.34 , k2=0.20507 , k1=1.4976

5. 4 当一人吸收室酒精含量为0,中心室亦为0的时候,先用2小时持续地以均匀速率给酒n瓶,在2小时后给酒停住.在这种情况下,c1(0)=0, c2(0)=0 。率为g0= nD0/4.

此时的微分方程组的形式为:

-----------------------------(5)

---------------------------(16)

c1(0)=0, c2(0)=0

用MATLAB解之并化简得到:

-----------------------------------(17)

---------------(18)

其中, A=135.34 , k2=0.20507 , k1=1.4976

六、问题的解答

6.1. 对大李碰到的情况做出解释

大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准。因此符合5.1.的模型的条件。运用5.2.的模型,代入t=6,n=1

c2(6)=19.763<20,

符合大李在中午12点喝了一瓶啤酒,下午6点检查时符合新的驾车标准。

紧接着他在吃晚饭时又喝了一瓶啤酒,为了保险起见他呆到凌晨2点才驾车回家,又一次遭遇检查时却被定为饮酒驾车。根据5.1.的模型

c1(t)=-------------------------------------(7)

代入k1=1.4976, =25

(根据经验,可假设大李开始喝酒那一刻的吸收室酒精含量为普通啤酒酒精浓度的一半)

得c1(6)=0.003130

忽略不记。因此他的情况是下午6点吃饭时吸收室酒精浓度为0。按正常情况,大李可能属于5.3 模型,但计算 5.3 模型的 c2(8 )=16.950<20,不符合超标的实际情况。

所以,大李的情况必然是晚饭时酒非一饮而尽,且其体液(即中心室)中有酒精残余。

但这种情况不包含在第五点所建立的四种情况的模型中。设他喝2小时酒,我们可以忽略着两个小时体液内的酒精消耗,设他从第8个小时开始一下子喝完,用5. 3.得 c2(6)=23.5955〉20

所以超标

6.2在喝了3瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情况下回答:

(1)酒是在很短时间内喝的

(2)酒是在较长一段时间(比如2小时)内喝的。

对(1),运用5.2.的模型,代入n=3,

c2(t)= ---------------------------(14)

其中, A=135.34 , k2=0.20507 , k1=1.4976

解不等式

同理,解不等式

因此,若酒是在很短时间内喝的,以开始喝酒那一时刻计时间,

内驾车就会违反上述“80mg”标准, 内驾车就会违反上述“20mg”标准。

对(2),运用5.4的模型,代入n=3,

----------------(18)

其中, A=135.34 , k2=0.20507 , k1=1.4976

解不等式

同理,解不等式

因此,若酒是在较长一段时间(比如2小时)内喝的,以开始喝酒那一时刻计时间,内驾车就会违反上述“80mg”标准,内驾车就会违反上述“20mg”标准。

6. 3 估计血液中的酒精含量在什么时间最高,需要对各种具体的饮酒方式的

血液中酒精含量与时间的关系模型()求最植,下面列举一些简单的结果。

对符合5。1 模型的情况,时候酒精含量最高;

对符合5。2模型的情况,时候酒精含量最高;

对符合5。3模型的情况,何时酒精含量最高与喝酒前血液(中心室)中酒精残余含量有关。

对符合5。4模型的情况,时候酒精含量最高。

6. 4 随着生活的快节奏,我们假设酒都是一下子喝完的,利用5. 2

c2(t)= <20

代入t=12 得出n=4 即每天不得超过4瓶,否则不能开车。

可见,只要掌握好了饮酒的方式和驾车的时机, 天天喝酒还是能开车的.

6 .5短文:

掌握好了饮酒的方式和驾车的时机

------- 给想喝一点酒的司机如何驾车提出忠告

司机朋友们,

掌握好了饮酒的方式和驾车的时机,既有利于公民对国家法规的遵守,又有利于公民人身安全的有效保障.在此,我们向各位司机朋友门提出几点忠告.

若你想喝2瓶啤酒,并且是短时间喝, 我们劝您10小时后方驾车上路.

若你想喝1瓶啤酒,并且是短时间喝, 我们劝您6小时后方驾车上路.

为了您和他人的安全与幸福, 请您掌握好了科学的饮酒的方式和适当的驾车的时机.

七. 参考文献

[1] 梁炼 数学建模 广州: 华南理工大学出版社, 2003.

[2] 姜启源 谢金星 叶俊 数学模型 (第三版) 北京: 高等教育出版社, 2003

[3] 韩伯棠 管理运筹学 北京: 高等教育出版社, 2003

[4] WILLAM F. LUCAS主编 微分方程模型 湖南: 国防科技大学出版社,1988

八. 附录

MATLAB命令在建模中的使用

[b,bint,r,rint,stats]=regress(y,x,0.05)

用MATLAB Statistics Toolbox 中的regress命令完成求解,其格式为

[b,bint,r,rint,stats]=regress(y,x,0.05)

其中输入的y为模型中的因变量数据n维向量,x为对应于回归系数α

=(α0, α1)的数据矩阵[ 1,x1 ] (n*2矩阵,其中第一列为全一向量),0.05为置信水平;输出b为的估计值。bint为b的置信区间,r为残差向量,rint为r 的置信区间。Stats为回归模型的检验统计量,有3个值,第一是回归方程的决定系数R2(R是相关系数),第二是F统计量,第三个是与F统计量对应的概率值p。

例如得到模型的回归系数估计值及置信区间,检验统计量R2,,F,p的结果见下表。

参数 参数估计值 置信区间

α0 108.62 [103.64,113.6]

α1 5.2994 [4.9362,5.6626]

R2=0.9777 F=920.77 P=0.000

上表显示,R2=0.9777指因变量y的97.77%可由模型(1)来决定,F远远超过检验的临界值,P远小于0.05。因而该模型整体来看是可用的。

[x,y]=dsolve('Dx=-k1*x+1/v1*g','Dy=k1*v1/v2*x-k2*y','t')

用来求解微分方程(组)的命令,例如上式表示求解微分方程组

---------------------------(4)

-----------------------------(5)

其中t为自变量, 因变量c1(t), c2(t), 在命令中以x,y 表示.

Plot(x, y)

绘图命令,描绘的图象.

疑问

1、上图中的红色曲线与一瓶酒的函数C(t)对不上号,也并不是C(t)的1/2。

2、下图蓝色曲线与最后面的数据也对不上号,贴出这个曲线和数据是想说明什么?

3、原理性的问题:把均匀饮酒的过程看作多次快速饮酒的叠加是否可行?酒精浓度应该存在饱和的问题吧?

计算假设

1、假定两小时内分n次蔽亩均匀喝完3瓶酒(按照楼主提的要求让颤,n=6,也可以改成其它值);

2、C(t)为一瓶酒的函数;

3、每次饮宏滑森酒的函数按照C(t)*3/n并延迟相应的时间。

参考代码

n=6

t=0:1/(n*5):16

C = (3/n)*46.4014*(exp(-0.1474*t)-exp(-2.6853*t))

for i=2:n,

    C(i,:) = (3/n)*46.4014*(exp(-0.1474*(t-(i-1)/(n/2)))-exp(-2.6853*(t-(i-1)/(n/2)))).*(t>=(i-1)/(n/2))

end

clf

plot(t,sum(C,1),'linewidth',2)

hold on

plot(t,C)

结果

喝酒后肌肉酸痛缓解方法:

(1)食醋解酒用食醋烧1碗酸汤,服下。食醋1小杯(20~25亳升),徐徐服下。食醋与白糖浸蘸过的萝卜丝(1大碗),吃服。食醋与白糖浸渍过的大白菜心(1大碗),吃服。食醋浸渍过的松花蛋2个,吃服。食醋50克,红糖25克,生姜3片,煎水服。食醋能解酒,主要是由于酒中的乙醇与食醋中的机酸,随立脚点消化吸收,在人体的胃肠内相遇而起醋化反应,降低乙醇浓度,从而减轻了酒精的毒性。

(2)豆腐解酒饮酒时宜多以豆腐类菜肴作下酒菜。因为豆腐中的半胱氨酸是一种主要的氨基酸,它能解乙醛毒,食后能使之迅速排出。

(3)醒酒茶解酒据报道,杭州市临安县理化研究所根据唐代廷醒酒汤秘方,以现代工艺研制出一种醒酒灵丹--醒酒茶,对酒后头痛、头晕及身体不适等症状有良好效果。

(4)糖果解酒河北省生产一种解酒糖果,醉酒后吃上几块即可解槐链酒。

(5)酸枣葛花根解酒酸枣、葛花根各10~15克,一同煎服,具有很好的醒酒、清凉、利樱滑尿作用。

(6)绿豆、红小豆、黑豆解酒3种豆各50克,加甘草15克,煮烂,豆、汤一起服下,能提神解酒,减轻酒精中毒。

(7)生蛋清、鲜牛奶、霜柿饼解酒将三者煎汤服,可消渴、清热、解醉。

(8)葛花解酒葛花10克,水煎服,解酒效果甚佳。

(9)糖茶水解酒糖茶水可冲淡血液中酒精浓度,并加速排泄。

(10)芹菜解酒芹菜挤汁服下,可去醉后头痛、脑胀和颜面潮红。

(11)绿豆解酒绿豆适量,用温开水洗净,捣栏,开水冲服或煮汤服。

(12)甘蔗解酒甘蔗1根,去皮,榨汁服。

(13)食盐解酒饮酒过量,胸膜难受。可在白开水里加少许食盐,喝下去,立刻就能醒酒。

(14)柑橘皮解酒将柑橘皮焙干、研末,加食盐1.5克,煮汤服。

(15)白萝卜解酒白萝卜1公斤,捣成泥取汁,分1次服。也可在白萝卜汁中加红糖适量饮服。也可食生萝卜。

(16)鲜橙解酒鲜橙(鲜橘亦可)3~5个,榨汁饮服,或食服。

(17)橄榄(青果)解酒橄榄10枚,取肉煎服。

(18)甘薯解酒将生甘薯绞碎,加白糖适量搅拌服下。

(19)鲜藕解酒鲜藕洗净,捣成藕泥,取汁饮服。

(20)生梨解酒吃梨或挤梨汁饮服。对酩酊醉者,如果用上述方法仍不能使其解酒醒转,可用干净鸡毛一支轻轻摩擦其喉咙或用手捏其喉咙,使其呕吐残留在胃中的酒液,可使醉状缓解。若仍无效果,则应就医诊治。

拓展资料:

酒后四肢酸痛

酒精过量可以刺激身体的各个器官产生酸毒,尤其首先在肌肉产生的大量肌酸和乳酸导致四肢的肌肉酸痛全身的肌肉酸痛,并有肿胀的感觉很无力很难受。

原因:

1、关节风湿

2、过多饮酒会导致血液加快,酒精驻留在关节等部位引起暂时铅颂孙性炎症

3、身体免疫性抵抗结果。

参考资料:

酒后四肢酸痛百度百科


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12429411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存