當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy BPoly.from_derivatives用法及代碼示例

本文簡要介紹 python 語言中 scipy.interpolate.BPoly.from_derivatives 的用法。

用法:

classmethod  BPoly.from_derivatives(xi, yi, orders=None, extrapolate=None)#

在 Bernstein 基中構造分段多項式,與斷點處的指定值和導數兼容。

參數

xi array_like

已排序的一維 x 坐標數組

yi 數組 或 array_likes 的列表

yi[i][j]xi[i] 處已知的 j 導數

orders 無或 int 或 數組 整數。默認值:無。

指定局部多項式的次數。如果不是 None,則忽略一些導數。

extrapolate bool 或 ‘periodic’,可選

如果是布爾值,則確定是根據第一個和最後一個間隔外推到越界點,還是返回 NaN。如果‘periodic’,使用周期性外推。默認為真。

注意

如果在斷點 x 指定 k 導數,則構造的多項式恰好是 k 次在 x 處連續可微分,除非明確提供了 order。在後一種情況下,斷點處多項式的平滑度由 order 控製。

order 和可用的導數數推導出每端匹配的導數數。如果可能,它使用來自每一端的相同數量的導數;如果數字是奇數,它會嘗試從 y2 中取出多餘的數字。在任何情況下,如果在一端或另一端沒有足夠的衍生品可用,它會從另一端汲取足夠的資金來彌補總數。

如果訂單太高並且沒有足夠的衍生品可用,則會引發異常。

例子

>>> from scipy.interpolate import BPoly
>>> BPoly.from_derivatives([0, 1], [[1, 2], [3, 4]])

創建一個 3 次多項式 f(x),定義在 [0, 1] 上,使得 f(0) = 1, df/dx(0) = 2, f(1) = 3, df/dx(1) = 4

>>> BPoly.from_derivatives([0, 1, 2], [[0, 1], [0], [2]])

創建分段多項式f(x), 這樣f(0) = f(1) = 0,f(2) = 2, 和df/dx(0) = 1.根據提供的導數,局部多項式的階數為 2[0, 1]和 1 上[1, 2].請注意,在x = 1x = 2.

事實上,多項式的顯式形式是:

f(x) = | x * (1 - x),  0 <= x < 1
       | 2 * (x - 1),  1 <= x <= 2

所以 f'(1-0) = -1 和 f'(1+0) = 2

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.interpolate.BPoly.from_derivatives。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。