2020年五一杯数学建模A题煤炭价格预测问题解题全过程文档及程序

2020年五一杯数学建模

A题 煤炭价格预测问题

原题再现

  煤炭属于大宗商品,煤炭价格既受国家相关部门的监管,又受国内煤炭市场的影响。除此之外,气候变化、出行方式、能源消耗方式、国际煤炭市场等其他因素也会影响煤炭价格。请完成如下问题。
  1. 请建立数学模型,通过量化分析的方法,给出影响煤炭价格的主要因素(不超过10种),并且以秦皇岛港动力煤价格为例,给出从2019年5月1日至2020年4月30日,影响秦皇岛港动力煤价格的主要因素的排序(按影响程度从大到小排序,不超过10种)。
  2. 请结合秦皇岛港动力煤价格的历史数据(附件1),以及问题1中的影响煤炭价格的主要因素,建立煤炭价格预测模型,分别以天、周、月为单位,预测未来31天、35周、36个月的煤炭价格,并完成表1。
  3. 为了更加准确地预测秦皇岛港动力煤价格,请综合考虑未来各种情况(例如突发事件)引起的煤炭价格影响因素在结构性和重要性方面的变化,建立煤炭价格综合预测模型,并给出模型的预测结果。
  4. 为保障我国未来煤炭市场的平稳发展,请结合问题3的模型,向政府部门提供相关的政策建议。
  注:
  (1)附件1-秦皇岛港动力煤价格数据由“中国煤炭市场网”提供(https://www.cctd.com.cn/),数据是以“周”为单位的数据,相关的煤炭价格是日期所在周的价格。
  (2)本题中相关参数说明如下:
秦皇岛港动力煤:硫份0.8%,发热量5500kacl/kg;
  煤炭价格类型:煤炭平仓价(FOB价格,是指煤运到港口并装到船上的价格);
  煤炭价格单位:元/吨。

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

  本文主要建立了影响煤炭价格影响因素模型,并且对未来一段时间的煤炭价格进行预测,最后考虑了突发事件对煤炭价格的影响。
  在建立煤炭价格的影响因素模型时,我们选取了煤炭的生产量、可供量等二十二个因素进行逐步回归,得到回归方程之后通过系数的绝对值大小排序来确定影响煤炭价格的主要因素是全国铁路煤炭发运量和国际煤炭价格。之后我们又选取了原煤产量当期值、进口煤量、火力发电当期值、钢材产量当期值、全国铁路煤炭发运量、国际煤炭价格和国际石油价格七个因素构建影响秦皇岛煤炭价格的模型,检验这七个变量的多种共相关性得到影响秦皇岛煤炭价格各个因素影响效果的排序。
  预测煤炭价格时我们使用SPSS软件进行时间序列分析,以价格为因变量,选取附件1的数据为样本数据为样本数据,对煤炭价格数据进行分析,建立ARIMA模型对煤炭价格进行预测未来31天、35周、36个月的煤炭价格。
  在考虑未来突发事件对煤炭价格的影响时,首先检验了2006年7月3日~2020年4月30日这段时间内的突变点。之后使用分形理论来预测煤炭市场的价格。将4次突变点煤炭价格变动的绝对值的平均值作为突发因素加入预测模型,得到面对突发因素时的煤炭价格区间。

模型假设:

  一.由于政策一般具有长期性和稳定性且难以量化,所以假设政策在一段时间保持稳定不发生大的变化。
  二.假设所有统计到的数据都真实有效。
  三. 统计国际石油市场价格时不考虑多种进货渠道,以WTI价格指数为准。
  四. 煤炭开采技术一段时间保持稳定,即开采成本一段时间保持稳定。

问题分析:

  对于问题一,我们用y表示煤炭价格,之后通过查找资料我们又收集了与煤炭价格相关的22个因素,将它们作为自变量 xn(其中x表示第n个自变量)组成候选变量集合。运用MATLAB的逐步回归程序计算,最后得到回归方程,通过回归方程中各个因素的系数来判断各个因素对煤炭价格的影响。之后检验了变量的多种共相关性,用各个自变量系数的绝对值去衡量影响因素和对价格的贡献率就可以得到影响因素的排序。
  对于问题二,通过对秦皇岛港动力煤价格的走势分析,以及问题1中得出的影响煤炭价格的主要因素,以价格为因变量,选取附件1的数据为样本数据为样本数据,我们选取ARIMA模型建立煤炭价格预测模型,分别以天、周、月为单位,预测未来31天、35周、36个月的煤炭价格。
  对于问题三,我们首先求出2006~2020中每个月的价格平均值作为新的序列,之后检测突变点,将突变点价格变动绝对值的平均值作为突发因素。之后使用分形理论建立煤炭价格的预测模型,再将突变因素加入模型。

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

在这里插入图片描述

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

程序代码:(代码和文档not free)

load sn.txt  
[m,n]=size(sn);
x0=sn(:,[1:n-1]);y0=sn(:,n); 
hg1=[ones(m,1),x0]\y0;  
hg1=hg1'
fprintf('y=%f',hg1(1));
for i=2:nif hg1(i)>0  fprintf('+%f*x%d',hg1(i),i-1);elsefprintf('%f*x%d',hg1(i),i-1)end
end
fprintf('\n')  
r=corrcoef(x0)  
xd=zscore(x0);  
yd=zscore(y0);  
[vec1,lamda,rate]=pcacov(r) 
f=repmat(sign(sum(vec1)),size(vec1,1),1); 
vec2=vec1.*f 
contr=cumsum(rate) 
df=xd*vec2; 
num=input('请选项主成分的个数:')   
hg21=df(:,[1:num])\yd  
hg22=vec2(:,1:num)*hg21  
hg23=[mean(y0)-std(y0)*mean(x0)./std(x0)*hg22, std(y0)*hg22'./std(x0)]  
fprintf('y=%f',hg23(1)); 
for i=2:nif hg23(i)>0fprintf('+%f*x%d',hg23(i),i-1);elsefprintf('%f*x%d',hg23(i),i-1);end
end
fprintf('\n')rmse1=sqrt(sum((hg1(1)+x0*hg1(2:end)'-y0).^2)/(m-n))  
rmse2=sqrt(sum((hg23(1)+x0*hg23(2:end)'-y0).^2)/(m-num)) 
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS Pro微课1000例】0030:ArcGIS Pro中自带晕渲地貌工具的妙用

在ArcGIS中,制作地貌晕渲效果通常的做法是先制作山体阴影效果,然后叠加在DEM的下面,再改变DEM的透明度来实现。而在ArcGIS Pro中自带了效果显著的晕渲地貌工具。 文章目录 一、晕渲地貌工具1. 符号系统2. 栅格函数二、山体阴影效果1. 工具箱2. 栅格函数打开ArcGIS Pro3.0,加…

建造者模式(创建型)

目录 一、前言 二、建造者模式 三、链式编程实现建造者模式 四、总结 一、前言 当我们开发一个软件应用时,我们通常需要创建各种对象。有些对象是简单的,可以直接实例化,但有些对象则比较复杂,需要多个步骤才能创建完成。这时…

Leetcode刷题详解——不同路径 III

1. 题目链接:980. 不同路径 III 2. 题目描述: 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的…

安卓调用手机邮箱应用发送邮件

先来看看实现效果&#xff1a; 也不过多介绍了&#xff0c;直接上代码&#xff1a; private void openMail() {Uri uri Uri.parse("mailto:" "");List<ApplicationInfo> applicationInfoList getPackageManager().getInstalledApplications(Packa…

react函数式组件props形式子向父传参

父组件中定义 子组件中触发回调传值 import { useState } from "react"; function Son(params) {const [count, setCount] useState(0);function handleClick() {console.log(params, paramsparamsparamsparamsparamsparams);params.onClick(111)setCount(count 1…

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)

文章目录 前言一、CVE-2022-32991靶场简述二、找注入点三、CVE-2022-32991漏洞复现1、判断注入点2、爆显位个数3、爆显位位置4 、爆数据库名5、爆数据库表名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练…

如何禁止谷歌浏览器Google Chrome自动更新?

Windows系统&#xff1a; 按下Win R键&#xff0c;打开“运行”对话框&#xff1b;在对话框输入“services.msc”&#xff0c;并按下Enter键或者“确定”按钮。 在服务列表中找到“Google 更新服务”。 右键单击该服务&#xff0c;选择“属性”&#xff0c;将“启动类型”更改…

线性代数本质系列(二)矩阵乘法与复合线性变换,行列式,三维空间线性变换

本系列文章将从下面不同角度解析线性代数的本质&#xff0c;本文是本系列第二篇 向量究竟是什么&#xff1f; 向量的线性组合&#xff0c;基与线性相关 矩阵与线性相关 矩阵乘法与复合线性变换 三维空间中的线性变换 行列式 逆矩阵&#xff0c;列空间&#xff0c;秩与零空间 克…

使用LLama和ChatGPT为多聊天后端构建微服务

微服务架构便于创建边界明确定义的灵活独立服务。这种可扩展的方法使开发人员能够在不影响整个应用程序的情况下单独维护和完善服务。然而&#xff0c;若要充分发挥微服务架构的潜力、特别是针对基于人工智能的聊天应用程序&#xff0c;需要与最新的大语言模型&#xff08;LLM&…

Git推送本地代码到远程仓库

Git推送本地代码到远程仓库 1、首先需要安装Git&#xff0c;如果已经安装&#xff0c;请跳过。下载地址&#xff1a;https://git-for-windows.github.io/ 2、安装好git服务器后。首先找到你项目的文件夹&#xff0c;比如项目名称为Item&#xff0c;进入到这个文件夹&#xff0…

k8s-实验部署 1

1、k8s集群部署 更改所有主机名称和解析 开启四台实验主机&#xff0c;k8s1 仓库&#xff1b;k8s2 集群控制节点&#xff1b; k8s3 和k8s4集群工作节点&#xff1b; 集群环境初始化 使用k8s1作为仓库&#xff0c;将所有的镜像都保存在本地&#xff0c;不要将集群从外部走 仓库…

C 语言指针怎么理解?

今日话题&#xff0c;C 语言指针怎么理解&#xff1f;让我用更简洁的方式来表达这个内容&#xff1a;就像桌面上的快捷方式一样&#xff0c;指针也可以有多层引用。我们可以将指针比作快捷方式的图标&#xff0c;快捷方式可以指向游戏&#xff08;普通指针&#xff09;&#xf…