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