(源码版)2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测题一数据分析详解+Python代码

news2024/11/14 6:11:59

十分激动啊啊啊题目终于出来了!!官网6点就进去了结果直接卡死现在才拿到题目,我是打算A-E题全部做一遍。简单介绍一下我自己:博主专注建模四年,参与过大大小小数十来次数学建模,理解各类模型原理以及每种模型的建模流程和各类题目分析方法。参与过十余次数学建模大赛,三次美赛获得过二次M奖一次H奖,国赛二等奖。希望各位以后遇到建模比赛可以艾特一下我,我可以提供免费的思路和部分源码,以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码且完全免费。希望有需求的小伙伴不要错过笔者精心打造的文章。

只希望!!!大家给我三连就满足了!!那么废话不多说现在开始做题

(更新源码版本)

赛题分析

E题很明显是一道数据分析挖掘题,涉及到时序预测模型和时序数据的处理。先分析每个题目。

题目一

问题 1 研究该水文站黄河水的含沙量与时间、水位、水流量的关系,并估算近 6 年该水 文站的年总水流量和年总排沙量。

思路

首先明白我们需要研究的对象是黄河水的含沙量,因变量为时间、水位、水流量。此题我们根据附件1的2016-2021年黄河水沙检测数据基本就可以处理。

解答

数据和时间维度直接拿原数据看起来比较难看明白,稍作处理:、

首先看水位和流量对含沙量的关系:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体

# 假设 df 是你的数据框
# 如果 df 是之前提供的数据,请将该数据转为数据框

# 绘制含沙量与水位的散点图
plt.scatter(df.iloc[:,0], df.iloc[:,2])
plt.xlabel('水位(m)')
plt.ylabel('含沙量(kg/m3)')
plt.title('含沙量与水位关系')
plt.show()

# 绘制含沙量与流量的散点图
plt.scatter(df.iloc[:,1],  df.iloc[:,2])
plt.xlabel('流量(m3/s)')
plt.ylabel('含沙量(kg/m3)')
plt.title('含沙量与流量关系')
plt.show()

 

相关性矩阵:

# 计算所有列的相关系数
correlation_matrix = df.corr()
# 打印相关系数矩阵
print(correlation_matrix)

 

import pandas as pd
import matplotlib.pyplot as plt

# 假设 df 是你的数据框,日期时间为索引
# 如果不是,请将日期时间列设置为索引:df.set_index('日期时间', inplace=True)
df.set_index('日期时间', inplace=True)

# 将索引转为日期类型,并提取年月日
df.index = pd.to_datetime(df.index).date
# 提取含沙量存在的行
df_with_sediment = df.dropna(subset=['含沙量(kg/m3) '])
# 使用移动平均法平滑数据
rolling_mean = df_with_sediment.iloc[:,2].rolling(window=30).mean()

# 绘制原始数据和移动平均线
plt.figure(figsize=(10, 6))
plt.plot(df_with_sediment.index, df_with_sediment.iloc[:,2], label='原始数据')
plt.plot(df_with_sediment.index, rolling_mean, label='30天移动平均线', color='red')
plt.xlabel('日期时间')
plt.ylabel('含沙量(kg/m3)')
plt.title('含沙量长期趋势')
plt.legend()
plt.show()

都是正相关且相关性挺高的,说明二者皆为正影响含沙量。那么再使用时间序列分析方法来识别含沙量的长期趋势:

 

 先记录到这里后面整理一下!只希望大家给我三连就满足了,下一步开始计算6年含沙量预估。

# 将日期时间列设置为索引
df = df.set_index('日期时间')

# 1. 按年份分组
df['年份'] = df.index.year

# 2. 计算年总水流量和排沙量
annual_flow = df.groupby('年份')['流量(m3/s)'].sum()
annual_sediment = df.groupby('年份')['含沙量(kg/m3) '].sum()

# 3. 汇总结果
total_flow = annual_flow.sum()
total_sediment = annual_sediment.sum()

print(f'近 6 年总水流量为: {total_flow} m3/s')
print(f'近 6 年总排沙量为: {total_sediment} kg/m3')

(更新了源码版本)

下一次更新第二问简历时序预测模型,如果对此模型掌握不是很熟悉的同喜,推荐阅读本人专栏:

时序预测模型已经写了有八篇了,对于每个时序预测模型都有各自特点最优的使用场景,但是一般来说大部分时间序列数据都呈现出季节变化(Season)循环波动(Cyclic)。对于在这些数据基础之上进行的建模一般最优是采用季节性时序预测。大家可以试读一下我的这篇文章

 https://blog.csdn.net/master_hunter/category_10967944

那我们下次更新不见不散 

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

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

相关文章

50etf期权最多能开仓多少手?

50etf期权限仓限额的操作,是为了能更好防范和控制期权交易的风险,无论是期货还是期权,在交易中都有规定的持仓限额,不能超过某个额度,那么50etf期权最多能开仓多少手?下文为你们全面介绍!本文来…

2023高教社杯数学建模E题思路模型 - 黄河水沙监测数据分析

# 1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响, 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…

项目01—基于nignx+keepalived双vip的负载均衡高可用Web集群

文章目录 一.项目介绍1.拓扑图2.详细介绍 二.前期准备1.项目环境2.IP划分 三. 项目步骤1.ansible部署软件环境1.1 安装ansible环境1.2 建立免密通道1.3 批量部署nginx 2.配置NFS服务器和负载均衡器搭建keepalived2.1 修改nginx的index.html界面2.2 nginx实现七层负载均衡2.4 使…

[LeetCode]栈,队列相关题目(C语言实现)

文章目录 LeetCode20. 有效的括号LeetCode225. 用队列实现栈LeetCode232. 用栈实现队列LeetCode622. 设计循环队列 LeetCode20. 有效的括号 题目 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有…

【数据结构与算法系列4】长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0 。 示例 1: 输入&…

读书笔记-《ON JAVA 中文版》-摘要24[第二十一章 数组]

文章目录 第二十一章 数组1. 数组特性2. 一等对象3. 返回数组4. 多维数组5. 泛型数组6. Arrays的fill方法7. Arrays的setAll方法8. 数组并行9. Arrays工具类10. 数组拷贝11. 数组比较12. 流和数组13. 数组排序14. binarySearch二分查找15. 本章小结 第二十一章 数组 1. 数组特…

【Spring面试】一、SpringBoot启动优化与Spring IoC

文章目录 Q1、SpringBoot可以同时处理多少请求Q2、SpringBoot如何优化启动速度Q3、谈谈对Spring的理解Q4、Spring的优缺点Q5、Spring IoC容器是什么?作用与优点?Q6、Spring IoC的实现机制是什么Q7、IoC和DI的区别是什么Q8、紧耦合与松耦合的区别&#xf…

算法训练day38|动态规划 part01(理论基础、LeetCode509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯)

文章目录 理论基础什么是动态规划动态规划的解题步骤 509. 斐波那契数思路分析代码实现思考总结 70. 爬楼梯思路分析代码实现思考总结 746. 使用最小花费爬楼梯思路分析代码实现 理论基础 什么是动态规划 动态规划,英文:Dynamic Programming&#xff0c…

【虚拟机开不了】linux、centOS虚拟机出现entering emergency mode解决方案

按他的操作输入journalctl之后输入shiftg到日志最后查看报错发现是xfs(dm-0有问题) xfs_repair -v -L /dev/dm-0 reboot解决问题

生信豆芽菜-XGboost构建诊断模型

网址:http://www.sxdyc.com/xgboostBuilds 1、准备数据 训练集表达谱数据 训练集样本分组数据 验证集表达谱数据 验证集样本分组数据 2、提交等待运行结果即可 当然,如果不清楚数据是什么样的,可以选择下载我们的示例数据&#…

PostMan传时间参数一次性发送多次请求

文章目录 1. Date类型的参数, "date": "2023-09-07 22:01:51"格式会报错2. 在Pre-request Script预置时间3. 使用postman一次性发送多次请求 1. Date类型的参数, “date”: "2023-09-07 22:01:51"格式会报错 2. 在Pre-req…

NumPy模块:Python科学计算神器之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…

巨人互动|Google海外户Google分析的基础概念

Google Analytics(谷歌分析)是最受欢迎的网站分析工具之一。它为网站管理员提供了深入了解其网站访问者的机会,并通过数据分析提供有关网站流量、用户行为和转化率的洞察。 1、跟踪代码(Tracking Code) 跟踪代码是嵌入…

网络技术二十二:NATPPP

NAT 转换流程 产生背景 定义 分类 常用命令 PPP PPP会话建立过程 认证 PPP会话流程

pdf怎么转换成dwg格式?简单转换方法分享

当我们需要在CAD中编辑PDF文件中的向量图形时,将PDF转换成DWG格式是一个非常好的选择。因为PDF是一种非常流行的文档格式,很多时候我们会接收到PDF文件,但是PDF文件中的向量图形无法直接在CAD中编辑。而将PDF转换成DWG格式后,就可…

米贸搜什么是网站排名流量

当谈到数字营销时,你的网站应该作为线上营销的中心枢纽。包括:Ads付费广告、EDM邮件营销、SEO搜索引擎优化等都旨在吸引用户访问你的网站,并在网站上进行深度转化。 被广泛应用且最有效的营销策略之一就是SEO,流量排名是衡量网站受…

Editplus小技巧:一次删除连续的多个空格

Editplus小技巧: 一次删除连续的多个空格 AltDel 请看上图,文件中的多个空格 请看上图,使用快捷键很快就删除了,有点Vim的感觉,爽! 查看Editplus更多的快捷键: Tools>>Preferences 如…

学习Harmony之前必了解的术语,否则一脸懵

以下开发前必须了解 1. HarmonyOS SDK --- 官方SDK 2. DevEco Studio 官方开发工具 DevEco Studio 3.1配套支持HarmonyOS 3.1版本及以上的应用及服务开发,提供了代码智能编辑、低代码开发、双向预览等功能,以及轻量构建工具DevEco Hvigor 、本地模…

WMS系统中的出入库实时监控

一、定义: 出入库实时监控是指通过仓储管理系统(WMS)对仓库内部的物流活动进行实时跟踪、监控和控制的过程。它涉及到对货物的进出仓库、货位的变动、库存的数量和状态等信息的及时记录和更新,以便企业能够准确掌握库存情况、优化…

USB Server集中管控加密狗,浙江省电力设计院正在用

近日,软件加密狗的分散管理和易丢失性,给拥有大量加密狗的浙江省电力设计院带来了一系列的问题。好在浙江省电力设计院带及时使用了朝天椒USB Server方案,实现了加密狗的集中安全管控,避免了加密狗因为管理不善和遗失可能带来的巨…