作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 23:18:49
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