scipy.interpolate.BPoly.from_derivatives

classmethod BPoly.from_derivatives(xi, yi, orders=None, extrapolate=None)[源代码]

在Bernstein基上构造分段多项式,与断点处的指定值和导数兼容。

参数
xiarray_like

x坐标的排序一维阵列

yiARRAY_LIKE或ARRAY_LIKE列表

yi[i][j] is the j``th derivative known at ``xi[i]

orders整数的NONE、INT或ARRAY_LIKE。默认值:无。

指定局部多项式的次数。如果不是没有,则忽略一些派生工具。

extrapolate布尔值或‘周期性’,可选

如果为bool,则确定是根据第一个和最后一个间隔外推到越界点,还是返回NAN。如果为‘PERIONAL’,则使用周期性外推。默认值为True。

注意事项

如果 k 派生函数在断点处指定 x ,所构造的多项式是精确的 k 在以下位置连续可微的时间 x ,除非 order 是明确提供的。在后一种情况下,断点处多项式的平滑度由 order

中推导出要在每一端匹配的派生数。 order 以及可用的衍生品数量。如果可能,它从两端使用相同数量的导数;如果数字是奇数,则尝试从y2中取额外的一个。在任何情况下,如果一端或另一端没有足够的衍生品可用,它就会从另一端提取足够的衍生品来弥补总额。

如果订单太高,并且没有足够的衍生品可用,则会引发异常。

示例

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

创建一个多项式 f(x) 阶数为3,定义于 [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) = 0f(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