• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

数学建模中时间序列典型分解模型matlab实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

周期项之和为0

代码:

%时间序列的典型分析式
%数据来源网络
x=[9007,8106,8928,9137,10017,10826,11317,10744,9713,9938,9161,8927,...
  7750,6981,8038,8422,8714,9512,10120,9823,8743,9129,8710,8680,...
  8162,7306,8124,7870,9387,9556,10093,9620,8285,8433,8160,8034,...
  7717,7461,7776,7925,8634,8945,10078,9179,8037,8488,7874,8647,...
  7792,6957,7726,8106,8890,9299,10625,9302,8314,8850,8265,8796,...
  7836,6892,7791,8129,9115, 9434,10484,9827,9110,9070,8633,9240];
D=[9007,8106,8928,9137,10017,10826,11317,10744,9713,9938,9161,8927;
   7750,6981,8038,8422,8714,9512,10120,9823,8743,9129,8710,8680;
   8162,7306,8124,7870,9387,9556,10093,9620,8285,8433,8160,8034;
   7717,7461,7776,7925,8634, 8945,10078,9179,8037,8488,7874 8647;
   7792,6957,7726,8106,8890,9299,10625,9302,8314,8850,8265,8796;
   7836,6892,7791,8129,9115,9434,10484,9827,9110,9070,8633,9240];%6行12列
st=zeros(6,12);
s=zeros(1,12);
x1=mean(D'); %求每一行平均值
for i=1:6
    for j=1:12
        st(i,j)=D(i,j)-x1(i);
    end
end
q=sum(st,1); %求每一列的和
for j=1:12
    s(j)=q(j)/6;  %周期项
end
y=zeros(72,1);
for i=1:6
    for j=1:12
        k=(i-1)*12+j
        y(k)=D(i,j)-s(j);  %y是消除周期项之后的数据
    end
end

%对消除周期项之后的数据进行拟合
a=zeros(72,2);
for i=1:72       %回归拟合
    a(i,1)=1;
    a(i,2)=i;
end
xi=inv(a'*a)*a'*y;   %两个系数
pre=zeros(1,84);   %直线
for i=1:84
    pre(i)=xi(1)+xi(2)*i;
end
subplot(2,1,1);
plot(1:72,y,1:72,pre(1:72));
jieguo=zeros(1,84);
for i=1:7
    for j=1:12
        k=(i-1)*12+j;
        jieguo(k)=pre(k)+s(j);
    end
end
subplot(2,1,2);
plot(1:72,x,'<',1:84,jieguo);

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转】matlab字符串处理函数发布时间:2022-07-18
下一篇:
Delphi深度探索之PItemIDList的基本概念发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap