1、BP网络的MATLAB仿真样本% bp1;例4.1P=-1:0.1:1;P2=-1:0.1:1;T=-0.96 -0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 . -0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 . 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;plot(P,T,r+);P=-1:0.1:1;P2=-1:0.1:1;T=-0.96 -0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 . -0.201 -0.43
2、4 -0.5 -0.393 -0.1647 0.0988 0.3072 . 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;plot(P,T,r+);R,Q=size(P);S2,Q=size(T);S1=5;W1,B1=rands(S1,R);W2,B2=rands(S2,S1);b1=;b2=;b1=B1*ones(1,21);b2=B2*ones(1,21); a2=W2*tansig(W1*P2+b1)+b2;A2=purelin(a2);hold onplot(P,A2)hold offdisp(按任一键继续)pauseR,Q=size(P);
3、S1=5;S2,Q=size(T);W1,B1=rands(S1,R); rands(S1,R);可得到一个可得到一个S1*R的矩阵,其元素为的矩阵,其元素为(1,1)均匀分布随机数,)均匀分布随机数, w,b=rands(S1,R)可得到一个可得到一个S1*R矩阵和矩阵和S1*1列列矢量矢量b, 其元素为(其元素为(1,1)均匀分布随机数,)均匀分布随机数, W1,B1=rands(S1,R); W2,B2=rands(S2,S1); 得到 W1:S1R矩阵矩阵,输入层的权值矩阵输入层的权值矩阵 W2:S2S1矩阵,输出层的权值矩阵矩阵,输出层的权值矩阵 及两个列向量及两个列向量B1:S1*
4、1 B2:S2*1W2,B2=rands(S2,S1);b1=;b2=;空矩阵b1=B1*ones(1,21); b1=B1*ones(1,21); 把列向量B1的每一行扩展成121向量,数值重复,b2=B2*ones(1,21);a2=W2*tansig(W1*P2+b1)+b2;tansig is a transfer function. Transfer functions calculate a layers output from its net input.计算网络输出A2=purelin(a2);purelin Linear transfer function网络初始输入输出关系网络初始输入输出关系创建并训练网络net=newcf(minmax(P),5,1,tansig,purelin,traingd); %创建两层前向回馈网络net.trainParam.epochs=7000; %初始化训练次数net.trainParam.goal=9.5238e-004; % sse=0.02 %初始化误差值net.trainParam.lr = 0.15; net,tr=train(net,P,T); %训练网络Y=sim(net,P) ; %计算结果plot(P,Y,r-) holdplot(P,T,r+);hold off仿真完成仿真完成