gusucode.com > AR模型预测源码程序 > AR模型预测源码程序/AR.m
% % 某电厂1到70的日倒煤量(万吨) % clc; clear; close all; N=70; n=[1:N]; x=[1.00,0.53,1.3,0.84,1.4,0.85,1.5,1.5,1.44,1.08,1.27,1.19,1.39,1.43,1.54,1.35,1.18,1.39,0.95,1.57,0.95,1.35,0.55,1.59,0.7,0.5,0.7,0.89,0.78,1.2,1.06,0.91,0.95,1.26,0.74,0.56,0.99,0.78,0.58,0.65,1.42,0.86,1.35,0.945,1.4,1.57,1.63,1.65,1.23,1.25,1,0.94,1.68,0.88,1,2,1.12,1.29,2.1,0.55,0.51,0.72,0.86,0.98,1.45,0.99,0.75,1.08,0.71,1.6]; y=zeros(1,70); figure(3) e=[1:70] plot(e,x,'b'); title('历史数据曲线图') grid for nn=[1:70], y(nn+1)=y(nn)+x(nn); end y=y(nn+1)/N x1=zeros(1,N); x1=x-y; R1=zeros(1,N); x2=zeros(1,N); for nn=[1:70], for ii=[1:71-nn], x2(nn)=x2(nn)+x1(ii)*x1(nn+ii-1); end end for jj=[1:70], R1(jj)=x2(jj)/N; end R2=R1; R3=zeros(1,16); for jj=[1:16] R3(jj)=R2(jj)/R2(1);%R3为相关函数值 end h=zeros(1,15); g=zeros(1,15); A=zeros(15); for k=[1:14], for j=[1:k], A(1,1)=R3(2); h(k)=h(k)+R3(k+2-j)*A(k,j); g(k)=g(k)+R3(j+1)*A(k,j); A(k+1,k+1)=(R3(k+2)-h(k))/(1-g(k)); A(k+1,j)=A(k,j)-A(k+1,k+1)*A(k,k+1-j); end end B=A; figure(1) set(1,'Position',[10,35,350,650]) ii=[1:16]; iii=[0:0.02:16]; plot(ii,R3,'b',iii,0.2390,'r'); grid title('自相关图') figure(2) jj=[1:16]; m=zeros(1,16); m(1)=1; for j=[2:16], m(j)=A(j-1,j-1);%m为偏相关函数值 end jjj=[0:0.02:16]; plot(jj,m,'b',jjj,0.2390,'r'); title('偏自相关图') grid %预测新的数据 NN=10; z=zeros(1,11); z(1)=1.6; for q=[1:NN], z(q+1)=0.1375*z(q)+0.962895; end figure(4) p=[1:10]; plot(p,z(p),'b'); grid title('预测数据') %总的图形 figure(5) t=[70:80]; plot(e,x,'b',t,z,'r'); grid title('历史数据-蓝色线;预测数据-红色线')