首页 > 文库大全 > 精品范文库 > 5号文库

《数学建模实验-血液酒精浓度》

《数学建模实验-血液酒精浓度》



数学建模实验

实验目的运用药物注射模型,熟练使用MATLAB曲线拟合方法,解释饮酒驾车的一些实际问题。

实验原理

由于酒精不需要进入肠道即可被吸收,且胃对其吸收速率也非常快,本题应采用“快速静脉注射模型”。酒精主要存在于血液中,故本例应计算吸收室的血药浓度c1(t)=A1e-αt+B1e-βt,因A1,α,B1,β之间有关联,为提高精确度,重新解微分方程得和题目对应的模型拟合计算。

实验内容

国家质量监督检查检疫局2004年5月31日发布了新的《车辆驾驶人员血液、呼气酒精含量阀值与检查》国家新标准,新标准规定,车辆驾驶人员血液中的酒精含量大于或等于20毫克/百毫升,小于80毫克/百毫升为饮酒驾车(原标准是小于100毫克/百毫升),血液中酒精含量大于或等于80毫克/百毫升为醉就驾车(原标准是大于100毫克/百毫升)。

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

(1)某人中午12点喝了一瓶啤酒,下午6点检查合格,晚饭又喝一瓶,次日凌晨2点检查未通过,请对此情况做出解释。

(2)短时间内喝啤酒3瓶多长时间之后才能驾车?

(3)怎样估计血液中的酒精含量在什么时候最高?

(4)如果天天喝酒,是否还能开车?

解答:

建立常微分方程模型,假设喝进去的酒精从胃吸收的转移速率与胃里酒精含量成正比;血液代谢酒精的速度与浓度成正比;

如图所示:

X

C

血液

代谢物

K1

K2

设胃里初始含量为X0,血液中初始含量为C0=0

解得

题目所给数据的C0=0,即此时

MATLAB命令:

T=[0.25

0.5

0.75

1.5

2.5

3.5

4.5

16];

C=[30

4];

cftool打开曲线拟合工具箱,X

data选择T,Y

data选择C,拟合方式选择Custom

Equation,拟合,参数如图

拟合得:a=2.273,b=0.1822,c=103.4

即K1=2.273,K2=0.1822,X0=103.4,可以发现拟合的比较好。

第一题

喝一瓶啤酒时X0=51.7,此时

而,故符合驾车标准

紧接着又喝一瓶,此时X0约为51.7,C0=18.8367。到凌晨二点过了8小时,此时

可以发现并没有大于20,但是当过后7.2小时时,略大于20,属于酒驾。题目所给情况可能是晚上喝酒不是快速喝下导致的误差。

第二题

短时间喝三瓶啤酒时X0=155.1,此时

MATLAB命令:

T=0:0.1:24;

C=168.616*exp(-0.1878*T)-168.616*exp(-1.971*T);

plot(T,C,’r’)

hold

on

plot([0

24],[20

20],’g’)

可发现与C=20相交于11、12之间

T=11:0.1:12;

C=168.616*exp(-0.1878*T)-168.616*exp(-1.971*T)

输出:

C

=

21.3665

20.9690

20.5789

20.1960

19.8202

19.4515

19.0896

18.7344

18.3859

18.0438

17.7081

故11.4小时后驾车不会违反规定

题目三

观察上图可知最高点在1-2之间

T=1:0.1:2;

C=168.616*exp(-0.1878*T)-168.616*exp(-1.971*T)

输出:

C

=

116.2545

117.8569

118.7560

119.0852

118.9541

118.4526

117.6543

116.6193

115.3972

114.0283

112.5457

故在喝酒后约1.3小时后血液中酒精含量最高

第四题

为简化问题,假设一天只喝一次,每次快速喝下n瓶,则

要求:,依此类推

考虑到48小时后的影响很小,故只需在数日内符合即可认为符合,这里取十天。

考虑到平常人的酒量,为排除呕吐等不正常代谢酒精方式和脏器超负荷工作带来的误差,只考虑小于等于10瓶啤酒

MATLAB:

建立函数

function

C24=CalcC24(n,C0,i)

T=0:0.5:24;

C=(C0+56.2053*n)*exp(-0.1878*T)-56.2053*n*exp(-1.971*T);

C24=(C0+56.2053*n)*exp(-0.1878*24)-56.2053*n*exp(-1.971*24);

plot((T+i*24),C,'Color',[((-1)^n+1)/(2*n)

((-1)^(n+1)+1)/(2*n)

((-1)^n+1)/(2*n)])

hold

on

end

输入命令:

hold

off

clear

clc

C0=0;

for

n

=1:10

for

i=0:10

temp=CalcC24(n,C0,i);

C0=temp;

end

end

plot([0

264],[20

20],’r’);

得:

可发现若每日喝十瓶啤酒的情况下经过18小时,血液中的酒精浓度就能降低到20mg/100ml以下,即若早上八点喝十瓶啤酒,凌晨两点驾车即不违反新交法

若每隔12小时快速饮酒n瓶,同样考虑十天

MATLAB

建立函数:

function

C12=CalcC12(n,C0,i)

T=0:0.5:12;

C=(C0+56.2053*n)*exp(-0.1878*T)-56.2053*n*exp(-1.971*T);

C12=(C0+56.2053*n)*exp(-0.1878*12)-56.2053*n*exp(-1.971*12);

plot((T+i*12),C,'Color',[((-1)^n+1)/(2*n)

((-1)^(n+1)+1)/(2*n)

((-1)^n+1)/(2*n)])

hold

on

end

输入命令:

hold

off

clear

clc

C0=0;

for

n

=1:5

for

i=0:20

temp=CalcC12(n,C0,i);

C0=temp;

end

end

plot([0

264],[20

20],'r')

得:

可以发现喝完2瓶啤酒可以在9.8小时后降低到20mg/100ml以下,而喝完三瓶仅在喝完11.94小时后降低到20mg/100ml以下,也就是仅有每十二小时3.6分钟符合要求,忽略不计。

故每12小时可饮酒2瓶可以驾车不违反新交法

综上所述,每12小时可以和2瓶啤酒,每24小时可以喝10瓶及以下的啤酒不违反新交法。

模型评价与改进

1.解得对应模型,综合运用MATLAB软件,准确求解,在运用MATLAB进行数据拟合时,得到了较理想化的曲线。

2.本模型引用了医药动力学的二室模型进行计算,可靠性较高

3.从问题出发,分析了应该考虑的各种情况,建立了一般的数学模型,并进行实例验证,从而证明我们建立的数学模型可以较好的解决实际问题。

模型的缺点

1.本文的模型参数仅是依靠一组数据拟合求解得出,有一定的偏差。

2.模型为使计算简便,使所得的结果更理想化,忽略了一些次要的因素。

3计算所得.和题目所述不尽相同,不过因拟合得较好,只能考虑本身操作的误差。

END

相关内容

热门阅读

最新更新

随机推荐