P=[1 0.6 0.1 0 0 0 0 1 0.5 0 0 0 0 0;
1 0.6 0.1 0 0 0 0 0 0.5 1 0.4 0 0 0;
1 0.6 0.1 0 0 0 0 0 0 0 0.4 1 0.6 0;
1 0.6 0.1 0 0 0 0 0 0 0 0 0 0 0.8;
0 0.6 0.6 0 0 0 0 1 0.5 0 0 0 0 0;
0 0.6 0.6 0 0 0 0 0 0.5 1 0.4 0 0 0;
0 0.6 0.6 0 0 0 0 0 0 0 0.4 1 0.6 0;
0 0.6 0.6 0 0 0 0 0 0 0 0 0 0 0.8;
0 0 0.6 1 0 0 0 1 0.5 0 0 0 0 0;
0 0 0.6 1 0 0 0 0 0.5 1 0.4 0 0 0;
0 0 0.6 1 0 0 0 0 0 0 0.4 1 0.6 0;
0 0 0.6 1 0 0 0 0 0 0 0 0 0 0.8;
0 0 0 0 1 0.6 0 1 0.5 0 0 0 0 0;
0 0 0 0 1 0.6 0 0 0.5 1 0.4 0 0 0;
0 0 0 0 1 0.6 0 0 0 0 0.4 1 0.6 0;
0 0 0 0 1 0.6 0 0 0 0 0 0 0 0.8]';
T=[1 0.5 0 0 0 0 0 0;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0.2 0.6 1 0.6 0.2;
0.4 0.8 1 0.8 0.4 0.2 0 0;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0 0 0.2 0.5 0.8;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0 0 0.2 0.5 0.8;
0 0 0 0 0 0.2 0.5 0.8;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0.2 0.6 1 0.6 0.2;
0 0 0 0 0 0.2 0.5 0.8;
0 0 0 0 0 0.2 0.5 0.8]';
%根据Kolmogorov定理,由于输入层有14个结点,所以中间层有29个结点
%中间层神经元的传递函数为tansig
%输出层有8个结点,其神经元传递函数为logsig
%训练函数采用traingdx
net=newff(minmax(P),[29,8],{'tansig','logsig'},'traingdx');
%训练步数为1000次
%训练目标误差为0.001
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=train(net,P,T);
Y=sim(net,P);
%求训练值在每一个点上的误差
for i=1:16
x(i)=norm(Y(:,i));
end
plot(1:16,x);
- 1
- 2
- 3
前往页