我试图找出scipy.interpolate.interp1d
中的样条插值如何决定拟合/平滑函数的导数应该是什么。从documentation,据我所知,如果将interp1d
(或int
或quadratic
)传递给cubic
关键字,kind
适合样条曲线。
但如果我不提供任何衍生信息,它如何决定衍生品是什么?我试着按照源代码中的函数调用,但这只让我看到了神秘的spleval
函数,它似乎只是调用FITPACK。而且我不确定如何从their website找到有关FITPACK的信息......
结点处的样条导数没有明确规定,它们由continuity/smoothness conditions决定。我将以立方案为例。您给出n个x值和n个y值。三次样条具有4 *(n-1)个系数,在给定的x值之间的每个(n-1)个间隔上有4个。这些系数由以下条件确定:
到目前为止总数是4 * n-4个4 * n-4个未知数的方程。需要另外两个方程式;最受欢迎的选择是要求三阶导数在最左边和最右边的内部结处连续(这称为“非结”状态)。现在我们有一个大小为4 * n-4的线性系统,可以求解系数。
上面不应该与Hermite interpolation混淆,qazxswpoi是一个规定衍生物的价值以及函数本身的价值的地方。这是一项不太常见的任务,据我所知,SciPy没有内置工具。