matlab程序 时间序列 一次指数平滑法

clc,clear
load lilv.txt %原始数据以列向量的方式存放在纯文本文件中
yt=dianqi; n=length(yt);
alpha=[0.2 0.5 0.8];m=length(alpha);
yhat(1,1:m)=(yt(1)+yt(2))/2;
for i=2:n
yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);
end
yhat
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))
xlswrite('lilv.xls',yhat)
yhat2014=alpha*yt(n)+(1-alpha).*yhat(n,:)
我有一组数据:
x=1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
y=0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10
我想知道写在什么地方,以及每一句的意思。

y=0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10就是上面代码的yt,

你可以这么写:
clc,clear
y=[0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10];
yt=y'; n=length(yt);
alpha=[0.2 0.5 0.8];m=length(alpha);
yhat(1,1:m)=(yt(1)+yt(2))/2;
for i=2:n
yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);
end
yhat
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))
xlswrite('lilv.xls',yhat)
yhat2014=alpha*yt(n)+(1-alpha).*yhat(n,:)
x是时间,在这里没什么用
最后运行结果是:
yhat =

0.0850 0.0850 0.0850
0.0740 0.0575 0.0410
0.0872 0.0988 0.1202
0.0718 0.0544 0.0320
0.0974 0.1272 0.1664
0.0959 0.1086 0.1053
0.1007 0.1143 0.1171
0.1026 0.1121 0.1114
0.1221 0.1561 0.1823
0.1437 0.1930 0.2205
0.1549 0.1965 0.2041
0.1519 0.1683 0.1528
0.1456 0.1441 0.1266
0.1504 0.1571 0.1613
0.1464 0.1435 0.1363
0.1311 0.1068 0.0833

err =

0.0632 0.0643 0.0718

yhat2014 =

0.1249 0.1034 0.0967
温馨提示:答案为网友推荐,仅供参考
相似回答