bp.m

来自「使用MATLAB自己实现的一个BP神经网络的程序」· M 代码 · 共 44 行

M
44
字号
function out=Bp(P,T,In,S,TrainFun);

 Ps=(P-min(min(P)))/(max(max(P))-min(min(P)));
 Ts=(T-min(min(T)))/(max(max(T))-min(min(T)));
 
 INs=(In-min(min(In)))/(max(max(In))-min(min(In)));
 
OutSize=size(T); 

%判断参数是否规范
if OutSize(1)~=S(length(S));
disp('输入的参数不规范');
end;

switch length(S)
    case 1
        net = newff(minmax(Ps),S,{'purelin'},TrainFun);
    case 2
        net = newff(minmax(Ps),S,{'tansig' 'purelin'},TrainFun);
    case 3
        net = newff(minmax(Ps),S,{'tansig' 'logsin' 'purelin'},TrainFun);
    otherwise 
        disp('层数不在预定范围内');
end;

net.trainParam.epochs=10000;
net.trainParam.goal =0.000005;

net=train(net,Ps,Ts);
y=sim(net,Ps);

e=Ts-y;
error=mse(e,net);
r=norm(error);
save net;

yuce=sim(net,INs);

yuce=yuce*(max(max(T))-min(min(T)))+min(min(T));

%输出预测结果
disp(yuce);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?