matlab里面的神经网络四个工具箱,神经网络工具箱的几个简单问题。

clc,clear

sqrs = [20.55 22.44 25.37 27.13 29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 ...

41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];

%人数 单位:万人

sqjdcs = [0.6 0.75 0.85 0.90 1.05 1.35 1.45 1.60 1.70 1.85 2.15 2.20...

2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];

%机动车数 单位:万辆

sqglmj = [0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36...

0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];

%公路面积 单位:万平方千米

glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....

19490 20433 22598 25107 33442 36836 40548 42927 43462];

%公路客运量 单位:万人

glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....

11115 13320 16762 18673 20724 20803 21804];

%公路货运量 单位:万吨

p = [sqrs;sqjdcs;sqglmj];   %输入数据矩阵

t = [glkyl;glhyl];          %目标矩阵

%%归一化处理

[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);  %对pt矩阵进行归一化处理

dx = [-1,1;-1 1;-1,1];                       %

%BP网络训练

net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');

%%建立模型,并用梯度下降法训练

net.trainParam.show = 1000;          %轮回显示一次

net.trainParam.Lr = 0.05;            %学习速率

net.trainParam.epochs = 50000;       %最大训练轮回

net.trainParam.goal = 0.65*10^(-3);  %均方误差

net = train(net,pn,tn);              %开始训练

%%利用原始数据对BP网络仿真

an = sim(net,pn);                    %用训练好的模型进行仿真

a = postmnmx(an,mint,maxt);          %把仿真到的数据还原到原始的数量级

%%对比测试

x = 1990:2009;

newk = a(1,:);

newh = a(2,:);

figure(2);

subplot(2,1,1);

plot(x,newk,'r-o',x,glkyl,'b--+');

legend('网络输出客运量','实际客运量');

xlabel('年份');

ylabel('客运量/万人');

title('运用数据箱客运量学习和测试对比图');

subplot(2,1,2);

plot(x,newh,'r-o',x,glhyl,'b--+');

legend('网络输出货运量','实际货运量');

xlabel('年份');

ylabel('货运量/万吨');

title('运用数据箱货运量学习和测试对比图');

%利用训练好的网络进行预测

pnew = [73.39 75.55

3.9635 4.0975

0.9880 1.0268];

pnewn = tramnmx(pnew,minp,maxp);

%利用原始输入数据的归一化参数对新参数进行归一化

anewn = sim(net,pnewn);

%利用归一化后的数据进行仿真

anew = postmnmx(anewn,mint,maxt)

%把仿真得到的数据还原原始的数量级

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值