当前位置: 首页 > news >正文

【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题 太阳黑子预报完整解题思路

A题 太阳黑子预报 题目任务思路分析第一问第二问第三问 题目 太阳黑子是太阳光球上的一种现象,表现为比周围区域更暗的临时斑点。它们是由于磁通量集中而导致表面温度降低的区域,磁通量的集中抑制了对流。太阳黑子出现在活跃区域内,通常成对…...

Huawei FusionSphere FusionCompte FusionManager

什么是FusionSphere FusionSphere 解决方案不独立发布软件,由各配套部件发布,请参 《FusionSphere_V100R005C10U1_版本配套表_01》。 目前我们主要讨论FusionManager和FusionCompute两个组件。 什么是FusionCompte FusionCompute是华为提供的虚拟化软…...

GSLB是什么?谈谈对该技术的一点理解

GSLB是什么?它又称为全局负载均衡,是主流的负载均衡类型之一。众所周知,负载均衡位于服务器的前面,负责将客户端请求路由到所有能够满足这些请求的服务器,同时最大限度地提高速度和资源利用率,并确保无任何…...

【接口测试】POST请求提交数据的三种方式及Postman实现

1. 什么是POST请求? POST请求是HTPP协议中一种常用的请求方法,它的使用场景是向客户端向服务器提交数据,比如登录、注册、添加等场景。另一种常用的请求方法是GET,它的使用场景是向服务器获取数据。 2. POST请求提交数据的常见编…...

SpringBoot系列之集成Jedis教程

SpringBoot系列之集成Jedis教程,Jedis是老牌的redis客户端框架,提供了比较齐全的redis使用命令,是一款开源的Java 客户端框架,本文使用Jedis3.1.0加上Springboot2.0,配合spring-boot-starter-data-redis使用&#xff0…...

centos用什么命令可查看版本号

概述 查版本号的命令:1、“cat /etc/redhat-release”,可输出centos版本号;2、“cat /proc/version”、“uname -a”或“uname -r”,可输出内核版本号。 本教程操作环境:centos7.9.2009系统。 查看centos版本 [roo…...

大数据之Redis

NoSQL SQL数据库泛指关系型数据库NoSQL不拘泥于关系型数据的设计范式,放弃了通用的技术标准,为某一特定领域场景而设计 NoSQL的特点 不遵循SQL标准不支持ACID远超SQL的性能 NoSQL的适用场景 对数据高并发的读写海量数据的读写对数据高可扩展性的 N…...

【React设计】React企业级设计模式

Image Source : https://bugfender.com React是一个强大的JavaScript库,用于构建用户界面。其基于组件的体系结构和构建可重用组件的能力使其成为许多企业级应用程序的首选。然而,随着应用程序的规模和复杂性的增长,维护和扩展变得更加困难。…...

赴日程序员高年薪过上“躺平”生活?

日本的IT行业想要达到的高薪,也是需要很多资历和经验的,不过即使你是新卒,也能拿到相比国内来说让你满意的薪资。 刚入职的起薪是20-23万日元/月,情报信息业出身,技术掌握不错,起薪是25万-30万日元。之后经…...

Windows开启SQL Server服及1433端口

需求:Windows开启SQL Server服务及1433端口 目前端口没有启动 解决: 打开SQL Server配置管理器(winR) 各个sqlserver版本在textbox中输入对应的命令如下: SQLServerManager15.msc(对于 SQL Server 2019 &am…...

网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

Java全能学习面试指南:https://javaxiaobear.cn 网盘,又称云盘,是提供文件托管和文件上传、下载服务的网站(File hostingservice)。人们通过网盘保管自己拍摄的照片、视频,通过网盘和他人共享文件&#xff…...

整数和浮点数在内存中的存储

文章目录 每日一言整数在内存中的存储方式浮点数在内存中的存储结语 每日一言 You just can’t beat the person who never gives up. 你无法打败那位永不放弃的人。 整数在内存中的存储方式 整数在内存中的存储方式通常采用二进制形式,即将整数的数值转化为二进制…...

rabbitMQ镜像队列的使用

在rabbitMQ集群中,默认发送消息时,队列默认时在一个节点上存在的。 我们以node01 node02 node03三节点集群为例,在node01声明队列发送消息后,发现: 测试队列只在节点node01上出现。 我们手动停止node01后&#xff0c…...

ros来保存图像和保存记录视频的方法---gmsl相机保存视频和图片

1,保存图片 rosrun image_view image_view image:=/myimg_topic这个命令只是用来查看图像的,它并不会保存图像。如果你想要保存图像,你需要使用image_saver节点,并指定保存路径。例如: 下面指令就可以了,可以用 rosrun image_view image_saver image:=/myimg_topic _fi…...

Oracle19c使用adrci清理日志文件

Oracle中通常有好多日志文件,遇到异常情况会产生大量日志,造成磁盘空间紧张。 故需要清理对应文件。包括trace文件,incident文件,listener log文件等。 19c中oracle提供了一个ADRCI的命令行工具来查看ADR中的alert日志和trace信息…...

Ubuntu之Sim2Real环境配置(坑居多)

不要一上来就复制哦,因为很多下面的步骤让我走了很多弯路,如果可能的话,我会重新整理再发出来 前提: 参考教程 Docs 创建工作空间(不用跟着操作,无用) 1.创建sim2real server container 1.尝试创建sim2r…...

java中BigDecimal里面的subtract函数的意思?

在Java中,BigDecimal类提供了一个名为subtract()的函数,用于执行两个BigDecimal对象的减法操作。该函数返回一个新的BigDecimal对象,表示两个操作数相减的结果。 下面是BigDecimal.subtract()函数的用法示例: java Copy code im…...

线程变量引发的session混乱问题

最近不是在救火,就是在救火的路上。 也没什么特别可写的,今天记录下最近遇到的一个问题,个人觉得挺有意思, 待有缘人阅读 言归正传,售后反馈: 营业查询中付款方式为第三方支付的几条银行缴费,创…...

dockerfile与docker-compose解释及对比

Dockerfile 是一个文本文件,用于定义单个Docker镜像的构建过程和配置。它包含了一系列的指令,如FROM、RUN、COPY、CMD等,按照顺序执行这些指令来构建镜像。Dockerfile可以定义容器的基础镜像、安装依赖软件、拷贝文件、运行命令等操作。通过…...

数据库更换版本

目录 0.前言 1.官网下载MySQL 2.配置初始化文件my.ini 3.初始化MySQL 4.安装mysql服务并启动修改密码 5.配置环境变量​编辑 0.前言 心累,为了完成实验,必须使用8.0版本导致我更新版本的时候,把sqlyog干崩溃了,什么版本不兼…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

大数据学习(132)-HIve数据分析

​​​​🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言&#x1f4…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)&#xff…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...