欢迎来到天天文库
浏览记录
ID:39453796
大小:48.48 KB
页数:3页
时间:2019-07-03
《BP网络逼近函数方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BP网络逼近函数方法题目:使用BP网络逼近对象y(k)=u(k)3+y(k-1)/(1+2y(k-1)2),采样时间取2ms,输入信号为u(k)=0.5sin(2πt)。解答:本题采用matlab编写程序,其编程思路是:(1)将时间轴范围定为从0秒到1秒,每隔2ms采样一次,即增加时间间隔为0.002,计算y值,根据点值画出要逼近函数的图像;(2)用newff()函数建立二层BP神经网络,隐层神经元数目设为10,输出层有一个神经元,选择隐层和输出层神经元传递函数分别为tansig()和purelin(),网络训练用trainlm,建立起初始网络后,用sim()函数观察网络输出,同时绘
2、制输出曲线,并与原函数比较;(3)设置训练参数,将学习速率定为0.05,最大迭代次数定为100,训练精度设为0.000001用train()函数对网络进行训练,训练后绘制曲线,并与原函数比较。具体程序如下:p=0:0.002:1;y(1)=(0.5*sin(2*pi*0))^3;fori=2:501y(i)=(0.5*sin(2*pi*(i-1)*0.002))^3+y(i-1)/(1+2*(y(i-1))^2);endplot(p,y,'o');title('要逼近的函数');xlabel('时间');ylabel('逼近函数');net=newff(minmax(p),[10,1
3、],{'tansig','purelin'},'trainlm');%建立BP网络结构y1=sim(net,p);figureplot(p,y,'bo',p,y1,'r-');title('未训练网络的输出结果')xlabel('时间');ylabel('仿真输出-原函数o');net.trainParam.lr=0.05;%学习速率为0.05net.trainParam.epochs=100;%设定最大迭代次数为100net.trainParam.goal=0.000001;%设定训练误差目标位0.000001[net,tr]=train(net,p,y);y2=sim(net,p
4、);plot(p,y,'bo',p,y2,'r-');title('训练后网络的输出结果')xlabel('时间');ylabel('仿真输出-原函数o');程序出图如下:所要逼近的函数图像:未训练的初始网络输出结果(红线)和原函数图像(蓝线):训练后的网络输出结果(红线)和原函数图像(蓝线):从最后一图中可看出网络输出结果与原函数图形一致,逼近效果很好。
此文档下载收益归作者所有