%%fast.m 快的程序,用train训练
% BP网络初始化
% 训练样本 P,T
% 输入神经元数 R 5
% 隐含神经元数 S1 10
% 输出神经元数 S2 2
P=[ 0.392 0.583 0.139 0.239 0.10;
0.383 0.568 0.139 0.240 0.10;
0.368 0.552 0.146 0.241 0.10;
0.378 0.520 0.169 0.252 0.125]';
T=[ 0.3500 0.5075;
0.3452 0.4912;
0.3404 0.4749;
0.367 0.500]';
[R,Q]=size(P);
[S2,Q]=size(T);
S1=10;
[W1, B1]=rands(S1,R);
[W2, B2]=rands(S2,S1);
%以上是相同部分
%以下是用方法一训练%%%%%%%%%%%%%
net=newff(minmax(P),[R,S1,S2],{'tansig','tansig','purelin'},'trainlm');
% BP网络训练的参数设置
net.LW{2,1}=W1;
net.LW{3,2}=W2;
net.b{2,1}=B1;
net.b{3,1}=B2;
%设置训练参数
net.trainParam.show=1;
net.trainParam.lr=1;
net.trainParam.epochs=50;
net.trainParam.goal=0.001;
%训练网络
net=train(net,P,T);
% 仿真结果
TT=sim(net,P,[],[])
%%slow.m 慢的程序,用trainbp训练
% BP网络初始化
% 训练样本 P,T
% 输入神经元数 R 5
% 隐含神经元数 S1 10
% 输出神经元数 S2 2
P=[ 0.392 0.583 0.139 0.239 0.10;
0.383 0.568 0.139 0.240 0.10;
0.368 0.552 0.146 0.241 0.10;
0.378 0.520 0.169 0.252 0.125]';
T=[ 0.3500 0.5075;
0.3452 0.4912;
0.3404 0.4749;
0.367 0.500]';
[R,Q]=size(P);
[S2,Q]=size(T);
S1=10;
[W1, B1]=rands(S1,R);
[W2, B2]=rands(S2,S1);
%以上是相同部分
%以下是用方法二训练%%%%%%%%%%%%%%
% BP网络训练的参数设置
disp_fqre=100; max_epoch=5000; err_goal=0.001; lr=0.01;
TP=[disp_fqre max_epoch err_goal lr];
[W1,B1,W2,B2,te,tr]=trainbp(W1,B1,'tansig',W2,B2,'purelin',P,T,TP);
TT=simuff(P,W1,B1,'tansig',W2,B2,'purelin')
toc % 结束计时