Genere una array de Vandermonde del polinomio de Legendre con una array flotante de puntos en Python usando NumPy

En este artículo, veremos el enfoque para generar una array de Vandermonde del polinomio de Legendre con una array flotante de puntos en Python usando NumPy.

Example:
Array:
 [-1.57  0.58 -3.57  1.44  2.75]
Result:
 [[ 1.000000e+00 -1.570000e+00  3.197350e+00]
 [ 1.000000e+00  5.800000e-01  4.600000e-03]
 [ 1.000000e+00 -3.570000e+00  1.861735e+01]
 [ 1.000000e+00  1.440000e+00  2.610400e+00]
 [ 1.000000e+00  2.750000e+00  1.084375e+01]]

NumPy.legvander()

Para generar una pseudo array de Vandermonde del polinomio de Legendre con una array flotante de puntos, el usuario debe llamar al método NumPy.legvander() en Python Numpy. Esto devolverá la array pseudo-Vandermonde con la forma de la array devuelta es x.shape + (deg + 1,), donde El último índice es el grado del polinomio de Legendre correspondiente. 

    Sintaxis: np.legvander(x, grado)

  Parámetros:

  •  x :[ array_like ] Array de puntos. El dtype se convierte en float64 o complex128 dependiendo de si alguno de los elementos es complejo. Si x es escalar, se convierte en una array 1-D.
  •  deg :[int] Grado de la array resultante.

  Retorno: Retorna la array que tiene tamaño, es decir array.tamaño + (grado + 1).

Ejemplo:

En este ejemplo, primero estamos creando una array con cinco puntos de datos del tipo de datos flotantes y, además, con el método NumPy.legvander(), estamos generando una array de Vandermonde del polinomio de Legendre con 2 grados en Python.

Python3

import numpy as np
from numpy.polynomial import legendre
 
gfg_data = np.array([-1.57,0.58, -3.57, 1.44, 2.75])
 
# Display Elements of Array
print("Array:\n",gfg_data)
 
# Display Dimensions of Array
print("\nDimensions:\n",gfg_data.ndim)
 
# To generate a pseudo Vandermonde matrix
# of the Legendre polynomial
gfg_data=legendre.legvander(gfg_data, 2)
print("\nResult:\n",gfg_data)

Producción:

Array:
 [-1.57  0.58 -3.57  1.44  2.75]

Dimensions:
 1

Result:
 [[ 1.000000e+00 -1.570000e+00  3.197350e+00]
 [ 1.000000e+00  5.800000e-01  4.600000e-03]
 [ 1.000000e+00 -3.570000e+00  1.861735e+01]
 [ 1.000000e+00  1.440000e+00  2.610400e+00]
 [ 1.000000e+00  2.750000e+00  1.084375e+01]]

Ejemplo:

En este ejemplo, primero estamos creando una array con diez puntos de datos del tipo de datos flotantes y, además, con el método NumPy.legvander() estamos generando una array de Vandermonde del polinomio de Legendre con 5 grados en Python.

Python3

import numpy as np
from numpy.polynomial import legendre
 
gfg_data = np.array([-1.57,0.58, -3.57, 1.44, 2.75,
                -8.97,7.45,-0.56,-4.74,3.33])
 
# Display Elements of Array
print("Array:\n",gfg_data)
 
# Display Dimensions of Array
print("\nDimensions:\n",gfg_data.ndim)
 
# To generate a pseudo Vandermonde
# matrix of the Legendre polynomial
gfg_data=legendre.legvander(gfg_data, 5)
print("\nResult:\n",gfg_data)

Producción:

Formación:

 [-1,57 0,58 -3,57 1,44 2,75 -8,97 7,45 -0,56 -4,74 3,33]

Dimensiones:

 1

Resultado:

 [[ 1.00000000e+00 -1.57000000e+00 3.19735000e+00 -7.31973250e+00

   1.77129525e+01 -4.42010179e+01]

 [ 1.00000000e+00 5.80000000e-01 4.60000000e-03 -3.82220000e-01

  -3.91403300e-01 -1.02849045e-01]

 [ 1.00000000e+00 -3.57000000e+00 1.86173500e+01 -1.08393232e+02

   6.63223708e+02 -4.17516096e+03]

 [ 1.00000000e+00 1.44000000e+00 2.61040000e+00 5.30496000e+00

   1.14106992e+01 2.53325643e+01]

 [ 1.00000000e+00 2.75000000e+00 1.08437500e+01 4.78671875e+01

   2.22228027e+02 1.06173499e+03]

 [ 1.00000000e+00 -8.97000000e+00 1.20191350e+02 -1.79088068e+03

   2.80222060e+04 -4.51013834e+05]

 [ 1.00000000e+00 7.45000000e+00 8.27537500e+01 1.02255906e+03

   1.32695485e+04 1.77126598e+05]

 [ 1.00000000e+00 -5.60000000e-01 -2.96000000e-02 4.00960000e-01

  -3.70740800e-01 5.29387264e-02]

 [ 1.00000000e+00 -4.74000000e+00 3.32014000e+01 -2.59131060e+02

   2.12459109e+03 -1.79197064e+04]

 [ 1.00000000e+00 3.33000000e+00 1.61333500e+01 8.73200925e+01

   4.96757827e+02 2.90771034e+03]]

Publicación traducida automáticamente

Artículo escrito por geetansh044 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *