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, optional
权重的1维数组。默认情况下
w=np.ones(len(x))
。- xb, xefloat, optional
x 中近似区间的端点。默认情况下
xb = x.min(), xe=x.max()
。- yb, yefloat, optional
y 中近似区间的端点。默认情况下
yb=y.min(), ye = y.max()
。- kx, kyint, optional
样条的次数 (1 <= kx, ky <= 5)。推荐使用三阶 (kx=ky=3)。
- taskint, optional
如果 task=0,则为给定的平滑因子 s 查找 x 和 y 中的结和系数。如果 task=1,则为平滑因子 s 的另一个值查找结和系数。bisplrep 必须事先已用 task=0 或 task=1 调用过。如果 task=-1,则为给定的一组结 tx, ty 查找系数。
- sfloat, optional
一个非负平滑因子。如果权重对应于 z 中误差标准差的倒数,则一个好的 s 值应在范围
(m-sqrt(2*m),m+sqrt(2*m))
内找到,其中 m=len(x)。- epsfloat, optional
一个用于确定超定线性方程组有效秩的阈值 (0 < eps < 1)。eps 不太可能需要更改。
- tx, tyndarray, optional
task=-1 时样条结的1维数组。
- full_outputint, optional
非零值表示返回可选输出。
- nxest, nyestint, optional
结总数的过高估计。如果为 None,则
nxest = max(kx+sqrt(m/2),2*kx+3)
,nyest = max(ky+sqrt(m/2),2*ky+3)
。- quietint, optional
非零值表示抑制消息打印。
- 返回:
- 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.:An algorithm for surface fitting with spline functions Ima J. Numer. Anal. 1 (1981) 267-283.
[2]Dierckx P.:An algorithm for surface fitting with spline functions report tw50, Dept. Computer Science,K.U.Leuven, 1980.
[3]Dierckx P.:Curve and surface fitting with splines, Monographs on Numerical Analysis, Oxford University Press, 1993.
示例
示例可在 教程中找到。