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


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


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

用法:

scipy.interpolate.insert(x, tck, m=1, per=0)#

将结插入B-spline。

给定 B-spline 表示的节点和系数,创建一个新的 B-spline,在点 x 处插入 m 次节点。这是 FITPACK 的 FORTRAN 例程插入的包装器。

参数

x (u) array_like

插入新结的一维点。如果tck从返回splprep, 那么参数值, u 应该被给出。

tck BSpline 实例或元组

如果是元组,那么它应该是一个元组 (t,c,k),其中包含节点向量、B-spline 系数和样条曲线的度数。

m 整数,可选

插入给定结的次数(其多重性)。默认值为 1。

per 整数,可选

如果非零,则输入样条被认为是周期性的。

返回

BSpline 实例或元组

一个新的B-spline,具有节 t、系数 c 和度 k。t(k+1) <= x <= t(n-k),其中 k 是样条的度数。如果是周期样条(per != 0) 必须至少有 k 个内部结 t(j) 满足t(k+1)<t(j)<=x或至少 k 个内部结 t(j) 满足x<=t(j)<t(n-k).如果输入参数返回一个元组tck是一个元组,否则构造并返回一个 BSpline 对象。

注意

基于 [1] 和 [2] 中的算法。

不建议直接操作tck-tuples。在新代码中,更喜欢使用 BSpline 对象。

参考

[1]

W. Boehm,“在b-spline 曲线中插入新结。”,计算机辅助设计,12,p.199-201,1980。

[2]

P. Dierckx,“用样条进行曲线和曲面拟合,数值分析专着”,牛津大学出版社,1993 年。

例子

您可以将结插入B-spline。

>>> from scipy.interpolate import splrep, insert
>>> import numpy as np
>>> x = np.linspace(0, 10, 5)
>>> y = np.sin(x)
>>> tck = splrep(x, y)
>>> tck[0]
array([ 0.,  0.,  0.,  0.,  5., 10., 10., 10., 10.])

插入一个结:

>>> tck_inserted = insert(3, tck)
>>> tck_inserted[0]
array([ 0.,  0.,  0.,  0.,  3.,  5., 10., 10., 10., 10.])

插入了一些结:

>>> tck_inserted2 = insert(8, tck, m=3)
>>> tck_inserted2[0]
array([ 0.,  0.,  0.,  0.,  5.,  8.,  8.,  8., 10., 10., 10., 10.])

相关用法


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