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

📄 zhishuyc.m

📁 用matlab实现的自回归时间序列预测电力短期负荷
💻 M
字号:
clc
clear
%输入每个月96点数据,构成矩阵a
load 2005gxxdata

% 对原始数据进行有效性处理
[i j]=size(a);
for m=1:i
    for n=2:j
        if ((a(m,n)-a(m,n-1))>0)&(a(m,n)/a(m,n-1)>1.1)
    a(m,n)=a(m,n-1)*1.1;
elseif ((a(m,n)-a(m,n-1))<0)&((a(m,n)/a(m,n-1))<0.9)
    a(m,n)=a(m,n-1)*0.9;
end
    end
end
% 用指数平滑法进行预测
date=input('date=');
if date<=6
    'error:please input date>=7'
else
    
 forecast=zeros(24,1);
for dot=1:24
    x0=(a(dot,date-6)+a(dot,date-5)+a(dot,date-4))/3;
    b1=0.9*a(dot,date-6)+0.1*x0;
      b2=0.9*a(dot,date-5)+0.1*b1;
        b3=0.9*a(dot,date-4)+0.1*b2;
          b4=0.9*a(dot,date-3)+0.1*b3;
            b5=0.9*a(dot,date-2)+0.1*b4;
            b6=0.9*a(dot,date-1)+0.1*b5;
          
         forecast(dot)=b6;
end
%  对每个点进行预测值与前一时刻值比较,误差超过10%的进行修正
 for dot=1:24
if ((forecast(dot)-a(dot,date-1))>0)&(forecast(dot)/a(dot,date-1)>1.1)
    fortcast(dot)=a(dot,date-1)*1.1;
elseif ((forecast(dot)-a(dot,date-1))<0)&(abs(forecast(dot)/a(dot,date-1))<0.9)
    forecast(dot)=a(dot,date-1)*0.9;
end
 end
%  对所进行的预测进行误差分析
forecast
error=(a(:,date)-forecast)./a(:,date);
he=abs(error);
MRE=sum(he)/24;
k=sum(he.^2)/24;
Ed=sqrt(k);
Ad=1-Ed
%预测日96点与当日原96点进行曲线拟合
x=[1:24];y=a(:,date)';z=forecast';
plot(x,y,'-o',x,z,'-v')
end

⌨️ 快捷键说明

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