Obtenga el ajuste de mínimos cuadrados de la serie Chebyshev a los datos en Python-NumPy

En este artículo, cubriremos cómo obtener el ajuste de mínimos cuadrados de la serie Chebyshev a los datos en Python.

método chebyshev.chebfit

La biblioteca NumPy nos proporciona el método numpy.polynomial.chebyshev.chebfit() para obtener el ajuste de mínimos cuadrados de la serie Chebyshev a los datos en python. El método devuelve los coeficientes de una serie Chebyshev de grado que se ajusta mejor (ajuste por mínimos cuadrados) a los valores de datos y en las posiciones x. Si y es unidimensional, los coeficientes devueltos también serán unidimensionales. Si y es 2-D, se realizan ajustes múltiples, por cada columna de y, y los coeficientes se colocan en las columnas correspondientes del retorno 2D.

Los polinomios que se han ajustado son de la forma:

p(x) = C0+ C1.T1(x)+........+Cn.Tn(x)

Sintaxis: polynomial.chebyshev.chebfit(x, y, deg, full=False)

Parámetros:

  • x: puntos de coordenadas x
  • y: puntos de coordenadas y
  • deg: Grado(s) de los polinomios de ajuste.
  • full: bool, (opcional) Interruptor que determina la naturaleza del valor devuelto. Cuando es False (el valor predeterminado), solo se devuelven los coeficientes.

Devoluciones: array de coeficientes en el ajuste de mínimos cuadrados.

[residuales, rango, valores_singulares, segundo]: 

Si full == True, se devuelven estos valores.

  • residuos: el total de los residuos al cuadrado del ajuste de mínimos cuadrados.
  • rango: el rango numérico de la array de Vandermonde escalada.
  • valores singulares: valores singulares de la array de Vandermonde escalada.
  • rcond — valor de rcond.

Ejemplo 1:

Aquí, crearemos una array NumPy usando np.linspace() para las funciones de coordenadas x e y. Después de eso , se usa el método numpy.polynomial.chebyshev.chebfit() para encontrar el ajuste de mínimos cuadrados de la serie de Chebyshev. Este método devuelve coeficientes y estadísticas solo cuando el parámetro completo se establece en verdadero. las estadísticas contienen residuos, rango, valores_singulares y rcond.

Python3

# import packages
import numpy as np
from numpy.polynomial import chebyshev as C
  
# X- coordinate
x = np.linspace(0, 1, 25)
print(x)
  
# y - coordinate computed from x-coordinate
y = x**3 - x**2 + np.random.randn(len(x))
print(y)
  
# least square fit of chebyshev series
c, stats = C.chebfit(x, y, 2, full=True)
  
print('coefficients are :'+str(c))
print('residuals '+str(stats[0]))
print('rank :'+str(stats[1]))
print('singular_values :'+str(stats[2]))
print('rcond: '+str(stats[3]))

Producción:

[0. 0.04166667 0.08333333 0.125 0.16666667 0.20833333

 0,25 0,29166667 0,33333333 0,375 0,41666667 0,45833333

 0,5 0,54166667 0,58333333 0,625 0,66666667 0,70833333

 0,75 0,79166667 0,83333333 0,875 0,91666667 0,95833333

 1. ]

[ 0.37409044 -0.08380424 -0.86646175 0.03529103 -0.51223158 -0.82765727

 -1,30289843 0,06483149 0,00468366 -0,94344187 0,79565795 0,4189812

  1.11198273 -1.82178502 -1.34997261 -1.4128537 -0.07464673 0.15374686

  0,48787202 -0,46500345 -0,8149045 1,49261006 -1,94050386 -0,41054362

  0.20983018]

los coeficientes son :[ 0.17746311 -0.73510349 0.36625023]

residuales [18.52977625]

rango :3

valores_singulares:[1.39668318 1.02095653 0.08320976]

segundo: 5.551115123125783e-15

Ejemplo 2:

En este ejemplo, el parámetro full se establece en false . no se devuelven estadísticas cuando es falso, solo se devuelven coeficientes.

Python3

# import packages
import numpy as np
from numpy.polynomial import chebyshev as C
  
# X- coordinate
x = np.linspace(0, 1, 25)
print(x)
  
# y - coordinate computed from x-coordinate
y = x**3 - x**2 + np.random.randn(len(x))
print(y)
  
# least square fit of chebyshev series
c = C.chebfit(x, y, 2, full=False)
  
print('coefficients are :'+str(c))

Producción:

[0. 0.04166667 0.08333333 0.125 0.16666667 0.20833333

 0,25 0,29166667 0,33333333 0,375 0,41666667 0,45833333

 0,5 0,54166667 0,58333333 0,625 0,66666667 0,70833333

 0,75 0,79166667 0,83333333 0,875 0,91666667 0,95833333

 1. ]

[ 1.43124921 0.704068 0.87329216 -1.89762515 -1.00132009 -0.07043263

 -0.52919039 -0.35211855 0.16805591 0.21070363 -0.54878338 -0.05096546

 -1.86555805 -0.35063789 -2.46754197 -0.7162462 0.21864938 -0.25926418

 -1,39237896 1,49328312 0,04526993 -0,76624966 -1,36429022 -0,16418669

 -1.05438407]

los coeficientes son :[ 1.94042826 -3.72505731 1.45929506]

Publicación traducida automáticamente

Artículo escrito por sarahjane3102 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 *