|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
可用于一般时间序列的预测
- function GM=huise(data,N)
- T=length(data);
- X0=data;
- for i=2:T
- X1(1)=X0(1);
- X1(i)=X1(i-1)+X0(i); %用AGO生成一阶累加生成模块
- end
- for i=1:T-1
- M(i)=-(0.5*(X1(i)+X1(i+1)));
- end
- B=zeros(T-1,2); %构造累加矩阵B
- for i=1:T-1
- for j=1:2
- if j<2
- B(i,j)=M(i);
- elseif j>1
- B(i,j)=1;
- end
- end
- end
- for i=2:T %构造常数项向量Y
- Y(i-1)=X0(i);
- end
- HCS=inv(B'*B)*B'*Y' %用最小二乘法求灰参数HCS
- H=HCS';
- for i=2:T+N %计算出累加序列
- XR1(i)=(X0(1)-H(2)/H(1))*exp(-1*H(1)*(i-1))+H(2)/H(1);
- end
- for i=11:T+N %还原计算出预测值
- K(i-10)=XR1(i)-XR1(i-1);
- end
- GM=K;
复制代码
将函数保存为huise.m文件,然后在命令行中输入以下格式
输入格式:
- data=[x1,x1,...,xn]
- huise(data,N)
复制代码
然后回车
哈哈,就可以了,没事干写来练练手的,残差分析部分就不写了,要是觉得精度不够就自己补上去:)写得不好,大家将就用吧
[ 本帖最后由 suffer 于 2006-10-9 20:08 编辑 ] |
评分
-
1
查看全部评分
-
|