广义回归神经网络MATLAB源程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GRNN神经网络---广义回归神经网络,主要用于函数逼近。 ? x=-2:0.01:1 y=2*x.^6+3*x.^5-3*x.^3+x.^2+1 P=x(1:15:end) T=y(1:15:end) spread=[0.05 0.2 0.4 0.6 0.8]; l_style={r.-,bo--,ko-.,k*--,r^-}; for i=1:length(spread) ??? net=newgrnn(P,T,spread(i)); ??? a=sim(net,P); ??? plot(P,a,l_style{i}) ??? hold on end plot(P,T,o); legend(spread=0.05,spread=0.2,spread=0.4,spread=0.6,spread=0.8,train data); title(GRNN神经网络spread探讨) load data; % 载入数据并将数据分成训练和预测两类 p_train=p(1:10,:); p_test=p(11:13,:); t_train=t(1:10,:); t_test=t(11:13,:); % 将各个矩阵转置以便适应网络结构 p_train=p_train; t_train=t_train; p_test=p_test; t_test=t_test; % 将数据归一化 [pn,minp,maxp,tn,mint,maxt]=premnmx(p_train,t_train); p2n=tramnmx(p_test,minp,maxp); for sc=0.1:0.01:1; tic, net=newgrnn(pn,tn,sc); sc toc Out=sim(net,p2n); a2=postmnmx(Out,mint,maxt); e=t_test-a2; perf=mse(e); Y=sim(net,pn); a3=postmnmx(Y,mint,maxt); ep=a3-t_train; perfp=mse(ep); hold on; figure(1); title(网络的预测误差) plot(sc,perf,g:*); hold on; figure(2); title(网络的逼近误差) plot(sc,perfp,r:*); end %通用感应器神经网络。 P=[-0.5 -0.5 0.3 -0.1 -40;-0.5 0.5 -0.5 1 50];%输入向量 T=[1 1 0 0 1];%期望输出 plotpv(P,T);%描绘输入点图像 net=newp([-40 1;-1 50],1);%生成网络,其中参数分别为输入向量的范围和神经元感应器数量 hold on linehandle=plotpc(net.iw{1},net.b{1}); net.adaptparam.passes=3; for a=1:25%训练次数 [net,Y,E]=adapt(net,P,T); linehandle=plotpc(net.iw{1},net.b{1},linehandle); drawnow; end %通用newlin程序 %通用线性网络进行预测 time=0:0.025:5; T=sin(time*4*pi); Q=length(T); P=zeros(5,Q);%P中存储信号T的前5(可变,根据需要而定)次值,作为网络输入。 P(1,2:Q)=T(1,1:(Q-1)); P(2,3:Q)=T(1,1:(Q-2)); P(3,4:Q)=T(1,1:(Q-3)); P(4,5:Q)=T(1,1:(Q-4)); P(5,6:Q)=T(1,1:(Q-5)); plot(time,T)%绘制信号T曲线 xlabel(时间); ylabel(目标信号); title(待预测信号); net=newlind(P,T);%根据输入和期望输出直接生成线性网络 a=sim(net,P);%网络测试 figure(2) plot(time,a,time,T,+) xlabel(时间); ylabel(输出-目标+); title(输出信号和目标信号); e=T-a; figure(3) plot(time,e) hold on plot([min(time) max(time)],[0 0],r:)%可用plot(x,zeros(size(x)),r:)代替 hold off xlabel(时间); ylabel(误差); title(误差信号); %通用BP

您可能关注的文档

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档