www.pudn.com > rbf 网络设计实例.rar > BP.m


%BP建模 
%标准化后的建模数据集 
m_data=[0.26667	0.47647	0.35	0.30741	0.39565	0.9; 
0.2	0.75882	0.35	0.27778	0.53479	0.46001; 
0.2	0.52353	0.4	0.33704	0.32609	0.48001; 
0.66667	0.52353	0.29999	0.21852	0.27391	0.50001; 
0.26667	0.75882	0.6	0.33704	0.32609	0.44001; 
0.16667	0.57059	0.29999	0.27778	0.3087	0.46001; 
0.2	0.71176	0.4	0.36667	0.44783	0.48001; 
0.23333	0.71176	0.5	0.30741	0.15218	0.34001; 
0.16667	0.42941	0.5	0.24815	0.5	0.48001; 
0.13333	0.57059	0.5	0.3963	0.41305	0.48001; 
0.16667	0.75882	0.5	0.21852	0.3087	0.52001; 
0.16667	0.71176	0.4	0.27778	0.48261	0.44001; 
0.23333	0.75882	0.5	0.33704	0.3087	0.48001; 
0.13333	0.75882	0.5	0.33704	0.23913	0.42001; 
0.16667	0.75882	0.2	0.18889	0.13478	0.1; 
0.13333	0.71176	0.35	0.27778	0.32609	0.14; 
0.2	0.24119	0.35	0.24815	0.3087	0.88001; 
0.70001	0.47647	0.25	0.33704	0.20435	0.38001; 
0.4	0.52353	0.2	0.15927	0.23913	0.34001; 
0.26667	0.47647	0.35	0.12963	0.16957	0.36; 
0.16667	0.6647	0.35	0.27778	0.27391	0.40001; 
0.3	0.61764	0.55	0.24815	0.25652	0.62001; 
0.13333	0.75882	0.6	0.30741	0.20435	0.62001; 
0.3	0.71176	0.55	0.18889	0.20435	0.70001; 
0.13333	0.57059	0.5	0.30741	0.29131	0.72001; 
0.16667	0.80588	0.5	0.21852	0.23913	0.60001; 
0.1	0.61764	0.6	0.21852	0.16957	0.62001; 
0.23333	0.61764	0.5	0.3963	0.3087	0.70001; 
0.2	0.80588	0.45	0.18889	0.1	0.48001; 
0.23333	0.6647	0.45	0.1	0.11739	0.54001; 
0.2	0.52353	0.29999	0.30741	0.16957	0.50001; 
0.16667	0.71176	0.6	0.24815	0.23913	0.70001; 
0.1	0.85293	0.6	0.12963	0.16957	0.52001; 
0.3	0.61764	0.5	0.21852	0.13478	0.64001; 
0.13333	0.61764	0.4	0.27778	0.23913	0.62001; 
0.16667	0.80588	0.6	0.3963	0.23913	0.36; 
0.23333	0.75882	0.75	0.30741	0.1	0.66001; 
0.13333	0.9	0.6	0.27778	0.20435	0.44001; 
0.16667	0.61764	0.29999	0.27778	0.32609	0.60001; 
0.16667	0.71176	0.6	0.27778	0.27391	0.52001; 
0.1	0.85293	0.45	0.1	0.23913	0.54001; 
0.1	0.71176	0.69999	0.27778	0.43044	0.76001; 
0.1	0.38236	0.6	0.30741	0.32609	0.64001; 
0.1	0.75882	0.6	0.33704	0.25652	0.46001; 
0.73333	0.71176	0.25	0.45556	0.5	0.50001; 
0.56667	0.61764	0.35	0.33704	0.34348	0.74; 
0.13333	0.6647	0.75	0.75186	0.69131	0.56001; 
0.83334	0.61764	0.25	0.60371	0.44783	0.38001; 
0.9	0.33529	0.2	0.3963	0.3087	0.54001; 
0.4	0.61764	0.5	0.3963	0.44783	0.48001; 
0.1	0.57059	0.4	0.57408	0.7261	0.88001; 
0.16667	0.61764	0.35	0.27778	0.34348	0.38001; 
0.1	0.47647	0.35	0.75186	0.83045	0.62001; 
0.2	0.47647	0.35	0.81111	0.83045	0.70001; 
0.1	0.33529	0.6	0.9	0.9	0.50001; 
0.13333	0.24119	0.4	0.81111	0.86522	0.58356; 
0.4	0.80588	0.6	0.48519	0.55218	0.42001; 
0.5	0.42941	0.45	0.57408	0.37826	0.56001; 
0.16667	0.28824	0.25	0.75186	0.79567	0.54001; 
0.23333	0.33529	0.4	0.84075	0.65653	0.68001; 
0.13333	0.57059	0.6	0.57408	0.67392	0.46001; 
0.5	0.57059	0.5	0.51482	0.55218	0.44001; 
0.1	0.6647	0.69999	0.57408	0.65653	0.88001; 
0.3	0.75882	0.75	0.21852	0.37826	0.70001; 
0.23333	0.57059	0.6	0.3963	0.41305	0.48001; 
0.59999	0.80588	0.45	0.24815	0.25652	0.42001; 
0.70001	0.28824	0.65	0.63334	0.58696	0.60001; 
0.4	0.61764	0.4	0.33704	0.34348	0.34001; 
0.46666	0.1	0.5	0.63334	0.65653	0.54001; 
0.23333	0.33529	0.25	0.84075	0.7261	0.50001; 
0.2	0.47647	0.1	0.27778	0.3087	0.42001; 
0.36667	0.52353	0.5	0.51482	0.83045	0.62001; 
0.4	0.47647	0.45	0.33704	0.32609	0.50001; 
0.33333	0.33529	0.4	0.63334	0.7261	0.46001; 
0.23333	0.24119	0.55	0.63334	0.7261	0.53778; 
0.13333	0.24119	0.45	0.33704	0.3087	0.76001; 
0.33333	0.47647	0.45	0.42593	0.41305	0.70001; 
0.5	0.1	0.35	0.3963	0.48261	0.70001; 
0.46666	0.52353	0.4	0.63334	0.86522	0.52001; 
0.26667	0.33529	0.25	0.69259	0.83045	0.68001; 
0.26667	0.71176	0.6	0.42593	0.55218	0.34001; 
0.4	0.42941	0.5	0.45556	0.43044	0.52001; 
0.23333	0.47647	0.6	0.54445	0.62175	0.52001; 
0.36667	0.47647	0.4	0.69259	0.69131	0.52001; 
0.26667	0.61764	0.29999	0.63334	0.81306	0.44001; 
0.1	0.33529	0.65	0.3963	0.23913	0.44001; 
0.13333	0.57059	0.6	0.51482	0.55218	0.38001; 
0.2	0.33529	0.55	0.45556	0.55218	0.52001; 
0.33333	0.24119	0.29999	0.57408	0.83045	0.64001; 
0.16667	0.42941	0.5	0.45556	0.76088	0.58001; 
0.13333	0.71176	0.65	0.45556	0.37826	0.22001; 
0.1	0.71176	0.6	0.63334	0.69131	0.28001; 
0.2	0.52353	0.9	0.36667	0.48261	0.36446; 
0.16667	0.71176	0.8	0.36667	0.32609	0.42001; 
0.13333	0.42941	0.55	0.51482	0.48261	0.58001; 
0.4	0.47647	0.5	0.30741	0.37826	0.48001; 
0.8	0.52353	0.4	0.30741	0.34348	0.48001; 
0.1	0.6647	0.69999	0.51482	0.5	0.38001; 
0.16667	0.6647	0.55	0.45556	0.32609	0.34001; 
0.23333	0.61764	0.65	0.51482	0.41305	0.2; 
0.3	0.71176	0.5	0.33704	0.5174	0.70001; 
0.13333	0.57059	0.5	0.33704	0.44783	0.60001; 
0.3	0.80588	0.69999	0.54445	0.5174	0.50001; 
0.13333	0.75882	0.65	0.3963	0.37826	0.28001; 
0.16667	0.71176	0.65	0.57408	0.5	0.70001; 
0.16667	0.75882	0.6	0.45556	0.62175	0.44001; 
0.26667	0.61764	0.65	0.3963	0.34348	0.74; 
0.36667	0.57059	0.5	0.30741	0.39565	0.62001; 
0.16667	0.57059	0.65	0.3963	0.29131	0.62001; 
0.2	0.52353	0.5	0.48519	0.39565	0.44001; 
0.4	0.52353	0.45	0.33704	0.34348	0.56001; 
0.13333	0.52353	0.5	0.33704	0.29131	0.52001; 
0.26667	0.42941	0.5	0.75186	0.65653	0.76001; 
0.13333	0.24119	0.5	0.54445	0.58696	0.64001; 
0.13333	0.14707	0.1	0.51482	0.5174	0.58001; 
0.2	0.24119	0.29999	0.60371	0.62175	0.74; 
0.26667	0.42941	0.25	0.57408	0.65653	0.60001; 
0.56667	0.19412	0.4	0.78148	0.69131	0.70001; 
0.4	0.57059	0.25	0.60371	0.58696	0.50001; 
0.33333	0.47647	0.25	0.48519	0.65653	0.72001; 
0.4	0.38236	0.29999	0.42593	0.23913	0.58001; 
0.13333	0.61764	0.65	0.57408	0.55218	0.70001; 
0.23333	0.42941	0.69999	0.63334	0.48261	0.62001; 
0.2	0.28824	0.55	0.81111	0.76088	0.58]; 
%定义网络输入p和期望输出t 
p1=m_data(:,1:5); 
t1=m_data(:,6); 
 p=p1';t=t1'; 
%设置网络隐单元的神经元数(5~30验证后20个最好)  
 n=15; 
%建立相应的BP网络 
 net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm'); 
%对没有训练的网络仿真 
 y1=sim(net,p); 
 %绘制仿真得到的曲线 
 figure 
 plot(t); 
 hold on 
 plot(y1,'r:') 
 legend('化验值','估计值'); 
 title('没有训练的BP网络模型输出拟合曲线'); 
 xlabel('输入样本点'); 
 ylabel('淀粉利用率');  
 axis([1,130,-2,2]); 
 hold off 
%训练网络 
 net.trainParam.epochs=1000; 
 net.trainParam.lr=0.1; 
 net.trainParam.goal=0.001; 
 net=train(net,p,t); 
 %对训练后的网络进行仿真 
 %y=sim(net,p); 
 y=sim(net,p); 
%绘出训练后的仿真结果 
 figure; 
 plot(t); 
 hold on; 
 plot(y,'r:'); 
 legend('化验值','估计值'); 
 title('训练后的BP网络模型输出拟合曲线'); 
 xlabel('输入样本点'); 
 ylabel('淀粉利用率'); 
 hold off; 
 axis([1,130,0,1]); 
 %误差定义 
 E=t-y; 
 ysse=sse(E); 
 ymse=mse(E); 
%标准化后的测试数据集t_data 
t_data=[0.1	0.68668	0.67143	0.79999	0.79091	0.40004; 
0.36667	0.58001	0.1	0.7	0.71818	0.20001; 
0.26	0.47334	0.1	0.29997	0.2091	0.80009; 
0.36667	0.9	0.9	0.29997	0.13637	0.37504; 
0.26	0.84668	0.67143	0.1	0.42727	0.37504; 
0.36667	0.58001	0.44286	0.49999	0.1	0.55006; 
0.15333	0.47334	0.44286	0.7	0.42727	0.60006; 
0.1	0.84668	0.67143	0.29997	0.5	0.1; 
0.15333	0.42	0.21429	0.49999	0.5	0.55006; 
0.20667	0.79335	0.21429	0.59999	0.5	0.32503; 
0.1	0.42	0.21429	0.9	0.5	0.45005; 
0.1	0.84668	0.32857	0.59999	0.5	0.27502; 
0.20667	0.47334	0.32857	0.29997	0.13637	0.50005; 
0.1	0.68668	0.67143	0.49999	0.24546	0.20001; 
0.42	0.58001	0.21429	0.9	0.9	0.42504; 
0.31334	0.58001	0.44286	0.49999	0.31818	0.25002; 
0.15333	0.42	0.1	0.19999	0.35454	0.55006; 
0.20667	0.47334	0.32857	0.29997	0.31818	0.27502; 
0.15333	0.68668	0.44286	0.29997	0.31818	0.40004; 
0.20667	0.20667	0.21429	0.39999	0.28183	0.52506; 
0.26	0.79335	0.21429	0.49999	0.57273	0.9; 
0.42	0.36667	0.1	0.59999	0.35454	0.30003; 
0.47334	0.36667	0.1	0.59999	0.57273	0.35003; 
0.1	0.47334	0.67143	0.7	0.42727	0.49894; 
0.42	0.58001	0.67143	0.49999	0.24546	0.47505; 
0.31334	0.1	0.32857	0.9	0.79091	0.8501; 
0.1	0.52667	0.21429	0.9	0.5	0.50005; 
0.52667	0.55867	0.21429	0.1	0.28183	0.42504; 
0.9	0.58001	0.55715	0.1	0.17273	0.32503; 
0.15333	0.68668	0.62572	0.29997	0.2091	0.57506]; 
%测试结果 
tp1=t_data(:,1:5); 
tt1=t_data(:,6); 
tp=tp1';tt=tt1'; 
ty=sim(net,tp); 
%定义误差 
tE=tt-ty; 
tsse=sse(tE); 
tmse=mse(tE); 
%预测(测试)曲线 
figure; 
 plot(tt,'-+'); 
 hold on; 
 plot(ty,'r:*'); 
 legend('化验值','预测值'); 
 title('BP网络模型输出预测曲线'); 
 xlabel('输入样本点'); 
 ylabel('淀粉利用率'); 
axis([1,30,-4,4]);