BP神经网络matlab源程序代码

  • 格式:doc
  • 大小:1.86 KB
  • 文档页数:2

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

close all

clear

echo on

clc

% NEWFF——生成一个新的前向神经网络

% TRAIN——对 BP 神经网络进行训练

% SIM——对 BP 神经网络进行仿真

% 定义训练样本

% P为输入矢量

P=[0.7317 0.6790 0.5710 0.5673 0.5948;0.6790 0.5710 0.5673 0.5948 0.6292; ... 0.5710 0.5673 0.5948 0.6292 0.6488;0.5673 0.5948 0.6292 0.6488 0.6130; ...

0.5948 0.6292 0.6488 0.6130 0.5654; 0.6292 0.6488 0.6130 0.5654 0.5567; ...

0.6488 0.6130 0.5654 0.5567 0.5673;0.6130 0.5654 0.5567 0.5673 0.5976; ...

0.5654 0.5567 0.5673 0.5976 0.6269;0.5567 0.5673 0.5976 0.6269 0.6274; ...

0.5673 0.5976 0.6269 0.6274 0.6301;0.5976 0.6269 0.6274 0.6301 0.5803; ...

0.6269 0.6274 0.6301 0.5803 0.6668;0.6274 0.6301 0.5803 0.6668 0.6896; ...

0.6301 0.5803 0.6668 0.6896 0.7497];

% T为目标矢量

T=[0.6292 0.6488 0.6130 0.5654 0.5567 0.5673 0.5976 ...

0.6269 0.6274 0.6301 0.5803 0.6668 0.6896 0.7497 0.8094];

% Ptest为测试输入矢量

Ptest=[0.5803 0.6668 0.6896 0.7497 0.8094;0.6668 0.6896 0.7497 0.8094 0.8722; ...

0.6896 0.7497 0.8094 0.8722 0.9096];

% Ttest为测试目标矢量

Ttest=[0.8722 0.9096 1.0000];

% 创建一个新的前向神经网络

net=newff(minmax(P'),[12,1],{'logsig','purelin'},'traingdm');

% 设置训练参数

net.trainParam.show = 50;

net.trainParam.lr = 0.05;

net.trainParam.mc = 0.9;

net.trainParam.epochs = 5000;

net.trainParam.goal = 0.001;

% 调用TRAINGDM算法训练 BP 网络

[net,tr]=train(net,P',T);

% 对BP网络进行仿真

A=sim(net,P');

figure;

plot((1993:2007),T,'-*',(1993:2007),A,'-o');

title('网络的实际输出和仿真输出结果,*为真实值,o为预测值');

xlabel('年份');

ylabel('客运量');

% 对BP网络进行测试

A1=sim(net,Ptest');

figure;

plot((2008:2010),Ttest','-*',(2008:2010),A1,'-o');

title('测试后网络的实际输出和仿真输出结果,*为真实值,o为预测值'); xlabel('年份');

ylabel('客运量');

% 计算仿真误差error

E = T - A;

MSE=mse(E);

figure;

plot(1:length(E),E,'-.');

title('误差变化图')