📄 bp.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -