BP神经网络matlab实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

BP神经网络及其MATLAB实例问题:BP神经网络预测2020年某地区客运量和货运量公路运量主要包括公路客运量和公路货运量两方面。某个地区的公路运量主要与该地区的人数、机动车数量和公路面积有关,已知该地区20年(1999-2018)的公路运量相关数据如下:人数/万人:20.5522.4425.3727.1329.4530.1030.9634.0636.4238.0939.1339.9941.9344.5947.3052.8955.7356.7659.1760.63机动车数量/万辆:0.60.750.850.91.051.351.451.61.71.852.152.22.252.352.52.62.72.852.953.1公路面积/单位:万平方公里:0.090.110.110.140.200.230.230.320.320.340.360.360.380.490.560.590.590.670.690.79公路客运量/万人:512662177730914510460113871235315750183041983621024194902043322598251073344236836405484292743462公路货运量/万吨:123713791385139916631714183443228132893611099112031052411115133201676218673207242080321804影响公路客运量和公路货运量主要的三个因素是:该地区的人数、机动车数量和公路面积。Matlab代码实现%人数(单位:万人)numberOfPeople=[20.5522.4425.3727.1329.4530.1030.9634.0636.4238.0939.1339.9941.9344.5947.3052.8955.7356.7659.1760.63];%机动车数(单位:万辆)numberOfAutomobile=[0.60.750.850.91.051.351.451.61.71.852.152.22.252.352.52.62.72.852.953.1];%公路面积(单位:万平方公里)roadArea=[0.090.110.110.140.200.230.230.320.320.340.360.360.380.490.560.590.590.670.690.79];%公路客运量(单位:万人)passengerVolume=[512662177730914510460113871235315750183041983621024194902043322598251073344236836405484292743462];%公路货运量(单位:万吨)freightVolume=[123713791385139916631714183443228132893611099112031052411115133201676218673207242080321804];%输入数据矩阵p=[numberOfPeople;numberOfAutomobile;roadArea];%目标(输出)数据矩阵t=[passengerVolume;freightVolume];%对训练集中的输入数据矩阵和目标数据矩阵进行归一化处理[pn,inputStr]=mapminmax(p);[tn,outputStr]=mapminmax(t);%建立BP神经网络net=newff(pn,tn,[372],{'purelin','logsig','purelin'});%每10轮回显示一次结果net.trainParam.show=10;%最大训练次数net.trainParam.epochs=5000;%网络的学习速率net.trainParam.lr=0.05;%训练网络所要达到的目标误差net.trainParam.goal=0.65*10^(-3);%网络误差如果连续6次迭代都没变化,则matlab会默认终止训练。为了让程序继续运行,用以下命令取消这条设置net.divideFcn='';%开始训练网络net=train(net,pn,tn);%使用训练好的网络,基于训练集的数据对BP网络进行仿真得到网络输出结果%(因为输入样本(训练集)容量较少,否则一般必须用新鲜数据进行仿真测试)answer=sim(net,pn);%反归一化answer1=mapminmax('reverse',answer,outputStr);%绘制测试样本神经网络输出和实际样本输出的对比图(figure(1))t=1999:2018;%测试样本网络输出客运量a1=answer1(1,:);%测试样本网络输出货运量a2=answer1(2,:);figure(1);subplot(2,1,1);plot(t,a1,'ro',t,passengerVolume,'b+');legend('网络输出客运量','实际客运量');xlabel('年份');ylabel('客运量/万人');title('神经网络客运量学习与测试对比图');gridon;subplot(2,1,2);plot(t,a2,'ro',t,freightVolume,'b+');legend('网络输出货运量','实际货运量');xlabel('年份');ylabel('货运量/万吨');title('神经网络货运量学习与测试对比图');gridon;%使用训练好的神经网络对新输入数据进行预测%新输入数据(2019年和2020年的相关数据)newInput=[73.3975.55;3.96354.0975;0.98801.0268];%利用原始输入数据(训练集的输入数据)的归一化参数对新输入数据进行归一化newInput=mapminmax('apply',newInput,inputStr);%进行仿真newOutput=sim(net,newInput);%反归一化newOutput=mapminmax('reverse',newOutput,outputStr);disp('预测2019和2020年的公路客运量分别为(单位:万人):');newOutput(1,:)disp('预测2019和2020年的公路货运量分别为(单位:万吨):');newOutput(2,:)%在figure(1)的基础上绘制2019和2020年的预测情况figure(2);t1=1999:2020;subplot(2,1,1);plot(t1,[a1newOutput(1,:)],'ro',t,passengerVolume,'b+');legend('网络输出客运量','实际客运量');xlabel('年份');ylabel('客运量/万人');title('神经网络客运量学习与测试对比图(添加了预测数据)');gridon;subplot(2,1,2);plot(t1,[a2newOutput(2,:)],'ro',t,freightVolume,'b+');legend('网络输出货运量','实际货运量');xlabel('年份');ylabel('货运量/万吨');title('神经网络货运量学习与测试对比图(添加了预测数据)');gridon;运行结果Matlab绘制的图像BP神经网络货运量学习与测试对比图BP神经网络货运量学习与测试对比图(包含预测值)

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功