在数学建模竞赛或者课题研究中,常常要解决陌生领域的问题。很多领域知识和经验是需要时间积累的,但是我们遇到的情境需要我们快速去了解它,并通过建模提出解决方案。比如下面是美国大学生数学建模比赛(MCM)2023年A题(https://www.contest.comap.com/undergraduate/contests/mcm/contests/2023/problems/2023_MCM_Problem_A.pdf):遭受旱灾的植物群落(Drought-Stricken Plant Communities)
问题背景
不同种类的植物对压力的反应方式不同。例如,草原对干旱相当敏感。干旱发生的频率和严重程度各不相同。大量的观察表明,不同物种的数量在植物群落如何适应连续几代的干旱周期中起着作用。在一些只有一种植物的群落中,其后代对干旱的适应能力不如拥有四种或四种以上植物群落中的单株植物。这些观察提出了许多问题。例如,一个植物群落要从这种局部生物多样性中受益,所需的最小物种数量是多少?随着物种数量的增加,这种现象是如何扩大的呢?这对植物群落的长期生存能力意味着什么?
问题要求
要求1.考虑到干旱适应性与植物群落中物种数量的关系,你的任务是探索和更好地理解这一现象。具体来说,你应该:1.建立一个数学模型来预测暴露在各种不规律的天气周期中植物群落如何随着时间的推移而变化(包括本该降水充足但实际却干旱时期)。该模型应考虑到干旱周期中不同物种之间的相互作用。2. 探索你可以从你的模型中得出什么结论,关于植物群落和更大的环境的长期相互作用。考虑以下问题:(a)群落需要多少不同的植物物种才能受益?随着物种数量的增长会发生什么?(b)群落中的物种类型如何影响你的结果?(c)在未来的天气周期中,干旱发生的频率更高、变化更大会产生什么影响?如果干旱不那么频繁,那么物种数量对整体种群的影响是否相同?(d)污染和栖息地减少等其他因素如何影响你的结论?(e)你的模型表明应该做些什么来确保植物群落的长期生存能力,对更大的环境有什么影响?
这就是一个典型的数学建模竞赛的情境。对于我,一个非生物、生态、环境领域的人而言,对于生物多样性、干旱、物种之间的相互作用并不了解,如何快速理解该情境呢?
查资料!
对,去查阅相关资料、问相关领域的人、搜索相关领域的内容。那么进一步的问题是如何高效获得我们需要了解的内容呢?
这里笔者总结了一些经验,和大家分享和探讨,欢迎大家批评指正。
我们需要花少量时间确定我们要查阅的资料是什么。因为对问题情境并不是非常了解,所以目标可以笼统一些,但是要有,方便确定接下来的搜索方向。以上面的问题情境为例,笔者列出如下关键词
我们可以直接确定具体问题,比如:
基于上述分析,我们可以构建起简单的逻辑关系:
接下来我们就可以具体来查找相应的资料了;如果有合作的话,则可以分头行动。
及时整理所获得的资料是很有必要的,便于回溯和进一步查找,也便于整理思路。
对于团队合作而言,这尤为必要。而且注意要尽可能让参考资料更易读,比如将参考资料中的重要信息截取出来,放在相应链接下。
使用google,百度都是常用的搜索方法,相应的百科内容也可以帮助我们了解基础的概念,也可以为我们提示哪些学术论文对我们有帮助。我们需要借助学术研究论文作进一步了解。
谷歌学术的资料还是很全的,大部分的文献可以免费获取。
使用英文查阅会更好一些,中文的很多论文还是会跳转到知网。
国内论文一般查阅知网(https://www.cnki.net/), 对于在校生还是比较方便的;如果无法借助学校图书馆,又要查阅较多资料,买会员比较划算(但还是比较贵)。
有几个可以作为替代的网站:
爱学术(https://www.ixueshu.com/) 价格要便宜地多,不过缺点是比较近期的的研究内容少。
百度文库。品类比较多,但也相对比较杂。
另外一个用的比较多的就是上面提到的谷歌学术了。
其实如果要长期研究的话,购买领域内的权威图书是有必要的;如果是短期研究的话,阅读图书来不及,也可以先看一下图书目录,了解大致研究框架,然后再有针对性搜索,比如:
查看其目录:
我们也可以收获比较多的信息。
ChatGPT无疑已经带来了学术研究的变革,它可以成为我们研究路上的好帮手。以后类似的工具会越来越多,我们不妨向它提问:
下面是它给出的解答:
干旱条件下,植物群落的动态变化通常是由于水分限制和植物竞争导致的。为了建立数学模型,我们可以考虑一个简化的植物群落,假设它由两个植物物种组成:物种1和物种2。我们假设这两个物种的生长速率受到水分的限制,且它们之间存在竞争。
我们可以建立以下差分方程模型来描述植物群落在干旱条件下的动态变化:
其中,和分别是物种1和物种2的种群密度,是总的种群密度,和是物种1和物种2的内禀增长率,是植物群落的最大容纳量,和分别是物种1和物种2对另一物种的竞争强度。
这个模型包括了以下几个关键因素:
import numpy as np
import matplotlib.pyplot as plt
# Parameters
r1 = 0.5 # intrinsic growth rate of species 1
r2 = 0.8 # intrinsic growth rate of species 2
c12 = 0.2 # competition coefficient of species 1 on species 2
c21 = 0.3 # competition coefficient of species 2 on species 1
K = 100 # carrying capacity
# Initial conditions
N1_0 = 50 # initial density of species 1
N2_0 = 50
#Time vector
t = np.arange(0, 100, 0.1)
#Define the differential equations
def dN1dt(N1, N2):
return r1*(N1 + N2)(1 - (N1 + N2)/K) - c12N1*N2
def dN2dt(N1, N2):
return r2*(N1 + N2)(1 - (N1 + N2)/K) - c21N2*N1
# Solve the differential equations using Euler's method
N1 = np.zeros_like(t)
N2 = np.zeros_like(t)
N1[0] = N1_0
N2[0] = N2_0
for i in range(1, len(t)):
N1[i] = N1[i-1] + dN1dt(N1[i-1], N2[i-1]) * (t[i] - t[i-1])
N2[i] = N2[i-1] + dN2dt(N1[i-1], N2[i-1]) * (t[i] - t[i-1])
# 3Plot the results
plt.plot(t, N1, label='Species 1')
plt.plot(t, N2, label='Species 2')
plt.xlabel('Time')
plt.ylabel('Population density')
plt.legend()
plt.show()
这个模拟将展示在一段时间内,植物群落中两种植物物种的种群密度是如何变化的。我们可以观察到,种群密度的动态变化会受到水分限制和植物竞争的影响。在模型中,两个物种的种群密度会相互作用,导致它们的种群密度在时间上有着周期性的变化。当植物群落中的水分供应减少时,种群密度的变化会更加明显。
很好,给出了模型和相应代码,模型只给出了两个物种中一个物种变化的表达式,另一个靠我们自己来推了;代码运行起来报了错:
是一些小bug,调整好之后运行效果如下:
不是太合理,初始值和参数有些问题,还得调。
经过一番查阅,对比问题,感觉基本获得解答之后,可以再对新知识进行汇总,可以采用思维导图或流程图等方式整理:
总结沉淀之后,确立新问题,然后进行新一轮的资料收集和整理。
以上是个人在解决数学建模问题或者遇到了解新领域时的一些经验,欢迎大家分享自己的经验~ 欢迎大家加入数学建模讨论群(数学建模交流群来了~欢迎加入!)参与讨论。
联系客服