3.对于问题四,我们用C语言的编程求得了不同M值在10年内各年的增量,求出该群落在不同M值所对应的增长加速度D。为了求出不同的M与对应的D的关系,我们在MATLAB中输入M与D的数组,进行稳定性分析(程序见附录11)。在回归分析及检验中,我们得到,?0=3.9010,?1=0.0047;?0的置信区间为[-1.5746 , 9.3766], ?1的置信区间为[0.0039, 0.0055]; r2=0.9616,F=175.1021,p=0.0000,p<0.05,可知回归模型 M=3.9010+0.0047D 成立 对模型进行残差分析,作残差图,得图如下:
从残差图可以看出,除最后一个数据外,其余数据的残差离零点均较近,且残差的置信区间均包括零点,这说明回归模型M=3.9010+0.0047D能较好的符合原始数据,而最后一个数据视为异常点.(造成异常点的原因是M=10000时群落只要两年就可恢复到原来的数量11000,数据太少无法作出较接近实际的曲线拟合。 在预测及作图后得各数据点及回归方程得图形如图:
可以看出,只有最后一个数据点离回归直线距离较远是异常点。 由以上分析可知M与D的关系是比较稳定的。 五. 模型优缺点及改进方向 我们的模型有以下优点:
1.模型的稳定性好,模型给出的方案使得该动物群落的各年龄段的数量保持平衡,从而满足了维持该动物群落的稳定。
2.模型的适用范围广,易于推广,模型对于其它生态经济现象(如最优捕鱼策略问题)同样适用。
3.基本模型对问题的描述准确、合理、推导严谨,理论性强; 4.模型结合实际,具有很高的实用价值。 我们的模型有以下缺点:
1. 由于题目给的数据不够多,所以使得该模型无法更加接近实际的情况。
2. 由于题目没有以前各年偷猎枪杀该动物的数据,故模型没有考虑偷猎枪杀该动物所产生的影响。
3. 对于一个动物群落,其影响的不确定性因素很多,而模型只是局限在题目中提到的,故与实际情况有一定的偏差。
模型的改进方向:
1.由生活常识可知,对于该动物群落超过60岁后的死亡情况应基本上服从正态分布。故可在模型一中的死亡数中加上这个因素。
2.由于动物的产幼仔是随机分布的,故可利用模拟仿真的方法建立更具有真实性的模型。
参考文献
【1】 樊欣,邵谦谦,SAS 8.X经济统计,北京希望电子出版社,2003.3. 【2】 苏金明,张莲花,MATLAB工具箱应用,北京电子工业出版社,2004.1. 【3】 姜启源,谢金星,数学模型(第三版),高等教育出版社,2003.8. 【4】 余世孝,数学生态学导论,科学科技文献出版社,1995.8. 附录一:(模型一用C语言实现的过程与运行结果) main()
{int x[70],n; /* 定义一个长度为70的数组,每个单位的值表示各年龄的数
量,定义变量n */
int sum,sum1,sum2; /* 三个变量分别代表该年群落个体数量,13—59岁
雌性数量,1—59岁个体数量 */
clrscr(); sum=0; sum1=0; sum2=0;
printf(\
scanf(\/* 输入当年出生的幼仔数量,设幼仔年龄为0岁 */ printf(\
x[1]=0.75*x[0]; /* 幼仔从0岁向1岁过渡时存活率为75% */ for(n=2;n<=60;n++)
{x[n]=0.95*x[n-1]; /* 向下一年龄段过渡时的存活率为95% */ }
for(n=0;n<=60;n++)
{sum=sum+x[n]; /* 对各年龄段数量累加得到种群总体数量 */ printf(\ }
for(n=13;n<=60;n++)
{sum1=sum1+x[n]; /* 对13—60岁个体数量累加 */ }
for(n=1;n<=59;n++)
{sum2=sum2+x[n]; /* 对1--59岁个体数量累加 */ }
printf(\
printf(\/* 13—60岁个体总数的一 printf(\半即为该年龄段雌性数量
再除以3.5即为当年生幼仔的雌性的数量 */
通过不断输入新生幼仔的初值,直到算出当年群落的个体总数与题设数据吻合,则该组数据即为当年群落年龄结构的分布(未算入当年运走的数量). 运行结果:
1.前兩年运走的个体数量为876头,因此前一年的个体总数为11000+876=11876(头),通过调试程序使总数sum达到11876左右. 第一次调试结果:
2.前两年年末即前一年年头所剩下的13—60岁的雌性个体数量决定了前一年年末个体的数量即2470/3.5=706头;
前两年剩下的数量加上前一年新生幼仔的数量 11000+706=11706,其值为前一年年末的个体数量
用程序算得11714,误差为8头,其误差由于变量是整型变量,数字取整数所致。 第二次调试结果:
在前一年的年末运走622头,即该群落的个体数量剩下11714-622=11092 根据表得到2503/3.5=715,所以11092+715=11807为该群落今年年尾的个体总数。
程序计算得11808,误差为1,其误差由于变量是整型变量,数字取整数所致。
3.对于以上数据是否符合假设,我们还要用一组初步数据來进行对比.因此我们设每年运出的个体数量为0, 个体总数为11000 头,通过调试程序使总数sum达到11000左右.
第三次调试结果: