利用BP神经网络进行公路客运货运量的预测

通过BP神经网络,对某地区2021年和2022年的公路客运量、货运量进行预测。根据人数、机动车数量及公路面积的历史数据,预测结果显示2021年客运量43790万人,货运量21704万吨,2022年相应数值稍有变化。由于样本限制,预测结果可能略有浮动。

    公路运量主要包括公路客运量和公路货运量两个方面。据研究,某地区的公路运量主要与该地区的人数、机动车数量和公路面积有关,表中给出了某地区20年的公路运量相关数据。

    根据相关部门数据,该地区2021年和2022年的人数分别为73.39万和75.55万人,机动车数量分别为3.9635万和4.0975万辆,公路面积将分别为0.9880万和1.0268万平方千米。请对该地区2021年和2022年的公路客运量和公路货运量进行预测。

年份人口数量/万人机动车数量/万辆公路面积/万平方千米公路客运量/万人公路货运量/万吨
200120.550.60.0951261237
200222.440.750.1162171379
200325.370.850.1177301385
200427.130.90.1491451399
200529.451.050.2104601663
200630.11.350.23113871714
200730.961.450.23123531834
200834.061.60.32157504322
200936.421.70.32183048132
201038.091.850.34193868936
201139.132.150.362102411099
201239.992.20.361949011203
201341.932.250.382043310524
201444.592.350.492259811115
201547.32.50.562510713320
201652.892.60.593344216762
201755.732.70.593683618637
201856.762.850.674054820724
201959.172.950.694292720803
202060.633.10.794346221804

代码如下

rs=xlsread('C:\Users\86135\Desktop\matlab\back propagation','B2:B21')
jdcs=xlsread('C:\Users\86135\Desktop\matlab\back propagation','C2:C21')
glmj=xlsread('C:\Users\86135\Desktop\matlab\back propagation','D2:D21')
glkyl=xlsread('C:\Users\86135\Desktopmatlab\\back propagation','E2:E21')
glhyl=xlsread('C:\Users\86135\Desktop\matlab\back propagation','F2:F21')
p=[rs';jdcs';glmj']    %输入数据矩阵
t=[glkyl';glhyl']    %目标数据矩阵
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t)    %利用premnmx函数对数据归一化
dx=[-1,1;-1,1;-1,1]    %归一化处理后最小值为-1,最大值为1
net=newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx')    %建立模型,并用梯度下降法训练
net.trainParam.show=1000    %1000轮回显示一次结果
net.trainParam.Lr=0.05    %学习速度为0.05
net.trainParam.epochs=50000    %最大训练轮回为50000次
net.trainParam.goal=0.65*10^(-3)    %均方误差
net=train(net,pn,tn)    %开始训练,其中pn,tn分别为输入输出样本
an=sim(net,pn)    %用训练好的模型进行仿真
a=postmnmx(an,mint,maxt)    %把仿真得到的数据还原为原始的数量级
x=2001:2020
newk=a(1,:)
newh=a(2,:)
figure(2)
subplot(2,1,1)    %绘制公路客运量对比图
plot(x,newk,'r-o',x,glkyl,'b--+')
legend('网络输出客运量','实际客运量')
xlabel('年份')
subplot(2,1,2)    %绘制公路货运量对比图
plot(x,newh,'r-o',x,glhyl,'b--+')
legend('网络输出货运量','实际货运量')
xlabel('年份')
ylabel('货运量/万吨')
pnew=[73.59,75.55;3.9635,4.0975;0.9880,1.0268]
pnewn=tramnmx(pnew,minp,maxp)    %利用原始输入数据的归一化参数对新数据进行归一化
anewn=sim(net,pnewn)    %利用归一化后的数据进行仿真
anew=postmnmx(anewn,mint,maxt)    %把仿真得到的数据还原为原始的数量级

运行结果如图

 可以得到anew的值为[43790,43785;21704,21705]。也就是说,2021年和2022年的公路客运量分别达到43790万人和43785万人,公路货运量分别为21704万吨和21705万吨。由于样本数量较少,再次运行时得到的结果可能会有不同。

材料来源:中法核威斯布鲁柯

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HeadmasterSong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值