2023第十二届“认证杯”数学中国数学建模国际赛赛题A完整解析

A题完整题解

  • 写在前面
    • 假设
      • 数据预处理
    • 问题一
    • 1 基于自适应ARIMA-BP神经网络模型的影响因素预测
      • 1.1 ARIMA模型的建立
      • 1.2 BP神经网络模型的建立
      • 1.3 基于GABP神经网络的预测模型构建
      • 1.4 自适应混合ARIMA-BP神经网络模型的建立
      • 1.5 模型求解
    • 代码
      • Q1_1.m
      • Q1_2.m
  • 完整代码与论文获取

写在前面

发布赛题一直到现在,总算完成了认证杯A题完整的解题过程,包括代码完整代码与结果、解题思路、模型文档与论文框架~

学姐的代码和论文框架保证原创,保证高质量哦,都是跟国奖学长一起努力完成的!!

假设

数据预处理

磁场数据中包含缺失值,故需对缺失值进行插补。在本文中,利用拟合模型对缺失值的进行插补。基于拟合的插补方法的一般步骤如下:
1、收集已有数据:首先,需要收集包含缺失数据的数据集。确保数据集中有足够的样本和特征来进行非线性拟合。
2、建立模型:选择适当的模型来拟合已有数据。常见的非线性模型包括多项式回归、指数函数、对数函数、幂函数等。根据数据的特点和领域知识,选择合适的模型。
3、拟合已有数据:使用已有数据来拟合选定的非线性模型。可以使用回归分析等方法来估计模型的参数。
4、预测缺失数据:使用拟合好的非线性模型来预测缺失数据的值。将已有数据中的特征值代入模型,得到对应的预测值。
在这里插入图片描述

其次,题目中要求以月份为单位对数值进行统计,而原始数据集的统计单位时日。故对日期进行转换,得到以月为单位的序列图如下所示:
在这里插入图片描述

问题一

1 基于自适应ARIMA-BP神经网络模型的影响因素预测

在本章中,基于自适应ARIMA-BP神经网络模型对数据进行预测。

1.1 ARIMA模型的建立

在这里插入图片描述

1.2 BP神经网络模型的建立

BP神经网络是是一种多层前馈算法,由输入层、隐含层和输出层组成。层与层之间有工作信号与误差信号传播。如下图所示为神经网络结构图。
在这里插入图片描述
BP神经网络的运算原理如下:
在这里插入图片描述

1.3 基于GABP神经网络的预测模型构建

(这里写一段话,描述一下问题的复杂度,引出为什么要在BP的基础上设计GABP
本文采用遗传算法对BP神经网络的进行了优化,并在迭代过程中利用BP神经网络的前向传播过程来计算每个个体的适应度,以此来提升算法的优化效率。算法的设计框架如算法如下所示。
在这里插入图片描述

在遗传算法的编码环节,IGABP将神经网络的权重和阈值连续地表示为一个向量,用于构成个体基因的表达。由于在算法运行过程中网络的结构已经确定,所需确定的权重及阈值数量也已经被确定,故在迭代过程中染色体的长度保持不变。
在遗传算法中计算个体适应度的部分,相比GABP使用解码后的个体初始化神经网络,然后根据训练后的输出计算适应度,IGABP从原理上着手,利用神经网络前向传播的过程,直接计算个体的适应度,免去了训练所需的计算量,提高了算法的优化效率。
编码及解码
假设BAGP中所使用的神经网络如下图所示:
在这里插入图片描述

则在确定网络的权重和阈值时,可以设计编码结构为:
在这里插入图片描述

在本文所设计的染色体中,基因位依次分别表述:输入层与隐含层之间的权值、隐含层的阈值、隐含层与输出层之间的权值,输出层的权值。由此,即可确定一个神经网络完整的结构。

在本文所设计的染色体中,基因位依次分别表述:输入层与隐含层之间的权值、隐含层的阈值、隐含层与输出层之间的权值,输出层的权值。由此,即可确定一个神经网络完整的结构。

1.4 自适应混合ARIMA-BP神经网络模型的建立

对于每一预测算法,均通过部分序列作为测试集。本文所设计的混合算法的混合思想主要为:在往期的预测中性能越好则在未来的预测中的权重就越高,对预测值的贡献度就越高。
在这里插入图片描述

式中,为算法k在混合算法中的权重。在每次计算混合预测值时,需要将ARIMA算法与BP神经网络算法的预测值结合起来。其计算公式可以表述为:
在这里插入图片描述

1.5 模型求解

模型求解结果如下:

在这里插入图片描述
(分析一下预测结果,识别出了波动。。。。)
在这里插入图片描述
结合黑子数进行分析,解得下一个太阳周期的开始时间约为2031年,结束时间约为2042年。

代码

Q1_1.m

clc
clear
data=xlsread('磁场.xlsx');
for i=1:size(data,1)
   if isnan(data(i,3)) 
       if isnan(data(i-1,3))
           data(i,3)=data(i+1,3);
       elseif isnan(data(i+1,3))
           data(i,3)=data(i-1,3);
       else
           data(i,3)=round((data(i-1,3)+data(i+1,3))/2);
       end
   end
end

color=[250/255,127/255,111/255;
    130/255,176/255,210/255;
    190/255,184/255,220/255;
    231/255,218/255,210/255;
    153/255,153/255,153/255];
plot([1:1:size(data,1)],data(:,3),'color',color(1,:))
set(gcf,'Color',[1 1 1])
xlabel({'Time'},'Color','k','FontSize',20,'FontName','Times New Roman')
ylabel({'magnetic field'},'Color','k','FontSize',20,'FontName','Times New Roman')

Q1_2.m

clc
clear
data=xlsread('磁场.xlsx');
index=[];
M=Inf;
for i=1:size(data,1)
    if data(i,2)~=M
       index=[index;i]; 
       M=data(i,2);
    end
end
index=[index;size(data,1)+1];
new_data=[];
for i=1:size(index,1)-1
   temp_data=data(index(i):index(i+1)-1,:); 
   new_data(i,1:2)=temp_data(1,1:2);
    new_data(i,3)=mean(temp_data(:,3));
end

color=[250/255,127/255,111/255;
    130/255,176/255,210/255;
    190/255,184/255,220/255;
    231/255,218/255,210/255;
    153/255,153/255,153/255];
plot([1:1:size(new_data,1)],new_data(:,3),'color',color(1,:))
set(gcf,'Color',[1 1 1])
xlabel({'Time'},'Color','k','FontSize',20,'FontName','Times New Roman')
ylabel({'magnetic field'},'Color','k','FontSize',20,'FontName','Times New Roman')

完整代码与论文获取

目前只分享第一问哦,以下是我们的论文框架、技术模板,代码以及使用到的数据。有需要的小伙伴看下面哦

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript短路求值

之前我们学习过两个运算符,and和OR,但是我们之前还没有发挥出他们全部的潜力;它们也可以用于短路求值; OR || 可以使用任何值,也可以返回任何值(不仅仅是布尔型),我们成为短路求值…

数据结构—二叉树

文章目录 10.二叉树(1).二叉树的基本概念(2).遍历#1.前序遍历#2.中序遍历#3.后序遍历#4.非递归中序遍历 (3).中序前/后序建树#1.中序前序遍历建树#2.中序后序遍历建树 (4).递归和二叉树基本操作#1.求树高#2.求结点数#3.求叶子结点数#4.复制树#5.判断两棵树是否相等 (5).特殊二叉…

xss漏洞后端进行html消毒

import org.jsoup.Jsoup;public static String sanitizeHtml(String input) {// 使用 Jsoup 消毒 HTMLreturn Jsoup.clean(input, Safelist.relaxed());}public static void main(String[] args) {String userInput "<p><script>alert(1)</script>Safe…

Linux:vim的简单使用

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、vim的基本概念二、vim的基本操作三、vim正常模式命令集四、vim底行模式命令集五、.xxx.swp的解决总结 前言 本文是对Linux中vim使用的总结 一、vim的基本概念 …

02-使用Git命令操作远程仓库,如克隆或添加远程仓库,拉取或推送内容

操作远程仓库 创建远程仓库 第一步: 访问GitHub官网,登录自己的账号创建一个远程仓库 第二步: 设置远程仓库的信息(一般远程库的名字和本地库的名字一样),仓库创建完成后可以看到仓库地址(每个仓库都会对应一个网络地址) 第三步: 查看本地仓库对应的Https/SSH连接 远程仓库命…

apk和小程序渗透测试

apk和小程序渗透测试 文章目录 apk和小程序渗透测试小程序渗透测试apk和小程序的抓包安装证书apk渗透 小程序渗透测试 小程序的默认路径在 C:\Program Files (x86)\Tencent\WeChat\WeChatApp 使用UnpackMiniApp、wxappUnpacker工具完成逆向 先打开UnpackMiniApp.exe工具 选…

Kotlin学习——kt里的作用域函数scope function,let,run,with,apply,also

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

超全能!PDF转换+套用模板+在线制作电子画册的网站

上班族的朋友们&#xff0c;制作电子画册很苦恼吧&#xff01;没有专业设计水准的&#xff0c;或是想偷偷小懒的看看这里&#xff01;小编说的这些对你的工作非常有效&#xff01; 想要轻轻松松就能制作能与专业设计师们媲美的电子画册&#xff0c;当然是需要一款超全能的工具&…

ESP32CAM视频查看实践

利用ESP32cam的摄像头进行视频查看。视频画质确实模糊&#xff0c;不过不妨碍其高性价比。 1、选择开发板及串口 2、打开例程 3、修改热点和摄像模式 4、复制链接查看 手机浏览器打开

LeetCode Hot100 169.多数元素

题目&#xff1a; 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 方法一&#xff1a;哈希表 ​ class Solution {public int…

Go 语言注释教程

注释是在执行时被忽略的文本。 注释可用于解释代码&#xff0c;使其更易读。 注释还可用于在测试替代代码时防止代码执行。 Go支持单行或多行注释。 Go单行注释 单行注释以两个正斜杠&#xff08;//&#xff09;开头。 在//和行尾之间的任何文本都将被编译器忽略&#xf…

常用OSPF命令有哪些?详细解释~赶快收藏起来!

OSPF&#xff08;Open Shortest Path First开放式最短路径优先&#xff09;是一种动态路由协议&#xff0c;属于内部网关协议(Interior Gateway Protocol,简称IGP)&#xff0c;是基于链路状态算法的路由协议。 配置OSPF会使用到哪些命令&#xff1f; 1、OSPF &#xff08;1&…

C/C++11 语法/概念易错总结(1)

文章目录 缺省参数函数重载引用引用和指针内联宏的优缺点auto范围forNULL和nullptr 缺省参数 半缺省参数必须从右往左依次来给出&#xff0c;不能间隔着给 void Func(int a, int b 10, int c 20){cout<<"a "<<a<<endl;cout<<"b &…

uniapp运行到安卓基座app/img标签不显示

img是html中的标签&#xff0c;他也是一个单标签 image属于服务器控件&#xff0c;是个双标签 问题&#xff1a;uniapp运行到app安卓基座后图片无法显示 原因&#xff1a;自己使用了img标签&#xff0c;而且输入路径无提示&#xff0c;img标签导致图片不显示 解决&#xff…

阅读文献总结2023

阅读文献基于卷积神经网络多源融合的网络安全态势感知模型 阅读文献 基于卷积神经网络多源融合的网络安全态势感知模型 题目基于卷积神经网络多源融合的网络安全态势感知模型文章信息&#xff1a;年份2023发文单位山西财经大学收录刊会计算机科学 &#xff08;北大核心&#…

微服务架构:解析分布式系统的演进

目录 微服务是什么&#xff1f; 微服务的优势 微服务的挑战 应对微服务挑战的方法 结论 在当今快速发展的软件开发领域&#xff0c;微服务架构成为一种备受瞩目的设计理念&#xff0c;被广泛应用于构建灵活、可扩展的分布式系统。本文将深入探讨什么是微服务&#xff0c;为…

掌握HarmonyOS框架的ArkTs如何管理和共享状态数据

ARKTS&#xff08;Ark TypeScript&#xff09;是HarmonyOS应用框架的一部分&#xff0c;提供了一种灵活而强大的状态管理机制。在ARKTS中&#xff0c;AppStorage和LocalStorage是两个关键的概念&#xff0c;它们分别用于应用级和页面级的状态共享。通过深入了解这两个特性&…

管理员配置Jupterhub

在Ubuntu上演示如何部署R语言环境&#xff0c;包括 posit的已经编译了一些R的安装 系统已经装了R&#xff0c;我额外编译的R如何让大家都能用到 如何配置RStudio jupyterhub的配置和使用 管理员如何配置jupyterhub 用户如何配置自己的jupyter环境 Ubuntu上的R部署 这一次…

【C语言】与文件有关的操作

目录 1. 前言2. 什么是文件&#xff1f;2.1 程序文件2.2 数据文件2.3 文件名 3. 二进制文件和文本文件&#xff1f;4. 文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开和关闭 5. 文件的顺序读写5.1 顺序读写函数介绍5.2 对比一组函数 6. 文件的…

不会代码(零基础)学语音开发(语音开发板)

语音开发板板载资源介绍 通过上图可以看到VDB-150S语音开发板应该是集目前上市的所有语音开发板中板载资源最为丰富的一款开发板。板载的主要资源有&#xff1a; 双色LED状态指示灯&#xff1b;两个测试时使用的按键开关&#xff1b;红外寻迹/接近传感器&#xff1b;固件烧录器…