splantider#
- scipy.interpolate.splantider(tck, n=1)[источник]#
Вычислить сплайн для первообразной (интеграла) заданного сплайна.
Наследие
Эта функция считается устаревшей и больше не будет получать обновления. Хотя в настоящее время у нас нет планов по ее удалению, мы рекомендуем, чтобы новый код использовал более современные альтернативы. В частности, мы рекомендуем создавать
BSplineобъект и используя егоantiderivativeметод.- Параметры:
- tckЭкземпляр BSpline или кортеж (t, c, k)
Сплайн, чью первообразную вычислить
- nint, необязательный
Порядок антипроизводной для вычисления. По умолчанию: 1
- Возвращает:
- экземпляр BSpline или кортеж (t2, c2, k2)
Сплайн порядка k2=k+n, представляющий первообразную входного сплайна. Кортеж возвращается только если входной аргумент tck является кортежем, в противном случае строится и возвращается объект BSpline.
Примечания
The
splderфункция является обратной операцией к этой функции. А именно,splder(splantider(tck))идентичен tck, с точностью до ошибки округления.Добавлено в версии 0.13.0.
Примеры
>>> from scipy.interpolate import splrep, splder, splantider, splev >>> import numpy as np >>> x = np.linspace(0, np.pi/2, 70) >>> y = 1 / np.sqrt(1 - 0.8*np.sin(x)**2) >>> spl = splrep(x, y)
Производная является обратной операцией к первообразной, хотя накапливается некоторая ошибка с плавающей запятой:
>>> splev(1.7, spl), splev(1.7, splder(splantider(spl))) (array(2.1565429877197317), array(2.1565429877201865))
Первообразная может использоваться для вычисления определенных интегралов:
>>> ispl = splantider(spl) >>> splev(np.pi/2, ispl) - splev(0, ispl) 2.2572053588768486
Это действительно аппроксимация полного эллиптического интеграла \(K(m) = \int_0^{\pi/2} [1 - m\sin^2 x]^{-1/2} dx\):
>>> from scipy.special import ellipk >>> ellipk(0.8) 2.2572053268208538