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

十分激动啊啊啊题目终于出来了!!官网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.hqwc.cn/news/101639.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ Core Guidelines解析】深入理解现代C++的特性和原理

文章目录 👨‍⚖️《C Core Guidelines解析》的主要观点👨‍🏫《C Core Guidelines解析》的主要内容👨‍💻作者介绍 🌸🌸🌸🌷🌷🌷💐&a…

自动化测试基础知识详解

前言 有颜色的标注主要是方便记忆,勾选出个人感觉的重点 块引用:大部分是便于理解的话,稍微看看就行,主要是和正常的文字进行区分的 1、什么是自动化测试 自动化测试是软件测试活动中一个重要分支和组成部分,随着软…

HTML5

写在前面 一、简单认识HTML 1.1 什么是网页【2023/08/31】 网站是指因特网上根据一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”,通常是HTML格式的文件,它要通过浏览器来阅读。 网页是构成网站的…

腾讯混元助手使用指南

一、腾讯混元助手简介 腾讯混元助手是什么? 腾讯混元助手是由腾讯研发的大语言模型的平台产品,具备跨领域知识和自然语言理解能力,实现基于人机自然语言对话的方式,理解用户指令并执行任务,帮助用户实现人获取信息&am…

用通俗易懂的方式讲解大模型分布式训练并行技术:数据并行

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&a…

基于Googlenet深度学习网络的人脸身份识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... % 定义修改的范围 …

容器编排学习(一)k8s集群管理

一 Kubernetes 1 概述 就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的一一编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统&#xff0…

1782_Adobe Reader X实现pdf分页保存

全部学习汇总: GitHub - GreyZhang/windows_skills: some skills when using windows system. 看了一本pdf电子书,觉得其中几页很值得分享。如果分享整本书当然是不错的选择,但是分享整本书很可能会导致一个结局——内容太多别人不会去看&…

【微服务部署】07-调用链追踪

文章目录 集成SkyWalking实现调用链追踪1. SkyWalking架构图2. 代码集成SkyWalking 集成SkyWalking实现调用链追踪 1. SkyWalking架构图 Receiver是SkyWalking的入口,支持gRPC和HTTP协议。 SkyWalking内部有分析和查询两个部分 存储方面SkyWalking支持Elasticsearc…

【数据结构】单链表详解

当我们学完顺序表的时候,我们发现了好多问题如下: 中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当…

阿里云云主机免费试用三个月

试用链接如下: 阿里云云产品免费试用 云主机 费用试用三个月,每月750小时 实例规格 1核(vCPU) 2 GiB S6 系列机型 适用搭建网站等场景 网络带宽 1M 公网固定网络带宽 云盘40 GiB 真香!!!!!&…

知识大杂烩(uniapp)

首先声明:不敢保证都管用,这是我自己实践得来的。 box-shadow: 这段 CSS 样式代码用于创建一个阴影效果,它是通过 box-shadow 属性来实现的。让我解释一下这段代码的含义: - box-shadow: 这是 CSS 的属性,用于添加阴影…