在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模式或功能吗?
非常感谢!
答案 0 :(得分:0)
scipy.interpolate.BPoly.from_derivatives
构造一个Hermite样条,您可以在其中选择导数的值:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BPoly.from_derivatives.html
在您的示例中,您将有两个时间间隔,即0..1和1..2。