二次平滑曲线Matlab
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二次指数平滑法程序
线性指数平滑法Matlab程序,代码如下:
注:Data-原始数据
s-一次和二次平滑结果
at-预测式中的a参数
bt-预测式中的b参数
y1-预测结果
本例是取alpha为0.8时的情况
arr=[0;6;8.3;9.8;13;15;13.5;26.1;80.3;86;102.6]; [m,n]=size(arr);
alf=0.2;
for j=1:2
s(1,j)=arr(1,1)
end
for i=2:m
for j=1:2
if j==1
s(i,j)=alf*arr(i,1)+(1-alf)*s(i-1,j); else
s(i,j)=alf*s(i,j-1)+(1-alf)*s(i-1,j); end
end
end
temp=alf/(1-alf);
for i=1:m
at(i,1)=2*s(i,1)-s(i,2);
bt(i,1)=temp*(s(i,1)-s(i,2));
yy(i+1)=at(i,1)+bt(i,1);
end
for i=2:11
y1(i-1)=yy(i);
end
for i=2:11
b(i-1)=arr(i);
end
for i=1:3
y2(i)=at(m,1)+bt(m,1)*(i+1);
end
year=[1999:2011];
year=year';
y1=y1';
y2=y2';
b=b';
data=cat(1,y1,y2);
data1=cat(1,b,y2);
% plot(year,data,'-rs','markerFaceColor','g', 'MarkerSize',3); % plot(year,data,'-rs',year,data1,'-rs');