bisplrep#
- scipy.interpolate.bisplrep(x, y, z, w=None, xb=None, xe=None, yb=None, ye=None, kx=3, ky=3, task=0, s=None, eps=1e-16, tx=None, ty=None, full_output=0, nxest=None, nyest=None, quiet=1)[源代码][源代码]#
找到一个曲面的双变量B样条表示。
给定一组数据点 (x[i], y[i], z[i]) 表示一个曲面 z=f(x,y),计算该曲面的 B 样条表示。基于 FITPACK 中的例程 SURFIT。
- 参数:
- x, y, zndarray
数据点的秩-1数组。
- wndarray,可选
权重的一维数组。默认情况下
w=np.ones(len(x))
。- xb, xefloat, 可选
近似区间的端点在 x 中。默认情况下
xb = x.min(), xe=x.max()
。- yb, yefloat, 可选
近似区间的端点在 y 中。默认情况下
yb=y.min(), ye = y.max()
。- kx, kyint, 可选
样条的次数(1 <= kx, ky <= 5)。建议使用三次样条(kx=ky=3)。
- 任务int, 可选
如果 task=0,找到 x 和 y 中的节点以及给定平滑因子 s 的系数。如果 task=1,找到另一个平滑因子 s 的节点和系数。bisplrep 必须先前已使用 task=0 或 task=1 调用。如果 task=-1,找到给定节点集 tx, ty 的系数。
- sfloat, 可选
一个非负的平滑因子。如果权重对应于z中误差标准差的倒数,那么一个好的s值应该在范围
(m-sqrt(2*m),m+sqrt(2*m))
内找到,其中 m=len(x)。- epsfloat, 可选
用于确定超定线性方程组有效秩的阈值(0 < eps < 1)。eps 不太可能需要更改。
- tx, tyndarray,可选
任务=-1 的样条曲线的节点的一维数组
- 完整输出int, 可选
非零返回可选输出。
- nxest, nyestint, 可选
对结点总数的过高估计。如果为 None,则
nxest = max(kx+sqrt(m/2),2*kx+3)
,nyest = max(ky+sqrt(m/2),2*ky+3)
。- 安静int, 可选
非零值以抑制消息的打印。
- 返回:
- tckarray_like
一个包含结点 (tx, ty) 和系数 (c) 的列表 [tx, ty, c, kx, ky],表示曲面的双变量 B 样条表示,以及样条的次数。
- fpndarray
样条逼近的残差平方的加权和。
- ier整数
关于 splrep 成功的整数标志。如果 ier<=0 表示成功。如果 ier 在 [1,2,3] 中,则发生了错误但未引发。否则会引发错误。
- 消息str
与整数标志 ier 对应的错误信息。
注释
参见
bisplev
以评估给定其 tck 表示的 B 样条的值。如果输入数据使得输入维度的单位不一致且相差多个数量级,插值函数可能会出现数值伪影。建议在插值前重新调整数据。
参考文献
[1]Dierckx P.: 用于曲面拟合的样条函数算法 Ima J. Numer. Anal. 1 (1981) 267-283.
[2]Dierckx P.: 用于曲面拟合的样条函数算法报告 tw50, 计算机科学系, K.U.Leuven, 1980.
[3]Dierckx P.: 曲线和曲面拟合与样条,数值分析专著,牛津大学出版社,1993年。
示例
示例在 教程 中给出。