Generate a Pseudo Vandermonde matrix of the Hermite_e polynomial and x, y, z complex array of points in Python

PythonNumpyServer Side ProgrammingProgramming

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. The method returns the pseudo- Vandermonde matrix. The parameter, 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. Scalars are converted to 1-D arrays. The parameter, deg is the list of maximum degrees of the form [x_deg, y_deg, z_deg].

Steps

At first, import the required library −

import numpy as np
from numpy.polynomial import hermite_e as H

Create arrays of point coordinates, all of the same shape using the numpy.array() method −

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...
",x)
print("
Array2...
",y)
print("
Array3...
",z)

Display the datatype −

print("
Array1 datatype...
",x.dtype)
print("
Array2 datatype...
",y.dtype)
print("
Array3 datatype...
",z.dtype)

Check the Dimensions of both the arrays −

print("
Dimensions of Array1...
",x.ndim)
print("
Dimensions of Array2...
",y.ndim)
print("
Dimensions of Array3...
",z.ndim)

Check the Shape of both the arrays −

print("
Shape of Array1...
",x.shape)
print("
Shape of Array2...
",y.shape)
print("
Shape of Array3...
",z.shape)

To generate a pseudo Vandermonde matrix of the Hermite_e polynomial and x, y, z sample points, use the hermite_e.hermevander3d() method −

x_deg, y_deg, z_deg = 2, 3, 4
print("
Result...
",H.hermevander3d(x,y,z, [x_deg, y_deg, z_deg]))

Example

import numpy as np
from numpy.polynomial import hermite_e as H

# Create arrays of point coordinates, all of the same shape using the numpy.array() method
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...
",x)
print("
Array2...
",y)
print("
Array3...
",z)

# Display the datatype
print("
Array1 datatype...
",x.dtype)
print("
Array2 datatype...
",y.dtype)
print("
Array3 datatype...
",z.dtype)

# Check the Dimensions of both the arrays
print("
Dimensions of Array1...
",x.ndim)
print("
Dimensions of Array2...
",y.ndim)
print("
Dimensions of Array3...
",z.ndim)

# Check the Shape of both the arrays
print("
Shape of Array1...
",x.shape)
print("
Shape of Array2...
",y.shape)
print("
Shape of Array3...
",z.shape)

# 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
x_deg, y_deg, z_deg = 2, 3, 4
print("
Result...
",H.hermevander3d(x,y,z, [x_deg, y_deg, z_deg]))

Output

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

Dimensions of Array2...
1

Dimensions of Array3...
1

Shape of Array1...
(2,)

Shape of Array2...
(2,)

Shape of Array3...
(2,)

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]]
raja
Updated on 10-Mar-2022 07:24:18

Advertisements