如何根据 Scipy SmoothBivariateSpline 给出的一组结和系数计算样条值

How to compute a spline value from a set of knots and coefficents given by Scipys SmoothBivariateSpline

我正在使用 python 将样条拟合到我的数据中。然后,我需要能够将这组结和系数导出到 C 程序以供常规使用。我正在使用 scipy.interpolate.SmoothBivariateSpline 来拟合样条曲线,并使用方法 get_coeffs() 和 get_knots() 来复制结和系数。

最终我需要重写评估方法 (ev()) 以便我可以在 C 环境中使用我的样条。谁能指导我获取有关如何编写此方法的一些资源?

查看代码,基于双变量 FITPACK 的样条的评估委托给 dfitpack.bispevhttps://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack2.py#L844

后一个函数是一个f2py包装器,https://github.com/scipy/scipy/blob/master/scipy/interpolate/src/fitpack.pyf#L352, of a Fortran routine of the same name, https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack/bispev.f, which invokes https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack/fpbisp.f

需要注意的一个问题是 get_knotsget_coefshttps://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack2.py#L780

是如何处理结束结的

这一切可能在 Dierckx 的书中以所有血淋淋的细节进行了讨论。也可能不是——计算例程看起来像是 de Boor 二维方案的相当简单的概括。细节决定成败。