matlab预测高铁客运量,神经网络预测客运量

:) :hug: :victory: :time: :kiss: :handshake :call: :D

%This program is useful to forecaste the ridership of Beijing

%public transportation

% Get the input sampledata from the .txt file "sample.txt"

fid=fopen('sample.txt','rt');

originalData=fscanf(fid,'%f', [20,14]);

status=fclose(fid);

% transport sampledata into input training sampledata

inputSampledata=originalData';

% Get the output sampledata from the .txt file "goal.txt"

fid=fopen('goal.txt','rt');

outputData=fscanf(fid,'%f');

status=fclose(fid);

% transport sampledata into input training sampledata

outputSampledata=outputData';

% creating neural network and setting trainging parameters

gwwnet=newff(minmax(inputSampledata),[4,1],{'tansig','purelin'},'traingdm');

gwwnet.trainParam.show = 50;

gwwnet.trainParam.lr = 0.05;

gwwnet.trainParam.epochs = 5000;

gwwnet.trainParam.goal = 1e-3;

%data scaling (converting the network input and output data to the intervel [-1,1])

[input,mininput,maxinput,output,minoutput,maxoutput] = premnmx(inputSampledata,outputSampledata);

%training

[gwwnet,tr]=train(gwwnet,input,output);

y=sim(gwwnet,input);

%data offset (converting the network output data to it original unit)

nnoutput = postmnmx(y,minoutput,maxoutput);

%plot

time=1978:1:1997;

plot(time,outputSampledata,'-',time,nnoutput,'o');

legend('actual output','NN output');

xlabel('time');ylabel('Learning fitting curve');

%scenario1 forecasting process

column=10;

for i=1:column;

SceInput(1,i)=inputSampledata(1,20)*(1.0464^i);

SceInput(2,i)=inputSampledata(2,20)*(1.0631^i);

SceInput(3,i)=inputSampledata(3,20)*(1.0872^i);

SceInput(4,i)=inputSampledata(4,20)*(1.2044^i);

SceInput(5,i)=inputSampledata(5,20)*(1.2326^i);

SceInput(6,i)=inputSampledata(6,20)*(1.0605^i);

SceInput(7,i)=2*(1.01^i);

SceInput(8,i)=42*(1.02^i);

SceInput(9,i)=inputSampledata(9,20)*(1.1426^i);

SceInput(10,i)=inputSampledata(10,20)*(1.017^i);

SceInput(11,i)=inputSampledata(11,20)*(1.0205^i);

SceInput(12,i)=inputSampledata(12,20)*(1.1336^i);

SceInput(13,i)=inputSampledata(13,20)*(1.1599^i);

SceInput(14,i)=inputSampledata(14,20)*(1.1783^i);

end

for j=1:20;

for i=1:14;

recalldata(i,j)=inputSampledata(i,j);

end

end

for j=21:30;

for i=1:14;

recalldata(i,j)=SceInput(i,j-20)

end

end

[alterinput,mininput,maxinput] = premnmx(recalldata);

%training

fvalue=sim(gwwnet,alterinput);

%data offset (converting the network output data to it original unit)

forecastvalue = postmnmx(fvalue,minoutput,maxoutput);

%plot

waitforbuttonpress;

clf;

time=1978:1:2007;

time1=1978:1:1997;

plot(time,forecastvalue,'o',time1,outputSampledata,'-');

legend('预测曲线','实际曲线');

title('客运量曲线');

xlabel('时间');ylabel('公交客运量');

[本帖最后由 supengs 于 2009-5-15 09:47 编辑]

99e39a8196ca8f63dc1eee7b0d72d0ed.gif

2009-5-15 09:47 上传

点击文件名下载附件

326.67 KB, 下载次数: 12417

预测数据和代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值