⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arjianjie.asv

📁 第一次上载程序
💻 ASV
字号:
clear;
%%%AR
% load   Eunitefhgz.mat    %%  Eunitef competition-data 2001
load  Eunitefhgz97.mat
e=0.001;
NN=109;                  %%采样次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% for h=1:1:48
%     for i=1:1:700
%         y(h,i)=fh((i-1)*48+h); %% 按每天48小时组成矩阵
%     end
% end
fhysh=fhysh/100;
for h=1:1:48
    for i=1:1:250
        y(h,i)=fhysh((i-1)*48+h); % 按每天48小时组成矩阵
    end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for d=1:1:48

% for p=5:1:15             %% 模型阶数
 p=10;
  start=1;             %%开始
  Y=0;
  canshu=0;
  P=0;
%   tail=start+NN*p;         %%结尾
  P=1/e*eye(p,p);          %% 初始化 P0
  
  for i=1:1:p              %% 初始化 canshu(:,1);
    canshu(i,1)=0;
  end
  
  for N=1:1:NN           %% 采样次数
    for i=1:1:p
      Y(i,N+1)=y(d,start+(N-1)+p-i);%%% 顺序是从前向后,最后一个数是114,滚动的取值,每循环一次N,多一个
    end
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    ZZ=1/(1+Y(:,N+1)'*P(:,:,N)*Y(:,N+1));%% 实数
    P(:,:,N+1)=P(:,:,N)-ZZ*P(:,:,N)*Y(:,N+1)*Y(:,N+1)'*P(:,:,N);  %
    canshu(:,N+1)=canshu(:,N)+P(:,:,N+1)*Y(:,N+1)*(y(d,start+(N-1)+p)-Y(:,N+1)'*canshu(:,N));%%Yt
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    for i=1:1:p  
        fai(p,N+1,i)=canshu(i,N+1);%% 记录一下,用于以后预报
    end
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
%     BB=0;
%     for k=1:1:p
%         BB=BB+canshu(k,N+1)*y(d,start+(N-1)+p-k);%%==Y(t-k)
%     end
%     a(N+1)=y(d,start+(N-1)+p)-BB;  %%计算残差
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


   

  end%% NN
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%     AA=0;
%     for kk=1:1:NN
%        AA=AA+a(kk)*a(kk);
%     end
%     cetapf(p)=1/NN*AA;
%     cetaxingpf(p)=(p)*cetapf(p)/NN;
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% end%% p


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
%    sum=0;
%    for jj=5:1:14
%     
%       cha(jj)=cetaxingpf(jj+1)-cetaxingpf(jj);
%       if cha(jj)<0.0001   %%%表示前后两个cetaxingpf非常接近,趋于稳定
%          sum=sum+1;        %%计数
%       end
%       if sum>=1
%          sum=0;
%          ii=jj-3;            %% 最佳参数
%       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  防止ii比p小
%          if ii<5
%              ii=5;
%          end
%       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%          break;
%       end
%    end
%            
    CC=0;
    DD=0;
    EE=0;
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  预报    
    for i=1:1:ii
      CC=CC+fai(ii,NN+1,i)*y(d,NN+start-i);  %%接近预报那天的前P个数来预报,不管优化的P是多大,都是预报最大P的后面的三天,而fai是倒着取的,假如fai比P小,就取后面几个数作为fai
    end
    yb(d,NN+start)=CC; 
    for i=2:1:ii
      DD=DD+fai(ii,NN+1,i)*y(d,NN+start+1-i);
    end
    yb(d,NN+start+1)=DD+fai(ii,NN+1,1)*yb(d,NN+start);
    for i=3:1:ii
      EE=EE+fai(ii,NN+1,i)*y(d,NN+start+2-i);
    end
    yb(d,NN+start+2)=EE+fai(ii,NN+1,1)*yb(d,NN+start)+fai(ii,NN+1,2)*yb(d,NN+start+1);
   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 
end%% d



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   计算误差
for i=1:1:48
     wucha1(i)=(y(i,NN+start)-yb(i,NN+start))/y(i,NN+start)*100;
end
for i=1:1:48
     wucha2(i)=(y(i,NN+start+1)-yb(i,NN+start+1))/y(i,NN+start+1)*100;
end
for i=1:1:48
     wucha3(i)=(y(i,NN+start+2)-yb(i,NN+start+2))/y(i,NN+start+2)*100;
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% wucha=[wucha1 wucha2 wucha3];

i=1:1:48;plot(i,wucha1(i),i,wucha2(i),i,wucha3(i),'-');grid on;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -