【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

相关文章

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2