scipy.interpolate.

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.

Смотрите также

splder, splev, spalde
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