def damped_svd_fit_step (   self,
  trace = 0 
)

A lot like lm_fit_step

Definition at line 685 of file fitting_toolkit.py.

00685                                           : 
00686         "take one svd-hessian step and adjust damping  based on chi^2"
00687         n=self.pointcount
00688         if self.firstpass: #do an initial measurement of chi2 first time through
00689             self.svd_damping_recipe()
00690             self.funcvals=self.compute_funcvals()
00691             self.set_weights()
00692             self.compute_chi2()
00693             self.firstpass=0 #we've done all the first-pass stuff now
00694             
00695         save_chi2=self.chi2
00696         save_params=self.funcparams
00697         save_vals=self.funcvals
00698         try:
00699             self.svd_hessian_compute_fit(self.svd_damping)
00700         except KeyboardInterrupt:
00701             raise
00702         except:
00703             self.chi2=2.0*save_chi2 #just consider a failure to be a bad step
00704         self.svd_damping_recipe(save_chi2, self.chi2)
00705         if save_chi2 < self.chi2: #ouch, bad step, back up
00706             if trace:
00707                 print "rejected step: old chi2=%.3e, new chi2=%.3e, lambda=%.3e" % (save_chi2, self.chi2, self.svd_damping)
00708                 print "params =", self.funcparams
00709             self.funcparams=save_params
00710             self.chi2=save_chi2
00711             self.funcvals=save_vals
00712             return 1 #flag rejected step
00713         else:
00714             if trace:
00715                 print "accepted step: old chi2=%.3e, new chi2=%.3e, lambda=%.3e" % (save_chi2, self.chi2, self.svd_damping)
00716                 print "params =", self.funcparams
00717             return 0 #flag accepted step
00718 


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