from_derivatives#
- метод класса BPoly.from_derivatives(xi, yi, порядки=None, экстраполяция=None)[источник]#
Построить кусочно-полиномиальную функцию в базисе Бернштейна, совместимую с указанными значениями и производными в точках разрыва.
- Параметры:
- xiarray_like
отсортированный одномерный массив x-координат
- yiarray_like или список array_likes
yi[i][j]являетсяjth производная известна вxi[i]- порядкиNone или int или array_like из int. По умолчанию: None.
Задает степень локальных полиномов. Если не None, некоторые производные игнорируются.
- экстраполяцияbool или 'periodic', опционально
Если bool, определяет, следует ли экстраполировать на точки вне границ на основе первого и последнего интервалов или возвращать NaN. Если 'periodic', используется периодическая экстраполяция. По умолчанию True.
Примечания
Если
kпроизводные заданы в точке разрываx, построенный полином точноkраз непрерывно дифференцируема вx, если толькоorderпредоставляется явно. В последнем случае гладкость полинома в точке разрыва контролируетсяorder.Определяет количество производных для сопоставления на каждом конце из
orderи количество доступных производных. Если возможно, используется одинаковое количество производных с каждого конца; если число нечётное, он пытается взять лишнюю из y2. В любом случае, если недостаточно производных доступно на одном конце или другом, он берёт достаточно, чтобы восполнить общее количество с другого конца.Если порядок слишком высок и недостаточно доступных производных, возникает исключение.
Примеры
>>> from scipy.interpolate import BPoly >>> BPoly.from_derivatives([0, 1], [[1, 2], [3, 4]])
Создает полином f(x) степени 3, определенной на
[0, 1]такой, что f(0) = 1, df/dx(0) = 2, f(1) = 3, df/dx(1) = 4>>> BPoly.from_derivatives([0, 1, 2], [[0, 1], [0], [2]])
Создаёт кусочно-полиномиальную функцию f(x), так что f(0) = f(1) = 0, f(2) = 2, и df/dx(0) = 1. На основе количества предоставленных производных, порядок локальных полиномов равен 2 на
[0, 1]и 1 на[1, 2]. Обратите внимание, что никаких ограничений не накладывается на производные вx = 1иx = 2.Действительно, явная форма полинома:
f(x) = | x * (1 - x), 0 <= x < 1 | 2 * (x - 1), 1 <= x <= 2
Так что f’(1-0) = -1 и f’(1+0) = 2