дифференцирующий scipy.interpolate.interp1d - PullRequest
0 голосов
/ 28 ноября 2018

Учитывая два вектора x и y, я могу использовать scipy.interpolate.interp1d для вычисления (квадратичного) сплайна.Однако я не заинтересован непосредственно в сплайне, а скорее в его производной.Я бы предпочел иметь явное решение, а не числовую производную.

Однако я не могу найти, где полиномиальные параметры хранятся в interp1d.Я попытался interp1d.__dict__, который содержит interp1d._spline, однако я не нашел определения этого параметра.

1 Ответ

0 голосов
/ 28 ноября 2018

Проверка InterpolatedUnivariateSpline , имеет метод derivative : обратите внимание, что для удобства производная возвращает другой объект сплайна, и вы также можете указать порядок производной (по умолчанию)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')
...