灰色预测matlab程序

2024-05-19 06:47

1. 灰色预测matlab程序

2014.4.11~4.20 预测价格为 5.9535
>> %灰色预测模型程序
clear
syms a b;
c=[a b]';
A=[5.76 5.92 5.91 5.92 5.93 5.93 5.93 5.94 5.94 5.95 5.95 5.94 ];% 原始序列
B=cumsum(A);%累加
n=length(A);
for i=1:(n-1)
    C(i)=(B(i)+B(i+1))/2;
end
%计算待定参数
D=A;
D(1)=[];
D=D';
E=[-C; ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);
b=c(2);
%预测 往后预测1个数据(即4.11-4.20价格)
F=[];F(1)=A(1);
for i=2:(n+1)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+1)
    G(i)=F(i)-F(i-1);
end
t1=2002:2013;
t2=2002:2014;
G
plot(t1,A,'o',t2,G)
G =
    5.7600    5.9155    5.9189    5.9224    5.9258    5.9293    5.9327    5.9362    5.9396    5.9431    5.9465    5.9500    5.9535

灰色预测matlab程序

2. MATLAB编程 灰色预测程序

2014.4.11~4.20 预测价格为 5.9535
>> %灰色预测模型程序
clear
syms a b;
c=[a b]';
A=[5.76 5.92 5.91 5.92 5.93 5.93 5.93 5.94 5.94 5.95 5.95 5.94 ];% 原始序列
B=cumsum(A);%累加
n=length(A);
for i=1:(n-1)
C(i)=(B(i)+B(i+1))/2;
end
%计算待定参数
D=A;
D(1)=[];
D=D';
E=[-C; ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);
b=c(2);
%预测 往后预测1个数据(即4.11-4.20价格)
F=[];F(1)=A(1);
for i=2:(n+1)
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+1)
G(i)=F(i)-F(i-1);
end
t1=2002:2013;
t2=2002:2014;
G
plot(t1,A,'o',t2,G)
G =
5.7600 5.9155 5.9189 5.9224 5.9258 5.9293 5.9327 5.9362 5.9396 5.9431 5.9465 5.9500 5.9535

3. 请帮忙编写一个matlab灰色预测程序,能够实现将自己的数据导入后预测未来两年的数据

2014.4.11~4.20 预测价格为 5.9535
>> %灰色预测模型程序
clear
syms a b;
c=[a b]';
A=[5.76 5.92 5.91 5.92 5.93 5.93 5.93 5.94 5.94 5.95 5.95 5.94 ];% 原始序列
B=cumsum(A);%累加
n=length(A);
for i=1:(n-1)
C(i)=(B(i)+B(i+1))/2;
end
%计算待定参数
D=A;
D(1)=[];
D=D';
E=[-C; ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);
b=c(2);
%预测 往后预测1个数据(即4.11-4.20价格)
F=[];F(1)=A(1);
for i=2:(n+1)
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+1)
G(i)=F(i)-F(i-1);
end
t1=2002:2013;
t2=2002:2014;
G
plot(t1,A,'o',t2,G)
G =
5.7600 5.9155 5.9189 5.9224 5.9258 5.9293 5.9327 5.9362 5.9396 5.9431 5.9465 5.9500 5.9535

请帮忙编写一个matlab灰色预测程序,能够实现将自己的数据导入后预测未来两年的数据

4. 求MATLAB灰色预测的具体程序

对于单变量的时间序列问题,可以用GM(1,1)灰色理论建立的模型来预测未来值。如需要可以发你邮箱里。

5. 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

matlab灰色预测

6. 用MATLAB做灰色预测


代码见附件。

7. 用matlab进行灰色预测,预测以后五年数据。高分等,满意有加分哦

把预测下一年的数据当做输入变量,继续预测下一年。以此类推,得到5年。
2001至2010年的,预测得到2011年;再用2002年到2010年,加上刚预测得到的2011年的,再预测得到2012年的;以此类推。

用matlab进行灰色预测,预测以后五年数据。高分等,满意有加分哦

8. 灰色预测的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

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