附录A修改版本.doc_第1页
附录A修改版本.doc_第2页
附录A修改版本.doc_第3页
附录A修改版本.doc_第4页
附录A修改版本.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

附录A MATLAB程序A.1 第三章程序1.D-FNN程序Function w1, w2, width, rule, e, RMSN = DFNN (p, t, parameters)%This is D-FNN training program.%Input:% p is the input data, which is r by q matrix% r is the No. of input% t is the output data, which is s2 by q matrix% q is the No. of sample data.% parameters is a vector which defines the predefined parameters% parameters(1)= kdmax (max of accommodation criterion)% parameters(2)= kdmin (min of accommodation criterion)% parameters(3)= gama (decay constant)% parameters(4)= emax (max of output error)% parameters(5)= emin (min of output error)% parameters(6)= beta (convergence constant)% parameters(7)=width0 (the width of the first rule)% parameters(8)= k (overlap factor of RBF units)% parameters(9)= kw (width updating factor)% parameters(10)=kerr (significance of a rule)%Output:% w1 is the centers of the RBF units , which is a u by r matrix% w2 is the weights, which is s2 by u(1+r) matrix% width is the widths of RBF units, which is a 1 by u matrix%Revised 11-3-2006%Copyright Wu shiqian.If narginkd If e(i)ke CRBF=CRBF IN; % Add a new rule Wb=k*d; Width=width wb; W1=CRBF; u,v=size(w1); % caculating outputs of RBF after growing for all data A=RBF(dist(w1,ALLIN),/width); A0=sum(A); A1=A./(ones(u,l)*A0); A2=transf(A1,ALLIN); If u*(r+1)=N % caculating error reduction rate tT=ALLOUT PAT=A2; W,AW=orthogonolize(PAT); SSW=sum(W.*W);SStT=sum(tT.*tT); Err=(W*tT).2)./(SStT*SSW0;errT=err; Errl=zeros(u,s2*(r+1); Errl(:)=errT; err21=err1; Err22=sum(err21.*err21)/(s2*(r+1); err23=sqrt(err21.*err21)/(s2*(r+1); err23=sqrt(err22); No=find(err23ke width(ind)=kw*width(ind); aa=RBF(dist(wl,ALLIN),l./width); aa0=sum(aa);aal=aa./(ones(s,l)*aa0); aa2=transf(aal,ALLIN); w2=ALLOUT/aa2; outaa2=w2*aa2; sse2=sumspr(ALLOUT_outaa2)/(i*s2); RMSE(i)=sqrt(sse2); rule(i)=selse aal=RBF(dist(wl,ALLIN),l./width); aa01=sum(aal);aall=aal./(ones(s,l)*aa0l); aa21=tranf(aall,ALLIN); w2=ALLOUT/aa21: outaa21=w2*aa21; sse3=sumsqr(ALLOUT_outaa21)/(s2*i); RMSE(i)=sqrt(sse3); rule(i)=s end endend 2 几个用于D_FNN的子程序orthogonalize程序functionw,a= orthogonalize(p)% This program is used transform pinto orthogonalized w% Revised 11-3-2006% Copyright Wu Shiqian.u,v=size(p);w(:,l)=p(:,k);a=eye(v);for k=2:v b=zeros(u,l); for i=l:k-1a(i,k)=w(:,i)*p(:,k)/(w(:,i)*w(;,i);b=b+a(i,k)*w(:,i); end w(:,k)=p(:,k)-bend2) RBF程序Function a = RBF(d,w)% This program is used to calculate the RBF units% Input:% d is the distance matrix% w is the width matrix% Output:% a is the output of RBF units % Revised 11-3-2006% Copyright Wu Shiqianif nargin=0 ekfmax=ckf(i);endd,ind=min(dist(CRBF,IN);kd=max(kdmax*gama(i-1),kdmin); if dkdke=max(emax*beta(i-1),emin);if ekf(i)ke%generate new neuron CRBF=CRBF;IN; width=width k*d; u,v=size(CRBF); if u*(r+1)=N RBFOUT2=RBF(dist(CRBF,ALLIN),1./width); pa2=RBFOUT2./(ones(u,1)*sum(RBFOUT2); pTSK2=transf(pa2,ALLIN); W,A=orthogonalize(pTSK2); SSW=sum(W.*W); SStT=sum(ALLOUT.*ALLOUT); err=(W*ALLOUT).2)./(SStT*SSW); err1=zeros(u,s2*(r+1);err1(:)=err;err2=sqrt(sum(err1.*err1)/(s2*(r+1);No=find(err2=0 eemax=e(i);endke=max(emax*beta.(i-1),emin);if dkdif e(i)ke CRBF=CRBF IN;wb=k*d;width=width wb;w1=CRBF;u,v=size(w1);A=RBF(dist(w1,ALLIN),1./width);A0=sum(A);A1=A./(ones(u,1)*A0);A2=transf(A1,ALLIN);if u*(r+1)=N tT=ALLOUT;PAT=A2;W,AW=orthogonalize(PAT);SSW=sum(W.*W);SStT=sum(tT.*tT);err=(W*Tt).2)./(SStT*SSW);errT=err; err1=zeros(u,s2*(r+1);err1(:)=errT;err21=err1;err22=sum(err21.*err21)/(s2*(r+1);err23=sqrt(err22);No=find(err23ke width(ind)=kw*width(ind); a=RBF(dist(w1,ALLIN),1./width); aa0=sum(aa);aal=aa./(ones(s,l)*aa0); aa2=transf(aal,ALLIN); w2=ALLOUT/aa2; outaa2=w2*aa2;sse2=sumsqr(ALLOUT-outaa2)/(i*s2);rmse2=sqrt(sse2);tr(i)=rmsel; neutr(i)=s; elseaa1=RBF(dist(w1,ALLIN),1./width);aa01=sun(aa1);aall=aal./(one(s,1)*aa01);aa21=transf(aall,ALLIN); W2=ALLOUT/aa21; outaa21=w2*aa21; Sse3=sumsqr(ALLOUT-outaa21)/(i*s2);198 rmse3=sqrt(sse3);tr(i)=rmse3; neutr(i)=s;endend end LSEtime=etime(clock,t0); % %LLS-Kalman Filter Algorithm % T0=clock;ALLIN=;ALLOUT=; %For the fist rule CRBF=p(:,1);alter=1;width=;width(1)=2; aa=200; bb=0.001; for i=1:q data=i ds(i)=i; IN=p(:,i); OUT=t(:,); ALLIN=ALLIN IN;ALLOUT=ALLOUT OUT; r,N=size(ALLIN); u,r=size(CRBF); RBFOUT=RBF(dist(CRBF,ALLIN),1./width); pa=RBFOU./(ones(u,1)*sum(RBFOUT); Ptsk=transf(pa,ALLIN); if alter=1 WEGHT=bb*ones(u*(r+1),1); Si=aa*eye(u*(r+1); for iter=1:i Si=Si-(Si*pTSK(:iter)*pTSK(:iter)*Si/(1+pTSK(:,iter)*Si*pTSK(:,iter);WEIGHT=WEIGHT+Si*pTSK(:,iter)*(ALLOUT(:,iter)-pTSK(:,iter)*WEIGHT; end alter=0;else Si=Si-(Si*pTSK(:i)*pTSK(:i)*Si/(1+pTSK(:,i)*Si*pTSK(:,i);WEIGHT=WEIGHT+Si*pTSK(:,i)*(ALLOUT(:,i)-pTSK(:,i)*WEIGHT;endALLESTOUT=WEIGHT*Ptsk;rmse(i)=sqrt(sumsqr(ALLOUT-ALLESTOUT)(i*s2);neuron(i)=u;%for computation of per set errortRBFOUT1=RBF(dist(CRBF,IN),1./width);Pa1=RBFOUT1/sum(RBFOUT1);pTSK=transf(pa1,IN); %convert to TSK modelACTOUT=WEIGHT*pTSK;ae(i)=sqrt(sumsqt(OUT-ACTOUT)/s2);z1=ae(i)-aemax;if z1=0 aemax=ae(i); endd,ind=min(dist(CRBF,IN);Kd=max(kdmax*gama(i-1),kdmin);if dkdke=max(emax*beta(i-1),emin);if ae(i)ke %generate new neuron CRBF=CRBF;IN;width=width*d;u,v=size(CRBT);if u*(r+1)=N RBFOUT2=RBF(dist(CRBF,ALLIN),1./width); pa2=RBFOUT2./(ones(u,1)*sum(RBFOUT2); pTSK2=transf(pa2,ALLIN); W,A=orthogonalize(pTSK2); SSW=sum(w. * w); SStT=sum(ALLOUT.*ALLOUT) err=(W * ALLOUT).2)./(SStT * SSW) err1=zeros(u,s2 8 (r+1);errl( : )=err; err2=sqrt(sum(err1. * err1)/9s2 * (r+1); No=find(err2ke width(ind)=kw*width(ind);alter=1;endendlsekmtime=etime(clock,t0);meanerr=mean(e);meanae=mean(ae);meanekf=mean(ekf);figure,plot(ds,neutr,r,ds,neuron,ro,ds,nekf,r+);title(Fuzzy rule generation);xlabel(Sample patterns);figure,plot(ds,e,r,ds,ae,ro,ds,ekf,r+);title(Actual Output Error);xlabel(Sample patterns);figure,plot(ds,tr,r,ds,rmse,ro,ds,rmsekf,r+);title(Root mean squared error);xlabel(Sample patterns); 3 第5章程序 1.Hermite 函数逼近 % Static function approximation by D-FNN % The underlying function is Hermite function shown in chapter 5 % Revised 11-3-2006 %Copyright Wu Shiqian clc clear, close all rand(seed,5); p=rand(1,200)*8-4; t=1.1*(1-p+2*p.2).*exp(-p.2./2); r,q=size(p);s2,q=size(t); % Setting initial values kdmax=2; kdmin=0.2; gama=0.977;beta=0.9;width0=2; emax=1.1;emin=0.02;k=1.1;kerr=0.0015; parameters(1)=kdmax;parameters(2)=kdmin;parameters(3)=gama; parameters(4)=emax;parameters(5)=emin;parameters(6)=beta; parameters(7)=width0;parameters(8)=k;parameters(9)=kw; parameters(10)=kerr; wl,w2,width,rule,e,RMSE=DFNN(p,t,parameters); TA=RBF(dist(wl,p),1./width); TA0=sum(TA);u,v=size(wl); TA1=TA./(ones(u,1)*TA0); TA2=transf(TA1,p); outTA2=w2*TA2; figure,plot(e,r); title(Actual output error); xlabel(Input sample patterns); figure,plot(RMSE,r); title(Root mean squared error (RMSE); xlabel(Input sample patterns); figure,plot(p,t,r+,p,outTA2,bo); title(Desired and actual outputs); xlabel(Input data); 2.非线性动态系统的辨识 % Nonlinear Dynamic System Identification in chapter 5 by D-FNN % Revised 11-3-2006 % Copyright Wu Shiqian. clc, clear,close all y=zeros(1,200);y(2)=1;a=sin(2*pi/25); p(:,1)=1;0;a;t(1)=sin(2*pi*2/25); for k=3:200 y(k+1)=(y(k)*y(k-1)*(y(k)+2.5)./(1+y(k).2+y(k-1).2)+sin(2*pi*k/25); x1(k-1)=y(k); x2(k-1)=y(k-1) x3(k-1)=sin(2*pi*k./25); p=x1;x2;x3; t(k-1)=y(k+1); end % Setting initial values kdmax=4;kdmin=0.2gama=0.97;beta=0.9;width0=2;emax=1; emin=0.02;k=1.1;kw=1.1;kerr=0.002; parameters(1)=kdmax;parameters(2)=kdmin;parameters(3)=gama; parameters(4)=emax;parameters(5)=emin;parameters(6)=beta; parameters(7)=width0;parameters(8)=k;parameters(9)=kw; parameters(10)=kerr; wl,w2,width,rule,e,RMSE=DFNN(p,t,parameters); TA=RBF(dist(wl,p),1./width); TA0=sum(TA);u,v=size(wl); TA1=TA./(ones(u,1)*TA0); TA2=transf(TA1,p); outTA2=w2*TA2; figure,plot(rule,r); title(Fuzzy rule eneration); xlabel(Input sample patterns); figure,plot(e,r); title(Actual output error); xlabel(Input sample patterns); figure,plot(RMSE,r); title(Root mean squared error (RMSE); xlabel(Input sample patterns); figure; k=1:199; plot(k,t,r-loutTA2,ro); title(Comparison between desired and actual outputs); xlabel(Time t); 3.Mackey-Glass 时间序列预测 % Mackey-Glass time-series prediction in chapter 5 by D-FNN % Revised 11-3-2006 % Copyright Wu Shiqian. clc, clear,clo

温馨提示

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

评论

0/150

提交评论