Compute derivatives by default numerical differentiation for all non-frozen parameters, This must be overridden for fits which have analytic derivatives. See example in class documentation. Note in particular that the array returned is organized with all the values for a point in each row. The columns correspond to the parameters. Reimplemented from fit. Definition at line 907 of file fitting_toolkit.py. 00907 : 00908 #analytic derivatives for a 2-d gaussian 00909 #z0+a*exp( -(x-xmu)**2/(2*xsig**2) -(y-ymu)**2/(2.0*ysig**2)) 00910 z0, a, xmu, xsigma, ymu, ysigma = self.funcparams 00911 n=self.pointcount 00912 x=self.xarray[0,:n] 00913 y=self.xarray[1,:n] 00914 xsigi=-1.0/(2.0*xsigma**2) 00915 ysigi=-1.0/(2.0*ysigma**2) 00916 dx=x-xmu 00917 dx2=dx*dx 00918 dy=y-ymu 00919 dy2=dy*dy 00920 expfact=Numeric.exp(xsigi*dx2+ysigi*dy2) 00921 z=a*expfact 00922 00923 dd = zeros((n, 6), self.atype) 00924 dd[:,0]=1.0 00925 dd[:,1]=expfact 00926 dd[:,2]=(-2.0*xsigi)*(dx*z) 00927 dd[:,3]=(-2.0*xsigi/xsigma)*(dx2*z) 00928 dd[:,4]=(-2.0*ysigi)*(dy*z) 00929 dd[:,5]= (-2.0*ysigi/ysigma)*(dy2*z) 00930 00931 return dd
|