【2023第十二届“认证杯”数学中国数学建模国际赛】A题 太阳黑子预报完整解题思路

本文主要是介绍【2023第十二届“认证杯”数学中国数学建模国际赛】A题 太阳黑子预报完整解题思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A题 太阳黑子预报

  • 题目
  • 任务
  • 思路分析
    • 第一问
    • 第二问
    • 第三问

题目

太阳黑子是太阳光球上的一种现象,表现为比周围区域更暗的临时斑点。它们是由于磁通量集中而导致表面温度降低的区域,磁通量的集中抑制了对流。太阳黑子出现在活跃区域内,通常成对出现,磁极相反。它们的数量随大约 11 年的太阳周期而变化。

单个太阳黑子或太阳黑子群可能会持续几天到几个月不等,但最终会衰减。太阳黑子在太阳表面移动时会膨胀和收缩,直径从 16 千米(10 英里)[1] 到 160,000 千米(100,000 英里)不等。一些较大的太阳黑子不用望远镜也能从地球上看到[2]。它们刚出现时的相对速度(或称正动)可能为每秒几百米。

太阳周期一般持续 11 年左右,从不到 10 年到刚刚超过 12 年不等。在一个周期中,太阳黑子活动的最高点被称为太阳黑子最大点,活动的最低点被称为太阳黑子最小点。在大多数其他太阳活动中也能观察到这一周期,它与太阳磁场的变化有关,太阳磁场的极性会随这一周期而改变。

太阳黑子数量也会长期变化。例如,在1900年至1958年被称为现代太阳活动最大期的时期,太阳黑子数量的趋势是上升的;而在随后的60年中,太阳黑子数量的趋势大多是下降的[3]。总体而言,太阳最后一次像现代极大期那样活跃是在8000多年前[4]。

由于太阳黑子与其他太阳活动的相关性,太阳黑子可用于帮助预测空间天气、电离层状态以及与短波无线电传播或卫星通信相关的状况。许多基于时间序列分析、光谱分析和神经网络的模型已被用于预测太阳黑子活动,但结果往往不佳。这可能与大多数预测模型都是数据层面的现象学有关。

数据层面。虽然我们一般都知道太阳活动周期的长度,但这个周期并不完全稳定,活动的最大强度随时间而变化,峰值出现的时间和峰值持续的时间都很难准确预测。

我们需要预报太阳黑子,通常我们需要按月平均得出结果。我们要求您和您的团队建立合理的数学模型,尽可能可靠地预报太阳黑子。许多天文台和空间科学研究机构都公开提供了相关的观测数据,包括历史上的太阳黑子数量、太阳黑子面积以及可能相关的其他指标的观测数据。例如(不限于):
链接:https://www.sidc.be/SILSO/ datafiles/
链接:http://solarcyclescience.com/activeregions.html

任务

  1. 请预测当前和下一个太阳周期的开始和结束时间;
  2. 请预测下一个太阳活动周期中太阳活动最大值的开始时间和持续时间;
  3. 预测当前和下一个太阳周期中太阳黑子的数量和面积,并在论文中解释你的模型的可靠性。

思路分析

A题为数据分析类的题目,但并未给出数据集,而是给了查找数据集可用的网站。相对来说,数据收集难度较小。且数据集已经过异常值处理,可在论文分析中省略该步骤。就解题需求来说,参赛团队至少要收集到“黑子数量”“黑子面积”和“磁场”的每月平均值这三个数据集。

第一问

题目要求预测当前和下一个太阳周期的开始和结束时间。首先要解决的是:如何定义一个周期的开始与结束,识别条件是什么?可聚焦到题干中所给信息“This period is also observed in most other solar activity and is linked to a variation in the solar magnetic field that changes polarity with this period.”,由此可知,可通过磁场的极性变换来判断太阳周期是否发生了变化。在求解方面,题目已经表明,过去基于时间序列分析、光谱分析和神经网络模型的预测效果并不理想,故在求解过程中应避免利用简单的单一模型进行求解。一个求解思路是:先对磁场的历史数据进行平滑处理,体现出数据的趋势。然后分别使用神经网络和ARIMA等时间序列算法对磁场进行预测。在这之中,对神经网络输入历史数据的原始值,对ARIMA算法输入平滑值,以分别提取非线性及线性特征。最后,可以利用贝叶斯等基于历史预测精度的自适应混合模型对两个算法的预测值进行组合,以适应历史序列值得到更高的预测精度。

第二问

题目要求预测下一个太阳活动周期中太阳活动最大值的开始时间和持续时间。在求解时可基于黑子量对最大值进行识别。为了提高预测精度,可以同时将磁场历史观测值和黑子数量历史观测值一起作为输入传入神经网络中,再对黑子数量的历史观测值进行平滑,输入到时间序列模型中进行预测。神经网络和时间序列分别预测得到结果后,延续第一问采用自适应混合模型对两个算法的预测值进行组合。

第三问

题目要求预测当前和下一个太阳周期中太阳黑子的数量和面积,并解释模型的可靠性。在这问中,需要对黑子数量和面积进行更加精细化的预测。在题干中提到:“Sunspot numbers also change over long periods”。由此可知,序列在长周期中具有一定的趋势,在预测时可以先将这部分提取出来,再分别对趋势项和波动项进行预测。具体实现步骤如下:1)首先通过一次或者二次回归得到序列的增长或衰减趋势;2)用原始数据每一期的观测值减去对应的趋势值,得到去趋势后的波动项;3)基于神经网络对波动项进行预测;4)将趋势项和波动项的预测值进行叠加,得到最终的预测值。在解释可靠性时,可以对模型在测试集上的误差进行分析,或是对模型超参数的灵敏度进行分析。

除上述基本解题思路外,在数据提取阶段还可收集更多与太阳活动相关的数据。在预测时输入到神经网络中以增加信息的提取量。此外,还可以使用启发式算法对超参数进行调参,以提高模型的预测精度。

这篇关于【2023第十二届“认证杯”数学中国数学建模国际赛】A题 太阳黑子预报完整解题思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/444457

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基