#### Previous topic

scipy.interpolate.CubicSpline.roots

#### Next topic

scipy.interpolate.PPoly.__call__

# scipy.interpolate.PPoly

class `scipy.interpolate.``PPoly`(c, x, extrapolate=None, axis=0)

  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: | c : ndarray, shape (k, m, ...) Polynomial coefficients, order k and m intervals x : ndarray, shape (m+1,) Polynomial breakpoints. Must be sorted in either increasing or decreasing order. extrapolate : bool 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. axis : int, optional Interpolation axis. Default is zero.

  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.

  Attributes

  x | (ndarray) Breakpoints.
  c | (ndarray) Coefficients of the polynomials. They are reshaped to a 3-dimensional array with the last dimension representing the trailing dimensions of the original coefficient array.
  axis | (int) Interpolation axis.

  Methods

  `__call__`(x[, nu, extrapolate]) | Evaluate the piecewise polynomial or its derivative.
  `derivative`([nu]) | Construct a new piecewise polynomial representing the derivative.
  `antiderivative`([nu]) | Construct a new piecewise polynomial representing the antiderivative.
  `integrate`(a, b[, extrapolate]) | Compute a definite integral over a piecewise polynomial.
  `solve`([y, discontinuity, extrapolate]) | Find real solutions of the the equation `pp(x) == y`.
  `roots`([discontinuity, extrapolate]) | Find real roots of the the piecewise polynomial.
  `extend`(c, x[, right]) | Add additional breakpoints and coefficients to the polynomial.
  `from_spline`(tck[, extrapolate]) | Construct a piecewise polynomial from a spline
  `from_bernstein_basis`(bp[, extrapolate]) | Construct a piecewise polynomial in the power basis from a polynomial in Bernstein basis.
  `construct_fast`(c, x[, extrapolate, axis]) | Construct the piecewise polynomial without making checks.