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 a Pseudo Vandermonde matrix of the Hermite_e polynomial and x, y, z complex array of points in Python
To generate a pseudo Vandermonde matrix of the Hermite_e polynomial and x, y, z sample points, use the hermite_e.hermevander3d() in Python NumPy. This method returns the pseudo-Vandermonde matrix where the parameters x, y, z 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.
Syntax
numpy.polynomial.hermite_e.hermevander3d(x, y, z, deg)
Parameters
The function accepts the following parameters ?
- x, y, z ? Arrays of point coordinates, all of the same shape
- deg ? List of maximum degrees of the form [x_deg, y_deg, z_deg]
Example
Let's create complex arrays and generate the pseudo Vandermonde matrix ?
import numpy as np
from numpy.polynomial import hermite_e as H
# Create arrays of point coordinates with complex values
x = np.array([-2.+2.j, -1.+2.j])
y = np.array([0.+2.j, 1.+2.j])
z = np.array([2.+2.j, 3.+3.j])
# Display the arrays
print("Array1...\n", x)
print("\nArray2...\n", y)
print("\nArray3...\n", z)
# Display the datatype
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
print("\nArray3 datatype...\n", z.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, z_deg = 2, 3, 4
result = H.hermevander3d(x, y, z, [x_deg, y_deg, z_deg])
print("\nResult shape...\n", result.shape)
print("\nResult...\n", result)
Array1... [-2.+2.j -1.+2.j] Array2... [0.+2.j 1.+2.j] Array3... [2.+2.j 3.+3.j] Array1 datatype... complex128 Array2 datatype... complex128 Array3 datatype... complex128 Dimensions of Array1... 1 Shape of Array1... (2,) Result shape... (2, 60) Result... [[ 1.0000e+00+0.000e+00j 2.0000e+00+2.000e+00j -1.0000e+00+8.000e+00j -2.2000e+01+1.000e+01j -6.1000e+01-4.800e+01j 0.0000e+00+2.000e+00j -4.0000e+00+4.000e+00j -1.6000e+01-2.000e+00j -2.0000e+01-4.400e+01j 9.6000e+01-1.220e+02j -5.0000e+00+0.000e+00j -1.0000e+01-1.000e+01j 5.0000e+00-4.000e+01j 1.1000e+02-5.000e+01j 3.0500e+02+2.400e+02j 0.0000e+00-1.400e+01j 2.8000e+01-2.800e+01j 1.1200e+02+1.400e+01j 1.4000e+02+3.080e+02j -6.7200e+02+8.540e+02j -2.0000e+00+2.000e+00j -8.0000e+00+0.000e+00j -1.4000e+01-1.800e+01j 2.4000e+01-6.400e+01j 2.1800e+02-2.600e+01j -4.0000e+00-4.000e+00j 0.0000e+00-1.600e+01j 3.6000e+01-2.800e+01j 1.2800e+02+4.800e+01j 5.2000e+01+4.360e+02j 1.0000e+01-1.000e+01j 4.0000e+01+0.000e+00j 7.0000e+01+9.000e+01j -1.2000e+02+3.200e+02j -1.0900e+03+1.300e+02j 2.8000e+01+2.800e+01j 0.0000e+00+1.120e+02j -2.5200e+02+1.960e+02j -8.9600e+02-3.360e+02j -3.6400e+02-3.052e+03j -1.0000e+00-8.000e+00j 1.4000e+01-1.800e+01j 6.5000e+01+0.000e+00j 1.0200e+02+1.660e+02j -3.2300e+02+5.360e+02j 1.6000e+01-2.000e+00j 3.6000e+01+2.800e+01j 0.0000e+00+1.300e+02j -3.3200e+02+2.040e+02j -1.0720e+03-6.460e+02j 5.0000e+00+4.000e+01j -7.0000e+01+9.000e+01j -3.2500e+02+0.000e+00j -5.1000e+02-8.300e+02j 1.6150e+03-2.680e+03j -1.1200e+02+1.400e+01j -2.5200e+02-1.960e+02j 0.0000e+00-9.100e+02j 2.3240e+03-1.428e+03j 7.5040e+03+4.522e+03j] [ 1.0000e+00+0.000e+00j 3.0000e+00+3.000e+00j -1.0000e+00+1.800e+01j -6.3000e+01+4.500e+01j -3.2100e+02-1.080e+02j 1.0000e+00+2.000e+00j -3.0000e+00+9.000e+00j -3.7000e+01+1.600e+01j -1.5300e+02-8.100e+01j -1.0500e+02-7.500e+02j -4.0000e+00+4.000e+00j -2.4000e+01+0.000e+00j -6.8000e+01-7.600e+01j 7.2000e+01-4.320e+02j 1.7160e+03-8.520e+02j -1.4000e+01-8.000e+00j -1.8000e+01-6.600e+01j 1.5800e+02-2.440e+02j 1.2420e+03-1.260e+02j 3.6300e+03+4.080e+03j -1.0000e+00+2.000e+00j -9.0000e+00+3.000e+00j -3.5000e+01-2.000e+01j -2.7000e+01-1.710e+02j 5.3700e+02-5.340e+02j -5.0000e+00+0.000e+00j -1.5000e+01-1.500e+01j 5.0000e+00-9.000e+01j 3.1500e+02-2.250e+02j 1.6050e+03+5.400e+02j -4.0000e+00-1.200e+01j 2.4000e+01-4.800e+01j 2.2000e+02-6.000e+01j 7.9200e+02+5.760e+02j -1.2000e+01+4.284e+03j 3.0000e+01-2.000e+01j 1.5000e+02+3.000e+01j 3.3000e+02+5.600e+02j -9.9000e+02+2.610e+03j -1.1790e+04+3.180e+03j -4.0000e+00-4.000e+00j 0.0000e+00-2.400e+01j 7.6000e+01-6.800e+01j 4.3200e+02+7.200e+01j 8.5200e+02+1.716e+03j 4.0000e+00-1.200e+01j 4.8000e+01-2.400e+01j 2.1200e+02+8.400e+01j 2.8800e+02+9.360e+02j -2.5800e+03+3.420e+03j 3.2000e+01+0.000e+00j 9.6000e+01+9.600e+01j -3.2000e+01+5.760e+02j -2.0160e+03+1.440e+03j -1.0272e+04-3.456e+03j 2.4000e+01+8.800e+01j -1.9200e+02+3.360e+02j -1.6080e+03+3.440e+02j -5.4720e+03-4.464e+03j 1.8000e+03-3.084e+04j]]
How It Works
The pseudo Vandermonde matrix has shape (n, (x_deg+1)*(y_deg+1)*(z_deg+1)) where n is the number of points. Each row represents the evaluation of all polynomial combinations up to the specified degrees at a given point. The polynomial combinations are ordered in a specific way with z varying fastest, then y, then x.
Conclusion
The hermevander3d() function generates a pseudo Vandermonde matrix for 3D Hermite_e polynomials. This matrix is useful for polynomial fitting and interpolation in three dimensions with complex coordinates.
