numpy.polynomial.hermite.hermvander2d#

polynomial.hermite.hermvander2d(x, y, deg)[источник]#

Псевдо-матрица Вандермонда заданных степеней.

Возвращает псевдо-матрицу Вандермонда степеней deg и точки выборки (x, y). Псевдо-матрица Вандермонда определяется как

\[V[..., (deg[1] + 1)*i + j] = H_i(x) * H_j(y),\]

где 0 <= i <= deg[0] и 0 <= j <= deg[1]. Ведущие индексы V индексировать точки (x, y) и последний индекс кодирует степени полиномов Эрмита.

Если V = hermvander2d(x, y, [xdeg, ydeg]), тогда столбцы V соответствуют элементам 2-D массива коэффициентов c формы (xdeg + 1, ydeg + 1) в порядке

\[c_{00}, c_{01}, c_{02} ... , c_{10}, c_{11}, c_{12} ...\]

и np.dot(V, c.flat) и hermval2d(x, y, c) будут одинаковыми с точностью до округления. Эта эквивалентность полезна как для метода наименьших квадратов, так и для вычисления большого количества 2-D рядов Эрмита одинаковых степеней и точек выборки.

Параметры:
x, yarray_like

Массивы координат точек, все одинаковой формы. Типы данных будут преобразованы либо в float64, либо в complex128 в зависимости от того, являются ли какие-либо элементы комплексными. Скаляры преобразуются в одномерные массивы.

degсписок целых чисел

Список максимальных степеней вида [x_deg, y_deg].

Возвращает:
vander2dndarray

Форма возвращаемой матрицы равна x.shape + (order,), где \(order = (deg[0]+1)*(deg[1]+1)\). Тип данных будет таким же, как у преобразованного x и y.

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

hermvander, hermvander3d, hermval2d, hermval3d

Примеры

>>> import numpy as np
>>> from numpy.polynomial.hermite import hermvander2d
>>> x = np.array([-1, 0, 1])
>>> y = np.array([-1, 0, 1])
>>> hermvander2d(x, y, [2, 2])
array([[ 1., -2.,  2., -2.,  4., -4.,  2., -4.,  4.],
       [ 1.,  0., -2.,  0.,  0., -0., -2., -0.,  4.],
       [ 1.,  2.,  2.,  2.,  4.,  4.,  2.,  4.,  4.]])