scipy.interpolate.

BPoly#

class scipy.interpolate.BPoly(c, x, extrapolate=None, axis=0)[Quelle]#

Stückweise definierte Polynome auf Basis der Bernstein-Polynome.

Das Polynom zwischen x[i] und x[i + 1] wird in der Bernstein-Polynom-Basis dargestellt

S = sum(c[a, i] * b(a, k; x) for a in range(k+1)),

wobei k der Grad des Polynoms ist und

b(a, k; x) = binom(k, a) * t**a * (1 - t)**(k - a),

mit t = (x - x[i]) / (x[i+1] - x[i]) und binom der Binomialkoeffizient ist.

Parameter:
cndarray, Form (k, m, …)

Polynomkoeffizienten, Grad k und m Intervalle

xndarray, Form (m+1,)

Polynom-Bruchpunkte. Müssen aufsteigend oder absteigend sortiert sein.

extrapolatebool, optional

Wenn bool, bestimmt, ob für Punkte außerhalb des Bereichs basierend auf dem ersten und letzten Intervall extrapoliert wird oder ob NaNs zurückgegeben werden. Wenn ‘periodic’, wird periodische Extrapolation verwendet. Standard ist True.

axisint, optional

Interpolationsachse. Standard ist Null.

Attribute:
xndarray

Bruchpunkte.

cndarray

Koeffizienten der Polynome. Sie werden zu einem 3-D-Array umgeformt, wobei die letzte Dimension die nachfolgenden Dimensionen des ursprünglichen Koeffizientenarrays darstellt.

axisint

Interpolationsachse.

Methoden

__call__(x[, nu, extrapolate])

Evaluiere das stückweise definierte Polynom oder seine Ableitung.

extend(c, x)

Füge dem Polynom zusätzliche Bruchpunkte und Koeffizienten hinzu.

derivative([nu])

Erstelle ein neues stückweise definiertes Polynom, das die Ableitung darstellt.

antiderivative([nu])

Erstelle ein neues stückweise definiertes Polynom, das die Stammfunktion darstellt.

integrate(a, b[, extrapolate])

Berechne ein bestimmtes Integral über ein stückweise definiertes Polynom.

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

Erstelle das stückweise definierte Polynom ohne Überprüfungen.

from_power_basis(pp[, extrapolate])

Erstelle ein stückweise definiertes Polynom in Bernstein-Basis aus einem Polynom in Potenzbasis.

from_derivatives(xi, yi[, orders, extrapolate])

Erstelle ein stückweise definiertes Polynom in Bernstein-Basis, das mit den angegebenen Werten und Ableitungen an den Bruchpunkten kompatibel ist.

Siehe auch

PPoly

stückweise definierte Polynome in Potenzbasis

Hinweise

Eigenschaften von Bernstein-Polynomen sind in der Literatur gut dokumentiert, siehe z.B. [1] [2] [3].

Referenzen

[3]

E. H. Doha, A. H. Bhrawy, und M. A. Saker, Boundary Value Problems, Bd. 2011, Artikel-ID 829546, DOI:10.1155/2011/829543.

Beispiele

>>> from scipy.interpolate import BPoly
>>> x = [0, 1]
>>> c = [[1], [2], [3]]
>>> bp = BPoly(c, x)

Dies erstellt ein Polynom 2. Grades

\[\begin{split}B(x) = 1 \times b_{0, 2}(x) + 2 \times b_{1, 2}(x) + 3 \times b_{2, 2}(x) \\ = 1 \times (1-x)^2 + 2 \times 2 x (1 - x) + 3 \times x^2\end{split}\]