matlab bp神经网络
用BP神经网络可以对任意阶乘的训练向量进行训练。然后输出目标向量,最后预测未来的量。
例如:已知55个数据,用5×40向量数据作为训练向量,然后输出1×40的数据向量(即对5-45序列进行预测),最后,再对46-66序列进行预测。实现代码:%训练向量P_in=[。。。
]; %5×40向量%目标向量T=[。。。
]; %1×40向量net=newrbe(P_in,T,0.7);Y=sim(net,P_in);x=Y;t=6:length(x)+5;lag=2;fn=length(t);[f_out,iinput]=BP(x,lag,fn); %BP()自定义神经网络函数[x'iinput'];%预测年份或某一时间段delta_t=66-45;t1=fn:fn+delta_t;n=length(t1)+5;t1=5+length(x)+1:length(x)+n;%预测步数为fnfn=length(t1); [f_out,iinput,errors]=BP(x,lag,fn);P_out=f_out;%画出预测图figure(1),plot(t,x,'b*-')xlabel('datapoint'),ylabel('A(mm/s)')figure(2),plot(t(end):t1(end),[iinput(end),f_out],'rp-'),gridonxlabel('datapoint'),ylabel('A(mm/s)')t0=1:length(data);figure(3),plot(t0,data,'ko'),holdon,plot(t,x,'b*-'),holdo