zoukankan      html  css  js  c++  java
  • BP神经网络拟合给定函数

      近期在准备美赛,因为比赛需要故重新安装了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('仿真输出');

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

  • 相关阅读:
    robot framework 初始化清除
    python获取命令行参数
    行业基金
    Ubuntu关闭开机自启项
    ubuntu18.04安装adb
    JavaScript
    centos关闭开机自启项
    CSDN值得学习的专栏
    ubuntu和centos操作命令对比
    linux解压文件命令
  • 原文地址:https://www.cnblogs.com/upuphe/p/12353344.html
Copyright © 2011-2022 走看看