【问题标题】:What is the Python interpolate function which is the same as spapi in Matlab什么是与Matlab中的spapi相同的Python插值函数
【发布时间】:2018-09-02 08:39:38
【问题描述】:

在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 的模子或函数?

非常感谢!

【问题讨论】:

    标签: python matlab scipy interpolation spline


    【解决方案1】:

    scipy.interpolate.BPoly.from_derivatives 构造一个 Hermite 样条,您可以在其中选择导数的值:

    https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.BPoly.from_derivatives.html

    在您的示例中,您将有两个区间,0..1 和 1..2。

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2015-11-12
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      相关资源
      最近更新 更多