You should look up "numerical methods" or similar. There are ways of rearranging your calculations to minimize the loss of precision. You could also try a numerical/scientific library like GMP (for integers or rational numbers). I don't know of any (Python) library for extended precision floats, but there ought to be.
Cheers On Monday 20 April 2009 18:53, Matt wrote: > I'm trying to calculate the derivative of a function in Python like so: > > def D5(func,h=1e-5): > ""' Return derivative of function func''' > def df(x): return (func(x+h)-func(x))/h > df.__name__ = func.__name__ + '_dx' > return df > > However, I run into the problem of limited float precision. This is > evident for this: > import math > print D5(D5(D5(D5(math.sin))))(0.3) > => -5551.11512313 > print math.sin(0.3) > => 0.295520206661 > Is there any way that any of you can think of to avoid this for > general-purpose functions? Thanks. > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor