📄 a5_5bpnet.m
字号:
%
close all
clear
echo on
clc
% NEWFF-生成一个新的前向神经网络
% TRAIN-对BP神经网络进行训练
% SIM-对BP网络进行仿真
pause %敲任意键开始
clc
% 定义训练样本
% C为输入矢量
C=[0.851851852,0.801801802,0.238902654,0.890989989;...
0.881881882,1.002002002,0.012011245,0.835372636;...
0.901901902,0.801801802,0.123345815,1.002224694;...
1.002002002,0.601601602,0.069234103,0.835372636;...
0.801801802,0.501501502,0.999799998,0.724137931;...
0.601601602,0.801801802,0.055345059,0.624026696;...
0.621621622,0.731731732,0.110901232,0.646273637;...
0.681681682,0.581581582,0.049789442,0.802002225;...
0.741741742,0.591591592,0.064234047,0.601779755;...
0.751751752,0.551551552,0.045567173,0.890989989;...
0.551551552,0.501501502,0.010900121,0.446051168;...
0.451451451,0.451451451,0.012900143,0.668520578;...
0.521521522,0.451451451,0.015344615,0.579532814;...
0.541541542,0.541541542,0.013122368,0.446051168;...
0.601601602,0.401401401,0.009788998,0.49054505;...
0.211211211,0.501501502,0.012011245,0.501668521;...
0.381381381,0.341341341,0.005900066,0.368186874;...
0.431431431,0.281281281,0.005344504,0.334816463;...
0.401401401,0.301301301,0.006455627,0.379310345;...
0.271271271,0.451451451,0.00423338,0.446051168;...
0.121121121,0.101101101,0.00090001,0.045606229;...
0.241241241,0.121121121,0.003122257,0.001112347;...
0.151151151,0.001001001,0.001344459,0.167964405;...
0.001001001,0.201201201,0.001122235,0.201334816;...
0.101101101,0.031031031,1.11112E-05,0.156840934];
C=C'
% Y为目标矢量
Y=[1,0,0,0,0;1,0,0,0,0;1,0,0,0,0;1,0,0,0,0;1,0,0,0,0;0,1,0,0,0;0,1,0,0,0;0,1,0,0,0;0,1,0,0,0;0,1,0,0,0;0,0,1,0,0;0,0,1,0,0;0,0,1,0,0;0,0,1,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,1,0;0,0,0,1,0;0,0,0,1,0;0,0,0,1,0;0,0,0,0,1;0,0,0,0,1;0,0,0,0,1;0,0,0,0,1;0,0,0,0,1];
Y=Y'
pause;
clc
% 创建一个新的前向神经网络
net=newff(minmax(C),[5,5],{'tansig','tansig'},'trainlm');
% 当前输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
% 当前隐含层权值与阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause
clc
%设置训练参数
net.trainParam.show=50;
net.trainParam.lr=0.5;
net.trainParam.mc=0.4;
net.trainParam.epochs=10000;
net.trainParam.goal=1e-3;
pause
clc
% 调用TRAINGDM算法训练BP网络
net=train(net,C,Y);
pause
clc
%对BP网络进行仿真
A=sim(net,C)
% 计算仿真误差
E=Y-A
MSE=mse(E)
A=A'
%优化输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
% 隐含层权值与阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -