灰色预测模型的Matlab程序及检验程序(精)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

灰色预测模型的Matlab 程序及检验程序 %灰色预测模型程序

clear

syms a b;

c=[a b]';

A=[46.2 32.6 26.7 23.0 20.0 18.9 17.5 16.3];% 原始序列 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);

%预测往后预测5个数据

F=[];F(1)=A(1);

for i=2:(n+5)

F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;

end

G=[];G(1)=A(1);

for i=2:(n+5)

G(i)=F(i)-F(i-1);

end

t1=2002:2009;

t2=2002:2014;

G

plot(t1,A,'o',t2,G)

%灰色预测模型检验程序

function [ q,c,p ] = checkgm( x0,x1 )

%GM 检验函数

%x0 原始序列

%x1 预测序列

%·返回值

% q –- 相对误差

% c -- ·方差比

% p -- 小误差概率

e0=x0-x1;

q=e0/x0;

s1=var(x0);

%qpa=mean(e0);

s2=var(e0);

c=s2/s1;

len=length(e0);

p=0;

for i=1:len

if(abs(e0(i)) < 0.6745*s1) p=p+1; end

end

p=p/len;

end

相关文档
最新文档