def hessian_compute_fit (   self,
  lm_lambda = None 
)

Take one inverse-Hessian or Levenberg-Marquardt step in a fit.

Parameters:
lm_lambda The Levenberg-Marquardt lambda parameter

Definition at line 514 of file fitting_toolkit.py.

00514                                                  : 
00515         "take one Hessian fitting step  if lm_lambda undefined, otherwise make Levenberg-Marquardt adjustment"
00516         
00517         n=self.pointcount       
00518         fxarray=self.derivs()
00519 
00520         self.set_weights()
00521         fxwarray=self.weights_multiply(Numeric.transpose(fxarray))
00522         self.fitmat=dot(fxwarray, fxarray)
00523         
00524         if lm_lambda is not None: #make Levenberg-Marquardt correction to inverse-covariance matrix
00525             for i in range(self.param_count):
00526                 self.fitmat[i,i]*=(1.0+lm_lambda)
00527                 
00528         for i in range(self.param_count): #handle frozen parameters
00529             if self.frozen[i]:
00530                 self.fitmat[i,:]=0.0
00531                 self.fitmat[:,i]=0.0
00532                 self.fitmat[i,i]=1.0
00533 
00534         if(self.firstpass):
00535             self.funcvals=self.compute_funcvals()
00536             self.firstpass=0
00537 
00538         self.fitvector=solve_linear_equations(self.fitmat, dot(fxwarray, self.yarray[:n]-self.funcvals) )
00539         self.funcparams=self.funcparams+self.fitvector*(1-self.frozen)
00540         self.funcvals=self.compute_funcvals()
00541         self.compute_chi2()         
00542 


Generated on Wed Nov 21 10:18:32 2007 for analysis by  doxygen 1.5.4