内容发布更新时间 : 2024/12/27 22:58:25星期一 下面是文章的全部内容请认真阅读。
河 北 大 学 工 商 学 院
课程名称:数学软件与实验 成绩:
综合实验题目——蠓虫分类
课 程 号:50c11033 课 序 号:01 任课教师:xxxx 班 级:xxxx 姓 名:xxx 学 号:xxxx 填写日期:2010/6/4
河 北 大 学 工 商 学 院
实验报告题目——蠓虫分类
1. 实验问题
蠓虫分类问题:
生物学家试图对两类蠓虫(Af与Apf)进行鉴别,依据的资料是蠓虫的触角和翅膀的长度,已经测得9只Af和6只Apf的数据,(触角长度用x表示,翅膀长度用y表示)具体数据为:
Af 类触角和翅膀长度
x 1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56 y 1.27 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08 Apf 类触角和翅膀长度数据 x 1.14 1.18 1.20 1.26 1.28 1.30 y 1.78 1.96 1.86 2.00 2.00 1.96
现需要解决三个问题:(1)如何凭借原始资料(15 对数据,被称之为学习样本)制定一种方法,正确区分两类蠓虫;(2)依据确立的方法,对题目提供的三个样本:(1.24,1.80),(1.28,1.84),(1.40,2.04)加以识别;(3)设Af是宝贵的传粉益虫,Apf是某种疾病的载体,是否应该修改分类方法。
2.符号说明
判别函数:g(p)
分界线方程:a1x?a2y?a3?0
3.问题分析与建模
3.1问题分析
第1页
河 北 大 学 工 商 学 院
这是一个判别问题,建模的目标是寻找一种方法对题目提供的三个样本进行判别。首先根据学习样本的15对数据画出散点图,图中,Af 用+ 标记,Apf 用0 标记。
编写程序huitu.m(见Matlab求解部分),得到散点图(见下图),观察图形,可以发现,Af 的点集中在图中右下方,而 Apf 的点集中在图中左上方。客观上存在一条直线 L 将两类点分开之间,如果确定了直线L并将它作为 Af 和 Apf 分界线,就有了判别的方法。确定直线 L 应依据问题所给的数据,即学习样本。设直线的方程为
a1x?a2y?a3?0
2.121.91.81.71.61.51.41.31.11.151.21.251.31.351.41.451.51.551.6
对于平面上任意一点p(x,y),如果该点在直线上,将其坐标代入直线方程则使方程成为恒等式,即方程左端为零;如果点 p(x,y) 不在直线上,将其坐标代入直线方程,则方程左端不为零。由于 Af 和 Apf 的散点都不在所求的直线上,故将问题所提供的数据代入直线方程左端所得到的表达式的值应有大于0或者小于0两种不同的结果。
散点图
3.2数学建模
为了建立判别模型,引入判别函数g(p),当p(x,y)属于 Af 类时,有
第2页
河 北 大 学 工 商 学 院
g(p)?0
否则
g(p)?0
本题目中将用到两种不同的状态,不妨以以“1”和“-1”表示,这里我们可以把这两个值当做权值,当p(x,y)属于 Af 类时,g(p)?1,否则g(p)??1。取
g(p)=a1x?a2y?a3
于是由所给数据形成约束条件,这是关于判别函数中的三个待定系数
a1,a2,a3
的线性方程组:
?a1xi?a2xi?a3?1,(i?1,2,…9)a1xi?a2xi?a3??1,(i?10…15)
a1,a2,a3这是包括三个未知数共15个方程的超定方程组:
?????????1.24a1?1.27a2?a3?11.36a1?1.74a2?a3?11.38a1?1.64a2?a3?11.38a1?1.82a2?a3?11.38a1?1.90a2?a3?11.40a1?1.70a2?a3?11.48a1?1.82a2?a3?11.54a1?1.82a2?a3?11.56a1?2.08a2?a3?11.14a1?1.78a2?a3??11.18a1?1.96a2?a3??11.20a1?1.86a2?a3??11.26a1?2.00a2?a3??11.28a1?2.00a2?a3??11.30a1?1.96a2?a3??1使用Matlab可求得上列超定方程组的解。
4.Matlab求解
4.1凭借原始资料正确区分两类蠓虫
第3页
河 北 大 学 工 商 学 院
编写程序huitu.m,绘制散点图
xy=[1.24 1.27;1.36 1.74;1.38 1.64;1.38 1.82;1.38 1.90; 1.40 1.70;1.48 1.82;1.54 1.82;1.56 2.08;1.14 1.78;
1.18 1.96;1.20 1.86;1.26 2.00;1.28 2.00;1.30 1.96]; %样本数据 x=xy(:,1);y=xy(:,2);x1=x(1:9);y1=y(1:9);x2=x(10:15);y2=y(10:15); plot(x1,y1,'r+',x2,y2,'bo');%绘制散点图
编写程序mengchong.m,求出超定方程组的解,在散点图中画出分类直线
xy=[1.24 1.27;1.36 1.74;1.38 1.64;1.38 1.82;1.38 1.90; 1.40 1.70;1.48 1.82;1.54 1.82;1.56 2.08;1.14 1.78;
1.18 1.96;1.20 1.86;1.26 2.00;1.28 2.00;1.30 1.96]; %样本数据 z=[1;1;1;1;1;1;1;1;1;-1;-1;-1;-1;-1;-1];
x=xy(:,1);y=xy(:,2);x1=x(1:9);y1=y(1:9);x2=x(10:15);y2=y(10:15); A=[1.24 1.27 1; 1.36 1.74 1; 1.38 1.64 1; 1.38 1.82 1; 1.38 1.90 1; 1.40 1.70 1; 1.48 1.82 1; 1.54 1.82 1; 1.56 2.08 1; 1.14 1.78 1; 1.18 1.96 1; 1.20 1.86 1; 1.26 2.00 1; 1.28 2.00 1; 1.30 1.96 1];
a = A \\ z %求解超定方程组 x=1.10:0.02:1.60;
y=(-a(1)*x-a(3) )/a(2); %确定分界线方程 plot(x1,y1,'x',x2,y2,'*',x,y) %在散点图中画出分界线
程序执行后,从图形窗口将得到样本散点和分界线图(如下图所示)
第4页