www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregcovariance/gls_FitW.m
function [c,Wc]= gls_FitW(c,varargin) %XREGCOVMODEL/GLS_FITW % % [c,Wc]= gls_FitW(c,varargin); % Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc. % covariance model parameters Wp= double(c); if ~isempty(Wp) % have some parameters to estimate % constraints for covariance parameters bnds=[]; if ~isempty(c.wfunc) [nw,bnds]= feval(c.wfunc,c); end lsqalg=1; if isempty(bnds) bnds= zeros(0,2); end A=[];b=[]; if ~isempty(c.cfunc) % constraints for correlation parameters [nw,bnds2,Ac,bc,nl]= feval(c.cfunc,c); if ~isempty(bnds2) bnds= [bnds;bnds2]; end if ~isempty(Ac) || ~isempty(nl) lsqalg=0; if ~isempty(Ac) % augment with covariance parameters A= [zeros(size(Ac,1),length(c.wparam)),Ac]; b= bc; end end end % set up optimmgr to estimate parameters omParam =xregoptmgr(@nlleastsq,c,c.costFunc); set(omParam,'LargeScale','on'); set(omParam,'Jacobian','off'); set(omParam,'ScaleResiduals',true); omParam= setConstraints(omParam,bnds(:,1),bnds(:,2),A,b,''); set(omParam,'MaxFunEvals',10000); % run fitting algorithm [c,cost,OK,Wp]= run(omParam,c,Wp,varargin{:}); end % obtain new errors, object, weights [e,c,Wc]= feval(c.costFunc,Wp,c,varargin{:});