千家信息网

Matlab怎么实现灰色预测

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Matlab怎么实现灰色预测"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Matlab怎么实现灰色预测"文章能帮助大家解决问题。模型介绍略微
千家信息网最后更新 2026年11月01日Matlab怎么实现灰色预测

这篇文章主要介绍"Matlab怎么实现灰色预测"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Matlab怎么实现灰色预测"文章能帮助大家解决问题。

模型介绍

略微带过一下原理:

灰色预测对于趋势不强的数据,将其原始数据进行累加后得到具有明显趋势的新数据进行拟合,假设原数据为:

则新数据集X(1)中数据为:

通常认为累加数据服从指数分布,欸那我们直接假设:

直接进行一个非线性拟合不就完事了,但是,从小学二年级开始,老师就教导我们,像这用指数函数拟合啊,各个参数的变化对于整体曲线的影响效果差别很大啊,直接拟合误差会很大啊,怎么能给他整成一个线性拟合啊?(直接拟合我有试过,能够大体描述趋势并做出预测,但是误差会比灰色预测大一点)。

指数函数一般符合一个微分方程:

解常微分方程易得:

这样我们只需要将a,u这俩常数求出来就能得到x(1)(t) ,就能得到X(1)序列然后逐项做差就能得到X(0)序列。

当k≤t≤k+1时,有:

带入回之前的微分方程就有:

实际上直接进行线性拟合就好了,当然我们也可以拿最小二乘法装模作样的分析一下,令:

基础代码

核心代码非常短,只有六行,代码中给出了详细的注释,基础绘图还是MATLAB风比较简陋,后面会给出图像修饰代码。

X0=[15 16.1 17.3 18.4 18.7 19.1 19.9 21.3 22.5];t=1:9;    % 原始数据自变量范围pt=10:12; % 预测数据自变量范围X1=cumsum(X0);                    % 累加生成趋势明显新序列Z=X1(1:end-1)+diff(X1)./2;        % 均值,即(X1(1:end-1)+X1(2:end))./2a_u=polyfit(-Z,X0(2:end),1);      % a_u=(B'*B)\B'*Y,B=[-Z,ones]a=a_u(1);u=a_u(2);P=(X1(1)-u/a)./exp(a.*([t,pt]-1))+u/a; % 求X1拟合值P=[P(1),diff(P)];                      % X1逐项做差求预测值% 绘图plot([t,pt],P,'*-');hold onplot(t,X0,'s-')  legend('预测值','真实值');

基础代码+修饰

X0=[15 16.1 17.3 18.4 18.7 19.1 19.9 21.3 22.5];t=1:9;    % 原始数据自变量范围pt=10:12; % 预测数据自变量范围X1=cumsum(X0);                    % 累加生成趋势明显新序列Z=X1(1:end-1)+diff(X1)./2;        % 均值,即(X1(1:end-1)+X1(2:end))./2a_u=polyfit(-Z,X0(2:end),1);      % a_u=(B'*B)\B'*Y,B=[-Z,ones]a=a_u(1);u=a_u(2);P=(X1(1)-u/a)./exp(a.*([t,pt]-1))+u/a; % 求X1拟合值P=[P(1),diff(P)];                      % X1逐项做差求预测值% 绘图plot([t,pt],P,'s-','Color',[82,124,179]./255,'MarkerFaceColor',[82,124,179]./255,...    'MarkerEdgeColor',[1,1,1],'LineWidth',2,'MarkerSize',16)  hold onplot(t,X0,'d-.','Color',[169,64,71]./255,'MarkerFaceColor',[169,64,71]./255,...    'MarkerEdgeColor',[1,1,1],'LineWidth',2,'MarkerSize',16)  % 增添图例lgd=legend('fitting result','original data');lgd.Location='best';lgd.FontSize=16;% 坐标区域修饰ax=gca;grid on;box offax.LineWidth=2;ax.Color=[249,250,245]./255;ax.XMinorTick='on';ax.YMinorTick='on';ax.GridLineStyle='-.';ax.XColor=[1,1,1].*.2;ax.YColor=[1,1,1].*.2;ax.FontName='Cambria';ax.FontSize=14;

关于"Matlab怎么实现灰色预测"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

数据 灰色 代码 趋势 序列 自变量 范围 原始 明显 微分方程 基础 微分 指数 方程 知识 预测值 绘图 很大 指数函数 函数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 华服互联网科技怎么样 互联网科技工作委员会 为想互联网科技怎么样 互联网中国科技 互联网 科技 互联网科技小贷 百单互联网科技有限公司 腾讯科技 互联网女皇 互联网科技美容 济南和联互联网科技有限公司 上海电发互联网科技有限公司 互联网金融科技公司干啥的 崇明区互联网教育科技售后服务 中国互联网公司排名锤子科技 智帮互联网科技公司最近动向 启辰互联网科技 互联网科技数字货币 珠海东科互联网科技有限公司 马化腾互联网科技教学 苏州找大状互联网科技有限公司 致聘互联网科技 受益于互联网科技的高速发展 互联网科技人工智能实验室 黑科技 体验场景 互联网大会 产业互联网科技服务公司 东营紫格互联网科技 广州梦谷互联网科技有限公司领导 北京互联网科技类企业分布 安徽九吞吴互联网科技有限公司
0