当前位置:首页 > 神经网络 > 正文

bp神经网络预测matlab代码

本文目录一览

⒈MATLAB,BP神经网络,两输入一输出。 输入P1=[111],P2=[0.740.700.68],输出T=[305070]。 程序
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);
结束


⒉bp神经网络股票价格预测的MATLAB编程
P=[];'依次输入数据,开盘价、最高价、最低价、收盘价和5天成交量'
T=[];'输出,即第二个收盘价天日'
net=newff(minmax(P),[7,1],{'tansig','logsig'},'traingdx');
net.trainParam.epochs=1000;'最大训练时间,如有必要自行调整'
net.trainParam.goal=0.01;'错误'
net.trainParam.lr=0,01;'学习率'
net=train(净值,P,T);'训练网络'
test=[];'预测输入数据'
out=sim(net,test);'模拟预测'
我的程序还没有初始化,你还需要数据只有在初始化后才能进行计算。
⒊求预测一组数据的bp神经网络模型的matlab代码

利用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神经网络预测特定地铁线路的客流)>运行结果: