scipy.interpolate.

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 样条表示。

给定一组表示曲面 z=f(x,y) 的数据点 (x[i], y[i], z[i]),计算曲面的 B 样条表示。基于 FITPACK 中的例程 SURFIT。

参数:
x, y, zndarray

数据点的秩 1 数组。

wndarray,可选

权重值的秩 1 数组。默认情况下,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)。

taskint,可选

如果 task=0,则找到给定平滑因子 s 的 x 和 y 中的结点和系数。如果 task=1,则找到另一个平滑因子值 s 的结点和系数。bisplrep 必须先前已使用 task=0 或 task=1 调用过。如果 task=-1,则找到给定结点集 tx, ty 的系数。

sfloat,可选

一个非负平滑因子。如果权重对应于 z 中误差的标准偏差的倒数,则应在范围 (m-sqrt(2*m),m+sqrt(2*m)) 中找到一个好的 s 值,其中 m=len(x)。

epsfloat,可选

用于确定过度确定的线性方程组的有效秩的阈值 (0 < eps < 1)。eps 可能不需要更改。

tx, tyndarray,可选

task=-1 时样条的结点的秩 1 数组

full_outputint,可选

非零值表示返回可选输出。

nxest, nyestint,可选

对结点总数的过高估计。如果为 None,则 nxest = max(kx+sqrt(m/2),2*kx+3), nyest = max(ky+sqrt(m/2),2*ky+3)

quietint,可选

非零值表示禁止打印消息。

返回:
tckarray_like

一个列表 [tx, ty, c, kx, ky],其中包含曲面的双变量 B 样条表示的结点 (tx, ty) 和系数 (c) 以及样条的次数。

fpndarray

样条近似的加权平方残差之和。

ierint

一个关于 splrep 成功与否的整数标志。如果 ier<=0,则表示成功。如果 ier 在 [1,2,3] 中,则发生错误但未引发。否则,将引发错误。

msgstr

与整数标志 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。

示例

示例在本教程中给出。