数学建模论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题重述
一垂钓俱乐部鼓励垂钓者将钓上的鱼放生,打算按照放生的鱼的重量给与鼓励,俱乐部只准备了一把软尺用于测量,让我们根据钓上的鱼的长度来估计它的体重。现假定鱼池中只有一种鲈鱼,并且测得到8条鱼的如下数据:
问题分析
我们都知道鲈鱼的体重主要由鱼的身长、胸围决定。一般来说,鲈鱼的胸围越大,鱼的体重会越重,身长越长,体重也越重。但影响鲈鱼体重的因素并不唯一,我们要考虑单一变量对鱼体重的影响,即身体长度与体重的关系和胸围与体重的关系,我们要根据已知数据,利用相关软件进行模拟,来确定鲈鱼体重与身长、胸围之间的数量规律。
模型假设
1.假设池塘里只有一种鲈鱼,不存在其他鱼种。
2.假设池塘里鲈鱼数量众多,分布均匀,密度相同。
3.假设鲈鱼全都正常生长,没有人为因素影响鲈鱼的发育与成长。
4.假设鲈鱼的体态用与胸围等周长,鲈鱼的躯干近似呈圆柱形。
5.假设鲈鱼的身长和胸围与体重成正相关关系。
符号说明
模型一:建立鲈鱼的身长与鲈鱼的体重的模型
为了研究鲈鱼身长与体重的关系,我们利用已测量的数据,取出身长及体重的数据,利用MATLAB 软件画出散点图,如下:
身长
体重
身长与体重散点图
方法一:我们把图形可以近似看成一条抛物线,身长与体重近似成二次函数关系
通过多次拟合可得:
W=1.6247*L^2-59.3124*L+709.7392
(1)
根据拟合的函数,我们画出拟合图:
200400600800100012001400160018002000身长与体重拟合图
从拟合图上看,大部分原始数据在拟合函数附近,说明用二次函数拟合的效果较好.
方法二: 根据散点图决定利用三次多项式拟合得到的各项系数如下:
1 -80 3008 -37262
从而得到了拟合函数:
3726230088023-+-=L L L W
30
32
34
36
3840
42
4446
根据拟合数据得到的图形
L(cm)
W (g )
模型二:鲈鱼体重与胸围的模型确立
仅仅考虑鲈鱼胸围对体重的影响,我们采用与模型一相同的方法,先画出鲈鱼体重与胸围的散点图:
胸围
体重
胸围与体重散点图
从图形上看,鲈鱼体重与胸围可能成线性关系,利用多项式拟合的方法,我们得到鲈鱼体重与胸围的函数表达式: W=92*C-1497.5
根据拟合函数,画出胸围与体重关系的拟合图:
20
22
24
26
28
30
32
34
36
38
40
胸围与体重拟合图
从图形上看,大部分点分布在直线左右,我们可以近似看成二者成线性关系。
模型三:
同时考虑身长、胸围对体重的影响: 此模型要用到基本假设4及即:鲈鱼的体态用与胸围等周长,与身长等高的
圆柱形来近似。因为圆柱体的体积等于底面积乘高,底面积可以用周长表示:π
42
C .
因此可以分析得出2LC W ∝.又物体质量等于密度与体积的乘积,因此只需根据数据求出密度即可。于是身长、胸围与体重的关系可以表示为:2LC W α=,问题转化为对系数α的求解。利用MATLAB 软件和已知的八组数据可以求出对应的α值:
0.0303 0.0305 0.0322 0.0334 0.0326 0.0346 0.0338 0.0341
为了得到精确地模型对数据进行处理
α≈0.0327
因此 20327.0LC W =
模型检验
模型一
平均相对误差为:
从表中的数据,我们可以得出鲈鱼体重的实际值与估计值的相对误差较小,说明用二次函数拟合鲈鱼身长与体重的关系式可行的。
方法二:得出的函数对鱼的体重进行估测并列如下表:
平均相对误差为: 3.44%
从表中的数据,我们可以看出方法二的相对误差小于方法一的相对误差,所以方法二的结果更贴近实际。
模型二
平均相对误差为:
从表中的数据,我们可以看出鲈鱼体重的实际值与估计值的相对误差不太大。模型三
平均相对误差为: 4.0375%
根据表三的数据,可以知道模型三的拟合程度也较好,相对于模型一、二,此模型充分考虑到了身长、胸围对体重的相互影响,用此模型估计鲈鱼的体重可能会更符合实际,更合适推广。
模型优点:模型简单,易于理解
数据处理简明,计算思路清晰。
通过对比,结果更有说服力。
模型缺点:模型是根据个人经验建立,可能存在误差。
鲈鱼呈梭形,看成圆柱较牵强。
画两散点图的程序:
x=[36.8 31.8 43.8 36.8 32.1 45.1 35.9 32.1];
y=[24.8 21.3 27.9 24.8 21.6 31.8 22.9 21.6];
z=[765 482 1162 737 482 1389 652 454 ;
plot(x,z,'*')
xlabel('身长');
ylabel('体重');
title('身长与体重散点图');
plot(y,z,'*')
xlabel('胸围');
ylabel('体重');
title('胸围与体重散点图');
画身长与体重拟合图程序:
x=[36.8 31.8 43.8 36.8 32.1 45.1 35.9 32.1];