bp.m

来自「pb网络matalb程序设计与实现 pb网络matalb程序设计与实现」· M 代码 · 共 31 行

M
31
字号
clc
clear
%定义要逼近的非线性函数
u=[-0.5:0.01:0.5];
t=exp(-1.9*(u+0.5))*sin(10*u);
figure;
plot(u,t,'r')
title('要逼近的非线性函数');
xlabel('时间');
ylabel('非线性函数');
%建立相应的前馈BP网络
net=newff([-0.5 0.5],[20,1],{'logsig' 'purelin'},'trainelm');
%对没有训练的网络进行仿真
y1=sim(net,u); 
figure;
plot(u,t,'r',u,y1,'k')
title('没有训练的网络仿真结果');
xlabel('时间');
ylabel('仿真输出(黑)  原函数(红)');
%训练网络
net.trainParam.epochs=50;
net.trainParam.goal=0.005;
[net,tr]=train(net,u,t);
plotperf(tr,net.trainParam.goal)   %BP网络训练轨迹
y2=sim(net,u);
%绘出训练后的仿真结果
figure;
plot(u,t,'r',u,y1,'k',u,y2,'b')
title('训练后的网络仿真结果');
xlabel('时间');
ylabel('仿真输出');

⌨️ 快捷键说明

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