我从一篇论文中得到了一个数据集,其中给出了数据点 x、y 和二阶导数 y"。作者声明这用于获取三次样条表示。
我的问题是:
如何使用包含二阶导数的 scipy 获得样条表示?
请您参考如下方法:
几乎可以肯定,作者指的是在数据的端点处使用二阶导数。
在三次样条插值中,一旦指定了值,您还剩下 2 个自由度,实际上:n + 1 个节点为您提供 n 个多项式,其中 4 n 个参数,您花费 n + 1 来拟合值,3 个用于在每个 n - 1 个关节处保持一致性,剩下 2 个。
您可以使用 scipy.interpolate.CubicSpline ;适当的边界条件是 bc_type=((2, y"0), (2, y"n))
其中 y"0
和 y"n
是第一个和最后一个数据点的二阶导数。