BP神经网络拟合给定函数
发布时间:2021-05-19 10:13:53 所属栏目:大数据 来源: https://www.jb51.cc
导读:近期在准备美赛,因为比赛需要故重新安装了matlab,在里面想尝试一下神将网络工具箱。就找了一个看起来还挺赏心悦目的函数例子练练手: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?y=1+sin(1+pi*x/4)
近期在准备美赛,因为比赛需要故重新安装了matlab,在里面想尝试一下神将网络工具箱。就找了一个看起来还挺赏心悦目的函数例子练练手:
针对这个函数,我们首先画出其在[-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),{'tansig','purelin'},'trainlm') y1=sim(net,p); figure; plot(p,1)">',p,y1,':') title('未训练网络的输出结果'); xlabel('时间'); ylabel('仿真输出--原函数-'); net.trainParam.epochs=50 net.trainParam.goal=0.01; net=train(net,t); y2=sim(net,p);figure;plot(p,'-',':',y2,'--') title('训练后网络的输出结果');xlabel('时间'); ylabel('仿真输出'); y2= title('训练后网络的输出结果'); xlabel('时间'); ylabel('仿真输出'); 最后训练的结果如下,还是可以接受的 ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |