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

2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序

2021年电工杯数学建模

B题 光伏建筑一体化板块指数发展趋势分析及预测

原题再现:

  国家《第十四个五年规划和 2035 年远景目标纲要》中提出,将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体化(BIPV)是充分利用工业建筑、公共建筑屋顶等资源实施分布式光伏发电工程,它对我国实现“碳达峰”和“碳中和”起到重要作用。目前已有北京、天津、上海、重庆、内蒙古、浙江等 31 地发布光伏建筑一体化未来三至五年相关政策,这将对光伏建筑一体化相关上市企业的发展带来一定影响。在股票交易软件中,每支股票都有日 K 线(由开盘价、收盘线、最高价、最低价构成),还有移动平均线(5 日、10 日、20 日等),通过对日 K 线和移动平均线的分析,可知每支股票的走势。股票市场中有板块指数(将同一板块的个股按不同的权重方式生成相关指数),它是对该板块走势的整体反映。现统计沪深股市中 37 家光伏建筑一体化相关企业的股票数据(见附件 1),将这 37 家企业股票看作一个整体称为光伏建筑一体化板块。光伏建筑一体化板块作为新兴板块,通过对板块指数发展趋势做出预测,可以了解板块相应行业未来的发展趋势。
  请根据所给数据资料,解决以下问题:
  1.利用附件 1 中数据,给出光伏建筑一体化板块指数的移动平均线(5 日、10 日、20 日等)模型,并绘制 2019 年 4 月 1 日至 2021 年 4 月 30 日该板块指数的移动平均线。
  2.利用 2021 年 5 月 6 日至 5 月 28 日数据,对所建立模型进行误差分析并修正模型,根据修正后的模型对该板块未来发展趋势做出预测,给出 5 月 28 日后20 个交易日的日移动平均线、3 周的周移动平均线、2 个月的月移动平均线。
  3.利用 2019 年 4 月 1 日至 2021 年 5 月 28 日数据,以 2 个月为一个时间段,对上证指数和光伏建筑一体化板块指数进行相关性分析。
  4.对光伏建筑一体化板块个股投资风险进行评估,给出该板块 37 支股票2021 年 6 月份投资风险由低到高的排序结果。假定投资者持有资金 100 万元人民币,欲全部用于该板块的投资,请给出 2021 年 6 月份的最优投资方案(当日可用于投资的资金为上一个交易日结束后投资者所持有的资金,且每日持股数不超过 5 支)。
  5.请给相关部门写一份不少于 1500 字关于我国光伏建筑一体化行业未来发展趋势的报告。
  附件 1:沪深股市中 37 家光伏建筑一体化相关企业的股票数据
  附件 2:http://www.csindex.com.cn/zh-CN/indices/index-rules中证指数有限公司

整体求解过程概述(摘要)

  光伏建筑一体化指的是利用公共建筑、工业建筑的顶层布置光伏发电板,利用这些闲置资源来进行分布式光伏发电,以此实现“碳中和”目标。因此,对光伏建筑一体化的研究显得极为重要,本文针对光伏建筑一体化板块指数的发展趋势,建立了相关模型进行分析与预测。
  针对问题一,首先建立了光伏建筑一体化板块指数的数学模型,通过平均加权求和的方式,将该板块 37 只股票的加权平均和作为板块指数。为了计算出板块指数的移动平均线,首先将板块指数的收盘价数据进行整理,如图 2 所示。据此绘制了板块指数的 5 日、10 日、20 日的移动平均线,如图 3 所示。然后以 5日移动平均线为例进行分析,建立了多幂次多项式数学模型,见式(3)。最后采用递推最小二乘法进行迭代求解,结果如图 4 所示,得到最终的模型见式(7)。
  针对问题二,首先通过问题一模型对 2021 年 5.6~5.28 的移动平均线进行预测,然后与实际数据进行对比分析,结果如图 5 所示,此时平均误差为 1.2。然后通过 2021 年 5.6~5.28 时间段的数据对模型进行修正,同时修改模型的最大幂次,结果如图 6 所示,此时的平均误差为 0.2329,相比模型修正前的误差,修正后的平均误差同比下降了 80.6%。然后通过修正后的模型对未来数据进行预测,结果如图 7 所示。
  针对问题三,由于上证指数和光伏建筑一体化指数的数值差异较大,因此首先对其进行归一化处理,然后利用加权平均的方式,建立了上证指数和光伏建筑一体化指数各自的综合指数模型,并对其进行求解,结果如图 8 所示。最后采用pearson 系数对二者指数进行相关性分析,结果如图 9 所示,其中 13 个时间段中,有 2 个时间段高度正相关;3 个时间段中度正相关;3 个时间段低度正相关;4个时间段不相关;1 个时间段中度负相关。
  针对问题四,首先将将开盘价、最高价、最低价、收盘价数值与上一交易日的数值的差作为评价指标,然后以指标平均和的负数作为标准建立了综合评价模型,见式(12)。通过该模型对光伏一体化板块的 37 只股票进行了风险平均,结果如图 10 所示。其中,风险最低的 5 只股票依次是隆基股份、森特股份 、南玻A、中来股份 、 苏美达。最后通过风险程度,给出了投资者的最优投资方案,如表 2 所示。
  针对问题五,根据本文研究结果和资料查询,给出了关于我国光伏建筑一体化行业未来发展趋势的报告。

模型假设:

  1、假设搜集到的上证指数数据和附件所给数据真实有效。
  2、假设数据预测时,不考虑其他突变因素的影响
  3、假设 BIPV 板块的个股企业在预测时间内不会退市。

问题分析:

  问题一分析
  针对问题一,需建立出光伏建筑一体化板块指数移动平均线模型,首先,根据已知数据采用平均加权求和的方式得到板块指数中各变量的模型,进而可以得到板块指数中的收盘价,由题需绘制 5、10、20 日移动平均线,故分别以 5、10、20 为采样周期,得到对应的移动平均线,在此基础上,进一步建立多幂次多项式数学模型来表示板块指数移动平均线模型,通过求解得到该模型系数结果。
  问题二分析
  针对问题二,需利用 2021 年 5 月 6 日至 5 月 28 日的数据,来分析问题一中所建模型的误差并进行修正,由于该时间段内的数据较少,利用 10 日、20 日移动平均线模型进行预测时可验证的数据不足,因此,本问主要考虑利用问题一中所建立的 5 日移动平均线模型进行预测,通过与实际值进行对比,从而可以得到模型的预测误差,完成误差分析,根据题意得,需利用 5 月 6 日至 5 月 28 日的数据对模型进行修正,因此,考虑将此段时间内实际数据代入问题一所建立的多幂次多项式数学模型中,可以利用递推最小二乘法重新求得最优系数,完成对模型的修正,进而利用修正后的模型重新进行预测。
  问题三分析
  针对问题三,需分析上证指数和光伏建筑一体化板块指数的相关性,根据相关性定理,需先分别求得两者指数的一个代表性指标,再利用相关系数计算公式在求得相关性,考虑到两者指数中包括多个指标且每个指标差异较大,因此,先分别将两者的各个指标进行归一化处理并加权求和,来得到两者的综合指数,根据题目要求,需以两个月为一个时间段,故将总时间分成 13 段,分别进行相关性分析。
  问题四分析
  针对问题四,需对板块中 37 支股票进行风险评估,本问考虑当股票波动较大时,其风险也会较大,因此选取个股指数中的开盘价、最高价、最低价以及收盘价作为评价指标,但考虑到每个指标差异较大,故重新选取该指标当前时刻数值与上一时刻数值的差值作为新的评价指标,在此基础上进行加权平均,得到个股的风险评价模型,由于该模型主要包括个股指数两个时刻的差值,即变化量,因此,判断模型计算值越大,则风险越高,反之越低,最后选取风险评价值最低的 5 支按比例分配投资资金即可。
  问题五分析
  针对问题五,通过查阅相关资料,了解光伏建筑一体化的概念以及发展现状,根据本文对于该板块股市的分析,进一步分析该板块未来发展趋势,并提出相关建议。

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

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
%先求时延和嵌入维,带入本程序,Lyapunov_rosenstein_2.dll调用需要安装完整Simulink功能
% 计算时间序列 Lyapunov 指数
clc
clear
close all
data = textread('深证.txt');             % 时间序列,列向量
data = data(end-2000:end);
%-----------------------------------------------------------------
% Logistic 入口参数
tau = 2;                        % 时延
m = 25;                          % 嵌入维
[xn] = PhaSpaRecon(data,tau,m);    % 每列为一个点
xn = xn';                       % 每行为一个点
P =fix(period_mean_fft(data));     % 序列平均周期
if P>500P=500;
end
taumax = 500;                    % 最大离散步进时间
fs = 1;                         % 采样频率
Y = Lyapunov_rosenstein_2(xn,fs,tau,m,taumax,P);
Y(1)=[];
figure
plot(log(Y),'b-'); grid; xlabel('i'); ylabel('y(i)');
linear_zone=[1:length(Y)]';
F = polyfit(linear_zone,log(Y),1);
y=linear_zone.*F(1)+F(2);
hold on
plot(linear_zone,y,'r-')
legend('data','线性')
str = ['y=',num2str(F(1)),'x+(',num2str(F(2)),')'];
text(50,max(y),str)
clear
clc
%cao法求嵌入维
data = textread('深证.txt');             % 时间序列,列向量
data = data(end-100:end);
min_m=1;
max_m=30;
tau=2;
k=1;
N=length(data);
En=[];
for m=min_m:max_mNm=N-tau*(m-1);Y=[];D=[];ad=[];Y=reconstitution(data,N,m,tau);for i=1:N-m*taud=[];for j=1:N-m*taud(j)=norm(Y(:,i)-Y(:,j),inf);endtemp=[];temp=sort(d);D(i,1)=i;  temp1=[];temp2=[];temp1=find(temp>0);temp2=find(d==temp(temp1(1)));D(i,2)=temp2(1);  D(i,3)=temp(temp1(1));%计算a(i,m)Y1=[];Y2=[];Y1=[Y(:,i);data(m*tau+i)];Y2=[Y(:,D(i,2));data(D(i,2)+m*tau)];ad(i)=norm(Y1-Y2,inf)/D(i,3);end%求E(d)E(k,1)=m;E(k,2)=sum(ad)/(N-m*tau);%求E*(d)En(k,1)=m;dd=[];for kk=1:N-m*taudd(kk)=abs(data(D(kk,1)+m*tau)-data(D(kk,2)+m*tau));endEn(k,2)=sum(dd)/(N-m*tau);k=k+1;
end
%求E1(d)
E1=[];
for i=1:(max_m-min_m)E1(i,1)=E(i,1);E1(i,2)=E(i+1,2)/E(i,2);
end
%求E2(d)
E2=[];
for i=1:(max_m-min_m)E2(i,1)=En(i,1);E2(i,2)=En(i+1,2)/En(i,2);
end
figure(1)
plot(E1(:,1),E1(:,2),'-bs',E2(:,1),E2(:,2),'-r*');xlabel('嵌入维数');ylabel('E1(m)&E2(m)');
grid on
function [xn,dn] = PhaSpaRecon(s,tau,m,T)
% 混沌序列的相空间重构 (phase space reconstruction)
% [xn, dn, xn_cols] = PhaSpaRecon(s, tau, m)
% 输入参数:    s          混沌序列(列向量)
%               tau        重构时延
%               m          重构维数
%               T          直接预测步数
% 输出参数:    xn         相空间中的点序列(每一列为一个点)
%               dn         一步预测的目标(行向量)[rows,cols] = size(s);
if (rows>cols)len = rows;s = s';
elselen = cols;
endif (nargin < 4)T = 1;
endif (nargout==1)if (len-(m-1)*tau < 1)disp('err: delay time or the embedding dimension is too large!')xn = [];elsexn = zeros(m,len-(m-1)*tau);for i = 1:mxn(i,:) = s(1+(i-1)*tau : len-(m-i)*tau);   % 相空间重构,每一行为一个点 endendelseif (nargout==2)if (len-T-(m-1)*tau < 1)disp('err: delay time or the embedding dimension is too large!')xn = [];dn = [];elsexn = zeros(m,len-T-(m-1)*tau);for i = 1:mxn(i,:) = s(1+(i-1)*tau : len-T-(m-i)*tau);   % 相空间重构,每一行为一个点 enddn = s(1+T+(m-1)*tau : end);    % 预测的目标endend
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序

2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现&#xff1a; 国家《第十四个五年规划和 2035 年远景目标纲要》中提出&#xff0c;将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…...

pandas教程:Essential Functionality 索引 过滤 映射 排序

文章目录 5.2 Essential Functionality&#xff08;主要功能&#xff09;1 Reindexing&#xff08;重新索引&#xff09;2 Dropping Entries from an Axis (按轴删除记录)3 Indexing, Selection, and Filtering(索引&#xff0c;选择&#xff0c;过滤)Selection with loc and i…...

pyspark连接mysql数据库报错

使用pyspark连接mysql数据库代码如下 spark_conf SparkConf().setAppName("MyApp").setMaster("local")spark SparkSession.builder.config(confspark_conf).getOrCreate()url "jdbc:mysql://localhost:3306/test?useUnicodetrue&characterE…...

HK WEB3 MONTH Polkadot Hong Kong 火热报名中!

HK Web3 Month 11月除了香港金融科技周外&#xff0c;HK Web3 Month又是一大盛事&#xff0c;从10月29日开始开幕直到11月18日结束。此次将齐聚世界各地的Web3产业从业者、开发者、社群成员和学生来参与本次盛会。除外&#xff0c;超过75位产业知名的讲者与超过50场工作坊将为…...

“第六十三天”

这两天怎么做的这么别扭&#xff0c;为什么我的vs 的strlen函数包括终止字符了&#xff1b; 哦哦&#xff0c;明白了&#xff0c;fgets函数读取在未达到指定字长&#xff0c;或者遇见空白符之前&#xff0c;会读取前面的所有字符&#xff0c;所以会读取换行符&#xff0c;而get…...

常用排序算法实现

时间复杂度 O ( 1 ) O(1) O(1) void func1(int n){int count 100;count; } void func2(int n){int count 100;for(int i 0; i < count;i){} } int func3(int n){return n; }O ( n ) O(n) O(n) void func1(int n){int count 100;for(int i 0; i < n;i){count;} …...

使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别

目标网站&#xff1a;https://www.txrjy.com/forum.php 一、进入网页&#xff0c;右键“检查” 二、输入用户名和密码&#xff0c;点击“登录”&#xff0c;点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项&#xff0c;找到URL 四、相关代码&#xff1a; …...

Redis 的缓存击穿,穿透,雪崩及其解决方案

1 缓存穿透 什么是缓存穿透&#xff1f; 大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力&#xff0c;可能直接就被这么多…...

JWT原理分析——JWT

了解为什么会有JWT的出现&#xff1f; 首先不得不提到一个知识叫做跨域身份验证&#xff0c;JWT的出现就是为了更好的解决这个问题&#xff0c;但是在没有JWT的时候&#xff0c;我们一般怎么做呢&#xff1f;一般使用Cookie和Session&#xff0c;流程大体如下所示&#xff1a;…...

Jprofiler/ VisualVM 定位内存溢出OOM

下载,接受协议下一步下一步,最后选择与IDEA集成OK ej-technologies - Java APM, Java Profiler, Java Installer Builder IDEA配置参数: # F:\study\spring-test\dump 为dump文件保存路径-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathF:\study\spring-test\dumppackage …...

NOIP2023模拟13联测34 competition

题目大意 有一场题目数量为 m m m的比赛&#xff0c;有一个团队想要来参加。 这个团队有 n n n个选手&#xff0c;编号为 i i i的选手能做第 l i ∼ r i l_i \sim r_i li​∼ri​道题&#xff0c;每题他都有 100 % 100\% 100%的概率做出来。 这个团队会随机派出一只队伍来参…...

Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录&#xff0c;包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合&#xff0…...

用 QT 开发软件会吃官司吗?

之前我写过我们现在使用 QT 开发跨平台软件&#xff0c;有朋友留言&#xff0c;QT 虽好&#xff0c;当心收到律师函。今天就来聊聊这个话题。 在开始这个话题之前&#xff0c;我们先把使用盗版 QT 排除在外&#xff0c;只讨论在合法且遵从版权协议的前提下&#xff0c;能否使用…...

远程运维用什么软件?可以保障更安全?

远程运维顾名思义就是通过远程的方式IT设备等运行、维护。远程运维适用场景包含因疫情居家办公&#xff0c;包含放假期间出现运维故障远程解决&#xff0c;包含项目太远需要远程操作等等。但远程运维过程存在一定风险&#xff0c;安全性无法保障&#xff0c;所以一定要选择靠谱…...

数据结构与算法C语言版学习笔记(2)-线性表、顺序存储结构的线性表

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 数据结构部分的知识框架一、线性表的定义和特点1.定义2.特点 二、线性表的实际案例引入1.案例一&#xff1a;多项式的加减乘除2.案例二&#xff1a;当多项式是稀疏多…...

【vite】vite.defineConfig is not a function/npm无法安装第三方包问题

当使用vite命令 npm init vite-app 项目名称时配置 import vue from vitejs/plugin-vueexport default defineConfig({plugins: [vue()] })会报错vite.defineConfig is not a function 还有就是npm下载的时候也会报错 原因vite插件vitejs/plugin-vue和vite版本问题 解决 调…...

234. 回文链表 --力扣 --JAVA

题目 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解题思路 判断链表是否为回文链表取决于链表中各个节点的值&#xff0c;所以可以通过存储各节点的值进行对比判断&…...

【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter19/src/com/yinhai 文件 一、文件&#xff0c;流 文件,对我们并不陌生&#xff0c;文件是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件..都是文件。它既可以保存一张图片…...

R语言 复习 习题图片

这是日天土申哥不知道从哪淘来的R语言复习知识点图片&#xff0c;大部分内容都是课后习题的答案 加油吧&#xff0c;骚年&#xff0c;考个好分数...

c语言 结构体 简单实例

结构体 简单例子 要求&#xff1a; 结构体保存学生信息操作 代码 #include <stdio.h>//定义结构体 struct student{int ID;char name[20];char sex;char birthday[8];int grade; };int main(){int number;printf("请输入学生个数&#xff1a;");scanf(&quo…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用

Linux 内存管理调试分析&#xff1a;ftrace、perf、crash 的系统化使用 Linux 内核内存管理是构成整个内核性能和系统稳定性的基础&#xff0c;但这一子系统结构复杂&#xff0c;常常有设置失败、性能展示不良、OOM 杀进程等问题。要分析这些问题&#xff0c;需要一套工具化、…...