orthax.orthvander3d

orthax.orthvander3d(x, y, z, deg, rec)Source

Pseudo-Vandermonde matrix of given degrees.

Returns the pseudo-Vandermonde matrix of degrees deg and sample points (x, y, z). If l, m, n are the given degrees in x, y, z, then The pseudo-Vandermonde matrix is defined by

\[V[..., (m+1)(n+1)i + (n+1)j + k] = P_i(x)*P_j(y)*P_k(z),\]

where 0 <= i <= l, 0 <= j <= m, and 0 <= j <= n. The leading indices of V index the points (x, y, z) and the last index encodes the degrees of the orthogonal polynomials.

If V = orthvander3d(x, y, z, [xdeg, ydeg, zdeg]), then the columns of V correspond to the elements of a 3-D coefficient array c of shape (xdeg + 1, ydeg + 1, zdeg + 1) in the order

\[c_{000}, c_{001}, c_{002},... , c_{010}, c_{011}, c_{012},...\]

and np.dot(V, c.flat) and lagval3d(x, y, z, c) will be the same up to roundoff. This equivalence is useful both for least squares fitting and for the evaluation of a large number of 3-D orthogonal series of the same degrees and sample points.

Parameters:
  • x (array_like) – Arrays of point coordinates, all of the same shape. The dtypes will be converted to either float64 or complex128 depending on whether any of the elements are complex. Scalars are converted to 1-D arrays.

  • y (array_like) – Arrays of point coordinates, all of the same shape. The dtypes will be converted to either float64 or complex128 depending on whether any of the elements are complex. Scalars are converted to 1-D arrays.

  • z (array_like) – Arrays of point coordinates, all of the same shape. The dtypes will be converted to either float64 or complex128 depending on whether any of the elements are complex. Scalars are converted to 1-D arrays.

  • deg (tuple of ints) – Tuple of maximum degrees of the form (x_deg, y_deg, z_deg).

  • rec (AbstractRecurrenceRelation) – Recurrence relation for the family of orthogonal polynomials.

Returns:

vander3d (ndarray) – The shape of the returned matrix is x.shape + (order,), where \(order = (deg[0]+1)*(deg[1]+1)*(deg[2]+1)\). The dtype will be the same as the converted x, y, and z.