BP神经网络逼近函数
用BP神经网络逼近函数 ,训练样本集 ;测试样本集 ,程序代码,测试曲线。
程序代码:
clear
clc
k=1;
u=[-0.5:0.05:0.45];
t=exp(-1.9*(u+0.5)).*sin(10*u);
n=10;
net=newff(minmax(u),[n,1],{'tansig' 'purelin'},'trainlm');
y1=sim(net,u);
plot(u,t,'-',u,y1,'--');
xlabel('时间');
ylabel('函数值');
title('未训练的BP网络逼近效果');
legend('要逼近的函数曲线','未训练的BP网络逼近曲线');
net=newff(minmax(u),[n,1],{'tansig' 'purelin'},'traingdm');
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
m=[-0.48:0.05:0.47];
net=train(net,m,t);
y2=sim(net,m);
plot(u,t,'-',u,y1,'--',m,y2,'.');
legend('要逼近的函数曲线','未训练的BP网络逼近曲线','训练后的BP网络逼近曲线');
xlabel('时间');
ylabel('函数值');
测试曲线:
图1:测试曲线图
图2:神经网络训练图
图3:神经网络训练表现曲线
图4:神经网络训练情况曲线
图5:神经网络训练回归曲线