Piecewise polynomial in terms of coefficients and breakpoints.
The polynomial between ``xi`` and ``xi + 1`` is written in the Bernstein polynomial basis::
S = sum(ca, i * b(a, k; x) for a in range(k+1)),
where ``k`` is the degree of the polynomial, and::
b(a, k; x) = binom(k, a) * t**a * (1 - t)**(k - a),
with ``t = (x - xi) / (xi+1 - xi)`` and ``binom`` is the binomial coefficient.
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, 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.
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__ extend derivative antiderivative integrate construct_fast from_power_basis from_derivatives
See also -------- PPoly : piecewise polynomials in the power basis
Notes ----- Properties of Bernstein polynomials are well documented in the literature, see for example 1_ 2_ 3_.
References ---------- .. 1 https://en.wikipedia.org/wiki/Bernstein_polynomial
.. 2 Kenneth I. Joy, Bernstein polynomials, http://www.idav.ucdavis.edu/education/CAGDNotes/Bernstein-Polynomials.pdf
.. 3 E. H. Doha, A. H. Bhrawy, and M. A. Saker, Boundary Value Problems, vol 2011, article ID 829546, :doi:`10.1155/2011/829543`.
Examples -------- >>> from scipy.interpolate import BPoly >>> x = 0, 1 >>> c = [1], [2], [3] >>> bp = BPoly(c, x)
This creates a 2nd order polynomial
.. math::
B(x) = 1 \times b_
, 2
(x) + 2 \times b_
, 2
(x) + 3 \times b_
, 2
(x) \\ = 1 \times (1-x)^2 + 2 \times 2 x (1 - x) + 3 \times x^2