scipy.interpolate.interp1d 'kind' не работает

Я экспериментирую с interpolate.interp1d, но с ним происходит странное поведение. Вот сценарий:

x = np.linspace(0, 10, 10)  
y = np.cos(-x**2/9.0)
f = interp1d(x, y, kind='cubic')

plt.figure(figsize=(10,7))
plt.plot(x, y, 'o', x, f(x), '--')
plt.legend(['data', 'interp'], loc='best')
plt.show()
plt.pause(2**31-1)

Но результат, который я получаю, - это как будто я передаю вид = 'линейный'. На самом деле, независимо от параметра "вид", результат один и тот же. Я что-то пропустил?

1 ответ

Решение

Вы наносите его только на значения х, которые используете, чтобы соответствовать ему, поэтому вы видите только согласие и линии, проведенные между этими точками. Если вы строите график в большем количестве точек от 0 до 10 (например, np.linspace(0, 10, 100), вы начнете видеть разницу:

выборка интерполяции

Другие вопросы по тегам