bp matlab
发布网友
发布时间:2022-07-15 21:52
我来回答
共3个回答
热心网友
时间:2024-07-28 06:35
楼上的不太对,我改动了一下:
clear;
clc;
pp=[13 18 26 34 40;48 61 75 84 89;95 100 104 110 112];
xtest=[114;117;118;120];
P=pp(:,1:4);T=pp(:,5);P=P';T=T';
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm');
% 设置训练参数
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,xtest)
热心网友
时间:2024-07-28 06:39
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
85.1111
92.2222
98.1111
102.7778
%%%%%%%%%%%%%%%%%%%%%%%
楼主知道 问什么 误差 很大吗?
热心网友
时间:2024-07-28 06:36
好