【数学建模】山猫数量预测

13.3某种山猫在较好、中等即较差的自然环境下,年平均增长率分别为1.68%,0.55%和-4.5%。假设开始时有100只山猫,按以下情况分别讨论山猫数量逐年变化的过程及趋势。

(1)三种自然环境下25年的变化过程,结果要列表并图示。
(2)如果每年捕获三只,山猫的数量将如何变化?会灭绝吗?
(3)在较差的自然环境下,如果山猫数量稳定在60只左右,每年要人工繁殖多少只?

这种问题建模GPT4比较擅长,自己写有点费劲容易错,给你这个,但记得一定要运行看看,别直接用。

这段代码模拟了在不同环境下,山猫数量的变化,并用图表进行了展示。然后模拟了在捕猎情况下,山猫数量的变化,并同样用图表进行了展示。最后计算了在数量稳定在60的情况下,每年需要人工繁殖多少只山猫。


import matplotlib.pyplot as plt

# 初始数量
initial_population = 100

# 年平均增长率
growth_rate = {"good": 0.0168, "average": 0.0055, "bad": -0.045}

# 模拟三种自然环境下25年的变化过程
for key, value in growth_rate.items():
    population = initial_population
    population_list = [population]
    for year in range(1, 26):
        population += population * value
        population_list.append(population)
    plt.plot(range(26), population_list, label=key)

plt.xlabel("Years")
plt.ylabel("Population")
plt.title("Population over time in different environments")
plt.legend()
plt.show()

# 如果每年捕获三只,山猫的数量将如何变化
population = initial_population
population_list = [population]
for year in range(1, 26):
    population += population * growth_rate["bad"] - 3
    population_list.append(population)

plt.plot(range(26), population_list, label="bad with hunting")
plt.xlabel("Years")
plt.ylabel("Population")
plt.title("Population over time with hunting")
plt.legend()
plt.show()

# 在较差的自然环境下,如果山猫数量稳定在60只左右,每年要人工繁殖多少只
population = initial_population
for year in range(1, 26):
    if population < 60:
        needed_breeding = 60 - population
        population = 60
    else:
        needed_breeding = 0
        population += population * growth_rate["bad"]
    print(f"Year {year}, needed breeding: {needed_breeding}")


如果有帮助,请点击一下采纳该答案~谢谢

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7503842
  • 除此之外, 这篇博客: 只会环比下降3%的数据分析师还有救吗?中的 5.1 各年度销售情况 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如果你按捺不住手中的ESP(Excel、SQL、Python)直奔2015年1-2月的数据,那么我只能说你只看到了第二层(老千层饼了

    在这里插入图片描述

    观察上图,假设我们分析的目标时间段是e-f,两图的e-f都由15跌到13.5,但两种数据走势反映出的问题点是不一样的。左边是断崖式下降,要分析e-f之间出现了什么变化,而右边则是持续下降,只是e-f下降幅度较大,但关键的问题点在c-d-e。

    因此先对整体数据的走势有了印象,才能更好地把握住问题的关键点,避免管中窥豹。

    实现思路:

    • 以购买日期为标准对数据进行分组聚合,并对时间进行降采样至月
    • 分别提取每年各月的销售数据
    # 分组聚合+降采样方法一:
    df=df.groupby(pd.Grouper(key='day', freq='m')).sum()
    # 分组聚合+降采样方法二:
    df_1=df.groupby('day').sum().resample('m').sum()
    

    在这里插入图片描述

    观察数据可知,14年的销量走势与13年类似,并没有出现持续性下降的问题,因此可以把分析聚焦到各年度的1-2月数据进行分析。

    除了15年2月销量由于数据不全而出现骤降外,2013年的2月也同样出现了环比骤降的情况,第一反应是春节导致的下降。翻查13年-15年的春节(初一到初七)时间如下:

    • 2013年春节:2月9日-2月15日
    • 2014年春节:1月30日-2月6日
    • 2015年春节:2月19日-2月25日

    可以得知,15年的春节时间与13年类似,都是完整分布在2月,可初步推出,15年2月的销量数据应该与13年类似。如果把15年2月的目标定为同比增长50%显然不尽合理,因此我们将时间线修改为春节前30天。