Matlab:Matlab三次指数平滑算法
目录
Matlab三次指数平滑算法
实现代码
clear
clc
load data.txt %原始数量以列向量的方式存放在纯文本文件中
yt=ceshidata;n=length(yt);
alpha=0.2;st1_0=mean(yt(1:3));st2_0=st1_0;st3_0=st1_0;
st1(1)=alpha*yt(1)+(1-alpha)*st1_0;
st2(1)=alpha*st1(1)+(1-alpha)*st2_0;
st3(1)=alpha*st2(1)+(1-alpha)*st3_0;
for i=2:n
st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);
st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1);
st3(i)=alpha*st2(i)+(1-alpha)*st3(i-1);
end
xlswrite('ceshidata.xls',[st1',st2',st3',])
st1=[st1_0,st1];st2=[st2_0,st2];st3=[st3_0,st3];
a=3*st1-3*st2+st3;
b=0.5*alpha/(1-alpha)^2*((6-5*alpha)*st1-2*(5-4*alpha)*st2+(4-3*alpha)*st3);
c=0.5*alpha^2/(1-alpha)^2*(st1-2*st2+st3);
yhat=a+b+c;
xlswrite('ceshidata.xls',yhat','Sheet1','D1')
plot(1:n,yt,'*',1:n,yhat(1:n),'O')
legend('实际值','预测值',3)
xishu=[c(n+1),b(n+1),a(n+1)];
yhat2017=polyval(xishu,2)
版权声明:本文为qq_42229253原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。