日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

matlab实现指数平滑(一次/二次/三次)

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab实现指数平滑(一次/二次/三次) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

matlab實現指數平滑(一次/二次/三次)

  • 數據
  • 一次指數平滑
  • 二次指數平滑
  • 三次指數平滑

數據

我們以301X1的矩陣為數據(即代碼中的y.mat),(百度云下載點這里提取碼2333,積分下載點這里可以的話積分下載支持一下呀),同時也可以視情況導入自己的數據進行指數平滑處理

一次指數平滑

clc,clear
load y.mat;
data=y;
lenD=length(data);
a=[0.01 0.2 0.3 ]; 
lenA=length(a);
y1(1,1:lenA)=(data(1)+data(2))/2;
for i=2:lenD
y1(i,:)=a*data(i-1)+(1-a).*y1(i-1);
end
y1next=a*data(lenD)+(1-a).*y1(lenD,:)

二次指數平滑

clc,clear
load y.mat;
data=y;
lenD=length(data);
a=0.3;
st1(1)=data(1);
st2(2)=data(1);for i=2:lenD
st1(i)=a*data(i)+(1-a).*st1(i-1);
st2(i)=a*st1(i)+(1-a).*st2(i-1);
end
b1=2*st1-st2
b2=a/(1-a)*(st1-st2)
y2=b1+b2
y2=y2'

三次指數平滑

clc,clear
load y.mat;
data=y;
lenD=length(data);
a=0.3;
st1_0=mean(data(1:3));
st2_0=st1_0;
st3_0=st1_0;
st1(1)=a*data(1)+(1-a)*st1_0;
st2(1)=a*st1(1)+(1-a)*st2_0;
st3(1)=a*st2(1)+(1-a)*st3_0;for i=2:lenD
st1(i)=a*data(i)+(1-a).*st1(i-1);
st2(i)=a*st1(i)+(1-a).*st2(i-1);
st3(i)=a*st2(i)+(1-a).*st3(i-1);
end
st1=[st1_0,st1];
st2=[st2_0,st2];
st3=[st3_0,st3];
b1=3*st1-3*st2+st3
b2=0.5*a/(1-a)^2*((6-5*a)*st1-2*(5-4*a)*st2+(4-3*a)*st3)
b3=0.5*a/(1-a)^2*(st1-2*st2+st3)
y3=b1+b2+b3;y3=y3'

總結

以上是生活随笔為你收集整理的matlab实现指数平滑(一次/二次/三次)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。