怎么matlab灰色模型预测这组数据的下一个数

2024-05-08 02:35

1. 怎么matlab灰色模型预测这组数据的下一个数

用matlab灰色模型预测,其实现方法:
1、已知一组序列数据,x0
2、下N个预测数,T
3、对数据进行处理,如累加生成
x(i)=x(i)+x0(j)
4、计算GM(1,1)时间响应式
x0(k+1)=(x0(1)-u/a)*exp(-a(k-1)+u/a)
表达式系数a,u
5、对数据进行反向处理,如累减还原
6、计算相对误差c
7、计算后验概率p
8、预测精度计算
当c0.95时,预测精度为一级
当0.35<c<0.5,0.80<p<=0.95时,预测精度为二级
当0.5<c<0.65,0.70<p<=0.80时,预测精度为三级
根据上述过程,编程后运行得,
x^0(k+1)=(x^0(1)-u/a)*e^-^a^k+u/a    %预测方程
a=0.017793;u=26.2137    %预测方程系数
c=0.69731  %相对误差
p=0.91667  %计算后验概率
预测精度为二级(0.35<c<0.5,0.80<p<=0.95),预测值为:
21.363

怎么matlab灰色模型预测这组数据的下一个数

2. 灰色预测的matlab代码怎么写?

clc
clear all
% 本程序主要用来计算根据灰色理论建立的模型的预测值。
% 应用的数学模型是 GM(1,1)。
% 原始数据的处理方法是一次累加法。
 y=[1662.87 2163.4 1965.35 2472.48 2900.66 3034.93 2755.5 3207 3462];%已知数据
n=length(y);
yy=ones(n,1);
yy(1)=y(1);
for i=2:n
    yy(i)=yy(i-1)+y(i);
end
B=ones(n-1,2);
for i=1:(n-1)
    B(i,1)=-(yy(i)+yy(i+1))/2;
    B(i,2)=1;
end
BT=B';
for j=1:n-1
    YN(j)=y(j+1);
end
YN=YN';
A=inv(BT*B)*BT*YN;
a=A(1);
u=A(2);
t=u/a;
t_test=4;  %需要预测个数
i=1:t_test+n;
yys(i+1)=(y(1)-t).*exp(-a.*i)+t;
yys(1)=y(1);
for j=n+t_test:-1:2
    ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xs=2:n+t_test;
yn=ys(2:n+t_test);
plot(x,y,'^r',xs,yn,'*-b');
det=0;
for i=2:n
    det=det+abs(yn(i)-y(i));
end
det=det/(n-1);
disp(['百分绝对误差为:',num2str(det),'%']);
disp(['预测值为: ',num2str(ys(n+1:n+t_test))]);
输出结果:
百分绝对误差为:228.3113%
预测值为: 3710.152      3978.2142      4265.6442      4573.8413

3. 灰色预测的matlab代码怎么写

用matlab写灰色预测GM(1,1)的代码,应该包含下列几个内容:1、已知基本数据序列;2、根据数据,计算灰方程的系数(a、b);3、根据灰方程的系数,对未来进行预测;4、根据预测数据,计算相对误差,计算后验概率,预测精度


灰色预测的matlab代码怎么写

4. 灰色模型预测,不知道如何求值。求matlab一高手。

用GM(1,1)灰色模型预测,得到方法一a,u值
a =
    -0.041922
u =
      0.62316
ans =
         2011       0.6285
         2012      0.66332
         2013      0.69172
         2014      0.72133
         2015      0.75221
         2016      0.78442
         2017        0.818


最新文章
热门文章
推荐阅读