function[Y,Xf,Af]=myNeuralNetworkFunction(X,~,~)
%MYNEURALNETWORKFUNCTION神经网络模拟函数。
%
%由神经网络工具箱函数genFunction生成,2016年7月29日21:01:24。
%
%[Y]=myNeuralNetworkFunction(X,~,~)采用以下参数:
%
%X=1xTS单元,在TS时间步长上有1个输入
%每个X{1,ts}=2xQ矩阵,在时间步长ts处输入#1。
%
%并返回:
%Y=1xTS单元,在TS时间步长上有1个输出。
%每个Y{1,ts}=1xQ矩阵,在时间步长ts输出#1。
%
%其中Q是样本(或系列)的数量,TS是时间步的数量。
%#ok<*RPMT0>
%====神经网络常数=====
%输入1
x1_step1_remove=1;
x1_step1_keep=2;
x1_step2_xoffset=0.68;
x1_step2_gain=33.3333333333334;
x1_step2_ymin=-1;
%第1层
b1=0.61359320104156278575;
IW1_1=1.1563434545471373838;
%第2层
b2=0.31177105654617104369;
LW2_1=-1.3901733865006205004;
%输出1
y1_step1_ymin=-1;
y1_step1_gain=0.05;
y1_step1_xoffset=30;
%=====模拟========
%格式化输入参数
isCellX=iscell(X);
if~isCellX,=size(X{1},2);%样本/系列
else
Q=0;
end
%分配输出
Y=cell(1,TS);
%时间循环
forts=1:TS
%输入1
temp=removeconstantrows_apply(X{1,ts},x1_step1_keep,x1_step1_remove);
b1,1,Q)+IW1_1*Xp1);
%第2层
a2=repmat(b2,1,Q)+LW2_1*a1;
%输出1
Y{1,ts}=mapminmax_reverse(a2,y1_step1_gain,y1_step1_xoffset,y1_step1_ymin);
end
%最终延迟状态
Xf=cell(1,0);
Af=cell(2,0);
%格式化输出参数
if~isCellX,Y=cell2mat(Y);end
end
%=====MODULEFUNCTIONS========
%Map最小和最大输入处理函数
函数y=mapminmax_apply(x,settings_gain,settings_xoffset,settings_ymin)
y=bsxfun(@minus,x,settings_xoffset);
y=bsxfun(@times,y,settings_gain);
y=bsxfun(@plus,y,settings_ymin);
end
%删除常量输入处理函数
functiony=removeconstantrows_apply(x,settings_keep,settings_remove)
ifisempty(settings_remove)
y=x;
else
y=x(settings_keep,:);
end
end
%Sigmoid对称传递函数
functiona=tansig_apply(n)
a=2./(1+exp(-2*n))-1;
end
%Map最小和最大输出逆向处理函数
functionx=mapminmax_reverse(y,settings_gain,settings_xoffset,settings_ymin)
x=bsxfun(@minus,y,settings_ymin);
x=bsxfun(@rdivide,x,settings_gain);
x=bsxfun(@plus,x,settings_xoffset);
结束
利用Matlab预测BP神经网络模型可分为:高不一定好;
3.设定某一时间的预测
5.根据估计值,使用plot函数绘制估计数据趋势图
主要实现代码如下:
clc
%x为第一个序列(行向量)
x=[208.72205.t=1:length(x));
%自动序列
lag=3;
%预测某个时间
t1=t(end)+1:t(end))+5;
%预测步数为fn
fn=length(t1);
[f_out,input]=BP(x,lag,fn);
P=vpa(f_out,5);
A=[t1'P'];
disp('预测值')
disp(A)
%绘制预测图(1)、plot(t,input,'bo-'),holdon
plot(t(end):t1(end),[input(end),f_out],'rp-'),gridon
标题('BP神经网络预测特定地铁线路的客流)>运行结果:
上一篇:bp神经网络matlab编程
下一篇:bp神经网络预测python代码