def svd_hessian_compute_fit (   self,
  damping = None 
)

Take one inverse-Hessian step, using SVD to control funny steps

Parameters:
damping A damping factor. The computed step size is multiplied by this before taking the step.

Definition at line 546 of file fitting_toolkit.py.

00546                                                    : 
00547         "take one Hessian fitting step  using singular-value-decomposition"
00548         
00549         try:
00550             n=self.pointcount       
00551             self.set_weights()
00552     
00553             if not self.scalar_weights:
00554                 raise exceptions.AssertionError, "SVD solutions require, for now, scalar weights"
00555                             
00556             sigi=Numeric.sqrt(self.weights)
00557             if not operator.isSequenceType(sigi):
00558                 design=self.derivs()*float(sigi)
00559             else:
00560                 design=self.derivs()*sigi[:,Numeric.NewAxis] #w should be a column vector
00561                         
00562             if(self.firstpass):
00563                 self.funcvals=self.compute_funcvals()
00564                 self.firstpass=0
00565     
00566             u, w, v = singular_value_decomposition(design)
00567             w=self.singular_value_edit(w)
00568             for i in range(self.param_count):
00569                 if w[i] != 0:
00570                     w[i] = 1.0/w[i]
00571             b=(self.yarray[:n]-self.funcvals)*sigi
00572             self.fitvector=Numeric.sum(dot(Numeric.transpose(u*w),b)*Numeric.transpose(v), -1)
00573             self.svd_u=u
00574             self.svd_v=v
00575             self.svd_winv=w
00576         except:
00577             import traceback
00578             traceback.print_exc()
00579             raise
00580                     
00581         if damping is None:
00582             self.funcparams=self.funcparams+self.fitvector*(1-self.frozen)
00583         else:
00584             self.funcparams=self.funcparams+self.fitvector*(1-self.frozen)*damping
00585             
00586         self.funcvals=self.compute_funcvals()
00587         self.compute_chi2()         


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