数学建模——灰色预测模型

前言

本文将通过具体案例讲解灰色预测模型中的GM(1,1)预测模型。

灰色预测的核心体系是灰色模型(Grey Model,GM),即对原始数据作累加生成(或其他方法生成)得到的近似的指数规律再建模的方法。

GM(1,1)表示模型是一阶微分方程,且只含一个变量的灰色模型。

优点: 不需要很多数据,一般只需要4个数据,就能解决历史数据少、序列的完整性及可靠性低的问题;

能利用微分方程来充分挖掘系统的本质,精度高;

能将无规律的原始数据进行生成得到规律性较强的生成序列,运算简便,易于检验,不考虑分布规律,不 考虑变化趋势。

缺点: 只适用于中短期的预测;只适合指数增长的预测。

正文

问题:

北方某城市1986------1992年道路交通噪声平均声级数据见下表:

试预测出该城市1993年的道路交通噪声平均声级。

求解:

1、数据的检验与处理

为了保证建模方法的可行性,需要对已知数据进行必要的检验处理。我们设参考数列为:

对应在这题中也就是:

然后根据数列计算序列的级比,公式为:

如果级比属于范围:

则说明参考数列可以作为模型GM(1,1)的数据进行灰色预测。否则就要对数列作必要的变换处理,使其属于范围内,即取适当常数c作平移变换:

使新数列y0(k)的级比有:

对应的代码为:

scss 复制代码
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')
if range(1)>exp(-2/(n+1)) & range(2)<exp(2/(n+1))
    disp('通过级比检验!');
else
     disp('未通过级比检验!');
end

2、建立模型

然后对参考数列进行一次累加,得到新数列:

对应在这题上即:

然后构造数据矩阵B和数据向量Y,我们设确定参数α为0.5,可得到:

根据B和Y得出u,

灰微分方程对应的白化微分方程为:

求解这个方程,得:

k代入得出预测的指数增长的数列,然后作差分运算还原数据。

该模块对应的代码为:

ini 复制代码
x1=cumsum(x0)
B=[-0.5*(x1(1:n-1)+x1(2:n)),ones(n-1,1)];
Y=x0(2:n);
u=B\Y
syms x(t)
x=dsolve(diff(x)+u(1)*x==u(2),x(0)==x0(1));
xt=vpa(x,6);
yuce1=subs(x,t,[0:n-1]);    %将k代入,这里k为0到n-1
yuce1=double(yuce1)
yuce=[x0(1),diff(yuce1)]

3、检测预测值

这里有两个数据可以用来检测,分别是:相对误差检验级比偏差值检验

在这之前再说一下残差,残差是由参考数列-预测数列得到的,公式为:

相对误差公式为:

如果所有的相对误差都小于0.2则认为达到一般要求;如果所有的相对误差都小于0.1则认为达到较高的要求。

级比偏差值检验的公式为:

如果所有的级比偏差值检验的绝对值都小于0.2则认为达到一般要求;如果所有的级比偏差值检验的绝对值都小于0.1则认为达到较高的要求。

这两个值有一个达到要求即可

对应的代码为:

scss 复制代码
epsilon=x0'-yuce   %计算残差
delta=abs(epsilon./x0')    %计算相对误差
rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda'    %计算级比偏差值
delta_max=max(delta)    %计算相对误差的最大值
rho_abs_max=max(abs(rho))    %计算级比偏差值的绝对值的最大值

运行结果为:

可以看到这两个值都小于0.1,所以认为达到较高的要求。

预测预报

只需要在k代入时候多往后面代入几个值就可以完成预测任务了,我们要求出要求出1993年的数据,所以k往后多代入一个值就可以了,代码为:

ini 复制代码
yuce2=subs(x,t,[0:n]);    %将k代入
yuce2=double(yuce2);
yuce_final=[x0(1),diff(yuce2)]

求出:

所以,该城市1993年的道路交通噪声平均声级为71.3946。

结语

本文内含笔者自己的理解,如有错误,敬请斧正。

相关推荐
MicroTech202521 分钟前
量子隐形传态路线的瓶颈与突破,微算法科技(MLGO)以技术创新助力量子通信长距离组网
科技·算法·量子计算
洛水水22 分钟前
【力扣100题】89.下一个排列
数据结构·算法·leetcode
洛水水23 分钟前
【力扣100题】90.寻找重复数
算法·leetcode·职场和发展
鱼子星_28 分钟前
【数据结构】排序的拓展——快速排序的生态多样性与归并排序沾染文件操作
c语言·数据结构·算法
alphaTao28 分钟前
LeetCode 每日一题 2026/6/8-2026/6/14
算法·leetcode
KaMeidebaby33 分钟前
卡梅德生物技术快报|噬菌体展示文库构建全流程解析 | 大豆球蛋白纳米抗体筛选实践
人工智能·python·tcp/ip·算法·机器学习
CC数学建模41 分钟前
2026年第十六届APMCM 亚太地区大学生数学建模竞赛(中文赛项)赛题B题:高性能芯片热管理系统的优化问题完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
爱睡懒觉的焦糖玛奇朵1 小时前
【视觉检测之人员奔跑检测算法开发思路】
人工智能·python·深度学习·算法·yolo·视觉检测
05候补工程师1 小时前
【408考研复习】数据结构核心笔记:字符串模式匹配与内部排序算法全解析
数据结构·经验分享·笔记·考研·算法·排序算法
阿文的代码库1 小时前
浅谈:无向图的欧拉回路
算法