资源描述:
《实验二(插值与拟合》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、施肥效果分析-----拟合重庆邮电大学鲜思东xiansd@cqupt.edu.cn数学实验一、实验目的1.掌握用MATLAB计算三种插值的方法(编辑Lagr1.m文件,会用拉格朗日程序y=lagr1(x0,y0,x);分段插值程序y=interp1(x0,y0,X)及三次样条插值程序y=interp1(x0,y0,X,’spline’)或y=spline(x0,y0,X)(其中数组长度自定义(x0,y0同长度,x,y同长度).2.掌握用MATLAB作线性最小二乘的方法,熟练应用程序语句a=ployfit(x,y,m
2、),x,y是要拟合的数据,是长度自定义的数组,m为拟合多项式的次数,a为输出多项式的系数a=[a1,a2,…,am+!]).3.通过实验学习如何用插值法与拟合法解决实际问题,并注意二者的区别和联系.二、实验内容及要求1.问题某地区作物生长所需的主要营养素是氮(N).磷(P).钾(K).现对该地区的土豆与生菜做了一些实验,其数据如下表所示,其中h表示公顷,t表示吨,kg表示公斤.2.要求1).试分析施肥量与产量之间的关系,并对所得结果从应用价值与如何改进等方面作出估价.2).分析实验数据,选择适当的的函数系.在对实测
3、数据进行分析时,应首先根据自己的数据作出散点图(用MATLAB中的函数Plot[]函数,并分析散点分布情况,选择适当的函数系.3).运用MATLAB对实测数据进行拟合,并作出拟合函数图;4).观察并比较误差,提出改进意见或方案.5).给出MATLAB的程序.表1土豆产量与施肥量的关系施肥量(N)(kg/h)产量(t/h)施肥量(P)(kg/h)产量(t/h)施肥量(K)(kg/h)产量(t/h)015.18033.46018.983421.362432.474727.356725.724936.069334.861
4、0132.297337.9614038.5213534.039841.0418638.4420239.4514740.0927937.7325943.1519641.2637238.4333643.4624542.1746543.8740440.8329440.3655842.7747130.7534242.7365146.22表2生菜产量与施肥量的关系施肥量(N)(kg/h)产量(t/h)施肥量(P)(kg/h)产量(t/h)施肥量(K)(kg/h)产量(t/h)011.0206.39015.752812.704
5、99.484716.765614.569812.469316.898416.2714714.3314016.2411217.7519617.1018617.5616822.5929421.9427919.2022421.3639122.6437217.9728019.3448921.3446515.8433616.1258722.0755820.1139214.1168624.5365119.40三、模型假设1.土豆或生菜生长所需营养素仅为氮,磷,钾;2.当一个营养素的施肥量变化时,总将另两个营养素的施肥量保持在第
6、7个水平上,如对土豆产量关于磷肥上午施肥量作实验时,氮肥与钾肥的施肥量分别取259kg/h与372kg/h;3.土豆或生菜的生长不受天气等其他因素的影响;4.土豆或生菜生长与氮磷钾的关系可以用光滑曲线来近似;,5.当土豆或生菜的产量因为施肥量的增加而大量下降时要停止增加施肥量.四.问题分析1.引如如下记号2.根据假设2,当一个营养素的施肥量变化时,总将另两个营养素的施肥量保持在第7个水平上,因此,我们只需考虑某一个营养素的变化与作物产量之间的关系,即利用给出的数据,找出产量与各种营养素之间函数关系.下面,我们只给出
7、土豆产量与施肥量的关系.我们先来研究氮肥与产量的关系,从数据上可以发现:当氮肥增加时产量逐步增加,但当增加到一定时候产量反而减少,这就是农业生产中氮肥的过量使用会造成烧苗的原因.从磷肥与产量的数据可以发现:磷肥的作用很小,当磷肥量为0时,产量为33.46(t/h),而施用(24kg/h)产量反而减少,继续增加施肥量,产量有增有减;最大产量为42.73(t/h),此时的施肥量为342(kg/h),施肥的平均效率为(42.73-33.46)/342=0.0271.钾肥与产量的关系与上述两种肥料有所不同,当施肥量增加到一
8、定的时候,产量增加趋于定值.根据以上分析,我们用曲线回归方法建立土豆产量与施肥量的关系,具体步骤为:1).做出散点图(用MATLAB编程如下):>>n=[03467101135202259336404471];y=[15.1821.3625.7232.2934.0339.4543.1543.4640.8330.75];plot(n,y,'r:',n,y,''