bp matlab

来源:百度知道 编辑:UC知道 时间:2024/06/25 03:13:25
给定如下的数据:13 18 26 34 40 48 61 75 84 89 95 100 104 110 112 114 117 118 120
用114之前的15个数据建立BP网络模型,选定每4个作为一个输入,后面的第5个数据作为输出。然后用该模型预测出112之后的四个数据
PS:我自己用MATLAB先归一化了,然后反归一化的时候出了问题。
希望有这方面的能手帮忙解决下。可以QQ联系:670867762
搞定了再给500分。

clear
PP=[13 18 26 34 40 48 61 75 84 89 95 100 104 110 112 114 117 118 120 ];
%P=[。。。];输入T=[。。。];输出
P=[];T=[];
for i=1:9
P=[P,PP(i:i+3)'];T=[T,PP(4+i:4+i+4)'];
end
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,5],{'tansig','purelin'},'traingdm');
% 当前输入层权值和阈值
inputWeights=net_1.IW{1,1};
inputbias=net_1.b{1};
% 当前网络层权值和阈值
layerWeights=net_1.LW{2,1};
layerbias=net_1.b{2};
% 设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 1000;
net_1.trainParam.goal = 1e-3;
% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E)

x=[100 104 110 112]'
sim(net_1,x)
&&&&&&&&&&&&&&&&&&&&
x =

100
104
110
112

ans =

77.3333