数学建模:灰色预测模型GM(1,1)matlab实现

2023-11-14

灰色预测的主要特点是模型使用的不是原始数据序列,而是生成的数据序列。其核
心体系是灰色模型(GreyModel,GM),即对原始数据作累加生成(或其他方法生成)得到
近似的指数规律再进行建模的方法。优点是不需要很多的数据,一般只需要4个数据,就
能解决历史数据少、序列的完整性及可靠性低的问题;能利用微分方程来充分挖掘系统的
本质,精度高;能将无规律的原始数据进行生成得到规律性较强的生成序列,运算简便,易
于检验,不考虑分布规律,不考虑变化趋势。缺点是只适用于中短期的预测,只适合指数
增长的预测。

GM(1,1)预测模型

GM(1,1)模型预测步骤

1)数据的检验与处理

首 先 , 为 了 保 证 建 模 方 法 的 可 行 性 , 需 要 对 已 知 数 据 列 作 必 要 的 检 验 处 理 。 设 参 考 数 据 为 x ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , . . . , x ( 0 ) ( n ) ) , 计 算 序 列 的 级 比 首先,为了保证建模方法的可行性,需要对已知数据列作必要的检验处理。设参考数据为\\x^{(0)}=(x^{(0)}(1),x^{(0)}(2),...,x^{(0)}(n)),计算序列的级比 x(0)=(x(0)(1),x(0)(2),...,x(0)(n))
λ ( k ) = x ( 0 ) ( k − 1 ) x ( 0 ) ( k ) , k = 2 , 3 , . . . n 。 \lambda(k)=\frac{x^{(0)}(k-1) }{x{(0)}(k)},k=2,3,...n。 λ(k)=x(0)(k)x(0)(k1),k=2,3,...n
如 果 所 有 的 级 比 λ ( k ) 都 落 在 可 容 覆 盖 Θ = ( e − 2 n + 1 , e 2 n + 2 ) 内 , 可 以 作 为 模 型 G M ( 1 , 1 ) 的 数 据 进 行 灰 色 预 测 。 否 则 , 需 要 对 序 列 x ( 0 ) 做 必 要 的 变 换 处 理 , 使 其 落 入 可 容 覆 盖 内 。 即 取 适 当 的 常 数 c , 作 平 移 变 换 如果所有的级比\lambda(k)都落在可容覆盖\Theta=(e^{\frac{-2}{n+1}},e^{\frac{2}{n+2}})内,可以作为模型GM(1,1)的数据进行\\灰色预测。否则,需要对序列x^{(0)}做必要的变换处理,使其落入可容覆盖内。即取适当的常数\\c,作平移变换 λ(k)Θ=(en+12,en+22),GM(1,1)x(0)使c
y ( 0 ) ( k ) = y ( 0 ) ( k ) + c , k = 1 , 2 , . . . , n , 使 序 列 y ( 0 ) = ( y ( 0 ) ( 1 ) , y ( 0 ) ( 2 ) , . . . , y ( 0 ) ( n ) ) 的 级 比 y^{(0)}(k)=y^{(0)}(k)+c,k=1,2,...,n,\\使序列y^{(0)}=(y^{(0)}(1),y^{(0)}(2),...,y^{(0)}(n))的级比 y(0)(k)=y(0)(k)+c,k=1,2,...,n,使y(0)=(y(0)(1),y(0)(2),...,y(0)(n))
λ y ( k ) = y ( 0 ) ( k − 1 ) y ( 0 ) ( k ) ∈ Θ , k = 2 , 3 , . . . n \lambda_y(k)=\frac{y^{(0)}(k-1) }{y{(0)}(k)}\in\Theta,k=2,3,...n λy(k)=y(0)(k)y(0)(k1)Θ,k=2,3,...n
2)建立模型
预测值
在这里插入图片描述
3)检验预测值
           ( 1 ) 残 差 检 验 。 令 残 差 为 ϵ ( k ) , 计 算 ϵ ( k ) = x ( 0 ) ( k ) − x ^ ( 0 ) ( k ) x ( 0 ) ( k ) , k = 1 , 2 , . . . , n \;\;\;\;\;(1)残差检验。令残差为\epsilon(k),计算\\\epsilon(k)=\frac{x^{(0)}(k)-\hat{x}^{(0)}(k) }{x^{(0)}(k)},k=1,2,...,n (1)ϵ(k),ϵ(k)=x(0)(k)x(0)(k)x^(0)(k),k=1,2,...,n
这 里 x ^ ( 0 ) ( 1 ) = x ( 0 ) ( 1 ) , 如 果 ϵ ( k ) < 0.2 , 则 认 为 达 到 一 般 要 求 ; 如 果 ϵ ( k ) < 0.1 , 则 认 为 达 到 较 高 的 要 求 。 这里\hat{x}^{(0)}(1)=x^{(0)}(1),如果\epsilon(k)<0.2,则认为达到一般要求;如果\epsilon(k)<0.1,\\则认为达到较高的要求。 x^(0)(1)=x(0)(1),ϵ(k)<0.2,;ϵ(k)<0.1
级 比 偏 差 值 检 验 。 首 先 由 参 考 数 据 : x ( 0 ) ( k − 1 ) , x ( 0 ) ( k ) 计 算 出 级 比 λ ( k ) , 再 用 发 展 系 数 a 求 出 相 应 的 级 比 偏 差 ρ ( k ) = 1 − 1 − 0.5 a 1 + 0.5 a λ ( k ) 如 果 ρ ( k ) < 0.2 , 则 可 认 为 达 到 一 般 要 求 ; 如 果 ρ ( k ) < 0.1 , 则 认 为 达 到 较 高 要 求 级比偏差值检验。首先由参考数据:x^{(0)}(k-1),x^{(0)}(k)计算出级比\lambda(k),再用发展系数a\\求出 相应的级比偏差\\\rho(k)=1-\frac{1-0.5a}{1+0.5a}\lambda(k)\\如果\rho(k)<0.2,则可认为达到一般要求;如果\rho(k)<0.1,则认为达到较高要求 :x(0)(k1)x(0)(k)λ(k)aρ(k)=11+0.5a10.5aλ(k)ρ(k)<0.2ρ(k)<0.1
4)预测预报
由CM(1,1)模型得到指定时区内的预测值,根据实际问题的需要,给出相应的预测
预报。

城市交通噪声数据
在这里插入图片描述
附上matlab代码

clc, clear
x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6]';%注意这里为列向量
n=length(x0);
lamda =x0(1:n-1)./x0(2:n)%计算级比
range = minmax( lamda') %计算级比的范围
x1 = cumsum(x0)%累加运算
B=[ -0.5*(x1(1:n-1) +x1(2:n)),ones(n-1,1)];
Y = x0(2:n);
u=B\Y%拟合参数u(1) =a,u(2) =b
syms x(t)
x= dsolve(diff(x) +u(1) *x==u(2),x(0)==x0(1)); %求微分方程的符号解
xt=vpa(x,6)%以小数格式显示微分方程的解
yucel =subs(x,t,[0:n-1]); %求已知数据的预测值
yucel = double(yucel);%符号数转换成数值类型,否则无法做差分运算.
yuce=[ x0(1),diff(yucel)]%差分运算,还原数据
epsilon=x0'-yuce%计算残差
delta = abs( epsilon./x0')%计算相对误差
rho=1-(1 -0.5*u(1))/(1 +0.5*u(1)) * lamda'%计算级比偏差值,u(1) =a
n=7;
t1=1:n;
t2=1:n;
plot(t1,x0,'bo--');
hold on;
plot(t2,yuce,'r*-'); 

lamda =
    0.9820
    1.0000
    1.0042
    1.0098
    0.9917
    1.0056
range =
    0.9820    1.0098
x1 =
   71.1000
  143.5000
  215.9000
  288.0000
  359.4000
  431.4000
  503.0000
u =
    0.0023
   72.6573
xt =
31000.0 - 30928.9*exp(-0.00234379*t)
yuce =
   71.1000   72.4057   72.2362   72.0671   71.8984   71.7301   71.5622
epsilon =
         0   -0.0057    0.1638    0.0329   -0.4984    0.2699    0.0378
delta =
         0    0.0001    0.0023    0.0005    0.0070    0.0037    0.0005
rho =
    0.0203    0.0023   -0.0018   -0.0074    0.0107   -0.0032
>> 

在这里插入图片描述
转载请标明出处,谢谢!。

如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作最大的动力,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数学建模:灰色预测模型GM(1,1)matlab实现 的相关文章

  • 如何检测图像中对象的实例?

    我有一张包含几个特定对象的图像 我想检测这些物体在该图像中的位置 为此 我有一些模型图像 其中包含我想要检测的对象 这些图像在我想要检测的对象实例周围得到了很好的裁剪 这是一个例子 在这张大图里 我想检测此模型图像中表示的对象 自从你最初发
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • Microsoft Visual C++ 2008 和 R2007b 的 Mex 类型

    我想对 vs2008 和 matlab2007b 使用 mex 类型 我尝试了下面的代码 include
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的“max”和“nanmax”?

    Matlab描述nanmin and nanmax像这样 NANMIN最小值 忽略NaNs NANMAX最大值 忽略NaNs 但实际上 min and max ignore NaNs too 那我应该使用哪个 根据我的测试 nanmin a
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • MATLAB:比较两个不同长度的数组

    我有两个长度不同的数组 由于采样率不同 需要比较 我想对较大的数组进行下采样以匹配较小的数组的长度 但是该因子不是整数而是小数 举个例子 a 1 1 375 1 75 2 125 2 5 2 875 3 25 b 1 2 3 有什么方法可以
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • MATLAB 图中轴标签与轴之间的距离

    我正在使用 MATLAB 绘制一些数据 我想调整轴标签与轴本身之间的距离 但是 只需向标签的 位置 属性添加一点即可使标签移出图窗窗口 是否有 保证金 属性或类似的东西 在上图中 我想增加数字和标签 Time s 之间的距离 同时自动扩展数
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • MATLAB - GUI 和 OPC 服务器

    我想在 MATLAB 中设计一个图形用户界面 可以使用 MATLAB 的过程控制对象链接和嵌入 OPC 工具箱连续读取数据 我怎样才能实现这个 我已经设计了图形用户界面 但我无法将数据读入图形用户界面 就这样做 type opctoolMA
  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja

随机推荐

  • gradle7.0.2如何发布jitpack开源项目

    前言 gradle 可以说发展十分迅速 一下子就飙升 7 0 2 了 当你想用 github jitpack 发布自己的开源项目的时候 网上找的教程都是 基于gradle 3 4 版本的 里面还说道要依赖 android maven gra
  • shell编程笔记3--shell并发

    shell编程笔记3 shell并发 shell编程笔记3 shell并发 介绍 并发方法 1 简单后台方式 2 普通控制并发量方式 3 通过管道控制并发量 参考文献 shell编程笔记3 shell并发 介绍 在shell中适当使用并发功
  • 《前端》样式冲突,怎么解决--2020年3月30日

    有时候我引用了bootstrap样式 自己也定义了 样式 但是我看后台应用的是bootstrap包装好的样式 很多时候 其实是我愚蠢的总把id选择器 用了 其实应该用 还有的时候 element style 的样式也阻挡了我自定义的样式 这
  • 阿里云免费证书“fileauth.txt内容配置错误”解决

    最近研究微信小程序开发 上阿里云申请了个证书 使用文件验证方式 感觉所有步骤都正确 就是审核的时候一直报 fileauth txt内容配置错误 我甚至按操作说明的方法 建了个FTP服务 严格按要求上传了文件 结果还是不行 后来在证书 进度查
  • yolo deepsort_目标跟踪初探(DeepSORT)

    最近由于工作原因 首次接触到了目标跟踪任务 这几天读了一些该领域的优秀论文 真心感觉目标跟踪任务的难度和复杂度要比分类和目标检测高不少 具有更大的挑战性 如果你跟我一样是正在学习目标跟踪的新手 希望本文能让你对目标跟踪任务和DeepSORT
  • JavaWeb图书管理系统

    目录 1 设计任务与目的 2 设计思路 3 概要设计 3 1系统结构图设计 3 2开发工具与运行环境 4 详细设计 4 1系统用户用例图 4 2用户登录用例图 4 3业务流程图 4 4数据流程图 4 5数据字典 4 6数据库介绍 4 7 E
  • 九轴传感器之数据处理篇

    关于九轴传感器数据的处理
  • 创意灵感网站都有哪些?推荐这8个

    设计师最痛苦的事情不是 改变草稿 加班吧 但创造力已经耗尽 没有灵感 对于创意设计师来说 浏览创意网站是寻找灵感创意的关键途径 但当你寻找灵感和创造力时 你会发现一些著名的创意网站只是展示了热门图片 公众很容易厌倦 8个设计师必备的创意网站
  • python是高级语言、并不支持传统的面向过程编程_安全检查中...

  • Linux命令·find参数详解

    find一些常用参数的一些常用实例和一些具体用法和注意事项 1 使用name选项 文件名选项是find命令最常用的选项 要么单独使用该选项 要么和其他选项一起使用 可以使用某种文件名模式来匹配文件 记住要用引号将文件名模式引起来 不管当前路
  • C++小游戏:五子棋(含代码)

    怎样用c 做出五子棋呢 其实很简单 不需要很多算法和函数 下面展示代码 注释都在下面了 include
  • 《java与模式》笔记(二) 开闭原则

    4 1 什么是开闭原则 开闭原则指的是一个软件实体应对对扩展开发 对修改关闭 Software entities should be open for extension but closed for modification 这个原则是说
  • 二、删去字符串中的元音(Biweekly4)

    题目描述 给你一个字符串 S 请你删去其中的所有元音字母 a e i o u 并返回这个新字符串 示例 1 输入 leetcodeisacommunityforcoders 输出 ltcdscmmntyfrcdrs 示例 2 输入 aeio
  • 基于VLC的Unity视频播放器(一)

    思路来自 http blog csdn net yechen2320374 article details 52226294 using System using System Text using System Runtime Inter
  • Java下载Excel模板文件的实现

    在项目中经常会用到文件下载的功能 比如下载excel模板 这里简单记录一下实现过程 1 将模板文件放到项目资源文件目录中 也可以自定义其他位置 只要通过路径能找到该文件就行 2 controller层写下载的接口 下载导入模板 GetMap
  • 好多的服务器密码信息怎么保存,怎么查看已保存的远程服务器密码吗

    怎么查看已保存的远程服务器密码吗 内容精选 换一换 云服务器网络异常 防火墙未放行本地远程桌面端口 云服务器CPU负载过高等问题均可能导致云服务器无法正常登录 本节操作介绍无法登录Windows弹性云服务器的排查思路 当您的云服务器无法远程
  • 回型矩阵的打印问题

    一 输入一个矩阵 按照从外向里以顺时针的顺序依次打印出每一个数字 示例 如果输入如下矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1 2 3 4 8 12 16 15 14 13 9 5
  • mybatis搭建

    maven如何搭建 SE项目 下载maven http maven apache org download cgi bin 解压maven压缩文件 创建一个本地仓库目录 E maven E tools maven apache maven
  • 将Revit模型转入unity中

    注意 先把Revit模型放到基点中心 方便后续unity中的旋转等操作 先将Revit模型导出到Navisworks中 然后在Navisworks中把NWC导出为FBX格式 导出时单位改为毫米 FBX格式可直接拖入unity中
  • 数学建模:灰色预测模型GM(1,1)matlab实现

    灰色预测的主要特点是模型使用的不是原始数据序列 而是生成的数据序列 其核 心体系是灰色模型 GreyModel GM 即对原始数据作累加生成 或其他方法生成 得到 近似的指数规律再进行建模的方法 优点是不需要很多的数据 一般只需要4个数据