3.1. Práctica: método de mínimos cuadrados#
En el ensayo de un perfil en un túnel aerodinámico hemos obtenido los valores experimentales del coeficiente de sustentación, \(C_l\), en función del ángulo de ataque, \(\alpha\), y se han guardado en el fichero “Cl_vs_alpha.csv”.
Necesitamos obtener una función que aproxime dichos resultados a través de un programa que use el método de mínimos cuadrados. El programa debe incluir las siguientes funciones:
Una función que lea los datos experimentales del archivo.
Una función minimos_cuadrados que recibe los datos (como dos vectores, o una matriz), el grado del polinomio \(m\) y devolverá los coeficientes \({\beta_0,\beta_1,\beta_2,...,\beta_m}\) (Para ello tendrá que llamar a una función de numpy que resuelva sistemas lineales)
Una función que calcule el error cuadrático medio cometido \(E=\frac{1}{N}sum_{i=1}^N[y_i-p(x_i)]^2\) al aproximar el conjunto de puntos con el polinomio. Decidid los argumentos de entrada y salida vosotros/as.
Una función que represente con Matplolib el conjunto de datos y la aproximación polinómica. Se valorará la buena representación de la gráfica.
El programa principal seguirá es siguiente índice:
(1 punto) Leer la información del fichero “Cl_vs_alpha.csv” y almacenar en dos vectores \(alpha\) y \(Cl\).
(3 puntos) A partir del grado del polinomio deseado hallará los coeficientes llamando a la función minimos_cuadrados.
(2 puntos) Halla el error cometido y genera la salida deseada.
(2 puntos) Representa los datos experimentales y la aproximación polinómica.
(2 puntos) Las conclusiones se presentarán en un bloque de Markdown y/o código que incluirán al menos la discusión de los resultados para distintos grados del polinomio.
## Escribe el código a continuación: