在Matlab中,我可以使用样条插值函数spapi
生成样条曲线,以便可以匹配曲线的规定值及其前两个导数。例如:
spapi([0 0 0 0 1 2 2 2 2],[0 1 1 1 2],[2 0 1 2 -1])
这会在区间[0..2]上生成唯一的三次样条f,其中只有一个内部结,为1,满足五个条件
f(0)= 2,f(1)= 0,f'(1)= 1,f''(1)= 2,f(2)= - 1
这些包括在1处的3倍匹配,即,与那里的函数及其前两个导数的规定值匹配。
然而,在Python中,样条插值函数scipy.interpolate.splrep(x,y)
无法工作,因为x
应该单调递增。
那么,我怎样才能得到具有规定值和导数值的曲线?有没有Python模块或功能?
非常感谢!
scipy.interpolate.BPoly.from_derivatives
构造一个Hermite样条曲线,您可以在其中选择衍生物的值:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BPoly.from_derivatives.html
在您的示例中,您有两个间隔,0..1和1..2。