数学实验(施肥效果+代码)报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

******
数学实验报告书
系部名称:应用数学系学生姓名:
专业名称:信息与计算科学班级:******
时间:****************
施肥效果分析
一、实验目的
熟练掌握利用曲线拟合建模的方法,学会用非线性拟合的方法解决曲线拟合中的最优参数确定,以及利用MATLAB求解最大值的方法。

二、实验原理简述
问题
某地区作物生长所需的营养素主要是氮(N)、钾(K)、磷(P)。

现取得对该地区的生菜进行一定数量的实验后的实验数据,如下表所示,其中ha 表示公顷,t表示吨,kg表示公斤。

当一个营养素的施肥量变化时,总将另两个营养素的施肥量保持在第7个水平上,例如:对氮肥的施肥量做实验时,磷肥和钾肥的施肥量分别取为 391 kg/ha与 372 kg/ha 。

生菜产量与施肥量的关系
等方面做出估价。

三、模型的建立与问题的分析
问题的分析与模型的建立
由题意知,当一个营养素的施肥量发生改变时,总将另外两个营养素的肥量保持在第7个水平上,因此找出一个营养素的变化与作物产量之间的关系,即利用给出的数据,找出生菜产量与各元素之间的函数关系。

施用氮肥的平均效率:(22.59-11.02)/168 = 0.0689;
施用磷肥的平均效率:(24.53-6.39)/685 = 0.0265;
施用钾肥的平均效率:(20.11-15.75)/558 = 0.0078;
我们从数据中我们可以发现:当氮肥增加时产量逐步增加,但当增加到一定程度的时候产量反而减少,这就是农业生产中氮肥过量使用会造成烧苗的原因。

从磷肥与产量的数据可以发现:磷肥增加时,产量逐步增加,但增加速率随着磷肥的增加而减小。

钾肥与产量的关系与上述两种肥料都不同,
从钾肥与产量的数据可以发现:钾肥的使用对产量的影响不大。

则我们有如下三种方案:( n , 391, 372 ) ,( 224, p ,372 ),( 224 , 391 ,k );由于钾肥与产量的关系与氮肥和磷肥的关系都不同,所以选择用曲线回归的方法建立生菜产量y与施肥量之间函数关系,具体的步骤如下:
(1)作出散点图
生菜产量与施氮肥效应
生菜产量与施磷肥效应
生菜产量与施钾肥效应
(2)建立回归曲线方程
设y 与n (氮肥的量)的函数为:y = an 2+ bn + c;利用最小二乘法
求下式成立的函数 y
∑=-10
12)(i i y y =min
则用MTTLAB 软件:
我们得到产量y 与N (氮肥的量)的函数为:
y (n) = -0.0002 n 2+0.1013 n +10.2294 ;
同理,我们利用最小二乘法求y 与p(磷肥的量)之间的函数关系式为:
y(p) = -0.0001 p 2+0.0606 p + 6.8757
而钾肥的使用量与产量的关系来看其比较特殊,故改用非线性曲线拟合的方
法对其建立数学函数模型求解;从图象我们可以看出其符合指数函数;
我们设函数为 :y(k) = a(1-be ck -) ,其中a, b, c 均为待定系数,我们用
数据带入,分别再与原函数图像比较拟合,得到以下函数关系式:
y(k)=25.0467*(1- 0.3537*e 004k -6.4114e -)
四 模型的应用与改进
在上面我们建立了氮、钾、磷肥与产量之间的关系,利用上述函数关系我们可以进行定量分析计算各种肥料的最佳使用量;题中已给出了氮、磷、钾与生菜的市场价如图所示
市场价格(元/吨)
可以有下面的三种方案:(n,391,372),(224,p,372),(224,391,k)
为了寻求最佳的施肥效果只需寻找到最大的利润即可:
第一种:设每公顷加的氮肥n千克时的利润为
Ln (n)=200 y(n) - (0.35 n+0.32*391+0.64*372)
-= -0.04 n2+19.91 n+1682.7
由Ln’(n)= -0.08 n+19.91=0 ⇒n=248.87,而 Ln’’(n)= -0.08<0; 即n=248.87时函数有极大值,而且为问题的最大值,最大的利润为:Ln_max(248.87)= 4160.3(元)
第二种:设每公顷加的磷肥p千克时的利润为
Lp(p)= 200 y(p) - (0.35*224+0.32 p+0.64*372)
= -0.02 p2+11.8 p+1058.7
由Lp’(p)= -0.04 p+11.8=0 ⇒p=295.00
而其二元导数为负值,即p=295.00时即为函数的最大值
其最大利润为:Lp_max(295.00)=2799.2(元)
第三种:设每公顷加的钾肥k千克时的利润为
Lk(k)= 200 y(k) - (0.35*224+0.32 *391+0.64k)
=4805.8 -1771.8*exp(-6.4114e-004*k)) -0.64*k
可求出其最大值为:Lk(700)=3226.7
综上可知最佳的施肥方案为第一种即(249, 391, 372 )
根据农作物生长的原理,氮、磷、钾3种肥料缺一不可,但又是一个有机的整体,因此,要得到农作物的产量与3种肥料之间的使用量的关系,必须考虑3种肥料之间交互影响的数据,也就是说在设计实验时应采取正交实验,或均匀设计的方法,利用这样实验得到的数据建立农作物产量与3种肥料间的多元函数关系,才能比较准确的找到最佳施肥量。

五、实验结果
数学实验MATLAB 施肥效果分析
********************************************************************* 根据离散点图像,用线性拟合的方法得到拟合函数的三个系数:
a =
-2.3815e-004
b =
0.1013
c =
10.2294
生菜的产量与氮肥的施肥量函数关系为:
y_n =
Inline function:
y_n(n) = -0.0002*n^2+0.1013*n+10.2294
使用氮肥时生菜的利润函数关系为:
Ln =
Inline function:
Ln(n) = -0.04*n^2 +19.91*n+1682.7
此时氮肥的使用量为:(吨)时,利润最大
n =
248.8750
使用氮肥的最大利润为:(元)
maxn =
4.1603e+003
根据离散点图像,用线性拟合的方法得到拟合函数的三个系数:
a1 =
-5.4528e-005
b1 =
0.0606
c1 =
6.8757
生菜的产量与磷肥的施肥量函数关系为:
y_p =
Inline function:
y_p(p) = -0.0001*p^2 +0.0606*p +6.8757
使用磷肥时生菜的利润函数关系为:
Lp =
Inline function:
Lp(p) = -0.02*p^2 +11.8*p+1058.7
此时磷肥的使用量为:(吨)时,利润最大
p =
295.0000
使用磷肥的最大利润为:(元)
maxp =
2.7992e+003
根据离散图像,其图像符合一指数函数,用非线性拟合的方法设其拟合函数为:y_k =
Inline function:
y_k(a,k) = a(1)*(1-a(2)*exp(-a(3)*k))
a2 =
25.0467
b2 =
0.3537
c2 =
6.4114e-004
生菜的产量与钾肥的施肥量函数关系为:
y_k =
Inline function:
y_k(k) = 25.0467*(1- 0.3537*exp(- 6.4114e-004*k))
使用钾肥时生菜的利润函数关系为:
Lk =
Inline function:
Lk(k)=25.0467*(1-0.3537*exp(-6.4114e-004*k))*200-224*0.35-391*0.32
-0.64*k
此时钾肥的使用量为:(吨)时,利润最大
k =
700.0000
使用钾肥的最大利润为:(元)
maxk =
3.2267e+003
综上所知,最佳的施肥方案为第一种方案( 249,391,372)
*********************************************************************
离散图和拟合后的图形如下所示:
全部代码:
function shiyan
clc
disp(' 数学实验MATLAB 施肥效果分析')
disp('*************************************************************** ********************************')
n=[0 28 56 84 112 168 224 280 336 392];
yn=[11.02 12.70 14.56 16.27 17.75 22.59 21.63 19.34 16.12 14.11];
N=polyfit(n,yn,2);
x1=0:1:400;
y1=polyval(N,x1);
subplot(2,2,1);
plot(n,yn,'g',x1,y1,'b')
xlabel('氮肥的使用量')
ylabel('生菜产量')
legend('离散图','拟合图',4)
disp('根据离散点图像,用线性拟合的方法得到拟合函数的三个系数:') syms a b c
a=N(1),b=N(2),c=N(3)
disp('生菜的产量与氮肥的施肥量函数关系为:')
y_n=inline('-0.0002*n^2+0.1013*n+10.2294')
disp('使用氮肥时生菜的利润函数关系为:')
Ln=inline('-0.04*n^2 +19.91*n+1682.7') %为了显示
Ln=inline('-(-0.04*n^2 +19.91*n+1682.7)');%为了计算最大值,前加‘ -’号,同理,以下一样
[x,fval]=fminbnd(Ln,0,400);
disp('此时氮肥的使用量为:(吨)时,利润最大')
n=x
disp('使用氮肥的最大利润为:(元)')
maxn=abs(fval)
p=[0 49 98 147 196 294 391 489 587 685];
yp=[6.39 9.48 12.46 14.33 17.10 21.94 22.64 21.34 22.07 24.53];
P=polyfit(p,yp,2);
x2=0:1:700;
y2=polyval(P,x2);
subplot(2,2,2);
plot(p,yp,'g',x2,y2,'b')
xlabel('磷肥的使用量')
ylabel('生菜产量')
legend('离散图','拟合图',4)
disp('根据离散点图像,用线性拟合的方法得到拟合函数的三个系数:') syms a1 b1 c1
a1=P(1),b1=P(2),c1=P(3)
disp('生菜的产量与磷肥的施肥量函数关系为:')
y_p=inline( ' -0.0001*p^2 +0.0606*p +6.8757')
disp('使用磷肥时生菜的利润函数关系为:')
Lp=inline('-0.02*p^2 +11.8*p+1058.7')
Lp=inline('-(-0.02*p^2 +11.8*p+1058.7)');
[x,fval]=fminbnd(Lp,0,700);
disp('此时磷肥的使用量为:(吨)时,利润最大')
p=x
disp('使用磷肥的最大利润为:(元)')
maxp=abs(fval)
k=[0 47 93 140 186 279 372 465 558 651];
yk=[15.75 16.76 16.89 16.24 17.56 19.20 17.97 15.84 20.11 19.40]; disp('根据离散图像,其图像符合一指数函数,用非线性拟合的方法设其拟合函数为:')
syms a2 b2 c2
y_k=inline('a(1)*(1-a(2)*exp(-a(3)*k))','a','k')
A=nlinfit(k,yk,y_k,[14.52,0.06,0.02]);
a2=A(1)
b2=A(2)
c2=A(3)
y3=a2*(1-b2*exp(-c2*k));
subplot(2,1,2);
plot(k,yk,'g',k,y3,'b')%必须有相同的点,否则运行出现错误
xlabel('钾肥的使用量')
ylabel('生菜产量')
legend('离散图','拟合图',4)
disp('生菜的产量与钾肥的施肥量函数关系为:')
y_k=inline(' 25.0467*(1- 0.3537*exp(- 6.4114e-004*k))')
disp('使用钾肥时生菜的利润函数关系为:')
Lk=inline('25.0467*(1- 0.3537*exp(- 6.4114e-004*k))*200-224*0.35-391*0.32-0.64*k')
Lk=inline('-(25.0467*(1- 0.3537*exp(- 6.4114e-004*k))*200-224*0.35-391*0.32-0.64*k)');
[x,fval]=fminbnd(Lk,0,700);
disp('此时钾肥的使用量为:(吨)时,利润最大')
k=x
disp('使用钾肥的最大利润为:(元)')
maxk=abs(fval)
disp('综上所知,最佳的施肥方案为第一种方案( 249,391,372)')
disp('*************************************************************** ********************************')
disp('离散图和拟合后的图形如下所示:')。

相关文档
最新文档