第一次写BP神经网络的代码,实在不知道怎么解决(大学期间没接触过代码和MATLAB),代码如下:
%% 导入数据
%
%原始数据
%
x1=[1.94 1.99 1.12 1.66 2.62 1.57 1.78 1.44 2.93 1.21 0.77 0.52 1.51 1.32 1.32 2.24 1.69 12.12 2.31 1.02 2.84 1.32 0.91 1.22 0.80 4.37 2.68 3.45 0.84 2.24 1.00 2.04 7.63 2.22 2.05 0.97 10.56 0.73 1.03 2.20 2.09 1.19 0.66 1.22 1.87 1.16 3.35 3.70 1.06 2.18 0.90 0.96 0.80 0.46 1.28 1.64 1.05 1.51 0.64 1.38 0.66 0.32 0.81 2.49 1.44 1.22 0.71 2.29 1.25 1.03 1.60 1.36 0.60 1.70 1.54 1.45 2.13 2.78 0.70 1.27;
1.46 0.31 0.88 1.36 1.47 1.39 0.84 0.52 2.50 0.81 0.60 0.44 1.44 1.04 0.92 2.24 0.46 11.94 1.94 0.77 2.78 0.98 0.58 0.99 0.74 3.00 1.70 2.96 0.65 1.61 0.59 1.82 7.17 1.84 1.65 0.65 5.47 0.65 0.89 1.57 1.01 0.99 0.42 0.85 1.68 0.73 3.08 3.31 0.84 1.68 0.78 0.56 0.61 0.33 1.24 1.28 0.58 1.26 0.51 1.31 0.63 0.24 0.53 0.45 1.39 0.81 0.58 1.83 1.09 0.50 0.95 1.12 0.51 1.49 0.62 1.09 1.38 2.52 0.69 1.00;
1.39 0.17 0.20 0.52 0.79 0.42 0.26 0.17 1.11 0.04 0.19 0.25 0.72 0.45 0.20 1.59 0.27 10.85 0.47 0.33 0.52 0.28 0.16 0.39 0.27 0.87 0.19 2.25 0.12 0.64 0.29 0.50 2.32 0.47 0.53 0.18 0.74 0.49 0.40 0.56 0.41 0.23 0.08 0.13 0.37 0.13 2.08 1.57 0.08 0.37 0.18 0.08 0.20 0.05 0.48 0.36 0.23 0.17 0.24 0.07 0.18 0.06 0.36 0.40 0.38 0.27 0.25 0.68 0.55 0.21 0.44 0.36 0.06 1.03 0.25 0.26 1.06 0.53 0.18 0.23;
0.43 0.50 0.59 0.52 0.31 0.39 0.85 0.83 0.25 0.74 0.57 0.65 0.60 0.58 0.63 0.25 0.72 0.06 0.43 0.68 0.48 0.57 0.47 0.70 0.62 0.18 0.34 0.29 0.69 0.33 0.53 0.44 0.11 0.27 0.32 0.80 0.08 0.39 0.61 0.36 0.29 0.55 0.58 0.75 0.45 0.61 0.19 0.16 0.64 0.43 0.62 0.52 0.65 0.86 0.53 0.37 0.53 0.60 0.48 0.78 0.67 0.73 0.59 0.46 0.51 0.45 0.64 0.34 0.30 0.50 0.51 0.38 0.70 0.41 0.74 0.56 0.41 0.33 0.32 0.42;
0.13 0.12 0.03 0.07 0.15 0.08 0.05 0.03 -0.01 0.09 0.03 0.03 0.06 0.09 0.06 0.06 0.05 0.04 0.05 0.03 0.06 0.04 0.05 0.07 0.08 0.19 0.14 -0.05 0.03 0.20 0.06 0.03 0.19 0.14 0.07 0.02 0.06 0.04 0.07 0.04 0.11 0.03 0.04 0.07 0.06 0.05 0.10 0.09 0.07 0.10 0.02 0.04 0.14 0.04 0.04 0.08 0.03 0.06 0.14 0.02 0.03 0.04 0.06 0.03 0.12 -0.02 0.07 0.04 0.05 -0.08 0.09 0.10 -0.03 0.08 0.08 0.05 0.03 0.09 0.07 0.06;
0.11 0.09 0.04 0.05 0.12 0.08 0.02 0.01 -0.01 0.06 0.02 0.01 0.05 0.07 0.05 0.05 0.03 0.04 0.03 0.02 0.06 0.01 0.03 0.06 0.04 0.16 0.11 -0.05 0.02 0.17 0.05 0.02 0.17 0.13 0.06 -0.02 0.04 0.03 0.04 0.03 0.09 0.02 0.01 0.03 0.04 0.02 0.08 0.07 0.07 0.09 0.00 0.02 0.11 0.00 0.02 0.06 0.02 0.04 0.10 0.00 0.01 0.02 0.03 0.01 0.09 -0.03 0.03 0.03 0.04 -0.10 0.06 0.09 -0.04 0.06 0.05 0.03 0.02 0.09 0.04 0.05;
0.19 0.18 0.09 0.11 0.17 0.13 0.16 0.06 -0.02 0.26 0.04 0.02 0.14 0.15 0.12 0.07 0.10 0.05 0.05 0.07 0.11 0.03 0.06 0.20 0.12 0.20 0.17 -0.07 0.07 0.25 0.10 0.04 0.19 0.19 0.09 -0.09 0.05 0.04 0.10 0.04 0.14 0.04 0.03 0.11 0.07 0.05 0.11 0.09 0.19 0.16 0.01 0.07 0.42 -0.01 0.05 0.10 0.03 0.10 0.21 0.01 0.04 0.09 0.09 0.02 0.19 -0.06 0.10 0.05 0.05 -0.19 0.13 0.14 -0.13 0.09 0.19 0.08 0.04 0.13 0.06 0.09;
0.21 0.43 0.04 0.03 0.23 0.11 0.14 0.05 -0.05 0.03 0.03 0.04 0.06 0.11 0.05 1.20 0.08 0.07 0.11 0.04 0.10 0.02 0.07 0.07 0.08 0.28 0.12 -0.21 0.03 0.27 0.05 0.02 0.28 0.11 0.07 -0.01 0.11 0.07 0.08 0.03 0.08 0.04 0.01 0.00 0.08 0.04 0.16 0.10 0.04 0.14 0.01 0.03 0.09 0.00 0.05 0.06 0.03 0.03 0.21 0.01 0.04 0.05 0.03 0.04 0.29 -0.07 0.07 0.05 0.14 -0.71 0.25 0.11 -0.11 0.65 0.22 0.08 0.03 0.14 0.27 0.07;
0.72 0.95 0.99 0.97 0.69 0.98 0.85 0.89 1.10 0.96 1.00 1.02 0.93 0.96 0.94 0.74 0.89 0.95 0.93 1.00 0.98 1.01 0.92 0.92 0.91 0.69 0.87 1.25 1.00 0.68 0.94 0.97 0.68 0.90 0.93 1.02 0.86 0.96 0.94 0.97 0.90 0.97 0.99 0.99 0.91 0.94 0.81 0.93 0.99 0.82 0.99 0.98 0.90 1.13 0.94 0.96 0.98 0.98 0.76 0.99 0.97 0.96 0.97 0.87 0.79 1.05 0.91 0.96 0.87 1.08 0.89 0.89 1.12 0.76 0.77 0.91 0.97 0.86 0.78 0.93;
50.45 986.91 10.14 5.10 25.51 4.74 65.73 74.26 3.53 4.43 5.22 39.23 4.41 3.90 2.51 13.57 6.00 265.14 2.68 8.00 3.49 3.99 61.71 11.92 12.93 10.43 17.30 11.54 4.57 8.57 15.91 2.43 2.37 71.41 3.52 54.15 3.96 7.73 26.61 5.60 69.26 5.08 18.01 24.85 3.65 5.31 6.89 6.80 12.15 3.04 1.48 23.99 30.77 82.93 7.17 7.65 9.73 3.04 8.08 0.89 4.73 60.04 61.01 329.03 1.55 4.71 14.46 2.64 6.51 5.56 5.35 6.49 3.95 4.80 114.51 1.96 9.00 2.11 8.07 3.75;
0.87 0.19 7.96 9.31 0.54 9.91 0.21 0.15 3.19 7.13 8.59 2.58 16.65 4.32 3.12 393.65 0.43 67.08 3.38 5.64 67.71 4.27 3.34 6.10 11.10 0.72 1.99 1.48 3.34 0.44 4.38 6.94 0.94 10.60 5.99 11.38 0.88 13.93 10.75 4.34 3.39 4.78 16.31 22.32 2.31 1.04 5.01 6.75 9.18 2.49 4.06 4.82 9.91 2.97 22.22 6.99 3.82 9.47 3.70 11.07 28.99 11.22 8.98 0.17 4.46 2.74 6.77 3.38 6.04 0.65 0.79 3.15 12.14 2.84 0.28 2.11 2.10 5.13 70.98 5.81;
0.50 0.21 1.00 1.68 0.50 0.71 0.17 0.18 0.29 2.10 0.50 0.12 0.87 0.64 0.84 0.04 0.35 0.64 0.25 0.64 0.61 0.72 0.49 0.81 0.52 0.56 0.92 0.22 0.67 0.64 0.93 1.10 0.60 1.18 0.94 3.16 0.41 0.34 0.50 0.91 1.13 0.57 1.61 5.65 0.51 0.43 0.54 0.75 1.66 0.65 0.33 0.84 1.20 0.35 0.47 1.06 0.63 1.46 0.51 0.49 0.31 0.49 1.22 0.23 0.30 0.51 0.53 0.60 0.26 0.13 0.25 0.78 0.38 0.09 0.23 0.44 0.72 0.62 0.15 0.74;
0.08 0.25 -0.06 0.29 0.17 0.13 0.20 0.06 0.10 0.16 1.02 0.01 0.00 0.05 0.24 0.11 0.23 0.04 0.01 0.20 0.07 0.11 5.71 0.08 0.51 0.12 0.10 -0.07 0.11 0.28 0.12 0.03 0.15 0.06 0.07 -0.10 0.09 0.04 0.07 0.04 0.03 0.14 0.06 0.08 0.07 -0.17 0.04 0.01 0.01 0.18 0.07 2.41 0.00 -0.01 0.00 0.14 0.22 0.32 0.03 -0.01 0.45 0.01 0.12 -0.06 0.09 -0.03 0.12 0.02 0.11 -0.14 0.18 0.11 0.02 0.29 0.27 0.20 0.06 0.08 0.00 0.08;
-0.05 13.06 -0.01 0.17 1.70 0.07 0.16 -0.32 -1.85 0.44 0.22 0.64 0.14 0.52 0.05 0.12 0.30 -0.28 0.67 0.15 0.08 -0.48 2.15 0.27 18.52 0.02 0.05 -4.85 1.19 0.58 0.24 0.36 0.17 -0.11 0.37 -1.93 2.15 10.46 0.13 -0.05 0.20 -0.12 -0.40 0.72 0.07 -0.08 -0.47 0.67 -0.31 1.31 -0.78 1.07 0.62 -1.21 -0.04 0.11 2.70 -0.35 0.64 -0.81 0.89 0.07 0.25 -0.76 0.40 -7.94 0.17 -0.16 0.07 -19.03 0.01 0.11 -34.34 0.09 0.30 0.55 0.04 0.17 0.46 0.20;
1.90 -0.76 0.74 0.98 2.13 0.39 -0.93 7.23 0.00 0.23 3.62 12.45 0.30 0.04 -0.26 0.21 -0.64 0.70 1.47 2.58 1.57 4.74 1.93 1.91 2.55 0.48 0.80 0.00 1.42 0.60 1.26 4.54 0.41 0.56 1.39 0.00 -2.78 1.63 2.49 1.87 0.22 3.83 2.10 2.99 1.77 8.58 1.18 2.25 2.41 1.50 0.74 0.58 5.88 -35.68 -1.78 1.67 0.00 2.96 1.66 0.25 -2.27 1.33 -20.43 4.53 3.74 2.27 2.06 -20.32 4.20 1.04 0.00 3.33 0.00 0.17 1.56 0.00 -0.02 1.30 0.00 0.84;
2.31 -8.34 0.44 1.08 2.63 0.80 -1.48 7.40 26.38 0.21 0.89 2.81 0.28 0.10 -0.19 0.77 -0.52 1.25 0.58 1.13 2.98 2.49 0.91 1.28 1.31 0.50 0.85 -0.03 0.78 0.56 0.57 2.88 0.41 0.40 0.84 -1.03 -1.93 0.87 1.99 0.65 0.18 2.01 0.62 3.02 1.23 8.96 0.62 1.96 -3.17 1.63 0.85 0.38 0.82 0.81 -0.81 1.24 0.39 1.13 1.61 0.06 -2.87 0.87 -5.27 1.29 1.48 1.32 0.44 -14.20 1.13 0.71 2.22 1.65 0.39 0.11 1.25 1.16 -0.02 1.05 17.24 1.49];
y1 = [413780531.00 -43370157.68 -23737334.62 701678157.63 330997919.09 431431381.24 272369324.45 270422733.34 -259890999.51 460340947.33 -313033741.33 -517781940.27 361800352.72 632781743.78 174632155.06 104420707.65 -6550139.27 -22485848.31 -105222601.30 184325347.50 115519171.71 -139046788.96 -53940043.14 5834873242.43 1054578865.11 1534786039.94 2291042908.98 -75048374.92 -52384175.22 1256862558.00 100513069.00 -7649714.17 664659721.73 395748692.30 130747343.41 -389994618.20 -17052840.91 -93564022.98 316071633.13 -4597156.17 489181500.69 203628483.82 -103316856.32 268910491.08 191237581.82 -17983522.72 134281932.52 114300921.72 941816756.74 167569450.51 -76223446.21 -70493226.97 6878604792.46 -207191048.13 -339698175.82 1102413719.87 -112842119.81 307790415.30 124081944.07 -161746418.07 -89594270.79 686791300.28 187325728.13 -229851711.70 475098365.34 -649595809.88 707609549.27 -3983954.40 -133829690.11 -537152461.10 785385645.34 1004817804.58 -1356537415.57 1250047795.30 13562510853.63 291556808.13 -18085974.61 222204893.68 -8393599.70 124593763.44];
%输入数据矩阵
p=x1;
%目标数据矩阵
t=y1;
%% 数据归一化
[normInput,ps] = mapminmax(p,-1,1);
[normTarget,ts] = mapminmax(t,0,1);
%数据乱序及分类处理
testPercent = 0.0;
validatePercent =0.125;
[trainSamples,validateSamples,testSamples] =dividevec(p,t,validatePercent,testPercent);
%% BP神经网络创建、训练及仿真测试
%%
%1创建网络
NodeNum1=16; % 输入层节点数
NodeNum2=7; % 隐含层节点数
TypeNum=1; % 输出层节点数
TF1=‘tansig’;TF2=‘tansig’;TF3=‘logsig’;%各层传输函数
net=newff(minmax(normInput),[NodeNum1,NodeNum2,TypeNum],{TF1 TF2 TF3},‘traingdx’);
%2设置训练参数
net.trainParam.epochs=10000;%最大训练次数
net.trainParam.goal=1e-3;%训练目标
net.trainParam.lr=0.05; %学习速率
%3指定训练参数
net.trainfcn=‘traingdx’;
[net,tr] = train(net,trainSamples.P,trainSamples.T,[],[],validateSamples,testSamples);
%4仿真
[normTrainOutput, ~, ~] = sim(net, trainSamples.P, [], [], trainSamples.T);
[normValidateOutput, ~, ~] = sim(net, validateSamples.P, [], [], validateSamples.T);
[normTestOutput,Xf,Af] = sim(net, testSamples.P, [], [], testSamples.T);
%5仿真结果反归一化
trainOutput = mapminmax(‘reverse’,normTrainOutput,ts);
trainInsect = mapminmax(‘reverse’,trainSamples.T,ts);
validateOutput = mapminmax(‘reverse’,normValidateOutput,ts);
validateInsect = mapminmax(‘reverse’,validateSamples.T,ts);
%% 绘图
figure
plot(1:16,[trainOutput validateOutput],‘b:*’,1:16,[trainInsect validateInsect],‘r-o’)
legend(‘真实值’,‘预测值’)
xlabel(‘x’)
ylabel(‘y’)
一直显示: