matlab中BP神经网络程序

2024年11月22日 14:07
有1个网友回答
网友(1):

给你修改了一下,请参考:
clear all
%p1,p2是训练样本
p1=[65 76 80 74 80 76 82 78 76 80 79 81 78 72 73;
80 82 87 80 85 86 85 82 79 89 74 77 60 70 68;
98 90 80 86 75 70 78 80 82 84 76 72 60 75 62;
55 60 63 57 59 49 42 40 45 42 30 39 35 30 25;
43 60 65 36 39 30 34 45 44 47 35 39 25 40 30;
86 90 90 93 87 84 75 85 87 85 70 82 79 78 79;
88 83 90 89 80 80 85.6 90 92 86 70 75 69 70 72;
90 92 95 95 88 80 82 88 87 90 75 76 82 80 80;
95 97 96 97 90 87 80 89 86 88 80 78 80 86 88;
92 94 80 84 88 84 80 92 90 88 85 82 79 84 85];
p2=[0 0 0.8601 0;
0 0 0.7491 0.0033;
0 0 0.7328 0.1237;
0 0.6238 0.0489 0;
0 0.8400 0.0522 0;
0 0 0.5347 0.9354;
0 0 0.5311 0.1833;
0 0 0.3615 0.3348;
0 0 0.3578 0.4412;
0 0 0.2895 0.3620];
pr1=minmax(p1);
pr2=minmax(p2);
%创建一个前向反馈后向传播神经网络-即BP神经网络
net=newff(pr1,pr2,[5,4],{'tansig','purelin'},'trainrp');
%设置训练参数
net.trainParam.lr = 0.05;
net.trainParam.goal = 0.0001;
net.trainParam.epochs = 5000;
%训练网络
net = train(net,pr1,pr2);
x=[50 62 65 57 60 49 44 40 48 42 25 45 35 36 23;
80 86 69 67 79 89 80 83 85 88 90 99 95 88 85];
%测试训练结果y
y1=sim(net,pr1);