本文简要介绍 python 语言中 scipy.interpolate.KroghInterpolator
的用法。
用法:
class scipy.interpolate.KroghInterpolator(xi, yi, axis=0)#
对一组点进行插值多项式。
多项式通过所有对
(xi, yi)
。可以另外指定每一点的导数数量xi;这是通过重复该值来完成的xi并将导数指定为连续的义值。允许对多项式及其所有导数进行评估。出于数值稳定性的原因,此函数不计算多项式的系数,尽管它们可以通过评估所有导数来获得。
- xi: 类似数组,形状 (npoints, )
已知的 x 坐标。必须按升序排列。
- yi: 数组,形状(...,npoints,...)
已知 y 坐标。当 xi 连续出现两次或多次时,相应的 yi 表示导数值。 yi 沿插补轴的长度必须等于 xi 的长度。使用轴参数选择正确的轴。
- axis: 整数,可选
轴在义对应于 x 坐标值的数组。默认为
axis=0
.
参数 ::
注意:
请注意,此处实现的算法不一定是已知的数值最稳定的算法。此外,即使在精确计算的世界中,除非非常仔细地选择 x 坐标——切比雪夫零点(例如 cos(i*pi/n))是一个不错的选择——多项式插值本身就是一个非常ill-conditioned 的过程,因为龙格现象。通常,即使使用well-chosen x 值,高于大约 30 的度数也会导致此代码中出现数值不稳定的问题。
基于[1]。
参考:
[1]Krogh,“多项式插值和数值微分的有效算法”,1970 年。
例子:
要生成在 0 和 1 处为零且在 0 处导数为 2 的多项式,请调用
>>> from scipy.interpolate import KroghInterpolator >>> KroghInterpolator([0,0,1],[0,2,0])
这构造了二次方程
。导数条件由重复的零表示xi大批;对应的 yi 值为 0(函数值)和 2(导数值)。再举一个例子,给定 xi、yi 和每个点的导数 ypi,适当的数组可以构造为:
>>> import numpy as np >>> rng = np.random.default_rng() >>> xi = np.linspace(0, 1, 5) >>> yi, ypi = rng.random((2, 5)) >>> xi_k, yi_k = np.repeat(xi, 2), np.ravel(np.dstack((yi,ypi))) >>> KroghInterpolator(xi_k, yi_k)
要生成 vector-valued 多项式,请为 yi 提供一个高维数组:
>>> KroghInterpolator([0,1],[[2,3],[4,5]])
这构造了一个线性多项式,在 0 处给出 (2,3),在 1 处给出 (4,5)。
- dtype:
属性 ::
相关用法
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy interpolate.InterpolatedUnivariateSpline用法及代码示例
- Python SciPy interpolate.BSpline用法及代码示例
- Python SciPy interpolate.LSQSphereBivariateSpline用法及代码示例
- Python SciPy interpolate.griddata用法及代码示例
- Python SciPy interpolate.splder用法及代码示例
- Python SciPy interpolate.LinearNDInterpolator用法及代码示例
- Python SciPy interpolate.PPoly用法及代码示例
- Python SciPy interpolate.NdBSpline用法及代码示例
- Python SciPy interpolate.pade用法及代码示例
- Python SciPy interpolate.barycentric_interpolate用法及代码示例
- Python SciPy interpolate.RegularGridInterpolator用法及代码示例
- Python SciPy interpolate.NdPPoly用法及代码示例
- Python SciPy interpolate.interp2d用法及代码示例
- Python SciPy interpolate.approximate_taylor_polynomial用法及代码示例
- Python SciPy interpolate.RectSphereBivariateSpline用法及代码示例
- Python SciPy interpolate.sproot用法及代码示例
- Python SciPy interpolate.splantider用法及代码示例
- Python SciPy interpolate.CloughTocher2DInterpolator用法及代码示例
- Python SciPy interpolate.interp1d用法及代码示例
- Python SciPy interpolate.BPoly用法及代码示例
- Python SciPy interpolate.BarycentricInterpolator用法及代码示例
- Python SciPy interpolate.splrep用法及代码示例
- Python SciPy interpolate.make_smoothing_spline用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.KroghInterpolator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。