什么是Python插值函数,与Matlab中的spapi相同

时间:2018-09-02 08:39:39

标签: python matlab scipy interpolation spline

在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模式或功能吗?

非常感谢!

1 个答案:

答案 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。