基于BP神经网络逼近函数_第1页
基于BP神经网络逼近函数_第2页
基于BP神经网络逼近函数_第3页
基于BP神经网络逼近函数_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用神经网络拟合一个非线性函数姓名:李海浪班级:10级自动化3班学号:P101813479基于BP神经网络逼近函数假设频率参数k=1,绘制要逼近的非线性函数的曲线。函数的曲线如图1所示.MATLAB程序如下:k=1;p=[0:0.05:10];t=sin(k*pi/4*p);plot(p,t);title('要逼近的正弦函数');xlabel('时间');ylabel(正弦波函数');图1要逼近的正弦函数曲线建立网络应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,暂设为n=3,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练的算法采用Levenberg–Marquardt算法trainlm。NATLAB程序如下:n=3;net=newff(minmax(p),[n,1],{'tansig''purelin'},'trainlm');y1=sim(net,p);figure;plot(p,t,'-',p,y1,':')title('未训练网络的输出结果');xlabel('时间');ylabel('仿真输出--原函数');同时绘制网络输出曲线,并与原函数相比较,结果如图2所示。图2未训练网络的输出结果“”代表要逼近的非线性函数曲线;“‥‥”代表未经训练的函数曲线;因为使用newff()函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也有时不同。3.网络训练应用train()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为50,训练精度设置为0.01,其余参数使用缺省值。训练后得到的误差变化过程如图3所示。图3训练过程net.trainParam.epochs=50;net.trainParam.goal=0.01;net=train(net,p,t);TRAINLM-calcjx,Epoch0/50,MSE9.27774/0.01,Gradient13.3122/1e-010TRAINLM-calcjx,Epoch3/50,MSE0.00127047/0.01,Gradient0.0337555/1e-010TRAINLM,Performancegoalmet.从以上结果可以看出,网络训练速度很快,经过一次循环跌送过程就达到了要求的精度0.01。4.网络测试对于训练好的网络进行仿真:MATLAB程序如下:y2=sim(net,p);figure;plot(p,t,'-',p,y1,':',p,y2,'--')title('训练后网络的输出结果');xlabel('时间');ylabel('仿真输出');绘制网络输出曲线,并与原始非线性函数曲线以及未训练网络的输出结果曲线相比较,比较出来的结果如图4所示。图4训练后网络的输出结果“”代表要逼近的非线性函数曲线;“‥‥‥”代表未经训练的函数曲线;“―――”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论