2015年认证杯SPSSPRO杯数学建模
C题 荒漠区动植物关系的研究
原题再现:
环境与发展是当今世界所普遍关注的重大问题, 随着全球与区域经济的迅猛发展, 人类也正以前所未有的规模和强度影响着环境、改变着环境, 使全球的生命支持系统受到了严重创伤, 出现了全球变暖、生物多样性消失、环境污染等全球性的环境问题, 并已经严重影响到了全球人类社会的发展。在探讨环境与发展问题的过程中, 人们越来越认识到了现代社会发展过程中自然——社会——经济复合生态系统的复杂性, 以及生态学理论在解决这些问题中的重要性。
干旱区是全球生态系统中的重要类型之一, 也是目前全球开发较晚的区域之一, 因此, 积极开展干旱区的生态学理论与实践研究, 对于干旱区当前面临的重大环境问题的解决, 以及未来防患于未然的科学决策均具有极其重要的现实意义。作为我国三大自然区域之一的西北干旱区, 由于其大规模、高强度的开发历史较短, 因此, 与其它区域相比较而言, 其境内蕴藏了丰富的待开发自然资源, 也奠定了其在我国未来经济建设中的举足轻重的战略地位, 并担负着重要的历史使命, 西部大开发战略的实施即是最显著的证明。因此, 积极开展和深化干旱区的生态学研究, 对于该区域的经济发展与生态环境保护具有深远的理论意义与实践价值。
生态研究与资源利用是分不开的, 荒漠区是我国典型的温带荒漠和干旱脆弱生态系统, 生态环境条件十分严酷, 动物的可利用资源在数量和质量上与湿润区、半干旱区存在差异, 啮齿动物的分布具有明显的区域性特征。由于近年来人为干扰不断加重, 使得该地区的荒漠化日益严重。依赖于植物生存的动物种群和群落格局随之受到了明显影响。
啮齿动物群落是荒漠生态系统食物链上必不可少的消费者, 对荒漠的利用与保护有至关重要作用。许多物种群体与人的干扰具有密切关系, 干扰的一个突出作用是导致生态系统中各类资源的改变和生态系统结构的重组, 导致异质性环境的形成。有关不同干扰方式下, 栖息地破碎化过程中研究群落的变化特征是当前景观生态学和群落生态学研究的前沿。
第一阶段问题:
1. 请根据附件一提供的数据,建立数学模型,分析荒漠区不同干扰下植物地上生物量、啮齿动物生物量的变化趋势, 并揭示不同干扰下植物生物量与啮齿动物生物量之间的变化关系。
2. 建立模型对于附件一中给出的地区,进行啮齿动物群落稳定性的研究, 揭示干扰对于啮齿动物群落的影响机制,并且给当地政府写一封信,陈述你的观点和主张。
整体求解过程概述(摘要)
本文主要针对荒漠区动植物的关系探究不同干扰对这种关系的影响问题,运用层次分析法、灰色模糊评价法、因子分析法、t 检验法、残差分析法等一系列方法,建立了层次分析模型、灰色关联模型、灰色测度模型、结构方程模型(SEM)等数学模型,综合分析了荒漠区的啮齿动物与植物在过牧和轮牧,夏季与秋季等不同干扰下生物量的变化趋势,并通过研究的数据揭示了啮齿动物生物量与植物生物量的变化关系。最终,通过对啮齿动物群落稳定性进行评估,从评估得到的数据再进一步研究不同干扰环境下啮齿动物群落的影响机制。
针对问题一,利用附件一提供的数据,对应不同问题,建立相应数学模型,从而获得不同干扰对植物生长量与啮齿动物生长量的变化趋势,并揭示不同干扰下的变化关系。首先我们将问题一划分成两个小问题。在研究第一小问时,我们对附件一中的数据按不同层次进行处理,运用层次分析模型,通过 EXCEL 建立折线图,进行对比,分析出不同干扰下,植物地上生物量与动物生物量的变化趋势。而在研究第二小问时,建立灰色关联模型,灰色关联分析方法对受多种因素影响的事物和现象从整体观念出发进行综合评价,它是一个被广为接受的方法,所以我们通过建立灰色关联模型,在计算出相应指标权重后,得到植物生物量与动物生物量之间的关联度,从而通过 MATLAB 进行绘图,以获得啮齿动物生物量与植物生物量的变换关系。
针对问题二,要求对啮齿动物群落稳定性进行研究,并揭示干扰对于啮齿动物群落的影响机制。首先,就群落稳定性而言,由于群落内部食物网络关系及天敌的“跟随”现象,当种类数增加时,个体数相应增加。由灰色系统理论知,累加生成可使离乱的原始数据中蕴含的规律充分显露出来,因此我们此处选用灰色测度模型和灰色聚类法来评估群落稳定性,将反映群落稳定性的指标因子纳入该模型,使得群落稳定性的评价更具有科学性和实用性。其次,求解数据和图像数据来总结不同的干扰下不同的因素指标对啮齿动物群落的影响机制。对于这个问题我们利用结构方程模型(SEM)来同时处理多个因变量。再利用 SPSS 软件,建立 SEM 模型的概念模型,运用其中的回归分析,因子分析,t 检验和方差分析来估计整个模型的拟合程度。最后运用模型方法检验不同干扰对啮齿动物优势种的作用途径,即可求得不同干扰对啮齿动物的影响关系产生影响机制。同时,本文在最后进行了模型的优缺点评价,以及对各模型进行了改进和推广,分析了某些模型在其他领域的广阔应用前景。
问题分析:
有关不同干扰方式下,栖息地破碎化过程中研究群落的变化特征是当前景观生态学和群落生态学研究的前沿。荒漠区动植物关系的研究是用来评估当前荒漠地区环境的变化对当地动物以及植物生生存机制的影响程度,其中包括对植物的高度密度,生物量以及动物的生物量等多个维度的影响,从而反应荒漠地区与动植物生态平衡的稳定性,生物群落的稳定性。如果能将影响动植物生存的负面环境合理的控制维护和改进,则可以保护环境条件本身严酷的荒漠地区里动植物的生长生存,维护荒漠区的生态平衡,防止因环境恶化导致的动植物量于该地区贫乏的情况。因此,本文从以上角度运用定性和定量分析以及灰色分析和结构方程来进行荒漠区动植物关系的研究。首先,我们建立合理的数学模型,为本次研究提供了较为简洁合理的动植物与环境关系研究方法。对于数据的描述,我们运用了附件中的数据,另外添加了自己收集的更多的数据,利用选取的模型描述不同干扰下动植物生物量的变化趋势,从而总结出动植物生物量的变化关系和环境中影响动植物生存的主要因素。最终可利用上述数据得出动物群落在荒漠区稳定性的评估。并总结了影响生物量的主要机制,对此向环境部门提出合理的改善环境保护生态平衡的建议。
对问题一的分析
利用附件一提供的数据,对应不同问题,建立相应数学模型,从而获得不同干扰对植物生长量与啮齿动物生长量的变化趋势,并揭示不同干扰下的变化关系。综合分析了荒漠区的啮齿动物与植物在过牧和轮牧两种放牧方式下,分别处于夏季和秋季的生物量的变化趋势。
对问题二的分析
在问题一观察变化趋势和得出变化关系的模型建立与求解的基础上,对附件中的数据进行整合归纳,根据问题二的要求得出啮齿动物群落稳定性的评估,评判各个干扰因素对啮齿动物群落的影响机制,对环境部门提出合理的改善意见。首先,我们会运用群落稳定性测度灰色模型,划分出群落稳定的指标因子,将所有的灰色趋势都展露出来。其中用灰色聚类法,累加生成序列生成,求解后评估该群落的稳定性。其次对于第二部分我们首先划分好不同干扰下所有对啮齿动物有影响的因素,运用结构方程模型来同时处理多个因变量,首先要根据数据建立好的概念模型,来检验不同干扰对啮齿动物优势种的作用途径,之后求得不同干扰对啮齿动物的影响关系产生影响机制。最终估计整个模型的拟合程度。
模型假设:
1.假设调查生物量的地方没有自然灾害影响,不考虑除附件一外其他因素。
2.假设植物生物量的指标均为正向指标,能涵盖植物生物量的数据情况。
3.假设调查生物量时的调查方法准确无误,误差不大。
论文缩略图:
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:(代码和文档not free)
%误差条形图绘图程序
clear all
clc
load guo7.txt
x=guo7.txt;
x= guo7;
load guo10.txt;
y=guo10;
load lun7.txt;
m=lun7;
load lun10.txt;
load lun10.txt;
n=lun10;
a=1:1:22;
subplot(2,2,1);errorbar(a,x(:,5));
subplot(2,2,2);errorbar(a,x(:,6));
subplot(2,2,3);errorbar(a,x(:,7));
subplot(2,2,4);errorbar(a,x(:,8));
%成分分析绘图程序
clear all
clc
load guo7.txt
x=guo7.txt;
x= guo7;
load guo10.txt;
y=guo10;
load lun7.txt;
m=lun7;
load lun10.txt;
load lun10.txt;
n=lun10;
a=1:1:22;
subplot(2,2,1);plot(a,x(:,1),m(:,1));
subplot(2,2,1);plot(a,x(:,2),m(:,2));
subplot(2,2,1);plot(a,x(:,3),m(:,3));
subplot(2,2,1);plot(a,x(:,4),m(:,4));
%成分分析绘图程序
clear all
clc
load guo7.txt
x=guo7.txt;
x= guo7;
load guo10.txt;
y=guo10;
load lun7.txt;
m=lun7;
load lun10.txt;
load lun10.txt;
n=lun10;
a=1:1:22;
subplot(2,2,1);plot(a,x(:,5),m(:,5));
subplot(2,2,1);plot(a,x(:,6),m(:,6));
subplot(2,2,1);plot(a,x(:,7),m(:,7));
subplot(2,2,1);plot(a,x(:,8),m(:,8));
%绘图程序
functioncreatefigure(X1, YMatrix1, YMatrix2, YMatrix3, YMatrix4)
%CREATEFIGURE(X1, YMATRIX1, YMATRIX2, YMATRIX3, YMATRIX4)
% X1: x 数据的矢量
% YMATRIX1: y 数据的矩阵
% YMATRIX2: y 数据的矩阵
% YMATRIX3: y 数据的矩阵
% YMATRIX4: y 数据的矩阵
% 由 MATLAB 于 19-Apr-2015 22:07:00 自动生成
% 创建 figure
figure1 = figure;
% 创建 axes
axes1 = axes('Parent',figure1,...'Position',[0.13 0.583837209302326 0.334659090909091 0.341162790697674]);
box(axes1,'on');
hold(axes1,'all');
% 使用 plot 的矩阵输入创建多行
plot1 = plot(X1,YMatrix1,'Parent',axes1,'LineWidth',2);
set(plot1(1),'DisplayName','过牧');
set(plot1(2),'Color',[1 0 0],'DisplayName','轮牧');
% 创建 axes
axes2 = axes('Parent',figure1,...'Position',[0.570340909090909 0.583837209302326 0.334659090909091
0.341162790697674]);
box(axes2,'on');
hold(axes2,'all');
% 使用 plot 的矩阵输入创建多行
plot2 = plot(X1,YMatrix2,'Parent',axes2,'LineWidth',2);
set(plot2(1),'DisplayName','过牧');
set(plot2(2),'Color',[1 0 0],'DisplayName','轮牧');
% 创建 axes
axes3 = axes('Parent',figure1,...'Position',[0.13 0.11 0.334659090909091 0.341162790697674]);
box(axes3,'on');
hold(axes3,'all');
% 使用 plot 的矩阵输入创建多行
plot3 = plot(X1,YMatrix3,'Parent',axes3,'LineWidth',2);
set(plot3(1),'DisplayName','过牧');
set(plot3(2),'Color',[1 0 0],'DisplayName','轮牧');
% 创建 axes
axes4 = axes('Parent',figure1,...'Position',[0.570340909090909 0.11 0.334659090909091 0.341162790697674]);
box(axes4,'on');
hold(axes4,'all');
% 创建 title
title({'不同人为干扰因素灌木植物因子差异图'},'FontWeight','demi','FontSize',16);
% 使用 plot 的矩阵输入创建多行
plot4 = plot(X1,YMatrix4,'Parent',axes4,'LineWidth',2);
set(plot4(1),'DisplayName','过牧');
set(plot4(2),'Color',[1 0 0],'DisplayName','轮牧');
% 创建 legend
legend(axes1,'show');
% 创建 legend
legend(axes2,'show');
% 创建 legend
legend(axes3,'show');
% 创建 legend
legend(axes4,'show');
% 创建 textbox
annotation(figure1,'textbox',...[0.27890625 0.494328875219538 0.05546875 0.0688259109311741],...'String',{'高度'},...'FontSize',14,...'LineStyle','none');
% 创建 textbox
annotation(figure1,'textbox',...[0.717968750000001 0.478035596197135 0.05546875 0.0688259109311741],...'String',{'盖度'},...'FontSize',14,...'LineStyle','none');
% 创建 textbox
annotation(figure1,'textbox',...[0.27578125 0.0157138039364427 0.05546875 0.0688259109311741],...'String',{'密度'},...'FontSize',14,...'LineStyle','none');
% 创建 textbox
annotation(figure1,'textbox',...[0.714843750000001 0.0136771440586423 0.07109375 0.0688259109311741],...'String',{'生物量'},...'FontSize',14,...'LineStyle','none');
%绘图程序
functioncreatefigure(X1, Y1, X2)
%CREATEFIGURE(X1, Y1, X2)
% X1: x 数据的矢量
% Y1: y 数据的矢量
% X2: x 数据的矢量
% 由 MATLAB 于 19-Apr-2015 22:10:33 自动生成
% 创建 figure
figure1 = figure;% 创建 axes
axes1 = axes('Parent',figure1,...'Position',[0.13 0.11 0.334659090909091 0.815]);
box(axes1,'on');
hold(axes1,'all');
% 创建 plot
plot(X1,Y1,'Parent',axes1,'MarkerSize',8,'Marker','diamond','LineWidth',2,.
..'LineStyle','none',...'DisplayName','data1');
% 创建 title
title(' 植物生物量与啮齿类动物优势种百夹捕获率关系
','FontWeight','demi','FontSize',16);
% 创建 xlabel
xlabel('草本植物生物量');
% 创建 ylabel
ylabel('啮齿类动物优势种捕获率');
% 创建 axes
axes2 = axes('Parent',figure1,...'Position',[0.570340909090909 0.11 0.334659090909091 0.815]);
box(axes2,'on');
hold(axes2,'all');
% 创建 plot
plot(X2,Y1,'Parent',axes2,'MarkerSize',8,'Marker','diamond','LineWidth',2,.
..'LineStyle','none',...'Color',[1 0 0],...'DisplayName','data2');
% 创建 xlabel
xlabel('灌木植物生物量');
% 创建 ylabel
ylabel('啮齿类动物优势种捕获率');
%绘图程序
functioncreatefigure(Y1, E1, E2, E3, E4)
%CREATEFIGURE(Y1, E1, E2, E3, E4)
% Y1: errorbar y
% E1: errorbar e
% E2: errorbar e
% E3: errorbar e
% E4: errorbar e
% 由 MATLAB 于 19-Apr-2015 22:12:40 自动生成
% 创建 figure
figure1 = figure;
% 创建 axes
axes1 = axes('Parent',figure1,...
'Position',[0.13 0.583837209302326 0.334659090909091 0.341162790697675]);
box(axes1,'on');
hold(axes1,'all');
% 创建 errorbar
errorbar(Y1,E1,'Color',[0 0 1],'Parent',axes1);
% 创建 axes
axes2 = axes('Parent',figure1,...'Position',[0.570340909090909 0.583837209302326 0.334659090909091
0.341162790697675]);
box(axes2,'on');
hold(axes2,'all');
% 创建 errorbar
errorbar(Y1,E2,'Color',[0 0 1],'Parent',axes2);
% 创建 axes
axes3 = axes('Parent',figure1,...'Position',[0.13 0.11 0.334659090909091 0.341162790697674]);
box(axes3,'on');
hold(axes3,'all');
% 创建 errorbar
errorbar(Y1,E3,'Color',[0 0 1],'Parent',axes3);
% 创建 title
title({'7 月份过牧生境灌木植物因子误差条形图'},'FontWeight','demi','FontSize',16);
% 创建 axes
axes4 = axes('Parent',figure1,...'Position',[0.570340909090909 0.11 0.334659090909091 0.341162790697674]);
box(axes4,'on');
hold(axes4,'all');
% 创建 errorbar
errorbar(Y1,E4,'Color',[0 0 1],'Parent',axes4);
% 创建 textbox
annotation(figure1,'textbox',...[0.285892889824305 0.0377246963562755 0.046875 0.0480769230769231],...'String',{'密度'},...'FontSize',12,...'LineStyle','none');
% 创建 textbox
annotation(figure1,'textbox',...[0.717854364934115 0.0297894736842106 0.059375 0.0480769230769231],...'String',{'生物量'},...'FontSize',12,...'LineStyle','none');
% 创建 textbox
annotation(figure1,'textbox',...[0.725863607247438 0.499991902834008 0.046875 0.0480769230769231],...'String',{'盖度'},...'FontSize',12,...'LineStyle','none');
% 创建 textbox
annotation(figure1,'textbox',...[0.282183382137628 0.50404048582996 0.046875 0.0480769230769231],...'String',{'高度'},...'FontSize',12,...'LineStyle','none');
%绘图程序
functioncreatefigure(X1, YMatrix1, YMatrix2, YMatrix3)
%CREATEFIGURE(X1, YMATRIX1, YMATRIX2, YMATRIX3)
% X1: x 数据的矢量
% YMATRIX1: y 数据的矩阵
% YMATRIX2: y 数据的矩阵
% YMATRIX3: y 数据的矩阵
% 由 MATLAB 于 19-Apr-2015 22:15:54 自动生成
% 创建 figure
figure1 = figure;
% 创建 axes
axes1 = axes('Parent',figure1,...'XTick',[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
25],...'Position',[0.13 0.11 0.213405797101449 0.815]);
box(axes1,'on');
hold(axes1,'all');
% 使用 plot 的矩阵输入创建多行
plot1 = plot(X1,YMatrix1,'Parent',axes1);
set(plot1(1),'Marker','x');
set(plot1(2),'Color',[1 0 0]);
set(plot1(4),'Color',[1 0 0]);
set(plot1(6),'Marker','diamond','Color',[1 0 0]);
% 创建 axes
axes2 = axes('Parent',figure1,...'Position',[0.410797101449275 0.11 0.213405797101449 0.815]);
box(axes2,'on');
hold(axes2,'all');
% 使用 plot 的矩阵输入创建多行
plot2 = plot(X1,YMatrix2,'Parent',axes2);
set(plot2(1),'Marker','x');
set(plot2(2),'Color',[1 0 0]);
set(plot2(4),'Color',[1 0 0]);
set(plot2(5),'Marker','x');
set(plot2(6),'Marker','diamond','Color',[1 0 0]);