10.m

来自「神经网络理论与MATLAB7这本书的各章节的源程序」· M 代码 · 共 50 行

M
50
字号
%获得网络的输入样本P和目标样本T
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);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?