scipy.interpolate.PchipInterpolator¶
- class scipy.interpolate.PchipInterpolator(x, y, axis=0, extrapolate=None)[源代码]¶
- PCHIP一维单调三次插值。 - x和- y是用于逼近某个函数f的值的数组,其中- y = f(x)。插值使用单调三次样条来寻找新点的值。(PCHIP代表分段三次Hermite插值多项式)。- 参数
- xndarray
- 由单调递增的实值组成的一维数组。 - x不能包含重复值(否则过度指定f)
- yndarray
- 实值的一维数组。 - y沿插值轴的长度必须等于- x。如果是N-D数组,则使用- axis参数选择正确的轴。
- axis整型,可选
- y数组中与x坐标值对应的轴。 
- extrapolate布尔值,可选
- 是根据第一个和最后一个间隔外推到越界点,还是返回NAN。 
 
 - 参见 - CubicHermiteSpline
- 分段三次插值器。 
- Akima1DInterpolator
- Akima一维插值器。 
- CubicSpline
- 三次样条数据插值器。 
- PPoly
- 关于系数和断点的分段多项式。 
 - 注意事项 - 内插器在插值数据中保持单调性,如果数据不平滑,则不会超调。 - 一阶导数保证是连续的,但二阶导数可能在 \(x_k\) 。 - 确定点处的导数 \(x_k\) , \(f'_k\) ,使用PCHIP算法 [1]. - 让我们 \(h_k = x_{{k+1}} - x_k\) ,以及 \(d_k = (y_{{k+1}} - y_k) / h_k\) 坡度是在内点吗? \(x_k\) 。如果有迹象表明 \(d_k\) 和 \(d_{{k-1}}\) 是不同的,或者它们中的任何一个等于零,那么 \(f'_k = 0\) 。否则,它由加权调和平均值给出。 \[\frac{w_1+w_2}{f‘_k}=\frac{w_1}{d_{k-1}}+\frac{w_2}{d_k}\]- 哪里 \(w_1 = 2 h_k + h_{{k-1}}\) 和 \(w_2 = h_k + 2 h_{{k-1}}\) 。 - 末端坡度使用单边方案设置 [2]. - 参考文献 - 1
- 傅瑞奇和布特兰,一种构造局部单调分片三次插值的方法,SIAM J.科学。计算机,5(2),300-304(1984) DOI:10.1137/0905021 。 
- 2
- 参见例如C.Moler的《用Matlab进行数值计算》,2004年。 DOI:10.1137/1.9780898717952 
 - 属性
- axis
- c
- extrapolate
- x
 
 - 方法: - __call__\(X[, nu, extrapolate] )- 计算分段多项式或其导数。 - derivative\([nu] )- 构造一个新的分段多项式来表示导数。 - antiderivative\([nu] )- 构造一个新的分段多项式来表示该反导数。 - roots\([discontinuity, extrapolate] )- 求分段多项式的实根。