2015年认证杯SPSSPRO杯数学建模C题(第二阶段)荒漠区动植物关系的研究全过程文档及程序

news2024/7/4 5:13:38

2015年认证杯SPSSPRO杯数学建模

C题 荒漠区动植物关系的研究

原题再现:

  环境与发展是当今世界所普遍关注的重大问题, 随着全球与区域经济的迅猛发展, 人类也正以前所未有的规模和强度影响着环境、改变着环境, 使全球的生命支持系统受到了严重创伤, 出现了全球变暖、生物多样性消失、环境污染等全球性的环境问题, 并已经严重影响到了全球人类社会的发展。在探讨环境与发展问题的过程中, 人们越来越认识到了现代社会发展过程中自然——社会——经济复合生态系统的复杂性, 以及生态学理论在解决这些问题中的重要性。
  干旱区是全球生态系统中的重要类型之一, 也是目前全球开发较晚的区域之一, 因此, 积极开展干旱区的生态学理论与实践研究, 对于干旱区当前面临的重大环境问题的解决, 以及未来防患于未然的科学决策均具有极其重要的现实意义。作为我国三大自然区域之一的西北干旱区, 由于其大规模、高强度的开发历史较短, 因此, 与其它区域相比较而言, 其境内蕴藏了丰富的待开发自然资源, 也奠定了其在我国未来经济建设中的举足轻重的战略地位, 并担负着重要的历史使命, 西部大开发战略的实施即是最显著的证明。因此, 积极开展和深化干旱区的生态学研究, 对于该区域的经济发展与生态环境保护具有深远的理论意义与实践价值。
  生态研究与资源利用是分不开的, 荒漠区是我国典型的温带荒漠和干旱脆弱生态系统, 生态环境条件十分严酷, 动物的可利用资源在数量和质量上与湿润区、半干旱区存在差异, 啮齿动物的分布具有明显的区域性特征。由于近年来人为干扰不断加重, 使得该地区的荒漠化日益严重。依赖于植物生存的动物种群和群落格局随之受到了明显影响。
  啮齿动物群落是荒漠生态系统食物链上必不可少的消费者, 对荒漠的利用与保护有至关重要作用。许多物种群体与人的干扰具有密切关系, 干扰的一个突出作用是导致生态系统中各类资源的改变和生态系统结构的重组, 导致异质性环境的形成。有关不同干扰方式下, 栖息地破碎化过程中研究群落的变化特征是当前景观生态学和群落生态学研究的前沿。
  第二阶段问题:
  1. 请结合附件一和附件二的数据,建立合理的数学模型,来评估由人类活动造成的荒漠地区生态退化的程度。
  2. 分析一个荒漠地区处于半退化、退化等不同阶段时,是否可以通过减少人为干扰,或者采用补充人工植被的方法来促使该地区的生态环境恢复正常。如果可行,请给出量化的实施方案;如果不可行,请指出造成这种不可逆性的原因。

整体求解过程概述(摘要)

  目前,土地的荒漠化已经成为一个世界热点话题。土地的荒漠化会导致土地生产力的下降、土地资源的丧失以及对环境的破坏,对我们人类的发展与生存产成极大的影响。因此,研究对在荒漠地域生态退化程度的判断标准以及在此标准下在各阶段的补救措施具有重要的现实意义。
  对于问题一,首先,根据分析可知,生态退化的程度可以在调查的动植物的种群状态上反映出来,故我们将植物因子与啮齿动物优势种百夹捕获率作为生态退化程度的评价指标,将附件中的重复项作为样本。同时我们发现数据中存在着部分的缺失,由于数据的时序关系较弱,插值等数据补充方法难以应用,故将存在缺失数据的样本删除。接着,为了减少数据偶然性的影响,我们利用基于共享型最近邻居相似度算法(SNN)进行了异常值的筛检,共去除了9个异常样本(见表 2)。然后,对数据进行归一化后,我们建立了投影寻踪模型,利用基于实数编码的加速遗传算法求解得到最佳投影方向为a*=(0.0761 ,0.1167 ,0.1735 ,0.1113 ,0.2068 ,0.3520 ,0.2208 ,0.1362 , 0.5483 ,0.5081 ,0.3811)。利用最佳投影方向计算各样本的投影值(见附录3),由于投影值能很好地表现高维数据的分类结构特征,故将其作为评价值进行评价模型的构建。最后,为获得生态退化、半退化与未退化状态的区分标准,我们采用了K-Means聚类算法将样本的评价值聚为3类,分析评价值的属性,以生态状态来解释各分类类别,并以类间的中间距离作为不同状态的分界线得到区分标准。据此讨论不同人类活动造成的荒漠地区生态退化情况(见表 8),发现开垦会造成土地极大的破坏,在开垦的影响下,88.37%的地域处于生态退化状态,过牧对土地的负面影响次之,轮牧对土地的负面影响较于前两者而言相对较弱一些。
  对于问题二,为了直观地反映过牧、轮牧、开垦三种荒漠地区的半退化和退化的动态变化情况,我们采用元胞自动机(CA)进行仿真模拟。在不改变当前人为干扰和人工植被的情况下,三种荒漠区呈现出不同的生态退化情况,轮牧区较轻,过牧区略重,开垦区非常严重。然后,分别考虑减少人为干扰和增加人工植被两种方法进行治理,结果发现轮牧区和过牧区在减少35%人为干扰或增加一倍人工植被的情况下呈现出良好的恢复趋势,而开垦区减少65%人为干扰也难有起色,只有增加3倍人工植被才能慢慢恢复。说明对于过牧区和轮牧区能有效治理,而开垦区的治理花费太大,需要寻找新的方法。最后我们针对模型做了敏感性分析,并进行了中肯的评价和适当的推广。

问题分析:

  对于问题一,首先分析附件中的数据是否存在异常值或缺失值,并进行数据处理。对于缺失的数据,由于附件中数据的时序关系等较弱,故我们将其去除不予考虑。因为数据的规模较小,存在偶然性的可能较大,为去除偶然性对评估的影响,考虑到样本数据为高维形式,我们采用基于共享型最近邻居相似度算法(SNN)进行异常值的筛检。然后,对数据进行归一化后,我们建立了投影寻踪模型,由于投影值可以很好地表现高维数据的分类结构特征,我们以此来获取样本的投影值作为评价值,最后采用 K-Means算法聚类进行样本的评估。
  对于问题二, 我们选用元胞自动机(CA)分别对轮牧区、过牧区、开垦区进行仿真模拟,观察三个地区在未来几年内非退化、半退化、退化三种区域面积的动态变化情况,然后根据题目要求,修改元胞演化参数,分别模拟减少人为干扰和增加人工植被两种治理措施,观察此时三个地区的变化情况,并对最终结果的非退化、半退化、退化面积进行统计分析,以便能得出较好的量化治理措施。

模型假设:

  1) 假设附件中同一月的重复项为在西北地区同一个月在不同小地域调查所得;
  2) 由于评估生态退化的指标多种多样,指标的选取影响着评估模型的效果,假设题中所给的几项可作为生态退化的典型指标;
  3) 假设剔除异常值之后的数据都具有统计意义,且数据来源真实可靠;
  4) 假设附件中的小区域数据能有效地反映当地整体荒漠化的情况。

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

dis=distance(Vari_F);
[s,d]=rk(dis);
snn=rs(20,s,d);
[c,p]=cho(15,snn);
[n,m]=size(Vari_F);
Variable=zeros(n-p,m);
p1=1;
for i=1:n
k=1;% 指示变量
for j=1:c
if i==c(1,j)
k=0;
end;
end;
if k==0
continue;
else
Variable(p1,:)=Vari_F(i,:);
p1=p1+1;
end;
end;
%%
function a=distance(x2)
[n,m]=size(x2);
a=zeros(n,n);
c=0;
for i=1:n
for j=i:n
for k=1:m
b(k)=x2(i,k)-x2(j,k);
end;
for k=1:m
c=c+b(k)^2;
end;
a(i,j)=sqrt(c);
c=0;
end;
end;
for i=1:n
for j=1:n
a(j,i)=a(i,j);
end;
end;
%%
function [a,d]=rk(dis)% a为序号矩阵,d为距离矩阵
[n,m]=size(dis);
a=zeros(n,m);
for i=1:n
for j=1:m
a(i,j)=j;
end;
end;
for i=1:n
for k=1:m-1
for j=1:m-k
if dis(i,j)>dis(i,j+1)
t=a(i,j);
a(i,j)=a(i,j+1);
a(i,j+1)=t;
t=dis(i,j);
dis(i,j)=dis(i,j+1);
dis(i,j+1)=t;
end;
end;
end;
end;
d=dis;
%%
function [c,p]=cho(t,snn)% j为相似度矩阵,c为编号,p为总个数
[n,m]=size(snn);
for i=1:n
for j=1:m
if i==j
snn(i,j)=0;
end;
end;
end;
c=zeros(1,n);
for i=1:n
k(i)=1;
end;
for i=1:n
for j=1:m
if snn(i,j)>t
k(i)=0;
k(j)=0;
end;
end;
end;
p=0;
for i=1:n
if k(i)~=0
c(1,p+1)=i;
p=p+1;
end;
end;
d=[];e=[];
X=Variable;
[m,n]=size(X);
for k=1:50
x=normalize(X);
N=400;M=10;Ci=7;n=11;DaiNo=2;ads=1;
[a1,b1,ee,ff]=RAGA(x,N,n,Pc,Pm,M,DaiNo,Ci,ads);
d=[d,a1];e=[b1;e];
end
[a2 b2]=max(d);
e1=e(b2,:);
ff=e1*x';
%%
function a=normalize(b)
D=b;
maxi=max(D);
mini=min(D);
[n m]=size(D);
for i=1:n
for j=1:m
D(i,j)=(D(i,j)-mini(j))/(maxi(j)-mini(j));
end
end
a=D;
%%
function [a,b,mmin,mmax]=RAGA(xx,N,n,M,DaiNo,Ci,ads)
if ads==0
ad='ascend';
else
ad='descend';
end
mm1=zeros(1,n);mm2=ones(1,n);
Pc=0.8;Pm=0.2;
for z=1:Ci
while 1==1
for p=1:n
bb(p)=unifrnd(mm1(p),mm2(p));
end
temp=sum(bb.^2);
a=sqrt(bb.^2/temp);
y=Feasibility(a);
if y==1
v(i,:)=a;
break;
end
end
end
for s=1:DaiNo
for i=1:N
fv(i)=Target(xx,v(i,:));
end
[fv,i]=sort(fv,ad);
v=v(i,:);
arfa=0.05;
q(1)=0;
for i=2:N+1
q(i)=q(i-1)+arfa*(1-arfa)^(i-2);
end
for i=1:N
r=unifrnd(0,q(N+1));
for j=2:N+1
if r>q(j-1) & r<=q(j)
vtemp1(i,:)=v(j-1,:);
end
end
end
while 1==1
CrossNo=0;
v1=vtemp1;
for i=1:N
r1=unifrnd(0,1);
if r1 < Pc
CrossNo=CrossNo+1;
vtemp2(CrossNo,:)=v1(i,:);
v1(i,:)=zeros(1,n);
end
end
if CrossNo~=0 & mod(CrossNo,2)==0
break;
elseif CrossNo==0|mod(CrossNo,2)==1
vtemp2=[];
end
end
shengyuNo=0;
for i=1:N
if v1(i,:)~=zeros(1,n)
shengyuNo=shengyuNo+1;
vtemp3(shengyuNo,:)=v1(i,:);
end
end
for i=1:CrossNo
r2=ceil(unifrnd(0,1)*(CrossNo-i+1));
vtemp4(i,:)=vtemp2(r2,:);
vtemp2(r2,:)=[];
end
for i=1:2:(CrossNo-1)
while 1==1
r3=unifrnd(0,1);
v20(i,:)=r3*vtemp4(i,:)+(1-r3)*vtemp4(i+1,:);
v20(i+1,:)=(1-r3)*vtemp4(i,:)+r3*vtemp4(i+1,:);
temp1=sum(v20(i,:).^2);
temp2=sum(v20(i+1,:).^2);
v2(i,:)=sqrt(v20(i,:).^2/temp1);
v2(i+1,:)=sqrt(v20(i+1,:).^2/temp2);
if Feasibility(v2(i,:))==1 & Feasibility(v2(i+1,:))==1
break;
end
end
end
v3=[vtemp3;v2];
while 1==1
MutationNo=0;
v4=v3;
for i=1:N
r4=unifrnd(0,1);
if r4<Pm
MutationNo=MutationNo+1;
vtemp5(MutationNo,:)=v4(i,:);
v4(i,:)=zeros(1,n);
end
end
if MutationNo~=0
break;
end
end
shengyuNo1=0;
for i=1:N
if v4(i,:)~=zeros(1,n)
shengyuNo1=shengyuNo1+1;
vtemp6(shengyuNo1,:)=v4(i,:);
end
end
DirectionV=unifrnd(-1,1,1,n);
for i=1:MutationNo
tempNo=0;
while 1==1
tempNo=tempNo+1;
v5(i,:)=sqrt(((vtemp5(i,:)+M*DirectionV).^2)./sum((vtemp5(i,:)
+M*DirectionV).^2));
y=Feasibility(v5(i,:));
if tempNo==200
v5(i,:)=vtemp5(i,:);
break;
elseif y==1
break;
end
M=unifrnd(0,M);
end
end
vk=[v5;vtemp6];
v=vk;
end
for i=1:N;
fv(i)=Target(xx,v(i,:));
end
[fv,i]=sort(fv,ad);
v=v(i,:);
vk=v;
vv=vk(1:20,:);
t=1:n;
mm1(t)=min(vv(:,t));
mm2(t)=max(vv(:,t));
mmin(z,:)=mm1;
mmax(z,:)=mm2;
if abs(mm1-mm2)<=0.00001
break;
end
end
a=fv(1);
b=vv(1,:);
%%
function y=Feasibility(a)
b=sum(a.^2);
if abs(b-1)<=0.00001
y=1;
else
y=0;
end
%%
function y=Target(x,a)
[m,n]=size(x);
for i=1:m
s1=0;
for j=1:n
s1=s1+a(j)*x(i,j);
end
z(i)=s1;
end
Sz=std(z);
R=0.1*Sz;
s3=0;
for i=1:m
for j=1:m
r=abs(z(i)-z(j));
t=R-r;
if t>=0
u=1;
else
u=0;
end
s3=s3+t*u;
end
end
Dz=s3;
y=Sz*Dz;
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1544993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第二十一天(二叉树VII)| 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先(JAVA)

文章目录 530. 二叉搜索树的最小绝对差解题思路源码 501. 二叉搜索树中的众数解题思路源码 236. 二叉树的最近公共祖先解题思路源码 530. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&a…

High 级别反射型 XSS 攻击演示(附链接)

环境准备 如何搭建 DVWA 靶场保姆级教程&#xff08;附链接&#xff09;https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开靶场找到该漏洞页面 先右键检查输入框属性 还是和之前一样的&#xff0c;所以直接输入 HTML 标签提交…

【Java八股面试系列】中间件-Redis

目录 Redis 什么是Redis Redis解决了什么问题 Redis的实现原理 数据结构 String 常用命令 应用场景 List(列表) 常用命令 应用场景 Hash(哈希) 常用命令 应用场景 set(集合) 常见命令​编辑 应用场景 Sorted Set(有序集合) 常见命令​编辑 应用场景 数据持…

GitHub加速访问最简单的方法

Github是全球最大的代码开源平台&#xff0c;对于编程的小伙伴来说&#xff0c;这是一个巨大的宝库&#xff0c;也是编程学习的圣地。很对小伙伴在使用GitHub时会经常出现无法访问Github的情况。 一、解决方法——>修改hosts文件 通过 IP查询工具来获取当前Github网站的真实…

计算机网络:现代通信的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

AcWing 4609:火柴棍数字 ← 贪心算法

【题目来源】 https://www.acwing.com/problem/content/4612/【题目描述】 给定 n 个火柴棍&#xff0c;你可以用它们摆出数字 0∼9。 摆出每个数字所需要的具体火柴棍数量如下图所示&#xff1a; 请你用这些火柴棍摆成若干个数字&#xff0c;并把这些数字排成一排组成一个整数…

Redis中的事件

事件 概述 Redis服务器是一个事件驱动程序:服务器需要处理以下两类事件: 1.文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接&#xff0c;而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件…

机器学习作业二之KNN算法

KNN&#xff08;K- Nearest Neighbor&#xff09;法即K最邻近法&#xff0c;最初由 Cover和Hart于1968年提出&#xff0c;是一个理论上比较成熟的方法&#xff0c;也是最简单的机器学习算法之一。该方法的思路非常简单直观&#xff1a;如果一个样本在特征空间中的K个最相似&…

Ubuntu deb文件 安装 MySQL

更新系统软件依赖 sudo apt update && sudo apt upgrade下载安装包 输入命令查看Ubuntu系统版本 lsb_release -a2. 网站下载对应版本的安装包 下载地址. 解压安装 mkdir /home/mysqlcd /home/mysqltar -xvf mysql-server_8.0.36-1ubuntu20.04_amd64.deb-bundle.tar# …

Pandas操作MultiIndex合并行列的Excel,写入读取以及写入多余行及Index列处理,插入行,修改某个单元格的值

Pandas操作MultiIndex合并行列的excel&#xff0c;写入读取以及写入多余行及Index列处理 1. 效果图及问题2. 源码参考 今天是谁写Pandas的 复合索引MultiIndex&#xff0c;写的糊糊涂涂&#xff0c;晕晕乎乎。 是我呀… 记录下&#xff0c;现在终于灵台清明了。 明天在记录下直…

02-K近邻算法

机器学习其实有一个很朴实的想法: 预测 x x x的值&#xff0c; 那就在训练集 X X X中找到与 x x x相似的样本&#xff0c; 再把与x相似的这些样本的值加权作为预测值 那么我们如何度量样本之间的相似性&#xff1f;又该如何加权呢&#xff1f; 在k近邻中&#xff0c; 我们一般采…

【CXL协议-事务层之CXL.cache (3)】

3.2 CXL.cache 3.2.1 概述 CXL.cache 协议将设备和主机之间的交互定义为许多请求&#xff0c;每个请求至少有一个关联的响应消息&#xff0c;有时还有数据传输。 该接口由每个方向的三个通道组成&#xff1a; 请求、响应和数据。 这些通道根据其方向命名&#xff0c;D2H&…

基于FPGA实现的自适应三速以太网

一、三速以太网 千兆以太网PHY芯片是适配百兆和十兆的&#xff0c;十兆就不管了&#xff0c;我们的设计只适应千兆和百兆。 根据上图&#xff0c;我们是可以获取当前主机网口的速率信息的。 always(posedge w_rxc_bufr) beginif(w_rec_valid d0) beginro_speed < w_rec_…

【r-tree算法】一篇文章讲透~

目录 一、引言 二、R-tree算法的基本原理 1 数据结构 2 插入操作 3 删除操作 4 查询操作 5 代码事例 三、R-tree算法的性能分析 1 时间复杂度 2 空间复杂度 3 影响因素 四、R-tree算法的变体和改进 1 R*-tree算法 2 X-tree算法 3 QR-tree算法 五、R-tree算法的…

【物联网】Qinghub Kafka 数据采集

基础信息 组件名称 &#xff1a; kafka-connector 组件版本&#xff1a; 1.0.0 组件类型&#xff1a; 系统默认 状 态&#xff1a; 正式发布 组件描述&#xff1a;通用kafka连接网关&#xff0c;消费来自kafka的数据&#xff0c;并转发给下一个节点做相关的数据解析。 配置文…

http模块 获取http请求报文中的路径 与 查询字符串

虽然request.url已包含属性和查询字符串&#xff0c;但使用不便&#xff0c;若只需其中一个不好提取&#xff0c;于是用到了如下路径和字符串的单独查询方法&#xff1a; 一、获取路径 例如&#xff1a;我在启动谷歌端口时输入http://127.0.0.1:9000 后接了 "/search?k…

Docker 搭建Redis集群

目录 1. 3主3从架构说明 2. 3主3从Redis集群配置 2.1关闭防火墙启动docker后台服务 2.2 新建6个docker容器实例 2.3 进去任意一台redis容器&#xff0c;为6台机器构建集群关系 2.4 进去6381&#xff0c;查看集群状态 3. 主从容错切换迁移 3.1 数据读写存储 3.1.1 查看…

27---eMMC电路设计

视频链接 eMMC电路设计01_哔哩哔哩_bilibili eMMC电路设计 1、eMMC简介 eMMC叫嵌入式多媒体卡&#xff0c;英文全称为Embedded Multi Media Card。是一种闪存卡&#xff08;Flash Memory Card&#xff09;标准&#xff0c;它定义了MMC的架构以及访问Flash Memory的接口和协…

Linux 搭建jenkins docker

jekin docker gitee docker 安装 jenkins docker run -d --restartalways \ --name jenkins -uroot -p 10340:8080 \ -p 10341:50000 \ -v /home/docker/jenkins:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker je…

【双指针】Leetcode 盛最多水的容器

题目解析 11. 盛水最多的容器 木桶效应&#xff0c;寻找一个区间使得这个区间的体积最大 算法讲解 1. 暴力枚举 遍历这个容器&#xff0c;将每一个区间的体积求出来&#xff0c;然后找出最大的 class Solution { public:int maxArea(vector<int>& height){int n…