www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregcovariance/costW_REML.m
function [e,c,Wc]= costW_REML(Wp,c,YHAT,res,J,X) % LOCALMOD/COSTW_REML REstricted Maximum Likelihood cost function % % Inputs % Wp covariance parameters % L local model % YHAT sweepset % res sweepset % J Jacobian for local model % Copyright 2000-2005 The MathWorks, Inc. and Ford Global Technologies, Inc. Gm= 0; p= size(J{1},2); c= update(c,Wp); e= res; Ns= size(res,3); Wc= cell(1,Ns); for i=1:Ns; r = res{i}; yhat = YHAT{i}; % Wc'*Wc= inv( cov(L,Xs) ) wc= choltinv(c,yhat,X{i}); Jw= wc*J{i}; if size(J{i},1)~= length(r) % don't like this should really use nr= length(r); wc= wc(1:nr,1:nr); end Rj= qr(Jw,0); % problems if any diag(Rj)==0 % fudge it ? rd= diag(abs(Rj)); if all(rd) jscale= sum( log(diag(abs(Rj))) ); else jscale= 0; end wd= diag(wc); if all(wd) wd= sum( log(wd ) ); else wd= 0; end % scale factor (geometric mean) Gm= Gm + jscale - wd; % adjust residuals for gemetric mean to % turn log-likelihood problem into least-squares e{i}= wc*r ; Wc{i}= wc; end e= double(e); e= e * exp(Gm/(size(e,1)-p*Ns)); drawnow