当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。