码迷,mamicode.com
首页 > 其他好文 > 详细

BP神经网络拟合给定函数

时间:2020-02-23 20:13:47      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:lock   练手   训练   color   需要   max   ram   比赛   技术   

  近期在准备美赛,因为比赛需要故重新安装了matlab,在里面想尝试一下神将网络工具箱。就找了一个看起来还挺赏心悦目的函数例子练练手:

                                                                                             y=1+sin(1+pi*x/4)

  针对这个函数,我们首先画出其在[-1,8]上的函数图像,这里间隔为0.05.代码为:
  

p=[-1:0.05:8]
t=1+sin(1+pi*p/4)
plot(p,t,‘-‘)
title("要逼近的线性函数")
xlabel("x")

  画出的图像如下:

技术图片

 然后我们通过建立神经网络,并且训练,设置训练时间为50.这里采用了四层神经网络。

net=newff(minmax(p),[4,1],{‘tansig‘‘purelin‘},‘tranlm‘)
net=newff(minmax(p),[4,1],{‘tansig‘,‘purelin‘},‘tranlm‘)
net=newff(minmax(p),[4,1],{‘tansig‘,‘purelin‘},‘trainlm‘)
y1=sim(net,p);
figure;
plot(p,t,‘-‘,p,y1,‘:‘)
title(‘未训练网络的输出结果‘);
xlabel(‘时间‘);
ylabel(‘仿真输出--原函数-‘);
net.trainParam.epochs=50
net.trainParam.goal=0.01;
net=train(net,p,t);
y2=sim(net,p);figure;plot(p,t,‘-‘,p,y1,‘:‘,p,y2, ‘--‘)
title(‘训练后网络的输出结果‘);xlabel(‘时间‘);
ylabel(‘仿真输出‘);
y2=sim(net,p); figure;
 plot(p,t,‘ - ‘,p,y1,‘:‘,p,y2, ‘--‘)*
title(‘训练后网络的输出结果‘);
 xlabel(‘时间‘); 
ylabel(‘仿真输出‘);

最后训练的结果如下,还是可以接受的

技术图片

 

BP神经网络拟合给定函数

标签:lock   练手   训练   color   需要   max   ram   比赛   技术   

原文地址:https://www.cnblogs.com/upuphe/p/12353344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!