1. 灰色预测的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
2. 灰色模型预测,不知道如何求值。求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
3. 跪求matlab 灰色预测模型 GM(1,1)
2020-2025年的咸阳机场吞吐量为
2020 935731.6046319
2021 795255.463561464
2022 675868.218187573
2023 574403.910801601
2024 488171.87118067
2025 414885.364341384
a和u的值为
a = 0.16266528732006
u = 30471961.5563488
级比检验
1.11203867321553
1.10667250071232
1.17505020014819
1.17753947251079
1.28292668319588
1.04829920607634
1.21386284365881
1.17966732451662
1.24827467080472
1.44666257843638
0.991967482887511
1.08889400828852
1.04967017170458
1.24613629091638
相对误差
0
3.38201998001349
2.76569924899193
2.89730590396542
2.82330670261224
5.95447849197401
5.60262047510655
2.616603052537
2.36628087430014
3.57748332661478
27.3467791713837
7.35957032737474
0.646828245387884
11.3681211912885
6.13344850115878
4. 灰色预测的matlab代码怎么写
用matlab写灰色预测GM(1,1)的代码,应该包含下列几个内容:1、已知基本数据序列;2、根据数据,计算灰方程的系数(a、b);3、根据灰方程的系数,对未来进行预测;4、根据预测数据,计算相对误差,计算后验概率,预测精度
5. 怎么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
6. matlab 灰色预测 GM(1,1)
x0=[1.085 1.189 1.375 1.566 1.774 1.957 2.106 2.347];
t=1999:2006; %年份
GM10(x0,t)
请输入未来几年数T:3
ans =
1999 1.085
2000 1.246
2001 1.3871
2002 1.5441
2003 1.719
2004 1.9136
2005 2.1302
2006 2.3714
2007 2.6399
2008 2.9388
2009 3.2716
7. 请您帮忙跑一个Matlab的灰色模型的模型。
根据你提供的数据,从下图不难看出,用灰色模型来预测是不太合适的。
分析你的数据流,我认为可以考虑用傅里叶级数,即
从拟合效果来看 是理想的。其拟合精度(相关系数)R²=0.96224