• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 工作方案 > 正文

    小波神经网络时间序列预测短时交通流量预测x

    时间:2020-10-28 04:36:32 来源:勤学考试网 本文已影响 勤学考试网手机站

    word

    word 文档可编辑

    %% 清空环境变量 clc clear %% 网络参数配置

    load traffic_flux input output input_test output_test

    M=size(input,2); % 输入节点个数

    N=size(output,2); %输出节点个数

    n=6; %隐形节点个数 lr1=0.01; % 学习概率 lr2=0.001; %学习概率 maxgen=100; %迭代次数

    %权值初始化 Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1;

    Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1; a=randn(1,n);a_1=a;a_2=a_1; b=randn(1,n);b_1=b;b_2=b_1;

    %节点初始化 y=zeros(1,N);

    net=zeros(1,n); net_ab=zeros(1,n);

    %权值学习增量初始化 d_Wjk=zeros(n,M); d_Wij=zeros(N,n); d_a=zeros(1,n);

    d_b=zeros(1,n);

    %% 输入输出数据归一化 [inputn,inputps]=mapminmax(input'); [outputn,outputps]=mapminmax(output'); inputn=inputn';

    outputn=outputn';

    %% 网络训练

    for i=1:maxgen

    %误差累计 error(i)=0;

    % 循环训练

    for kk=1:size(input,1) x=inputn(kk,:); yqw=outputn(kk,:);

    for j=1:n

    for k=1:M net(j)=net(j)+Wjk(j,k)*x(k); net_ab(j)=(net(j)-b(j))/a(j);

    end temp=mymorlet(net_ab(j));

    for k=1:N y=y+Wij(k,j)*temp; %小波函数

    end

    end

    %计算误差和 error(i)=error(i)+sum(abs(yqw-y));

    %权值调整

    for j=1:n

    %计算 d_Wij temp=mymorlet(net_ab(j));

    for k=1:N

    d_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp;

    end

    %计算 d_Wjk temp=d_mymorlet(net_ab(j));

    for k=1:M

    for l=1:N d_Wjk(j,k)=d_Wjk(j,k)+(yqw(l)-y(l))*Wij(l,j) ;

    end

    d_Wjk(j,k)=-d_Wjk(j,k)*temp*x(k)/a(j);

    end

    %计算 d_b

    for k=1:N

    d_b(j)=d_b(j)+(yqw(k)-y(k))*Wij(k,j);

    end

    d_b(j)=d_b(j)*temp/a(j);

    %计算 d_a

    for k=1:N

    d_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);

    end d_a(j)=d_a(j)*temp*((net(j)-b(j))/b(j))/a(j);

    end

    word 文档可编辑

    %权值参数更新

    Wij=Wij-lr1*d_Wij;

    Wjk=Wjk-lr1*d_Wjk;

    b=b-lr2*d_b;

    a=a-lr2*d_a;

    d_Wjk=zeros(n,M);

    d_Wij=zeros(N,n);

    d_a=zeros(1,n);

    d_b=zeros(1,n);

    y=zeros(1,N);

    net=zeros(1,n);

    net_ab=zeros(1,n);

    Wjk_1=Wjk;Wjk_2=Wjk_1;

    Wij_1=Wij;Wij_2=Wij_1;

    a_1=a;a_2=a_1;

    b_1=b;b_2=b_1;

    end

    end

    %% 网络预测

    %预测输入归一化 x=mapminmax('apply',input_test',inputps); x=x';

    %网络预测

    for i=1:92

    x_test=x(i,:);

    for j=1:1:n

    for k=1:1:M

    net(j)=net(j)+Wjk(j,k)*x_test(k); net_ab(j)=(net(j)-b(j))/a(j);

    end

    temp=mymorlet(net_ab(j));

    for k=1:N y(k)=y(k)+Wij(k,j)*temp ;

    end

    end

    yuce(i)=y(k); y=zeros(1,N);

    net=zeros(1,n); net_ab=zeros(1,n);

    end %预测输出反归一化 ynn=mapminmax('reverse',yuce,outputps);

    %% 结果分析 figure(1) plot(ynn,'r*:') hold on plot(output_test,'bo--') title(' 预测交通流量 ','fontsize',12)

    legend(预测交通流量','实际交通流量') xlabel('时间点') ylabel('交通流量')

    word

    word 文档可编辑

    %这里面用到的两个子程序分别是:

    function y=mymorlet(t) y = exp(-(t42)/2) * cos(1.75*t);

    function y=d_mymorlet(t)

    y = -1.75*si n(1.75*t).*exp(-(t42)/2)-t* cos(1.75*t).*exp(-(t.A2)/2);

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问