scipy.interpolate.

NdPPoly#

класс scipy.interpolate.NdPPoly(c, x, экстраполяция=None)[источник]#

Кусочно-тензорное произведение полиномов

Значение в точке xp = (x', y', z', ...) вычисляется сначала нахождением индексов интервалов i такой, что:

x[0][i[0]] <= x' < x[0][i[0]+1]
x[1][i[1]] <= y' < x[1][i[1]+1]
...

и затем вычисление:

S = sum(c[k0-m0-1,...,kn-mn-1,i[0],...,i[n]]
        * (xp[0] - x[0][i[0]])**m0
        * ...
        * (xp[n] - x[n][i[n]])**mn
        for m0 in range(k[0]+1)
        ...
        for mn in range(k[n]+1))

где k[j] является степенью полинома в измерении j. Это представление является кусочно-многомерным степенным базисом.

Параметры:
cndarray, форма (k0, …, kn, m0, …, mn, …)

Коэффициенты полинома, с порядком полинома kj и mj+1 интервалы для каждого измерения j.

xкортеж ndim из ndarray, формы (mj+1,)

Точки разрыва полинома для каждого измерения. Они должны быть отсортированы в порядке возрастания.

экстраполяцияbool, необязательно

Экстраполировать ли точки за пределами границ на основе первого и последнего интервалов или возвращать NaN. По умолчанию: True.

Атрибуты:
xкортеж ndarrays

Точки разрыва.

cndarray

Коэффициенты полиномов.

Методы

__call__(x[, nu, extrapolate])

Вычислить кусочно-полиномиальную функцию или её производную

derivative(nu)

Создать новый кусочно-полиномиальный объект, представляющий производную.

antiderivative(nu)

Создать новый кусочно-полиномиальный объект, представляющий первообразную.

integrate(ranges[, extrapolate])

Вычислить определённый интеграл по кусочно-полиномиальной функции.

integrate_1d(a, b, axis[, extrapolate])

Вычислить представление NdPPoly для одномерного определённого интеграла

construct_fast(c, x[, extrapolate])

Построить кусочно-полиномиальную функцию без проверок.

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

PPoly

кусочно-полиномиальные функции в 1D

Примечания

Полиномы высокой степени в степенном базисе могут быть численно неустойчивыми.