如何从一维插值得到导数

jba*_*lin 5 python scipy

有没有办法让scipy的interp1d(线性模式)返回每个插值点的导数?我当然可以编写自己的1D插值例程,但可能scipy是在C内部因此更快,速度已经是一个主要问题.

我最终将插值函数添加到多维最小化例程中,因此能够通过分析导数会加快速度,而不是让最小化例程尝试自己计算它们.并且interp1d必须在内部计算它们 - 所以我可以访问它们吗?

gg3*_*349 6

使用UnivariateSpline而不是interp1d,并使用该derivative方法生成一阶导数.在手册页的例子在这里是不言自明.

  • 可能值得强调的是,UnivariateSpline 通常(默认情况下)实现*平滑*样条线(即适合噪声数据的样条线,结数小于数据数),而不是*插值*样条线(#结数 = 数据数)。要对数据进行插值,请确保在调用 UnivariateSpline 时设置 s=0。也许 CubicSpline 在这里会更好;它进行插值,并且有一个 .derivative 方法。 (2认同)