Package: python-scientific Version: 2.4.9-2 Severity: important leastSquaresFit have a serious problems fitting some sort of data. See example:
---------- fit.py begin ----------------------- #!/usr/bin/python import math import Numeric import Gnuplot from Scientific.Functions.LeastSquares import leastSquaresFit def func(params,x): # y=ax^2+bx+c return params[0]*x*x + params[1]*x + params[2] y = [0.024534584403990638, 0.024268139468029117, 0.024327174254079119, 0.023987418341212714, 0.024193310299944572, 0.024205986364944539, 0.024362896651579858, 0.02423512221973911, 0.024474275622143011, 0.024560514763826952, 0.024200400064391291, 0.024905882963317118, 0.024341957057204804, 0.024858910677267834, 0.02456561695534765, 0.024486185747873021, 0.024849803534167346, 0.02494169514520066, 0.024830224580372567, 0.024924391234288964, 0.024829432926425379, 0.025084227371413314, 0.024920185549166675, 0.024966063512280281, 0.024976124021682811, 0.024937318918899908, 0.025227082507185663, 0.024855946039654016, 0.024749003062764331, 0.024932169370634406, 0.02506660192339695, 0.02494286917136742, 0.02496622327396187, 0.024958945781895937, 0.025422296259554999, 0.025131910308544132, 0.025359726223181406, 0.025166614713359344, 0.02518719660684356, 0.02483155872573857, 0.024708002738975152, 0.024874566784538119, 0.025060911568896765, 0.024619622497772997, 0.024873415963445222, 0.024264834096079206, 0.024614531032652768, 0.024399247042373475, 0.024863916814417391, 0.024766917482409959, 0.024219429877820539, 0.024638125836536767, 0.024541418698712448, 0.024317146507352321, 0.024536888767789325, 0.024200295665299014, 0.024433616218483001, 0.024424434856681668, 0.023599470793024137, 0.023744196289889611, 0.024244459897969299, 0.023766126573895086, 0.022880253808965877, 0.02402953850052976, 0.023752884424688276, 0.02356658316651471, 0.023732425193155302, 0.024136862451918019] x = [9007708.75, 9007710.625, 9007712.5, 9007714.375, 9007716.25, 9007718.125, 9007720.0, 9007721.875, 9007723.75, 9007725.625, 9007727.5, 9007729.375, 9007731.25, 9007733.125, 9007735.0, 9007736.875, 9007738.75, 9007740.625, 9007742.5, 9007744.375, 9007746.25, 9007748.125, 9007750.0, 9007751.875, 9007753.75, 9007755.625, 9007757.5, 9007759.375, 9007761.25, 9007763.125, 9007765.0, 9007766.875, 9007768.75, 9007770.625, 9007772.5, 9007774.375, 9007776.25, 9007778.125, 9007780.0, 9007781.875, 9007783.75, 9007785.625, 9007787.5, 9007789.375, 9007791.25, 9007793.125, 9007795.0, 9007796.875, 9007798.75, 9007800.625, 9007802.5, 9007804.375, 9007806.25, 9007808.125, 9007810.0, 9007811.875, 9007813.75, 9007815.625, 9007817.5, 9007819.375, 9007821.25, 9007823.125, 9007825.0, 9007826.875, 9007828.75, 9007830.625, 9007832.5, 9007834.375] datafit = [] for i in range(len(x)): datafit.append((x[i], y[i])) guess = (-1.0, 1.0, 1.0) fit_params, fit_error = leastSquaresFit(func, guess, datafit) print fit_params, fit_error xf = [] yf = [] for i in range(len(x)): xf.append(x[i]) yf.append(func(fit_params, x[i])) gnuplot = Gnuplot.Gnuplot() gnuplot.clear() gnuplot('set data style linespoints') gnuplot('set title "bad fit"') #self.gnuplot('set xrange [%f:%f]' % (self.frequency['start']-100, self.frequency['stop']+100)) gnuplot.plot( Gnuplot.Data( x, y, title='data', axes='x1y1', inline=1 ), Gnuplot.Data( xf, yf, title='fit', axes='x1y1', inline=1 ) ) raw_input('Press enter') x = range(len(x)) datafit = [] for i in range(len(x)): datafit.append((x[i], y[i])) guess = (-1.0, 1.0, 1.0) fit_params, fit_error = leastSquaresFit(func, guess, datafit) print fit_params, fit_error xf = [] yf = [] for i in range(len(x)): xf.append(x[i]) yf.append(func(fit_params, x[i])) gnuplot = Gnuplot.Gnuplot() gnuplot.clear() gnuplot('set data style linespoints') gnuplot('set title "good fit"') #self.gnuplot('set xrange [%f:%f]' % (self.frequency['start']-100, self.frequency['stop']+100)) gnuplot.plot( Gnuplot.Data( x, y, title='data', axes='x1y1', inline=1 ), Gnuplot.Data( xf, yf, title='fit', axes='x1y1', inline=1 ) ) raw_input('Press enter') ---------- fit.py end ----------------------- -- System Information: Debian Release: 3.1 APT prefers experimental APT policy: (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.8-2-k7 Locale: LANG=C, LC_CTYPE=sk_SK (charmap=ISO-8859-2) Versions of packages python-scientific depends on: ii python 2.3.5-2 An interactive high-level object-o ii python-netcdf 2.4.9-2 A netCDF interface for Python ii python-numeric-ext 23.8-1 Extension modules for Numeric Pyth -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]