时间序列MATLAB程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

时间序列移动平均法clc,cleary=[533.8574.6606.9649.8705.1772.0816.4892.7963.91015.11102.7];m=length(y);n=[4,5];%n为移动平均的项数fori=1:length(n)%由于n的取值不同,下面使用了细胞数组forj=1:m-n(i)+1yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i);endy12(i)=yhat{i}(end);%提出第12月份的预测值s(i)=sqrt(mean((y(n(i)+1:end)-yhat{i}(1:end-1)).^2));%求预测的标准误差endy12,s%分别显示两种方法的预测值和预测的标准误差指数平滑一次指数平滑程序:clc,clearyt=load('dianqi.txt');%读取dianqi.txt的数据,n=length(yt);%求yt的长度alpha=[0.20.50.8];%输入a的值m=length(alpha)yhat(1,[1:m])=(yt(1)+yt(2))/2;%求第一个预测值索引fori=2:nyhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);endyhat%求预测值err=sqrt(mean((repmat(yt,1,m)-yhat).^2))%求预测的标准误差xlswrite('dianqi.xls',yhat)%把预测数据写到Excel文件,准备在word表格中使用yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:)%求1988的预测值二次指数平滑程序clc,clearyt=load('c:\Users\asus\Desktop\剑魔\fadian.txt');%原始发电总量数据以列向量的方式存放在纯文本文件中n=length(yt);alpha=0.3;st1(1)=yt(1);st2(1)=yt(1);fori=2:nst1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1);endxlswrite('fadian.xls',[st1',st2'])%把数据写入表单Sheet1中的前两列at=2*st1-st2;bt=alpha/(1-alpha)*(st1-st2);yhat=at+bt;%最后的一个分量为1986年的预测值xlswrite('fadian.xls',yhat','Sheet1','C2')%把预测值写入第3列str=['C',int2str(n+2)];%准备写1987年预测值位置的字符串xlswrite('fadian.xls',at(n)+2*bt(n),'Sheet1',str)%把1987年预测值写到相应位置yt=load('c:\Users\asus\Desktop\剑魔\fadian.txt');%原始发电总量数据以列向量的方式存放在纯文本文件中n=length(yt);alpha=0.3;st1(1)=yt(1);st2(1)=yt(1);fori=2:nst1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1);endxlswrite('fadian.xls',[st1',st2'])%把数据写入表单Sheet1中的前两列at=2*st1-st2;bt=alpha/(1-alpha)*(st1-st2);yhat=at+bt;%最后的一个分量为1986年的预测值xlswrite('fadian.xls',yhat','Sheet1','C2')%把预测值写入第3列str=['C',int2str(n+2)];%准备写1987年预测值位置的字符串xlswrite('fadian.xls',at(n)+2*bt(n),'Sheet1',str)%把1987年预测值写到相应位置

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功