Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Generate pseudo Vandermonde matrix of Chebyshev polynomial with float array of points coordinates in Python
To generate a pseudo Vandermonde matrix of the Chebyshev polynomial, use the chebyshev.chebvander2d() function in Python NumPy. This method returns the pseudo-Vandermonde matrix of degrees deg and sample points (x, y). The parameters x and y are 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. The parameter deg is a list of maximum degrees of the form [x_deg, y_deg].
Syntax
numpy.polynomial.chebyshev.chebvander2d(x, y, deg)
Parameters
- x, y ? Arrays of point coordinates, all of the same shape
- deg ? List of maximum degrees of the form [x_deg, y_deg]
Example
Let's create arrays of point coordinates and generate the pseudo Vandermonde matrix ?
import numpy as np
from numpy.polynomial import chebyshev as C
# Create arrays of point coordinates
x = np.array([0.1, 1.4])
y = np.array([1.7, 2.8])
# Display the arrays
print("Array1...\n", x)
print("\nArray2...\n", y)
# Display the datatype
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
# Check the dimensions and shape
print("\nDimensions of Array1...\n", x.ndim)
print("\nShape of Array1...\n", x.shape)
# Generate pseudo Vandermonde matrix
x_deg, y_deg = 2, 3
result = C.chebvander2d(x, y, [x_deg, y_deg])
print("\nResult...\n", result)
Array1... [0.1 1.4] Array2... [1.7 2.8] Array1 datatype... float64 Array2 datatype... float64 Dimensions of Array1... 1 Shape of Array1... (2,) Result... [[ 1.0000000e+00 1.7000000e+00 4.7800000e+00 1.4552000e+01 1.0000000e-01 1.7000000e-01 4.7800000e-01 1.4552000e+00 -9.8000000e-01 -1.6660000e+00 -4.6844000e+00 -1.4260960e+01] [ 1.0000000e+00 2.8000000e+00 1.4680000e+01 7.9408000e+01 1.4000000e+00 3.9200000e+00 2.0552000e+01 1.1117120e+02 2.9200000e+00 8.1760000e+00 4.2865600e+01 2.3187136e+02]]
Understanding the Output
The result is a 2D array where each row corresponds to a point coordinate pair. The matrix has dimensions (n_points, (x_deg+1)*(y_deg+1)), where n_points is the number of coordinate pairs. In our example, with degrees [2, 3], we get a matrix with 12 columns representing all polynomial combinations up to the specified degrees.
Conclusion
The chebvander2d() function efficiently generates pseudo Vandermonde matrices for Chebyshev polynomials. This is useful in polynomial fitting and numerical analysis applications where you need to evaluate multiple polynomial terms at given coordinate points.
