Global Index (short | long) | Local contents | Local Index (short | long)
[TH,st]=search(z,th,g,lim,display)
SEARCH Searches for a lower value of the criterion function [TH,ST] = search(Z,TH,G,LIM) TH : New parameter giving a lower value of the criterion ST=1 : No lower value of the criterion could be found. The routine evaluates the prediction error criterion at values along the G-direction, starting at TH. It is primarily intended as a subroutine to MINCRIT. See PEM for an explanation of the arguments.
This function calls | This function is called by |
---|---|
function [TH,st]=search(z,th,g,lim,display) % L. Ljung 10-1-86,9-25-93 % Copyright (c) 1986-98 by The MathWorks, Inc. % $Revision: 2.3 $ $Date: 1997/12/02 03:44:00 $ % *** Set up the model orders *** th1=th;nu=th(1,3); Nb=sum(th(1,4:4+nu)); nc=th(1,5+nu); Nd=sum(th(1,4:6+nu)); nf=th(1,7+nu:6+2*nu); n=sum(th(1,4:6+2*nu)); l=0;,k=1;,V=th(1,1);,V1=V+1;st=0; % *** Looping, attempting to find a lower value of V along % the G-direction *** while [V1 > V l<10], th(3,1:n)=th1(3,1:n)+k*g.';mc=0; if nc>0,c=fstab([1 th(3,Nb+1:Nb+nc)]); th(3,Nb+1:Nb+nc)=c(2:nc+1); else c=1;end s=Nd; for ku=1:nu, if nf(ku)>0, f=fstab([1 th(3,s+1:s+nf(ku))]); th(3,s+1:s+nf(ku))=f(2:1+nf(ku));end s=s+nf(ku); end e=pe(z,th); [me,ne]=size(e); ll=lim*ones(me,ne);, if lim==0,el=e;else la=abs(e)+eps*ll;el=e.*(min(la,ll)./la);end %el=min(e,ll);,el=max(el,-ll); V1=real(e'*el/length(e)); if display % Give status information to the screen %home disp(int2str(l)) end k=k/2; if l==8,k=0;end l=l+1; if l==10, st=1;end end TH=th;,TH(1,1)=V1;if length(e)>1, TH(2,1)=e'*e/length(e);end