2023华为杯数学建模研赛A题B题C题D题E题F题思路代码成品分享

2023-11-14

2022华为杯将于9.22开赛
思路贴将于早上发布 粉丝可见

国一F奖3年数学建模经验团队
交流裙:735249423

下文是2022年研赛E的思路示例
E题思路
问题1. 从机理分析的角度,建立不同放牧策略(放牧方式和放牧强度)对锡林郭勒草原土壤物理性质(主要是土壤湿度)和植被生物量影响的数学模型。

问题1可简化为放牧方式与放牧强度对土壤湿度与植被生物量的影响。

我们要构建的模型自变量为:
1、放牧方式:根据题干有全年连续放牧、禁牧、选择划区轮牧、轻度放牧、生长季休牧五种,其中禁牧与轻度放牧与放牧强度中的两项含义重复,因此不需要额外考虑;此外,策略对草原的影响强调的是时间上的影响,空间上的影响体现在草原的固有性质中,因此,作为自变量的放牧方式实际上只需要考虑两种:全年连续放牧以及分时放牧。为简化模型,该变量在模型中可作为一个比例系数体现。
2、放牧强度:该变量可以直接用一常数S表示,S为每平方米牧羊数。注意这里的“羊”只是一个牲畜单位,牛、马、骆驼=6羊,牛、马、骆驼的幼崽=3羊,羊羔=0.5羊。

模型的因变量为:
1、土壤湿度的变化:其中h表示湿度,而我们作为模型输出的是h随时间的变化,因此需要对时间做微分,植被量相同。
2、植被生物量的变化:其中w表示植被生物量。注意:植被生物量数据为附件15中的干重,不要与附件5、6、10中的数据混淆。

针对放牧强度对植被变化的影响可直接套用拓展阅读中的公式:

针对放牧强度对土壤湿度的影响可结合附件3土壤湿度、附件4土壤蒸发数据附件8降水、附件的数据。由于影响土壤湿度的因素只有土壤蒸发、降水以及放牧情况,因此去除土壤蒸发及降水影响(这两项由附件已知)后,剩下的就是放牧情况对土壤湿度的影响。

由附件15中的植被生物量数据结合刚刚提到的放牧与植物生长之间的关系式可以反推放牧情况,由此,我们可以得到放牧情况对土壤湿度的影响。

考虑到分时放牧,我们最后为模型输出加上一个比例系数即可。
问题2. 请根据附件3土壤湿度数据、附件4土壤蒸发数据以及附件8中降水等数据,建立模型对保持目前放牧策略不变情况下对2022年、2023年不同深度土壤湿度进行预测,并完成下表。

由于降水、蒸发量这些因素在一年里具有周期性,因此我们对1-12月的数据分别建模。以1月数据为例,预测土壤湿度的过程分为3步:
1、建立回归模型研究每年1月份湿度随土壤蒸发量与降水变化的关系;
2、用回归模型利用2012-2022年1月的土壤蒸发量和降水量预测2023年1月的降水量;
3、根据2023年1月的土壤蒸发量和降水量预测2023年1月的湿度。

注意:不要深度学习!不要深度学习!不要深度学习!这种数据量用CNN就是送人头!

问题3. 从机理分析的角度,建立不同放牧策略(放牧方式和放牧强度)对锡林郭勒草原土壤化学性质影响的数学模型。并请结合附件14中数据预测锡林郭勒草原监测样地(12个放牧小区)在不同放牧强度下2022年土壤同期有机碳、无机碳、全N、土壤C/N比等值,并完成下表。

这一小问非常简单,直接用附件14中的数据套用回归模型即可。针对每一项化学性质单独设计一个回归模型,分别调参。由于数据量与特征量有限,这里比较建议用决策树模型。

同问题2,不要深度学习!

问题4. 利用沙漠化程度指数预测模型和附件提供数据(包括自己收集的数据)确定不同放牧强度下监测点的沙漠化程度指数值。并请尝试给出定量的土壤板结化定义,在建立合理的土壤板结化模型基础上结合问题3,给出放牧策略模型,使得沙漠化程度指数与板结化程度最小。

问题4分为两个小问,其中第一小问沙漠化预测模型已在拓展阅读中第3条中详细给出,不再展开分析。现在看第2小问。
已知板结化公式为:

其中土壤湿度数据在附件3中,有机物含量在附件14中,容重在附件7中(是一个常量)。该模型可具体表示为:

这里主要是根据三个因素的影响程度确定三个系数之间的比例。题目所给数据没有衡量这一指标的明显特征,因此对系数的确定言之有理即可。

结合问题3中放牧策略对O的影响可进一步得到放牧策略对B的影响,再结合沙漠化程度预测模型可得到最佳放牧策略。

问题5. 锡林郭勒草原近10的年降水量(包含降雪)通常在300 mm ~1200 mm之间,请在给定的降水量(300mm,600mm、900 mm 和1200mm)情形下,在保持草原可持续发展情况下对实验草场内(附件14、15)放牧羊的数量进行求解,找到最大阈值。(注:这里计算结果可以不是正整数)

降水量影响湿度,进而影响板结度B,从而影响最佳放羊数。保持可持续发展的重要指标为造成的影响可逆,可以从这一点出发进行说明。

这里提供两种思路:
1、设置对照组,在禁牧的情况下沙漠化、板结化程度会如何变化,然后逐渐增大牧羊数量,直到抵消这种变化;
2、将沙漠化、板结化程度可容忍的最大值设为常量,牧羊数量不能使沙漠化与板结化程度超过这一常量。

问题6. 在保持附件13的示范牧户放牧策略不变和问题4中得到的放牧方案两种情况下,用图示或者动态演示方式分别预测示范区2023年9月土地状态(比如土壤肥力变化、土壤湿度、植被覆盖等)。

结合问题1、3、4中得到的模型,只要新的放牧策略比旧的更环境友好即可。在环境友好的情况下经济效益尽可能高(指尽可能多放几只羊)。如果无法满足条件可适当修改前面的模型。

E代码

第一问:

import xlrd
import decimal
import pandas as pd

获取植被生物量数据
f_name = ‘fujian15.xlsx’
data = xlrd.open_workbook(f_name)
table = data.sheets()[0]

放牧规模
S = [str(table.cell_value(i, 0)) for i in range(1, table.nrows)]

日期
date = [str(table.cell_value(i, 1)) for i in range(1, table.nrows)]

植被生物量
W = [str(table.cell_value(i, 3)) for i in range(1, table.nrows)]

s0 = S[0]
d0 = date[0]
w = 0
w_dir = []

for i in range(len(S)):
s = S[i]
d = date[i]
if s == s0 and d == d0:
w += float(W[i])
else:
w_dir.append({‘s’: str(s0), ‘d’: str(d0), ‘w’: w})
w = 0
s0 = s
d0 = d

w_dir中存储了不同时间、不同放牧强度下的植被生物量
第二问:

本代码用的回归模型是随机森林
import xlrd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
import pandas as pd
import warnings
warnings.filterwarnings(‘ignore’)

f_name = ‘q2.xlsx’
data = xlrd.open_workbook(f_name)
table = data.sheets()[0]
df = pd.DataFrame(columns=[‘10cm湿度’, ‘40cm湿度’, ‘100cm湿度’, ‘200cm湿度’]) # 存储最终结果

for mon in [0, 1, 2]: # 1~3月

蒸发量、降水量
x1 = [table.cell_value(i, 2) for i in range(mon * 11 + 1, mon * 11 + 12)]
x2 = [table.cell_value(i, 3) for i in range(mon * 11 + 1, mon * 11 + 12)]
X = np.array([x1, x2]).transpose()

不同深度的湿度
y1 = np.array([table.cell_value(i, 4) for i in range(mon * 11 + 1, mon * 11 + 12)]).flatten()
y2 = np.array([table.cell_value(i, 5) for i in range(mon * 11 + 1, mon * 11 + 12)]).flatten()
y3 = np.array([table.cell_value(i, 6) for i in range(mon * 11 + 1, mon * 11 + 12)]).flatten()
y4 = np.array([table.cell_value(i, 7) for i in range(mon * 11 + 1, mon * 11 + 12)]).flatten()

时间
t = np.array(range(len(x1))).reshape(-1, 1)
t_test = np.array(range(12)).reshape(-1, 1)

利用随机森林进行预测
regressor1 = RandomForestRegressor()
regressor1.fit(t, x1) # 蒸发量与时间关系模型
regressor2 = RandomForestRegressor()
regressor2.fit(t, x2) # 降水量与时间关系模型
regressor3 = RandomForestRegressor()
regressor3.fit(X, y1) # 10cm湿度预测模型
regressor4 = RandomForestRegressor()
regressor4.fit(X, y2) # 40cm湿度预测模型
regressor5 = RandomForestRegressor()
regressor5.fit(X, y3) # 100cm湿度预测模型
regressor6 = RandomForestRegressor()
regressor6.fit(X, y4) # 200cm湿度预测模型

预测未来蒸发量与降水量
第三问:

import xlrd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
import pandas as pd
import warnings
warnings.filterwarnings(‘ignore’)

f_name = ‘q3.xlsx’
data = xlrd.open_workbook(f_name)
table = data.sheets()[0]
df = pd.DataFrame(columns=[‘plot’, ‘SOC’, ‘SIC’, ‘STC’, ‘N’, ‘C/N’]) # 存储最终结果

plots = np.array([table.cell_value(i, 1) for i in range(1, table.nrows)]).flatten()
plot = []
[plot.append(i) for i in plots if i not in plot]

print(plot)
for y in range(12): # 12个分区

时间
t = np.array(range(11)).reshape(-1, 1)


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023华为杯数学建模研赛A题B题C题D题E题F题思路代码成品分享 的相关文章

随机推荐

  • React 函数组件与类组件属性默认值

    一 函数组件 方式一 使用 defaultProps 设置默认值 import React from react import PropTypes from prop types function Sub props return lt g
  • 正点原子STM32 H743完成RT Thread下的LAN8720 网卡驱动 LWIP跑起来

    目前RT官网对H743的支持力度还不理想 本想按照F407的搞定网卡的套路来搞定H743的网卡 因为phy也是LAN 8720 以为会很轻松 没想到却是一条遍布荆棘的路 好在已经有不少大佬做了不少工作 终于在巨人肩膀人完成了网卡的驱动 能p
  • leetcode 1491 去掉最低工资和最高工资后的工资平均值

    leetcode 1491 去掉最低工资和最高工资后的工资平均值 题目描述 给你一个整数数组 salary 数组里每个数都是 唯一 的 其中 salary i 是第 i 个员工的工资 请你返回去掉最低工资和最高工资以后 剩下员工工资的平均值
  • 模型评估标准常用指标

    一 分类指标 样本中存在两种两种标签 样本真实标签和模型预测标签 根据这两个标签可以得到一个混淆矩阵 每一行代表样本的真实类别 数据总数表示该类别的样本总数 每一列代表样本的预测类别 数据总数表示该类别的样本总数 分类模型的评价指标主要基于
  • GPT-4 剑指多模态,前有谷歌 PaLM-E,AI 格局要变?

    本文首发自 HyperAI超神经微信公众号 美东时间 3 月 14 日 OpenAI 重磅推出大型多模态模型 GPT 4 GPT 4 是 ChatGPT 和 Bing AI 聊天机器人背后的技术基础 OpenAI 称 GPT 4 能接受图像
  • IEEE PDF eXpress系统报错:TimesNewRoman PS-BoldMT, ItalicMT, PSM

    问题 IEEE PDF eXpress系统报错 Errors Font TimesNewRomanPS BoldMT TimesNewRomanPS ItalicMT TimesNewRomanPSMT is not embedded 13
  • Python2.7和Python3.6的和平相处,pip冲突的解决办法

    第一次写 有点紧张 呈上自己遇到的一系列问题 及解决办法 我一开始在windows10下面装了python3 6 1 由于需要用到python2 7 所以昨天按照网上的教程安装 1 下载python2 7 配置环境变量 可以在下载过程中进行
  • QT ‘XXX‘ was not declared in this scope

    QT XXX was not declared in this scope 1 未定义 解决办法 变量直接使用但没有定义 定义相应的函数或变量即可 2 字符错误 解决办法 看看字母或者括号是否写错了 3 超出作用域 解决办法 增加声明 扩大
  • malloc的实现原理

    在开发c或c 时 经常需要分配内存 如今常用的分配内存函数为malloc tcmalloc jemalloc 其中属于malloc使用最平常 因为属于c标准库函数 但是网上有有实验证明另外两个效率比malloc高 这篇文章主要还是分析mal
  • openWrt 安装管理界面luci中文包

    openWrt15安装管理界面luci中文包 如果刚刷的openwrt15没有中文界面 用ssh连接路由后用opkg安装 root bang bang tang opkg install luci i18n base zh cn Unkno
  • 关于自己对像Chat-GPT的反应速度感悟

    这几个月相信大家应该对ChatGPT都不陌生了吧 因为这个东西已经在各大社交媒体可以说是无限次曝光了 就连一些其他行业的 完全跟科技行业沾不上边的朋友们 都知道了 可想而知 这个是有多火了 而我之所以发表这个感悟 其实也是自己的一个反思吧
  • matlab画矩阵无向网络图,[转]矩阵生成无向网络图

    功能是将邻接矩阵或关联矩阵变为网络图 不过这里只能转换为无向图 有向图的箭头还需要在研究一下 似乎有annotation函数可以调用 函数名netplot 使用方法输入请help netplot 无返回值 函数只能处理无向图 作者 tian
  • 【Java编程】JavaSE基础总结(三):异常机制、泛型

    JavaSE基础总结 三 1 Java异常机制 1 1 异常 在理想的情况下 我们的程序会按照我们的思路去运行 按理说是不会出现问题的 但是 代码实际编写后并不一定是完美的 可能会有我们没有考虑到的情况 如果这些情况能够正常得到一个错误的结
  • 在C++中 ,什么时候用:: ?什么时候用. ?什么时候用->?

    在C 中 什么时候用 什么时候用 什么时候用 gt 在 C 中 和 gt 是三种不同的运算符 用于访问类 结构体 命名空间 指针等的成员 它们的使用场景如下 作用域解析运算符 用于访问命名空间的成员或静态成员 例如 假设有一个命名空间 My
  • 内核中时间相关的知识介绍

    1 内核要解决的时间相关问题 1 如何度量时间差 如何比较时间 2 如何获取当前时间 3 如何将操作延迟指定的一段时间 4 如何调度异步函数到指定的时间之后执行 2 度量时间差 2 1 内核度量时间的原理 1 Soc有时间相关的硬件 比如定
  • tar打包split分割分解拆分大包文件

    2010 01 26 12 47 http hi baidu com hovlj 1130 item fe21d8342e68aa86c3cf2928 tar打包split分割分解拆分大包文件 有时候远程下载tar包的时候 由于包太大 失去
  • 语法分析—自上而下分析

    1 美图 2 位置 语法分析器的功能 语法分析的任务是分析一个文法的句子结构 语法分析器的功能 按照文法的产生式 语言的语法规则 识别输入符号串是否为一个句子 合式程序 语法分析的方法 不行 看不懂 我太难了 不看了
  • Goldengate 12.2新特性-自描述的队列文件

    OGG12 2中最大的变化之一就是队列文件是自描述的 意思是不再担心以前版本中 表结构异构的情况 也不再需要defgen生成定义文件 以及不再使用assumeTargetDefs或SourceDefs参数 许多手工处理的步骤不再需要了 即使
  • 【C/C++】三目运算符的详细分析

    前言 C C 三目运算符是一种条件运算符 也被称为 三元运算符 或 条件运算符 它的语法结构为 condition true expression false expression 表示如果 condition 为真 则执行 true ex
  • 2023华为杯数学建模研赛A题B题C题D题E题F题思路代码成品分享

    2022华为杯将于9 22开赛 思路贴将于早上发布 粉丝可见 国一F奖3年数学建模经验团队 交流裙 735249423 下文是2022年研赛E的思路示例 E题思路 问题1 从机理分析的角度 建立不同放牧策略 放牧方式和放牧强度 对锡林郭勒草