# 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-D 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 equation `pp(x) == y`.
  `roots`([discontinuity, extrapolate]) | Find real roots of the piecewise polynomial.
  `extend`(c, x) | 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.