Ejercicios de aproximación Mínimo-Cuadrática 1. Para x = 0, 0.25, 0.5,…, 6 obtener y = 2 + 6x2 - x3 y añadirle un ruido aleatorio sumándole 5*rand(size(x)). Dibujar los 25 puntos. 2. Obtener un vector xx que barra el intervalo [0,6] de centésima en centésima. 3. Obtener y representar el polinomio de interpolación que pasa por los 25 puntos. ¿Cómo se puede calificar su comportamiento? ¿Dónde parece que es peor? 4. Representar para [1,5]. ¿Es buena aproximación? Repetir los pasos 1, 2 y 3 hasta obtener un caso de gran dispersión. 5. Obtener la gráfica mediante splines. ¿Inconvenientes? 6. Ajuste mínimo cuadrático de un polinomio de grado 3: 6.1. Obtener A: 6.1.1. Inicializar A como matriz de ceros de 25 filas y cuatro columnas. 6.1.2. Asignar unos a la primera columna de A. 6.1.3. Asignar x a la segunda columna de A, x2 a la tercera y x3 a la cuarta. 6.2. Obtener AtA y comprobar sus propiedades: Es cuadrada. Comprobarlo mediante una instrucción lógica que compare la primera y la segunda componente de size(AtA). Es simétrica. Obtener (utilizando la primitiva find) la lista de las posiciones de los valores no nulos de la diferencia entre AtA y su traspuesta y comprobar que es vacía. Es regular. Calcular su rango y su determinante. Razonar, sin calcularla, por qué tiene solución el sistema AtAx=Atb. 6.3. Obtener Aty. 6.4. Resolver el sistema AtAc=Aty. 6.5. Representar gráficamente en el mismo gráfico los puntos y el polinomio cuyos coeficientes están en c, utilizando la primitiva polyval (los puntos no deben quedar tapados por el polinomio). 7. Ajuste mínimo cuadrático de un polinomio de grado n a un conjunto de m puntos. 7.1. Obtener la matriz M mn: Observar que se trata de la matriz formada por las últimas n columnas de la matriz de Vandermonde generada por vander(x). Comprobar con n = 3 comparando con lo hecho en el apartado 6 (observar que el orden de las columnas es el opuesto ¡aprovechémoslo!). 7.2. Calcular de nuevo MtM y Mty y resolver MtMd = Mty. 7.3. Representar de nuevo y comparar resultados. Observar que ahora no hay que invertir el orden de las componentes de d. 7.4. Escribir una función mincua.m con argumentos de entrada x (vector de abscisas) , y (vector de ordenadas) y n (grado del polinomio minimo-cuadrático a ajustar) y variable de salida d (vector de los coeficientes del polinomio). 7.5. Dibujar los polinomios (utilizando la primitiva polyval) y los puntos (x,y). 8. Utilizando la función mincua.m, ajustar polinomios de grados 1, 2,.., 6 a la función y = sen(1/(x+0.2)) + 0.2x (considerando los puntos x = [0:.05:0.25 0.25:.25:5]) contaminada con ruido aleatorio de amplitud 0.2. 9. Modificar mincua.m para que devuelva como argumento de salida el número de condición de la matriz AtA. Obtener los números de condición para las distintas matrices de las ecuaciones normales utilizadas en 8. Guardar los números de condición en un vector nc. Obtener en una fila (mediante subplot) las gráficas de nc frente a n utilizando las primitivas gráficas plot y semilogy. 10. Modificar mincua.m cambiando la forma de resolver el sistema utilizando la factorización QR de la matriz A (obtener la factorización con [Q,R]=qr(A,0)) . Llamar a la nueva función mincuaqr.m. 11. Obtener distintos ajustes de los datos del apartado 8 utilizando las funciones mincua.m y mincuaqr.m. Comparar gráficas, tiempos de ejecución y flops. 12. Representar en una matriz de gráficos 2×3 los ajustes polinómicos de grados 3, 4 y 5 del apartado 8 (fila 1) y, mediante la primitiva stem, los errores para cada uno de ellos (fila 2). 13. Escribir un fichero minge.m que permita la utilización de las funciones 1, sen(1/(x+0.2)) y x para realizar un ajuste de los puntos del apartado 8 del tipo y = a0 + a1sen(1/(x+0.2)) + a2x. Representar los resultados. 14. Obtener un ajuste del tipo y = aebx para los números de condición de que tiene en el vector nc del apartado 9. 15. Obtener una distribución de puntos en el intervalo [1,3] de la función 1 contaminada con un ruido leve. Ajuste polinomios de grados 4, 8 y y (4 x 2 ) 2 0.02 1 12. Ajustar mediante una función del tipo y . Compare. (a1 a2 x 2 ) 2 a3