指标约简后的 BP 网络的程序和命令:
close all
clear all
P=[0 0.853 0.067 0 0.625 1 0.5 0.535 1 0.511 0.609 0.969 1;0.96 1 0.071 0.849 0 0.259 0.5
0.359 1 0.561 0.7 0.7 0.14;0.94 0.853 0 0.689 0.25 0.331 1 0.529 1 0.538 0.698 0.735 0.093;0.925
0.873 0.175 0.613 0.25 0.35 1 0.41 1 0.475 0.683 0.703 0.096;0.846 0.631 0.18 0.709 0.5 0.901
0.5 0.771 0 1 1 0.43 0.205;0.654 0.539 0.065 0.891 0.375 0.528 0.5 0.32 1 0.527 0.413 1
0.07;0.991 0.561 0.481 0.981 0.375 0.771 0.5 0.309 1 0.611 0.221 0.325 0.021;0.983 0.763 0.105
0.815 0.375 0.115 0 0.051 0 0.244 0.223 0.261 0.005;0.99 0.735 1 0.97 0 0.093 0.5 0.048 1 0 0
0.329 0;0.981 0.907 0.413 1 0.25 0 0.5 0.191 0 0.248 0.223 0.491 0.021;0.991 0.093 0.071 0.963
0.311 0 0 0 1 0.211 0.225 0 0.002;0.919 0.939 0.344 0.813 0.88 0.061 0 1 1 0 0 0.095 0.003;0.995
0.41 0.995 0.961 0.061 0.109 0.5 0.411 0 0.247 0.301 0.271 0.003;0.993 0.411 0.993 0.957 0.25
0.061 0 1 1 0 0.22 0.325 0.005;1 0.781 0.071 0.963 0.191 0.151 0.5 0.191 0 0.239 0.227 0.485
0.003];
P=P';
T=[0.95 0.85 0.75 0.9 0.4 1 0.5 0.15 0.1 0.25 0.2 0.3 0 0.25 0.25];
net=newff;
net=newff(minmax(P),[16 1],{ 'logsig' 'purelin'},'traingdm');
net.trainParam.show=20;
net.trainParam.lr=0.005;
net.trainParam.mc=0.1;
net.trainParam.epochs=10000;
net.trainParam.goal=0.01;
net=train(net,P,T);
X1=[0.967 0.603 0 0.501 0.75 0.389 0.5 1 1 0.553 0.803 0.78 0.083;0.997 0 0.997 0.971 0.25
0.217 0 0.221 1 0 0.225 0.327 0.003];
X1=X1';
%T=[0.6 0.3];
%w=net.LW{2,1};
%w1=net.IW{1,1};
%xx=w*w1;
y1=sim(net,X1)
x2=[1 0.339 1 0.948 0.269 0.07 0 1 1 0 0.211 0.331 0.004];
x2=x2';
y2=sim(net,x2)