我使用 splprep 创建了一个 bspline,如下所示:
tck,uout = splprep([x,y],s=0.,k=2,per=False)
Run Code Online (Sandbox Code Playgroud)
现在,我尝试使用以下方法评估样条线的导数:
dx,dy = splev(uout,tck,der=1)
Run Code Online (Sandbox Code Playgroud)
我发现 splev 返回两个导数列表。
鉴于样条线已参数化(例如以 u 表示),它是否返回 dx/du 和 dy/du ?
如果不是,如何正确评估导数 (dy/dx)?
是的,如果 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