探究鲈鱼的质量估计的方法及应用.docx
《探究鲈鱼的质量估计的方法及应用.docx》由会员分享,可在线阅读,更多相关《探究鲈鱼的质量估计的方法及应用.docx(23页珍藏版)》请在冰豆网上搜索。
探究鲈鱼的质量估计的方法及应用
探究鱼的质量估计的方法及应用
摘要
此研究课题旨在探究按照测量鱼的长度估计鱼的质量的方法,在已知8组鱼的身长、质量、胸围数据的情况下,我们应用机理分析的基本数学建模方法建立了三类合理模型,并应用最小二乘拟合法进行模型参数估计,最后用误差分析法对估计的准确程度进行检验,进而对三类模型的精确度进行评价校正并选出鱼的身长和胸围对其质量影响描绘最准确的模型二的加权系数法模型作为最终推荐模型。
以下是我们建立的描绘鱼的身长与胸围对其质量的影响的三类模型:
模型一:
分别研究身长和胸围对质量的影响。
在此我们建立了三种身长对质量以及胸围对质量影响的关系分别为一次函数、二次函数和三次函数,如上述方法分别对模型进行参数估计,误差分析,估计准确度检验。
将三种函数的误差进行比较再寻找出对质量影响描绘最准确的函数;
模型二:
研究身长和胸围共同对质量的影响。
在此我们采用了两种方法研究二者对质量产生的共同影响:
其一,利用加权系数法在模型一已得函数中加权重衍生出一种新函数关系;其二,建立质量=f(身长,胸围)模型,数形结合建立三维空间基本曲线进行描绘。
分别进行参数估计,误差分析,准确度评价;
模型三:
根据几何的相关知识,将鲈鱼化为两个圆锥体底部对接的几何体,建立体积对质量影响的模型,进行参数估计,误差分析,准确度评价。
关键词:
最小二乘法加权平均法方差准确率对比测评
问题重述
垂钓俱乐部鼓励垂钓者放生,奖励是按照鱼的质量分配的,由于要保持鲈鱼的生命活性同时保证测量准确公平,直接称重显然不合理不可行,于是只提供了一把软尺用于测量,题中要求应用机理分析建立模型,用给出的8组数据确定参数,设计较为准确合理的方法来用长度估计鱼的质量。
1.问题分析
本课题旨在根据几组已知身长、质量、胸围数据以及生物学原理设计按照测量的长度估计鱼的质量的方法,但是在垂钓者眼里鱼是有肥瘦之分,即使长度相同,也不能同等看待,为公平起见,我们必须将胸围这一影响因素加入讨论中。
根据生物学原理,在一定范围内,质量一定与身长或胸围成正相关关系,我们不妨假设这种关系为一次函数、二次函数或三次函数关系,有已知数据我们可以由最小二乘法进行参数估计。
进一步分析身长和胸围共同对质量的影响可以考虑两种方法,一种是将身长和胸围对质量的影响关系用加权系数法表现出,还可假设一种二元函数求参数进行估计。
考虑到身长和胸围对质量的影响皆是影响到了鱼的体积,可进一步分析鱼的体积对质量的影响。
2.模型假设与符号说明
3.1模型假设
1)池塘里的鱼体型都是鲈鱼,每条鱼被钓上的几率是相等的;
2)鱼的胸围指鱼身的最大周长;
3)鱼肉的质量均匀,密度相等;
4)不区别鱼的雌雄且鱼的肥瘦均匀;
5)鱼的横截面相似且为圆,体型近似为两个圆锥体底部对接。
3.2符号说明
符号
说明
单位
x1
鱼的身长
cm
x2
鱼的胸围
cm
y
鱼的质量
g
V
鱼的体积
cm3
R
鱼的最大周长所对应半径
cm
同时将题中所给的统计数据由左向右依次标号,鱼的身长依次为:
x11,x12…x18,鱼的质量依次为:
y1,y2…y8,鱼的胸围依次为:
x21,x22…x28。
3.模型建立
模型一机理分析法分别探究身长和胸围对鱼质量的影响
4.1.1一次函数模型
假设鱼质量和身长以及鱼质量和胸围的关系都为一次函数关系,具体记为:
y=a1x1+b1
y=a2x2+b2
其中:
a1,b1,a2,b2都是参数。
参数可以用题中所给的统计数据应用最小二乘法拟合得到,具体操作如下:
求a1,b1,a2,b2使目标函数满足条件,目标函数为:
min∑[y(xk)-yk]2(n=1,2…8)
其中y(xk)是鱼质量的估计值。
通过matlab对模型的参数进行参数估计,求解模型得:
a1=65.3
b1=-1637.3
a2=92
b2=-1497.5
程序详见附表1。
4.1.2二次函数模型
假设鱼质量和身长以及鱼质量和胸围的关系都为二次函数关系,具体记为:
y=a1x12+b1x2+c1
y=a2x22+b2x2+c2
其中:
a1,b1,c1,a2,b2,c2都是参数。
参数估计方法同一次函数模型。
通过matlab对模型的参数进行参数估计,可得:
a1=1.6247
b1=-59.3124
c1=709.7392
a2=1.3
b2=157.9
c2=-2344.8
程序详见附表2。
4.1.3三次函数模型
假设鱼质量和身长以及鱼质量和胸围的关系都为三次函数关系,具体记为:
y=a1x13+b1x12+c1x1+d1
y=a2x23+b2x22+c2x2+d2
其中:
a1,b1,c1,d1,a2,b2,c2,d2都是参数。
参数估计方法同上,可得:
a1=1
b1=-80
c1=3008
d1=-37262
a2=-1
b2=90
c2=-2228
d2=18113
程序详见附表3。
●误差分析
利用方差对上述结果进行误差分析,其实质上就是比较三种函数模型的目标函数值的大小,目标函数数值小的误差小。
由此可得:
方法
身长误差
胸围误差
一次函数关系
1.6543e+004
1.6258e+004
二次函数关系
9.8461e+003
2.1530e+007
三次函数关系
2.0881e+009
5.0456e+007
程序详见附表4。
显然,二次函数关系模型对鱼质量和身长的关系估计的更准确,一次函数关系对鱼质量和胸围的关系估计的更准确。
模型二机理分析法探究身长和胸围共同对鱼质量的影响
由模型一知胸围和身长对质量都有影响,因此在模型二中考虑二者共同对质量的影响,采用两种方法。
4.2.1加权平均法对模型一的进一步处理
对模型一中胸围和身长分别对质量的影响加权平均。
加权平均法是一种根据各种因素对结果影响大小对因素加不同权重的方法。
公式:
y=am+bn
(其中a,b分别为权重且满足a+b=1,m,n分别为影响因素,若影响因素不止两个,可以按此格式继续扩展)
对于此研究课题影响因素分别为身长和胸围,在模型一中已得出身长对质量的影响函数为:
Y1=y=1.6247x12-59.3124x1+709.7392
胸围对质量的影响函数为:
Y2=y=92x2-1497.5
对两种因素加权重,此课题不妨取权重分别为0.5(根据需要也可取权重分别为0.4,0.6或0.6,0.4等)得出加权模型:
Y=0.5Y1+0.5Y2
●误差分析
在概率论与数理统计中我们已经学过,方差具有一定的计算法则,例如:
D(ax+b)=a2D(x)。
我们很容易得到该模型的误差,误差为:
6.5260e+003
4.2.2三维空间基本曲线模型
假设鱼质量和鱼身长、鱼胸围的关系为三维空间基本曲线函数关系,具体记为:
y=ax12+bx22+cx1x2+dx1+ex2+f
其中a,b,c,d,e,f均为参数。
参数估计方法同模型一,模型求解得:
a=-0.0001
b=0.7686
c=1.1436
d=0.0432
e=0.0289
f=0.0011
程序详见附表5。
●误差分析
利用方差对上述结果进行误差分析,误差结果为:
8.1896e+007
模型三机理分析法探究体积对鱼质量的影响
关于鱼的最大周长到底处于鱼体的何位置,在我们所建立的鱼的近似几何体(如图)中,
x2=2πR;
R=
V1=
πR2×l1;V2=
πR2×l2;
V=
πR2×l1+
πR2×l2
=
πR2×(l1+l2)
=
πR2l;
所以鱼的体积和鱼的胸围处于鱼体何处无关。
则:
V=
=
;
我们已假设鱼的质量均匀,则设:
m=aV+b
其中:
a,b为正参数。
参数估计方法同上,模型求解得:
a=1.1587
b=42.4279
程序详见附表6。
●误差分析
利用方差对上述结果进行误差分析,误差分析结果为:
7.0276e+004
4.模型评价
5.1模型比较
模型
误差
模型一
9.8461e+0031.6258e+004
加权平均模型
6.5260e+003
三维空间基本曲线模型
8.1896e+007
体积质量模型
7.0276e+004
由上表可知,加权平均模型是最优之选。
5.2优点评述
1)模型不仅可以应用于本题的背景,其实,在鱼苗鱼种的生产中,需要对鱼体的成长情况观察了解,随着望向培育鱼种工艺的应用及有关的实验项目的展开,对鱼体长度和重量的测定更成为一种经常性的工作内容。
在工作量较大数量较多时,适用常规测量和称重法,不过那难度大,而且容易导致被测由于受伤,甚至死亡。
我们一估计出鱼体长度胸围质量之间存在着某种程度的统计关系,大大方便了研究工作,减少不必要的损失。
2)本文提出的三种估计模型具有普遍适用性。
3)本文通过对估计模型一精确率的探索提出新的加权平均估计模型,具有创新性。
4)对于用长度估计鱼的质量的要求,我们提出三种不同的模型并作了对比和评述,使公平性得到了更好的体现。
5.3模型改进
1)理论上讲,模型三的截距应为零,因为我们已经假设鱼的质量是均匀的,密度是一定的,质量等于体积和密度乘积。
可以从三方面改进:
a)将该截距看成是残差,通过数据代入我们可以发现在鱼体积不太小的情况下估计还是可靠的。
b)模型三之所以误差稍大,可能因为我们对鱼的几何体模型构造的不准确,可以通过对生物学相关书籍的查阅来完善,进而构造出更精确的立体几何模型。
c)如果条件允许,可以用排水法测定体积,是用一般具有刻度的玻璃量筒,先置水于量筒容量三分之一或二分之一的某一刻度,然后将鱼逐尾投入,并分别从页面上升程度几下增加的毫升读数,此读数记为该鱼的体积值。
再用经验获得的鱼的密度值根据公式计算鱼的质量。
该种改进方法,鱼不离水,操作便捷,可行性实用性强。
2)x1/x2是鱼身长与最大胸围之比,如果x1/x2太大,流体力学角度来讲鱼在水中遇到的阻力增大;如果x1/x2太小,其自身的生长不能达到一种自然吻合,无疑是不利于生存,因此在查阅生物学的有关书籍以及从达尔文进化论角度来讲,可以假定,经过长期进化,对于每一种动物而言x1/x2已经达到其最适合的数值,换句话说,x1/x2应视为与这种鱼的尺寸无关的常数,于是可得到:
x1∝x2
由于池塘里的鲈鱼体形都是相似的,对于两条鱼而言,由数学中相似原理得:
s∝x22
其中s为鱼的横截面积,又由于:
s∝s1
其中s1为鱼的平均横截面积,则有:
s∝x12
由体积公式:
V∝s1*x1
可得:
V∝s*x1
综上比例关系可得:
V∝x13
即得模型:
m∝x13
为了检验我们设:
m=alb,
其中a,b为待定参数,又:
log10m=a’+blog10l
利用最小二乘法根据所给数据拟合上式得到
m=0.01322l3.0265
可以看出模型与这个结果吻合的相当好。
详细图表:
参考文献
[1]姜启源谢金星叶俊编,数学模型(第四版),北京:
高等教育出版社,2011年1月.
[2]季之源戴俊杰顾嘉宾周玉溪,计算幼鱼长度和重量的体积测量法及其应用,江苏省兴化县水产科学研究所,1989年.
附录
附录1一次函数参数估计程序
x=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
y=[482,482,454,652,765,737,1162,1389];
p=polyfit(x,y,1)
x1=31.8:
0.1:
45.1;
y1=polyval(p,x1);
plot(x,y,'o',x1,y1);
title('Éí³¤ÓëÖÊÁ¿µÄ¹Øϵ¡ª¡ªÒ»´Îº¯Êý')
x=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
p=polyfit(x,y,1)
x1=21.3:
0.1:
31.8;
y1=polyval(p,x1);
plot(x,y,'o',x1,y1);
title('ÐØΧÓëÖÊÁ¿µÄ¹Øϵ¡ª¡ªÒ»´Îº¯Êý')
程序的运行结果:
p=1.0e+003*0.0653-1.6373
p=1.0e+003*0.0920-1.4975
附录2二次函数参数估计程序
x=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
y=[482,482,454,652,765,737,1162,1389];
p=polyfit(x,y,2)
x1=31.8:
0.1:
45.1;
y1=polyval(p,x1);
plot(x,y,'o',x1,y1);
title('Éí³¤ÓëÖÊÁ¿µÄ¹Øϵ¡ª¡ª¶þ´Îº¯Êý')
x=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
p=polyfit(x,y,2)
x1=21.3:
0.1:
31.8;
y1=polyval(p,x1);
plot(x,y,'o',x1,y1);
title('ÐØΧÓëÖÊÁ¿µÄ¹Øϵ¡ª¡ª¶þ´Îº¯Êý')
程序的运行结果:
p=1.6247-59.3124709.7392
p=1.0e+003*-0.00130.1579-2.3448
附录3三次函数参数估计程序
x=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
y=[482,482,454,652,765,737,1162,1389];
p=polyfit(x,y,3)
x1=31.8:
0.1:
45.1;
y1=polyval(p,x1);
plot(x,y,'o',x1,y1);
title('ÉíÌåÓëÖÊÁ¿µÄ¹Øϵ¡ª¡ªÈý´Îº¯Êý')
x=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
p=polyfit(x,y,3)
x1=21.3:
0.1:
31.8;
y1=polyval(p,x1);
plot(x,y,'o',x1,y1);
title('ÐØΧÓëÖÊÁ¿µÄ¹Øϵ¡ª¡ªÈý´Îº¯Êý')
程序的运行结果:
p=1.0e+004*0.0001-0.00800.3008-3.7262
p=1.0e+004*-0.00010.0090-0.22281.8113
附录4模型一误差分析程序
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
y=[482,482,454,652,765,737,1162,1389];
y1=65.3*x1-1637.3;
k=sum((y1-y).^2)
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
y=[482,482,454,652,765,737,1162,1389];
y1=1.6247*(x1.^2)-59.3124*x1+709.7392;
k=sum((y1-y).^2)
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
y=[482,482,454,652,765,737,1162,1389];
y1=x1.^3-80*(x1.^2)+3008*x1-37262;
k=sum((y1-y).^2)
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
y1=92*x2-1497.5;
k=sum((y1-y).^2)
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
y1=1.3*(x2.^2)+157.9*x2-2344.8;
k=sum((y1-y).^2)
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
y1=-1*(x2.^3)+90*(x2.^2)-2228*x2+18113;
k=sum((y1-y).^2)
附录5三维空间曲线基本函数参数估计程序
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
plot3(x1,x2,y,'o-')
holdon
y1=1.7044*(x1.^2)+0.7686*(x2.^2)+1.1436*(x1.*x2)+0.0432*x1+0.0289*x2+0.0011
plot3(x1,x2,y1,'rp-');
title('Éí³¤¡¢ÐØΧÓëÖÊÁ¿µÄ¹Øϵ')
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
a=[1,1,1,1,1,1,1,1];
wei=[x1.^2;x2.^2;x1.*x2;x1;x2;a];
wei/y
程序的运行结果:
ans=
1.70440.76861.14360.04320.02890.0011
附录6三维空间基本曲线误差分析程序
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
y1=1.7044*(x1.^2)+0.7686*(x2.^2)+1.1436*(x1.*x2)+0.0432*x1+0.0289*x2+0.0011
k=sum((y1-y).^2)
附录6体积与质量关系参数估计程序
x1=[31.8,32.1,32.1,35.9,36.8,36.8,43.8,45.1];
x2=[21.3,21.6,21.6,22.9,24.8,24.8,27.9,31.8];
y=[482,482,454,652,765,737,1162,1389];
v=(x1.*(x2.^2))/(12*pi);
p=polyfit(v,y,1)
y1=polyval(p,v);
plot(v,y1,'o-');
title('Ìå»ýÓëÖÊÁ¿µÄ¹Øϵ')
程序的运行结果:
p=1.158742.4279
附录6体积与质量关系误差分析程序
v=[3.826971324962187e+02,3.972660168319077e+02,3.972660168319077e+02,4.993836215124780e+02,...
6.003714913553345e+02,6.003714913553345e+02,9.043809345407842e+02,1.209761232302733e+03];
y=[482,482,454,652,765,737,1162,1389];
y1=1.1587*v-42.4279;
k=sum((y1-y).^2)
附录6模型改进相关程序
1.利用最小二乘法在matlab软件中求参数的程序如下:
>>l=[36.8,31.8,43.8,36.8,32.1,45.1,35.9,32.1];
>>m=[765,482,1162,737,482,1389,652,454];
>>plot(l,m,'o');
>>c=log(l);
>>b=log(m);
>>p=polyfit(c,b,l)
p=3.0265-4.3257
2.用matlab画出拟合图形程序如下:
>>l=[36.8,31.8,43.8,36.8,32.1,45.1,35.9,32.1];
>>m=[765,482,1162,737,482,1389,652,454];
>>plot(l,m,'o');
>>c=log(l);
>>b=log(m);
>>p=polyfit(c,b,1)
>>l1=31.8:
0.5:
45.1;
>>m1=polyval(p,l1);
>>fplot('l^(3.0265)',[31.845.1])