scipy.interpolate.PPoly#

class PPoly(c, x, extrapolate=None, axis=0)[source]#

Piecewise polynomial in terms of coefficients and breakpoints

The polynomial between x[i] and x[i + 1] is written in the local power basis:

S = sum(c[m, i] * (xp - x[i])**(k-m) for m in range(k+1))

where k is the degree of the polynomial.

Parameters#

cndarray, shape (k, m, …)

Polynomial coefficients, order k and m intervals.

xndarray, shape (m+1,)

Polynomial breakpoints. Must be sorted in either increasing or decreasing order.

extrapolatebool or ‘periodic’, optional

If bool, determines whether to extrapolate to out-of-bounds points based on first and last intervals, or to return NaNs. If ‘periodic’, periodic extrapolation is used. Default is True.

axisint, optional

Interpolation axis. Default is zero.

Attributes#

xndarray

Breakpoints.

cndarray

Coefficients of the polynomials. They are reshaped to a 3-D array with the last dimension representing the trailing dimensions of the original coefficient array.

axisint

Interpolation axis.

Methods#

__call__ derivative antiderivative integrate solve roots extend from_spline from_bernstein_basis construct_fast

See also#

BPoly : piecewise polynomials in the Bernstein basis

Notes#

High-order polynomials in the power basis can be numerically unstable. Precision problems can start to appear for orders larger than 20-30.

__init__(c, x, extrapolate=None, axis=0)#

Methods

__init__(c, x[, extrapolate, axis])

antiderivative([nu])

Construct a new piecewise polynomial representing the antiderivative.

construct_fast(c, x[, extrapolate, axis])

Construct the piecewise polynomial without making checks.

derivative([nu])

Construct a new piecewise polynomial representing the derivative.

extend(c, x)

Add additional breakpoints and coefficients to the polynomial.

from_bernstein_basis(bp[, extrapolate])

Construct a piecewise polynomial in the power basis from a polynomial in Bernstein basis.

from_spline(tck[, extrapolate])

Construct a piecewise polynomial from a spline

integrate(a, b[, extrapolate])

Compute a definite integral over a piecewise polynomial.

roots([discontinuity, extrapolate])

Find real roots of the piecewise polynomial.

solve([y, discontinuity, extrapolate])

Find real solutions of the equation pp(x) == y.

Attributes

c

x

extrapolate

axis