【问题标题】:How does scipy.interpolate.CubicSpline's extrapolate work mathematically?scipy.interpolate.CubicSpline 的推断在数学上是如何工作的?
【发布时间】:2018-06-25 13:23:06
【问题描述】:

我试图了解 scipy.interpolate.CubicSpline(..., extrapolate=True) 在内部工作:Scipy 究竟是如何在数学上实现点 x 超出 [a, b] 的外推?

我正在寻找一个公式,例如: score(x) = exp(-x + b) if x > b (这似乎不是他们实现它的方式!)。

尝试查看源代码,无法找出它是如何实现的。文档也没有提供任何细节。

【问题讨论】:

    标签: scipy spline extrapolation


    【解决方案1】:

    样条是一个分段多项式,即,有几个数据区间[a, b] 的子区间,每个子区间都只是一个多项式。对于extrapolate=True,最左边的多项式用于x < a,最右边的多项式用于x > b。这就是文档描述的内容

    根据第一个和最后一个间隔推断出界点,

    很简单也很没用。这是一个插图。

    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.interpolate import CubicSpline
    f = CubicSpline([-2, -1, 0, 1, 2], [1, 1, 0, 2, 2], extrapolate=True)
    t = np.linspace(-4, 4)
    plt.plot(t, f(t))
    plt.show()
    

    所有给定的 y 值都在 0 和 2 之间,但三次多项式的外推很糟糕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 2017-02-22
      • 2021-07-03
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多