SciPy

scipy.interpolate.approximate_taylor_polynomial

scipy.interpolate.approximate_taylor_polynomial(f, x, degree, scale, order=None)[source]

Estimate the Taylor polynomial of f at x by polynomial fitting.

Parameters:
f : callable

The function whose Taylor polynomial is sought. Should accept a vector of x values.

x : scalar

The point at which the polynomial is to be evaluated.

degree : int

The degree of the Taylor polynomial

scale : scalar

The width of the interval to use to evaluate the Taylor polynomial. Function values spread over a range this wide are used to fit the polynomial. Must be chosen carefully.

order : int or None, optional

The order of the polynomial to be used in the fitting; f will be evaluated order+1 times. If None, use degree.

Returns:
p : poly1d instance

The Taylor polynomial (translated to the origin, so that for example p(0)=f(x)).

Notes

The appropriate choice of “scale” is a trade-off; too large and the function differs from its Taylor polynomial too much to get a good answer, too small and round-off errors overwhelm the higher-order terms. The algorithm used becomes numerically unstable around order 30 even under ideal circumstances.

Choosing order somewhat larger than degree may improve the higher-order terms.