今天晚上复现了一篇论文。
clear all
clc
k=1;
p=[-1:0.05:8];
t= 1 + sin (k*pi/4*p);
%plot(p,t,'-');
%title( '要逼近的非线性函数' );
%xlabel('时间');
%ylabel('非线性函数');
%建立网络
n=4; %隐含层神经元数目
net = newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm') %创建前馈BP网络
y1=sim(net,p);
%figure;
%plot(p,t,'-',p,y1,':');
%title( '未训练网络的输出结果' );
%xlabel( '时间' );
%ylabel('仿真输出原函数');
%训练网络
net.trainParam.epochs=50; %网络训练时间设置为50
net.trainParam.goal=0.01; %训练精度为0.01
net=train(net,p,t); %开始训练
y2=sim(net,p );
figure;
plot(p,t,p,y1,p,y2);
title('训练后网络的输出结果');
xlabel('时间');
ylabel('仿真输出');
结果