【问题标题】:differentiating scipy.interpolate.interp1d区分 scipy.interpolate.interp1d
【发布时间】:2018-11-28 12:31:42
【问题描述】:

给定两个向量 xy 我可以使用 scipy.interpolate.interp1d 来计算(二次)样条曲线。但是,我对样条线本身并不直接感兴趣,而是对样条线的导数感兴趣。 我宁愿有一个明确的解决方案,而不是一个数值导数。

但是我找不到多项式参数在interp1d 中的存储位置。 我尝试了interp1d.__dict__,其中包含interp1d._spline,但是我没有找到这个参数的定义。

【问题讨论】:

  • 检查InterpolatedUnivariateSpline。可以使用导数法(见here
  • @Mstaino 谢谢,太好了,我愿意接受你的回答,你能把它变成一个吗?
  • 当然,很高兴它解决了您的问题!

标签: scipy interpolation


【解决方案1】:

勾选InterpolatedUnivariateSpline,它有derivativemethod:注意,为方便起见,导数返回另一个样条对象,您也可以指定导数的顺序(默认为1)。

from scipy.interpolate import InterpolatedUnivariateSpline as IUS
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = x**2 + np.random.normal(size=10)

u = IUS(x,y)
u_der = u.derivative()

plt.plot(x, y, 'go')
plt.plot(x, u(x), 'b--')
plt.plot(x, u_der(x), 'k')

【讨论】:

    猜你喜欢
    • 2013-09-10
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多