【问题标题】:Evaluating derivative of a spline using splev in Scipy在 Scipy 中使用 splev 评估样条的导数
【发布时间】:2013-10-13 16:07:54
【问题描述】:

我使用 splprep 从一组点创建了一个 bspline,如下所示:

tck,uout = splprep([x,y],s=0.,k=2,per=False)

现在,我正在尝试使用以下方法评估样条的导数:

dx,dy = splev(uout,tck,der=1)

我发现 splev 返回两个导数列表。

鉴于样条已参数化(例如在 u 中),它是否返回 dx/du 和 dy/du ?

如果不是如何正确评估导数(dy/dx)?

【问题讨论】:

  • 如果来自splevretval[0]是dx/du,而retval[1]是dy/du;然后retval[1]/retval[0] 是您寻求的导数,即您只需将它们除以dus “取消”。但是,我无法确认这是对返回值的正确解释。
  • 后半部分是我感兴趣的。我不确定返回值代表什么。
  • 如果我正确阅读了文档,splev 返回在u 评估的样条函数,所以我猜x(u)y(u);不是衍生物。

标签: python scipy


【解决方案1】:

是的,如果 der = 1,则列表是每个点的 dx/du 和 dy/du 的值。那么梯度是 dy/dx = dy/du / dx/du。

我有点担心 splprep 调用:s 是可选的,但如果定义它应该具有与点数大致相同的值(更大意味着更平滑)。 per 是一个整数值,而不是布尔值。三次样条比二次样条表现更好。 http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.splprep.html

【讨论】:

    猜你喜欢
    • 2019-03-02
    • 2011-05-19
    • 2012-01-08
    • 1970-01-01
    • 2021-09-09
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多