%三次指数平滑法
%当时间序列的变动表现为二次曲线趋势时,则需要用三次指数平滑法。
clc,clear
load touzi.txt %原始数据以列向量的方式存放在纯文本文件中 yt=touzi; n=length(yt);
yt=touzi; n=size(yt,1);
alpha=0.3; 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('touzi.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);
%得到拟合值写入excel,并与实际值比较
yhat=a+b+c;
xlswrite('touzi.xls','yhat','Sheet1','D1')
plot(1:n,yt,'*',1:n,yhat(1:n),'O')
legend('实际值','预测值')
%得到预测值
m=input('需要预测几期')
xishu=[c(n+1),b(n+1),a(n+1)];
for j=1:m
y_pre(j)=polyval(xishu,j);%polyval为多项式求和 (系数,x值)
str=char(['D',int2str(n+j)]);
xlswrite('fadian.xls',y_pre(j),'Sheet1',str)
end
%显示预测值结果
y_pre
MATLAB_三次指数平滑法_matlab_指数平滑预测_二次指数平滑_
5星 · 超过95%的资源 164 浏览量
2021-09-30
03:47:17
上传
评论 3
收藏 2KB RAR 举报
海四
- 粉丝: 53
- 资源: 4717
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论3