clear all my=3; % number of the states of y and u "my" rand('seed',39); randn('seed',67); sn=10; % shift numbers T=60; y(1)=0.1; ylower=0; yupper=2; yhat(1)=y(1); yhat=zeros(1,T); ymhat=zeros(1,T); lambda=0.7; % forgetting factor "lambda" lambdav=0.5; % forgetting on v's errorm=0; error0=0; model=1; error_yell=zeros(1,model); % ideal model error error_red=zeros(1,model); % pooled model error error_blue=zeros(1,model); error_green=zeros(1,model); error_white=zeros(1,model); yy=zeros(1,T); for mod=1:model epsi=0.0001; sita=epsi*ones(my*(sn-2),my); % estimated value of theta n0=epsi*ones(my*(sn-2),my); n=n0; % occurence table a(mod)=4*rand+1; b(mod)=2*rand-1; yd=zeros(sn-2,T); ypred=zeros(sn,sn-2); f0=zeros(1,sn); v0=(1/(sn-2))*ones(1,sn-2); % pooling weight v=v0; for t=2:T y(t)=nonsys(y,t,ylower,yupper,mod,a,b); for dis=1:sn-2 % discretization yd=disc(yd,y,ylower,yupper,sn,dis,t); yd(dis,1)=2; % prediction of simple models [n,ypred]=spred(yd,t,ypred,n,dis,lambda,sn,my,n0); yr=(yupper-ylower)/sn; for it=1:sn if (y(t)>=(ylower+(it-1)*yr))&(y(t)<=(ylower+it*yr)) yy(t)=it; end end % prediction of ideal system v(dis)=(ypred(yy(t),dis)*v(dis))^(lambdav)*v0(dis)^(1-lambdav); end v=v/norm(v,1); % pooling for i=1:sn f0(i)=1; for j=1:sn-2 f0(i)=f0(i)*ypred(i,j)^(v(j)); end end f0=f0/norm(f0,1); [yhat(t),ymhat(t)]=contin1(f0,sn,yupper,ylower); end error_red(1,mod)=sqrt((y-yhat)*(y-yhat)'/T) error_green(1,mod)=sqrt((y-ymhat)*(y-ymhat)'/T) end hold off plot(y) %hold on %plot(yhat,'r') hold on plot(ymhat,'g')