当前位置:文档之家› 数学建模方法与案例

数学建模方法与案例

①从总体为 G1 的训练样本开始,剔除其中每一个样品,剩余的 m −1 个样品与 G2 中的
全部样品建立判别函数; ②用建立的判别函数对剔除的样品进行判别;
③重复上述步骤,直到 G1 中的全部样品依次被剔除、判别,其误判的总数记为 m12 ; ④对 G2 的样品重复步骤①②③,直到 G2 中的样品全部被剔除、判别,其误判的个数记 为 m21,
二、数学建模方法 1.演绎法 根据对模型的认识,用数学方法进行逻辑上的分析以期寻找其中的相关关系,从而建立 对应的模型并用一定的数学方法进行求解. 微分方程模型,优化模型基本属于该范畴.
1
2.测试分析法 测试分析法往往将研究对象视为“黑洞”系统,通过对已有的数据做统计分析,寻找内 部特征再建立相应的模型并加以求解. 概率统计模型、回归模型基本属于该范畴. 三、处理实际问题的建模过程 1.根据问题,大致确定该模型的类别; 2.对于较专业的问题,要比较深入探讨问题的背景,尽可能搞清楚问题的本质; 3.对问题的数据做仔细的分析,寻找数据中的相关关系; 4.做基本的假设; 5.遵循从简到烦的原则,先处理简单问题,然后逐步细化和深入; 6.认真写好摘要,在摘要中体现作者的基本想法,处理问题的过程和主要结果,摘要一 定要符合规范; 7.撰写建模论文,注意时间节点的控制.
三、建模与解模
1.模型建立
由已知条件得到吸收室酒精含量应满足的微分方程为
dx1 dt
=
−k1x1 (t)

相应的初始条件是 x1 (0) = 2g0 ;而中心室酒精含量应满足的微分方程为
11
相应的初始条件为 x2 (t ) = 0 .
由此建立问题的数学模型:
dx2 dt
=
k1x1 (t ) − k2 x2
该微分方程组的解为
⎧ ⎪
x1
(
t
)
=
2
g0
e−k1t
,
( ) ( ) ⎨
⎪ x2 ⎩
t
= 2g0k1 k1 − k2
e − e −k2t
− k1t
.
中心室的酒精含量(百毫升)
( ) ( ) ( ) ( ) y2
t
= 2g0k1 V k1 − k2
e−k2t − e−k1t ≜ k e−k2t − e−k1t
2
第二部分 数学建模案例分析 模型 1 蠓虫分类
问题背景 两种蠓虫 Af 和 Apf 已由生物学家 W.L.Grogon 和 W.W.Wirth(1981)根据它 们的触角长度、翅膀长度加以区分. 现测得 6 只 Apf 和 9 只 Af 的触长、翅膀长的数据如下:
Apf (1.14,1.78) (1.18,1.96) (1.20,1.86) (1.26, 2.00) (1.28, 2.00) (1.30,1.96) Af (1.24,1.72) (1.36,1.74) (1.38,1.64) (1.38,1.82) (1.38,1.90) (1.40,1.70)
[k,r]=nlinfit(t,x,fun,k0);
disp(k)
hold on
x1=k(3)*(exp(-k(2)*t)-exp(-k(1)*t));
plot(t,x1)
此时相应的 k 值为 2.0079 0.1855 114.4325
图形为
图形表明,拟合效果不错.再画出相应的残差图:
13
残差分析表明模型比较理想. 将计算结果代入表达式,得到在时刻 t 时中心室酒精含量(百毫升)的函数表达式
请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模型, 并讨论以下问题:
1.对大李的情况做出解释; 2.在喝了 3 瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情况 下回答: ⑴酒是自很短时间内喝的; ⑵酒是在较长一段时间(比如 2 小时)内喝的. 3.怎样估计血液中的酒精含量在什么时间内最高? 4.根据你的模型论证;如果天天喝酒,是否还能开车? 5.根据你的论证并结合新的国家标准写一篇短文,给想喝一点酒的司机如何驾车的忠 告. 参考数据 ⑴人的体液占人的体重 65% ∼ 70% 左右,其中血液只占体重的 7%左右.而药物(包括 酒精)在血液中的含量与在体液中的含量大致相同. ⑵体重在 70kg 的某人在短时间内喝下 2 瓶啤酒后,隔一定时间测量他的血液中酒精含 量(毫克/百毫升),得到数据如下:
p2=[p2,1]; else
p2=[p2,0]; end end disp(p1),disp(p2)
结果为
111111
000000000
8
结论: 在这样的判定法则下,交叉误判率为零,说明方法还是有效的.
9
模型 2 饮酒驾车问题
一、问题背景
据报道,2003 年全国道路交通死亡人数为 10.4372 万,其中因饮酒驾车造成的占有相 当的比例.针对这种严重的道路交通情况,国际质量监督检查检疫局 2004 年 5 月 31 日发布 了新的《车辆驾驶人员血液、呼气酒精含量阀值与检验》国家标准,新标准规定:车辆驾驶 人员血液中的酒精含量大于或等于 20 毫克/百毫升、小于 80 毫克/百毫升为饮酒驾车;血液 中的酒精含量大于或等于 80 毫克/百毫升为醉酒驾车.大李在中午12 点喝了一瓶啤酒,下午 6 点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为保险起见他呆到凌 晨 2 点才驾车回家,又一次遭遇检查时却被定为饮酒驾车,这让他既懊恼又困惑,为什么喝 同样多的酒,两次检查结果却会不一样?
克/百毫升), k2 为中心室的酒精向外排泄的速率系数.在适度饮酒没有酒精中毒的条件下, k1, k2 都是常量,与饮酒量无关.
假定中心室的容积 V (百毫升)是常量,在时刻 t = 0 时中心室的酒精含量为 0 ,而吸 收室的酒精含量为 2g0 ,酒精从吸收室进入中心室的速率与吸收室的酒精含量成正比;大李 第二次喝一瓶啤酒是 ),
⎪ ⎨
ẋ2
=
k1x1
(t)

k2 x2
(t),
⎪ ⎩
x1
(
0)
=
2g0
,
x2
(
0)
=
0.
2.解模
调用 MatLab 下的求解函数,输入下面语句
syms x1 x2 k1 k2 g0 [x1,x2]=dsolve('Dx1=-k1*x1','Dx2=k1*x1-k2*x2','x1(0)=2* g0','x2(0)=0'); x=simple([x1,x2]);
交叉误判率的估计值为
pˆ = m12 + m21 . m+n
7
程序为
clear,clc Apf1=[1.14,1.18,1.20 1.26 1.28 1.30]; Apf2=[1.78 1.96 1.86 2.00 2.00 1.96]; Af1=[1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56]; Af2=[1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08]; x=[Apf1,Af1];y=[Apf2,Af2]; m1=length(Apf1);m2=length(Af1); n=length(x); k=sum(y./x)/n; A=[x',y'];p1=[];p2=[]; for i=1:m1
10
时间/小时 0.25 0.5 0.75 1 1.25 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
b=A(i,:);B=A;B(i,:)=[]; b1=B(:,1);b2=B(:,2);k=sum(b2./b1)/(n-1); d=b(2)-k*b(1); if d>0
p1=[p1,1]; else
p1=[p1,0]; end end for i=m1+1:n b=A(i,:);B=A;B(i,:)=[]; b1=B(:,1);b2=B(:,2);k=sum(b2./b1)/(n-1); d=b(2)-k*b(1); if d>0
5
程序如下:
clear,clc Apf1=[1.14,1.18,1.20 1.26 1.28 1.30]; Apf2=[1.78 1.96 1.86 2.00 2.00 1.96]; Af1=[1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56]; Af2=[1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08]; x=[Apf1,Af1];y=[Apf2,Af2]; n=length(x); k=sum(y./x)/n; A=[1.24,1.80;1.28,1.84;1.40,2.04]; n=size(A,1);p=[]; for i=1:n
d=A(i,2)-k*A(i,1); if d>0
p=[p,1]; else
p=[p,0]; end end disp(p)
结果为 111
即:三个新样本的判定结果均为 Apf! 这样的判定是否有效?(模型解释)
为解释判别法的有效性,引入交叉误判率.
6
交叉误判率 交叉误判率是每次剔除一个样品,利用其余的训练样本建立判别准则,根据建立的判 别准则对删除的样品进行判定,以其误判的比例作为误判率. 具体过程如下:
( ) ( ) y2 t = 114.4325 e−0.1855t − e−2.0079t .
12
其中
相关主题