數(shù)學(xué)建模實(shí)驗(yàn)
實(shí)驗(yàn)?zāi)康倪\(yùn)用藥物注射模型,熟練使用MATLAB曲線擬合方法,解釋飲酒駕車的一些實(shí)際問題。
實(shí)驗(yàn)原理
由于酒精不需要進(jìn)入腸道即可被吸收,且胃對(duì)其吸收速率也非???,本題應(yīng)采用“快速靜脈注射模型”。酒精主要存在于血液中,故本例應(yīng)計(jì)算吸收室的血藥濃度c1(t)=A1e-αt+B1e-βt,因A1,α,B1,β之間有關(guān)聯(lián),為提高精確度,重新解微分方程得和題目對(duì)應(yīng)的模型擬合計(jì)算。
實(shí)驗(yàn)內(nèi)容
國家質(zhì)量監(jiān)督檢查檢疫局2004年5月31日發(fā)布了新的《車輛駕駛?cè)藛T血液、呼氣酒精含量閥值與檢查》國家新標(biāo)準(zhǔn),新標(biāo)準(zhǔn)規(guī)定,車輛駕駛?cè)藛T血液中的酒精含量大于或等于20毫克/百毫升,小于80毫克/百毫升為飲酒駕車(原標(biāo)準(zhǔn)是小于100毫克/百毫升),血液中酒精含量大于或等于80毫克/百毫升為醉就駕車(原標(biāo)準(zhǔn)是大于100毫克/百毫升)。
某人在中午12點(diǎn)喝了一瓶啤酒,下午6點(diǎn)檢查時(shí)符合新的駕車標(biāo)準(zhǔn),緊接著他在吃晚飯的時(shí)候又喝了一瓶啤酒,為了保險(xiǎn)起見他呆到凌晨2點(diǎn)才駕車回家,又一次遭遇檢查時(shí)卻被定為飲酒駕車,這讓他既懊惱又困惑,為什么喝同樣多的酒,兩次檢查的結(jié)果會(huì)不一樣呢?
(1)某人中午12點(diǎn)喝了一瓶啤酒,下午6點(diǎn)檢查合格,晚飯又喝一瓶,次日凌晨2點(diǎn)檢查未通過,請(qǐng)對(duì)此情況做出解釋。
(2)短時(shí)間內(nèi)喝啤酒3瓶多長時(shí)間之后才能駕車?
(3)怎樣估計(jì)血液中的酒精含量在什么時(shí)候最高?
(4)如果天天喝酒,是否還能開車?
解答:
建立常微分方程模型,假設(shè)喝進(jìn)去的酒精從胃吸收的轉(zhuǎn)移速率與胃里酒精含量成正比;血液代謝酒精的速度與濃度成正比;
如圖所示:
X
胃
C
血液
代謝物
K1
K2
設(shè)胃里初始含量為X0,血液中初始含量為C0=0
則
即
即
解得
題目所給數(shù)據(jù)的C0=0,即此時(shí)
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,擬合,參數(shù)如圖
擬合得:a=2.273,b=0.1822,c=103.4
即K1=2.273,K2=0.1822,X0=103.4,可以發(fā)現(xiàn)擬合的比較好。
第一題
喝一瓶啤酒時(shí)X0=51.7,此時(shí)
而,故符合駕車標(biāo)準(zhǔn)
緊接著又喝一瓶,此時(shí)X0約為51.7,C0=18.8367。到凌晨二點(diǎn)過了8小時(shí),此時(shí)
可以發(fā)現(xiàn)并沒有大于20,但是當(dāng)過后7.2小時(shí)時(shí),略大于20,屬于酒駕。題目所給情況可能是晚上喝酒不是快速喝下導(dǎo)致的誤差。
第二題
短時(shí)間喝三瓶啤酒時(shí)X0=155.1,此時(shí)
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’)
得
可發(fā)現(xiàn)與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小時(shí)后駕車不會(huì)違反規(guī)定
題目三
觀察上圖可知最高點(diǎn)在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小時(shí)后血液中酒精含量最高
第四題
為簡(jiǎn)化問題,假設(shè)一天只喝一次,每次快速喝下n瓶,則
要求:,依此類推
考慮到48小時(shí)后的影響很小,故只需在數(shù)日內(nèi)符合即可認(rèn)為符合,這里取十天。
考慮到平常人的酒量,為排除嘔吐等不正常代謝酒精方式和臟器超負(fù)荷工作帶來的誤差,只考慮小于等于10瓶啤酒
MATLAB:
建立函數(shù)
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’);
得:
可發(fā)現(xiàn)若每日喝十瓶啤酒的情況下經(jīng)過18小時(shí),血液中的酒精濃度就能降低到20mg/100ml以下,即若早上八點(diǎn)喝十瓶啤酒,凌晨?jī)牲c(diǎn)駕車即不違反新交法
若每隔12小時(shí)快速飲酒n瓶,同樣考慮十天
MATLAB
建立函數(shù):
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')
得:
可以發(fā)現(xiàn)喝完2瓶啤酒可以在9.8小時(shí)后降低到20mg/100ml以下,而喝完三瓶?jī)H在喝完11.94小時(shí)后降低到20mg/100ml以下,也就是僅有每十二小時(shí)3.6分鐘符合要求,忽略不計(jì)。
故每12小時(shí)可飲酒2瓶可以駕車不違反新交法
綜上所述,每12小時(shí)可以和2瓶啤酒,每24小時(shí)可以喝10瓶及以下的啤酒不違反新交法。
模型評(píng)價(jià)與改進(jìn)
1.解得對(duì)應(yīng)模型,綜合運(yùn)用MATLAB軟件,準(zhǔn)確求解,在運(yùn)用MATLAB進(jìn)行數(shù)據(jù)擬合時(shí),得到了較理想化的曲線。
2.本模型引用了醫(yī)藥動(dòng)力學(xué)的二室模型進(jìn)行計(jì)算,可靠性較高
3.從問題出發(fā),分析了應(yīng)該考慮的各種情況,建立了一般的數(shù)學(xué)模型,并進(jìn)行實(shí)例驗(yàn)證,從而證明我們建立的數(shù)學(xué)模型可以較好的解決實(shí)際問題。
模型的缺點(diǎn)
1.本文的模型參數(shù)僅是依靠一組數(shù)據(jù)擬合求解得出,有一定的偏差。
2.模型為使計(jì)算簡(jiǎn)便,使所得的結(jié)果更理想化,忽略了一些次要的因素。
3計(jì)算所得.和題目所述不盡相同,不過因擬合得較好,只能考慮本身操作的誤差。
—
END
—