Сплайн является кусочно-полиномиальным, то есть есть несколько подинтервалов интервала данных [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, но кубические полиномы делают паршивую экстраполяцию.