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


Python SciPy interpolate.barycentric_interpolate用法及代码示例


本文简要介绍 python 语言中 scipy.interpolate.barycentric_interpolate 的用法。

用法:

scipy.interpolate.barycentric_interpolate(xi, yi, x, axis=0, *, der=0)#

多项式插值的便利函数。

构造一个通过给定点集的多项式,然后计算多项式。出于数值稳定性的原因,此函数不计算多项式的系数。

此函数使用 “barycentric interpolation” 方法,将问题视为有理函数插值的特殊情况。该算法在数值上相当稳定,但即使在精确计算的世界中,除非非常仔细地选择 x 坐标 - 切比雪夫零点(例如 cos(i*pi/n))是一个不错的选择 - 多项式插值本身就是由于Runge现象,非常ill-conditioned进程。

参数

xi array_like

多项式应通过的点的 x 坐标的一维数组

yi array_like

多项式应通过的点的 y 坐标。

x 标量或类似数组

评估插值的一个或多个点。

der int 或列表或无,可选

要评估多少个导数,或者对于所有潜在的非零导数为“无”(即,等于点数的数字),或者要评估的导数列表。该数字包括作为 ‘0th’ 导数的函数值。

axis 整数,可选

yi 数组中对应于 x 坐标值的轴。

返回

y 标量或类似数组

插值。形状是通过将原始数组中的插值轴替换为 x 的形状来确定的。

注意

插值权重的构建是一个相对缓慢的过程。如果你想用相同的 xi(但可能改变 yi 或 x)多次调用它,你应该使用类 BarycentricInterpolator 。这就是这个函数在内部使用的。

例子

我们可以使用重心插值对 2D 观测数据进行插值:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.interpolate import barycentric_interpolate
>>> x_observed = np.linspace(0.0, 10.0, 11)
>>> y_observed = np.sin(x_observed)
>>> x = np.linspace(min(x_observed), max(x_observed), num=100)
>>> y = barycentric_interpolate(x_observed, y_observed, x)
>>> plt.plot(x_observed, y_observed, "o", label="observation")
>>> plt.plot(x, y, label="barycentric interpolation")
>>> plt.legend()
>>> plt.show()
scipy-interpolate-barycentric_interpolate-1.png

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.barycentric_interpolate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。