MATLAB数学建模与仿真(第2版·微课视频版)程序代码 综合实例(六)_第1页
MATLAB数学建模与仿真(第2版·微课视频版)程序代码 综合实例(六)_第2页
MATLAB数学建模与仿真(第2版·微课视频版)程序代码 综合实例(六)_第3页
全文预览已结束

下载本文档

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

文档简介

【例7-39】函数逼近:设计一个BP神经网络,g(x)=1+sin(kπ/2x),其中,分别令

k=2,3,6进行仿真,通过调节参数得出信号频率和隐含层节点之间,隐含层节点与函数逼近能力之间的关系。解:设频率参数

k=2,绘制要毕竟的非线性函数的目标曲线:k=2;p=[-1:.05:8];t=1+sin(k*pi/2*p);plot(p,t,'-');title('Non-linearFunctiontobeApproached');xlabel=('Time');ylabl=('Non-linearFunction');运行后得到目标曲线如下图所示:使用newff函数建立BP神经网络n=5;%设定隐含层神经元数目为5net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm');%选择隐含层和输出层神经元传递函数为tansig和purelin,%网络训练算法采用Levenberg-Marquardt算法trainlm.%对于初始神经网络,可使用sim()函数观察网络输出y1=sim(net,p);figure;plot(p,t,'-',p,y1,':')title('RawOutput');xlabel('Time');ylabel('SimulationOutput----OriginalFunction')程序运行后所得到的神经网络输出曲线和原函数的对比图:使用newff函数建立神经网络时权值和阈值的初始化是随机的,故网络输出的结构很差,达不到逼近函数的目的。下面设置网络训练参数,应用train函数对网络进行训练:net.trainParam.Epochs==200;%设定网络训练步长为200net.trainParam.goal=0.2;%设定网络训练精度为0.2net=train(net,p,t);%开始执行网络训练下面对训练出的神经网络进行仿真:y2=sim(net,p);figure;plot(p,t,'-',p,y1,':',p,y2,'--')title('OutputoftheTrainedNeuralNetwork');clearxlabelxlabel('Time')ylabel('SimulationOutput')下图为训练所得的神经网络的输出结果:不难看出,经过训练后的BP神经网络对非线性函数的逼近效果有显著提升。实际上,改变非线性函数的频率和BP神经网络隐含层神经元的数

温馨提示

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

评论

0/150

提交评论