Generate a Pseudo Vandermonde matrix of the Legendre polynomial and x, y floating array of points in Python

To generate a pseudo Vandermonde matrix of the Legendre polynomial, use the legendre.legvander2d() method in Python NumPy. This method creates a 2D pseudo-Vandermonde matrix where each row corresponds to a point coordinate and columns represent different polynomial degrees.

The pseudo-Vandermonde matrix evaluates Legendre polynomials at given points for all degree combinations up to specified maximum degrees. The returned matrix shape is x.shape + (deg[0] + 1) * (deg[1] + 1), where the last dimension contains polynomial evaluations.

Syntax

numpy.polynomial.legendre.legvander2d(x, y, deg)

Parameters

The function accepts the following parameters:

  • x, y ? Arrays of point coordinates with the same shape. Converted to float64 or complex128 based on element types.
  • deg ? List of maximum degrees [x_deg, y_deg] for x and y directions respectively.

Example

Let's create a complete example demonstrating the Legendre pseudo-Vandermonde matrix generation ?

import numpy as np
from numpy.polynomial import legendre as L

# Create arrays of point coordinates
x = np.array([0.1, 1.4])
y = np.array([1.7, 2.8])

# Display the arrays
print("Array x:", x)
print("Array y:", y)
print()

# Display properties
print("x datatype:", x.dtype)
print("y datatype:", y.dtype)
print("x dimensions:", x.ndim)
print("y dimensions:", y.ndim)
print("x shape:", x.shape)
print("y shape:", y.shape)
print()

# Generate pseudo Vandermonde matrix
x_deg, y_deg = 2, 3
result = L.legvander2d(x, y, [x_deg, y_deg])
print("Pseudo Vandermonde matrix shape:", result.shape)
print("Result:")
print(result)
Array x: [0.1 1.4]
Array y: [1.7 2.8]

x datatype: float64
y datatype: float64
x dimensions: 1
y dimensions: 1
x shape: (2,)
y shape: (2,)

Pseudo Vandermonde matrix shape: (2, 12)
Result:
[[ 1.0000000e+00  1.7000000e+00  3.8350000e+00  9.7325000e+00
   1.0000000e-01  1.7000000e-01  3.8350000e-01  9.7325000e-01
  -4.8500000e-01 -8.2450000e-01 -1.8599750e+00 -4.7202625e+00]
 [ 1.0000000e+00  2.8000000e+00  1.1260000e+01  5.0680000e+01
   1.4000000e+00  3.9200000e+00  1.5764000e+01  7.0952000e+01
   2.4400000e+00  6.8320000e+00  2.7474400e+01  1.2365920e+02]]

How the Matrix Works

The pseudo-Vandermonde matrix contains evaluations of 2D Legendre polynomials. For degrees [2, 3], we get (2+1) × (3+1) = 12 columns representing all combinations:

  • L?(x)L?(y), L?(x)L?(y), L?(x)L?(y), L?(x)L?(y)
  • L?(x)L?(y), L?(x)L?(y), L?(x)L?(y), L?(x)L?(y)
  • L?(x)L?(y), L?(x)L?(y), L?(x)L?(y), L?(x)L?(y)

Conclusion

The legvander2d() method efficiently generates pseudo-Vandermonde matrices for 2D Legendre polynomial fitting. This is essential for polynomial interpolation and approximation in scientific computing applications.

Updated on: 2026-03-26T21:05:33+05:30

213 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements