在python中区分2d三次样条曲线

问题描述 投票:0回答:1

我正在使用interpolate.interp2d()将2D样条拟合到函数上。我如何获得花键w.r.t.的一阶导数每个因变量?到目前为止,这是我的代码,Z是我具有的网格上的离散点

from scipy import interpolate
YY, XX = np.meshgrid(Y, X)
f = interpolate.interp2d(AA, XX, Z, kind='cubic')

所以,我需要df / dx和df / dy。另请注意,我的Y栅格间距不均匀。我想我可以对Z进行数值微分,然后拟合新的样条曲线,但这似乎太麻烦了。有更容易的方法吗?

python multidimensional-array interpolation numerical-methods spline
1个回答
0
投票

您可以通过对插值器的interp2d属性使用函数bisplev和可选参数bisplevtck来区分dx的输出。

如果您已插入一些网格数据:

dy

然后您可以将X = np.arange(5.) Y = np.arange(6., 11) Y[0] = 4 # Demonstrate an irregular mesh YY, XX = np.meshgrid(Y, X) Z = np.sin(XX*2*np.pi/5 + YY*YY*2*np.pi/11) f = sp.interpolate.interp2d(XX, YY, Z, kind='cubic') xt = np.linspace(X.min(), X.max()) yt = np.linspace(Y.min(), Y.max()) yyt, xxt = np.meshgrid(yt, xt) 的适当结构作为bisplev访问:f.tck相对于f的偏导数可以评估为

x
© www.soinside.com 2019 - 2024. All rights reserved.