2023年西南大学数学建模C题天气预报解题全过程文档及程序

2023年西南大学数学建模

C题 天气预报

原题再现:

  天气现象与人类的生产生活、社会经济、军事活动等方方面面都密切相关,大到国家,小到个人,都受到极端天气的影响。2022年6月,全球陆地地区出现了自1850年代末人类有系统气象记录以来最热的温度,干旱、野火、暴雨和洪水席卷北半球。2022年夏季,我国长江流域发生了1961年有记录以来持续时间最长、强度最大的特大干旱。其中,重庆全市出现持续高温天气,多地持续40℃高温。自2022年8月17日重庆涪陵区首次发生山火灾害,十天时间内南川、江津、大足、铜梁、北碚、巴南、璧山、开州、长寿等地相继发生多起山火。
  天气预报是对未来一定时期内天气(如气温、风、云、降水和天气现象)变化的事先估计和预告。天气预报是气象工作为国民经济和国防建设服务的重要手段。天气预报按预报范围而分,有区域天气预报和局地天气预报。按服务对象的需要而分有日常性的公众天气预报和专业天气预报。按时效的长短而分,有短期、中期和长期天气预报。气象台通过各种渠道及时准确地公开发布天气预报,特别是灾害性天气预报,在保护人民生命财产,促进经济发展等方面发挥着重要作用。近代以来,天气预报一直是以天气学原理为基础的。随着计算技术及探测技术的发展,除常规天气图方法结合数理统计方法制作预报外,又将气象雷达和卫星探测资料应用于预报业务,同时发展了数值预报方法。该方法通过确定大气质量、能量和动量的守恒原理来预报大气的物理过程,显著地提高天气形势预报的质量,从而促进天气预报的客观定量化。
  请通过提供的网址或其它资料收集数据,解决如下问题:
  (1)从机理分析的角度,建立不同天气预报策略(预报范围和时效)的数学模型。
  (2)请收集数据,对2022年夏天重庆市的天气,以及发生过特大山火区域的天气进行预测,分析其发生发展的必然性与偶然性;
  (3)请收集数据,以提交论文的时间为起点,对重庆市沙坪坝区的天气进行预测,给出前3天内、第10-15天、第30-35的预测结果。

问题背景:

  天气现象与人类的生产生活、社会经济、军事活动等方方面面都密切相关,大到国家,小到个人,都受到极端天气的影响。2022年6月,全球陆地地区出现了自1850年代末人类有系统气象记录以来最热的温度,干旱、野火、暴雨和洪水席卷北半球。2022年夏季,我国长江流域发生了1961年有记录以来持续时间最长、强度最大的特大干旱。其中,重庆全市出现持续高温天气,多地持续40℃高温。自2022年8月17日重庆涪陵区首次发生山火灾害,十天时间内南川、江津、大足、铜梁、北碚、巴南、璧山、开州、长寿等地相继发生多起山火。

问题重述:

  请通过提供的网址或其它资料收集数据,解决如下问题:
  (1)根据实际采集数据,从多角度考虑,建立不同天气预报策略(预报范围和时效)的数学模型。
  (2)收集相关当地天气数据,对2022年夏天重庆市的天气,以及发生过特大山火区域的天气进行预测,分析其发生发展的必然性与偶然性;
  (3)请收集数据,以提交论文的时间为起点,对重庆市沙坪坝区的天气进行预测,给出前3天内、第10-15天、第30-35的预测结果。

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可
非慈善耶稣

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可
非慈善耶稣

部分程序代码:

i

mport numpy as np; 
import statsmodels.api as sm
a=np.loadtxt("Pdata12_3.txt")   #加载表中x1,x2,x3,y的11行4列数据
x=a[:,:3]  #提出自变量观测值矩阵
X=sm.add_constant(x)  #增加第一列全部元素为1得到增广矩阵
md=sm.OLS(a[:,3],X).fit()  #构建并拟合模型
b=md.params          #提取所有回归系数
y=md.predict(X)      #求已知自变量值的预测值
print(md.summary())  #输出模型的所有结果
print("相关系数矩阵:\n",np.corrcoef(x.T))
X1=sm.add_constant(a[:,0])
md1=sm.OLS(a[:,2],X1).fit()
print("回归系数为:",md1.params)灰色预测
from decimal import *class GM11():def __init__(self):self.f = Nonedef isUsable(self, X0):'''判断是否通过光滑检验'''X1 = X0.cumsum()rho = [X0[i] / X1[i - 1] for i in range(1, len(X0))]rho_ratio = [rho[i + 1] / rho[i] for i in range(len(rho) - 1)]print("rho:", rho)print("rho_ratio:", rho_ratio)flag = Truefor i in range(2, len(rho) - 1):if rho[i] > 0.5 or rho[i + 1] / rho[i] >= 1:flag = Falseif rho[-1] > 0.5:flag = Falseif flag:print("数据通过光滑校验")else:print("该数据未通过光滑校验")'''判断是否通过级比检验'''lambds = [X0[i - 1] / X0[i] for i in range(1, len(X0))]X_min = np.e ** (-2 / (len(X0) + 1))X_max = np.e ** (2 / (len(X0) + 1))for lambd in lambds:if lambd < X_min or lambd > X_max:print('该数据未通过级比检验')returnprint('该数据通过级比检验')def train(self, X0):X1 = X0.cumsum()Z = (np.array([-0.5 * (X1[k - 1] + X1[k]) for k in range(1, len(X1))])).reshape(len(X1) - 1, 1)# 数据矩阵A、BA = (X0[1:]).reshape(len(Z), 1)B = np.hstack((Z, np.ones(len(Z)).reshape(len(Z), 1)))# 求灰参数a, u = np.linalg.inv(np.matmul(B.T, B)).dot(B.T).dot(A)u = Decimal(u[0])a = Decimal(a[0])print("灰参数a:", a, ",灰参数u:", u)self.f = lambda k: (Decimal(X0[0]) - u / a) * np.exp(-a * k) + u / adef predict(self, k):X1_hat = [float(self.f(k)) for k in range(k)]X0_hat = np.diff(X1_hat)X0_hat = np.hstack((X1_hat[0], X0_hat))return X0_hatdef evaluate(self, X0_hat, X0):'''根据后验差比及小误差概率判断预测结果:param X0_hat: 预测结果:return:'''S1 = np.std(X0, ddof=1)  # 原始数据样本标准差S2 = np.std(X0 - X0_hat, ddof=1)  # 残差数据样本标准差C = S2 / S1  # 后验差比Pe = np.mean(X0 - X0_hat)temp = np.abs((X0 - X0_hat - Pe)) < 0.6745 * S1p = np.count_nonzero(temp) / len(X0)  # 计算小误差概率print("原数据样本标准差:", S1)print("残差样本标准差:", S2)print("后验差比:", C)print("小误差概率p:", p)if __name__ == '__main__':import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']  # 步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)# 原始数据XX = np.array([21.2, 22.7, 24.36, 26.22, 28.18, 30.16, 32.34, 34.72, 37.3, 40.34, 44.08, 47.92, 51.96, 56.02, 60.14,64.58,68.92, 73.36, 78.98, 86.6])# 训练集X_train = X[:int(len(X) * 0.7)]# 测试集X_test = X[int(len(X) * 0.7):]model = GM11()model.isUsable(X_train)  # 判断模型可行性model.train(X_train)  # 训练Y_pred = model.predict(len(X))  # 预测Y_train_pred = Y_pred[:len(X_train)]Y_test_pred = Y_pred[len(X_train):]score_test = model.evaluate(Y_test_pred, X_test)  # 评估# 可视化plt.grid()plt.plot(np.arange(len(X_train)), X_train, '->')plt.plot(np.arange(len(X_train)), Y_train_pred, '-o')plt.legend(['降雨实际值', '灰色预测模型预测值'])plt.title('训练集')plt.show()plt.grid()plt.plot(np.arange(len(X_test)), X_test, '->')plt.plot(np.arange(len(X_test)), Y_test_pred, '-o')plt.legend(['负荷实际值', '灰色预测模型预测值'])plt.title('测试集')plt.show()
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可
非慈善耶稣

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

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

相关文章

Android 10 Launcher3 删除谷歌搜索

命令行获取页面 手机处于launcher首页 adb shell dumpsys window | findstr mCurrentFocus 输出 mCurrentFocusWindow{9afb34d u0 com.android.launcher3/com.android.launcher3.Launcher} 找到源码路径 packages/apps/Launcher3/ Android10源码 搜索控件 grep -r -n Apps…

LabVIEW机械故障诊断中的传感器选择

在机械设备故障诊断中&#xff0c;传感器是关键设备&#xff0c;用于采集设备运行状态的各种数据。常见的传感器类型和选择方法如下&#xff1a; 1. 振动传感器 用于检测设备运行中的振动特征&#xff0c;常见于旋转机械和轴承故障诊断。 加速度传感器&#xff1a;检测高频振…

JVM和数据库面试知识点

JVM内存结构 主要有几部分&#xff1a;堆、栈、方法区和程序计数器 堆是JVM中最大的一块内存区域&#xff0c;用于存储对象实例&#xff0c;一般通过new创建的对象都存放在堆中。堆被所有的线程共享&#xff0c;但是它的访问时线程不安全的&#xff0c;通常通过锁的机制来保证线…

电子发票汇总改名,批量处理电子发票问题

今天给大家推荐一个财务方面工作的软件。可以帮你解决很多财务。发票方面的问题。 电子发票汇总改名 批量处理电子发票问题 这个软件安装之后。会在桌面上分成三个小软件&#xff0c;分别是修改单位信息、自定义命名规则和电子发票汇总改名。 你可以在这个软件里提取PDF或者of…

蓝桥杯练习生第四天

小蓝每天都锻炼身体。 正常情况下&#xff0c;小蓝每天跑 11 千米。如果某天是周一或者月初&#xff08;11 日&#xff09;&#xff0c;为了激励自己&#xff0c;小蓝要跑 22 千米。如果同时是周一或月初&#xff0c;小蓝也是跑 22 千米。 小蓝跑步已经坚持了很长时间&#x…

用 Python 从零开始构建 LLaMA 3

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 文章有点长(字),期望您能坚…

移植 OLLVM 到 LLVM18,修复控制流平坦化报错

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 前言 把 OLLVM 移植到 LLVM18 后&#xff0c;发现 -fla&#xff08;控制流平坦化&#xff09;并不能正常使用。 关于移植过程可以参考这篇文章 【移植 OLLVM…

使用 Ansys LS-DYNA 和平滑粒子 Galerkin 技术仿真硬币冲压

简介 硬币冲压是一种高精度的制造工艺&#xff0c;涉及用模具压制金属坯料以赋予复杂的设计。此过程需要精确的仿真来预测材料行为、优化参数并最大限度地减少缺陷。传统的有限元法 &#xff08;FEM&#xff09; 仿真通常难以应对硬币冲压特有的极端变形和复杂的接触相互作用。…

MyBatis通过注解配置执行SQL语句原理源码分析

文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件&#xff0c;配置mapper接口 <mappers><!--注解配置--><mapper…

如何优雅的关闭GoWeb服务器

以下内容均为Let’s Go Further内容节选以及作者本人理解。 这里创建了一个后台进程用于捕获关闭信号&#xff0c;在后台进程中&#xff0c;主要内容为&#xff1a; 创建一个缓冲通道 quit使用signal.Notify函数监听并捕获关机信号SIGINT,SIGTERM&#xff0c;在捕获关机信号后…

入侵他人电脑,实现远程控制(待补充)

待补充 在获取他人无线网网络密码后&#xff0c;进一步的操作是实现入侵他人电脑&#xff0c;这一步需要获取对方的IP地址并需要制作自己的代码工具自动化的开启或者打开对方的远程访问权限。 1、获取IP地址&#xff08;通过伪造的网页、伪造的Windows窗口、hook&#xff0c;信…

如何构建《交易体系》

文章目录 1、看大盘定仓位1.1 严格的仓位管理策略1.2 永远不满仓,永远不空仓1.3 行情好重仓做收益,行情不好轻仓控回撤,一年抓住2~3波行情1.4 上涨行情6-8成,震荡行情5-6成,下跌行情4成以内2、精选赛道(选择大于努力)2.1 只做主线赛道只做一级题材,远离杂毛题材2.2 选对…

mac 安装graalvm

Download GraalVM 上面链接选择jdk的版本 以及系统的环境下载graalvm的tar包 解压tar包 tar -xzf graalvm-jdk-<version>_macos-<architecture>.tar.gz 移入java的文件夹目录 sudo mv graalvm-jdk-<version> /Library/Java/JavaVirtualMachines 设置环境变…

[SZ901]JTAG高速下载设置(53Mhz)

SZ901最高支持JTAG 53MHz的时钟频率&#xff0c;下载bit文件和固化程序的速度提升非常明显。 首先设置参数 1&#xff0c;将JTAG0 分频系数修改为3 2&#xff0c;设置参数&#xff0c;更新参数。&#xff08;完成&#xff09; 打开VIVADO VIVADO 正常识别FPGA&#xff0c;速…

蓝桥杯刷题——day8

蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di个单位时间&#xff0c;即它最早可以于 Ti时刻开始降落&am…

如何解决vscode powershell乱码

如何解决vscode powershell乱码 在 Visual Studio Code 中使用 PowerShell 时出现乱码&#xff0c;通常是由于终端编码设置或字体不匹配导致的。以下是解决 PowerShell 乱码问题的步骤&#xff1a; 设置 PowerShell 的默认编码 PowerShell 默认的输出编码可能与终端编码不一…

MyBatis入门的详细应用实例

目录 MyBatis第一章&#xff1a;代理Dao方式的CRUD操作1. 代理Dao方式的增删改查 第二章&#xff1a;MyBatis参数详解1. parameterType2. resultType 第三章&#xff1a;SqlMapConfig.xml配置文件1. 定义properties标签的方式管理数据库的信息2. 类型别名定义 MyBatis 第一章&…

深度科普文:细数倾斜摄影数据的缺点

1. 引言 写这篇文章的起因是最近遇到一个使用倾斜摄影数据应标的三维可视化项目&#xff0c;业主认为倾斜摄影数据加载很卡&#xff0c;要求能浏览场景的时候能立刻显示出当前的场景最精细的模型&#xff0c;如下图1所示。其实这个问题遇到的次数还真不少&#xff0c;作为乙方…

wordpress调用指定分类ID下 相同标签的内容

要在WordPress中调用分类ID为1、3、7的分类下&#xff0c;具有相同标签的前10个内容&#xff0c;可以使用自定义的WordPress查询(WP_Query)。以下是实现此功能的步骤和示例代码&#xff1a; 步骤&#xff1a; 确定共同标签&#xff1a; 首先&#xff0c;你需要确定分类1、3、…

GESP CCF C++八级编程等级考试认证真题 2024年12月

202412 GESP CCF C八级编程等级考试认证真题 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 小杨家响应国家“以旧换新”政策&#xff0c;将自家的汽油车置换为新能源汽车&#xff0c;正在准备自编车牌。自编车牌包括5 位数字或英文字母&#xff0c…