这是我写的代码
function test()
clc;
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
% 定义训练样本
% P 为输入矢量
P=[1.78,1.14;1.96,1.18;1.86,1.20;1.72,1.24;2.00,1.26;2.00,1.28;1.96,1.30;1.74,1.36;1.64,1.38;1.82,1.38;1.90,1.38;1.70,1.40;1.82,1.48;1.82,1.54;2.08,1.56];
%P=[1.78,1.96,1.86,1.72,2.00,2.00,1.96,1.74,1.64,1.82,1.90,1.70,1.82,1.82,2.08;1.14,1.18,1.20,1.24,1.26,1.28,1.30,1.36,1.38,1.38,1.38,1.40,1.48,1.54,1.56]
% T 为目标矢量
T=[0.9;0.9;0.9;0.1;0.9;0.9;0.9;0.1;0.1;0.1;0.1;0.1;0.1;0.1;0.1];
%T=[0.9 0.9 0.9 0.1 0.9 0.9 0.9 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1];
%保证输入矢量和目标矢量的列相同
P=P'
T=T'
size(P)
size(T)
%*************下面开始使用神经网络
% 创建一个新的前向神经网络newff(minmax(输入矩阵),)
net_1=newff(minmax(P),[2,1],{'logsig','logsig'},'traingd')
%初始化指定权值和阈值,若不指定系统将默认为rand()
net_1.IW{1,1}=[-5.3692,7.5663;-1.9853,9.1958];
net_1.b{1}=[1.7521;-10.7015];
net_1.LW{2,1}=[-0.1795,0.7873];
net_1.b{2}=[-0.8842];
% 显示当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 显示当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}
% 设置训练参数
net_1.trainParam.show = 500;
net_1.trainParam.lr = 0.1;
%net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 5250;
net_1.trainParam.goal = 0.01;
% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
%写出结果
la=net_1.iw{1,1}
lb=net_1.lw{2,1}
ya=net_1.b{1}
yb=net_1.b{2}
save net net_1
% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E)
%x=[1.80,1.24]';
%sim(net_1,x)
%y=[1.84,1.28]';
%sim(net_1,y)
%z=[2.04,1.40]';
%sim(net_1,z)
%u=[1.78,1.14]';
%sim(net_1,u)
%i=[1.73,1.24]';
%sim(net_1,i)
Q=[1.80 1.84 2.04 1.78 1.73;1.24 1.28 1.40 1.14 1.24]
Y=sim(net_1,Q)