Ajuste de Curvas Ajuste de curvas se usa para encontrar una función que responda a una muestra de datos obtenidas de alguna medición, sampleo etc. La aplicación mas elemental es para dibujar una curva en una computadora en base a algunos puntos (datos) de manera que se vea bien. Otra aplicación más interesante es la obtener una función que en base a algunos puntos obtenidos de medición se pueda estimar otros puntos que no fueron medidos empíricamente. Para lograr este objetivo se utilizan, entre otros, interpolación y aproximación por el método de mínimos cuadrados; en los métodos por interpolación la función pasa exactamente por los puntos observados, en cambio en el método de aproximación se busca que una función pase lo mas cercanamente posible por los puntos observados. Interpolación polinomial: Este es un método que dados los puntos x1,x2,..,xn con sus correspondientes valores f(x1),f(x2),..,f/(xn) obtiene un único polinomio que pasa por todos los puntos. Este método trae aparejados dos problemas uno computacional y otro matemático. Problema computacional: La fórmula clásica que se utiliza es la de interpolación de Lagrange: Figura 1 Por ejemplo un polinomio de grado 2 donde p(1) = 3, p(2) = 7 y p(3) = 13 ; utilizando la fórmula de la figura 1, sería el siguiente: Figura 2 En la fórmula de la figura 2 se ve que cuando x = 1 se anulan el segundo y tercer término, cuando x = 2 se anulan el primero y el tercero y cuando x = 3 se anulan el primero y el segundo; pudiéndose extender este ejemplo hasta N puntos, vemos que para N puntos nos queda un polinomio de grado N-1. La fórmula expresada en la figura 2 se simplifica y se llega a la siguiente: Figura 3 Y es acá donde se ve el problema computacional ; para pasar de la fórmula de la figura 2 a la de la figura 3, que es la forma estándar de expresión del polinomio con sus coeficientes, se necesitan por lo menos N2 operaciones, dado que la sumatoria tiene N términos y cada termino tiene un producto de N factores, y esto para varios puntos crece muy rápido. Por el otro lado el problema matemático viene dado debido a que al crecer el grado del polinomio siempre logro que el mismo pase por todos los puntos que le exigí, pero a medida que crece el grado del mismo curva entre los puntos no exigidos tiende a fluctuar, provocando que no sirva para estimar valores no medidos (el cual es uno de los principales objetivos). En la siguiente figura se ve un caso típico; hacemos de cuenta que conocemos la función f a aproximar y la aproximamos con este método con el polinomio P: Figura 4 Se ve claramente que en los puntos medidos el polinomio vale igual que la función, pero entre los puntos difiere mucho. Por estas razones se considera inapropiado el método de interpolación de polinomios para hacer un ajuste de curva. Interpolación Spline: Mediante este método se usan polinomios de grado 3 para unir dos puntos de la función entre si, es decir en vez de utilizar un polinomio de alto grado se usan varios de grado 3 , esto implica que para N puntos tenemos N-1 polinomios diferentes de grado 3. Figura 5 Si(x) es el polinomio que une el punto i con el i + 1, es decir S1(x1) = y1 , S1(x2) = y2 , S2(x2) = y2 S1(x2) = S2(x2) ; por otro lado además de coincidir los diferentes polinomios en los puntos que los unen pedimos que coincidan la primer y segunda derivada, de esta forma vamos a lograr una unión “natural” entre los puntos, que es hacia lo que apuntamos. Teniendo en cuenta que : Figura 6 y que en un mismo punto coinciden los valores de sus derivadas primeras y de sus derivadas segundas es decir: Figura 7 Nos queda un sistema de ecuaciones de 4N-6 ecuaciones con 4(N-1) = 4N-4 incógnitas, es decir nos faltan 2 condiciones para poder armar un sistema de ecuaciones con solución única. Una solución para esto es saber el valor de y de y para un spline llamado natural estas derivadas valen cero, completando con estas dos condiciones un sistema de ecuaciones de 4N-4 ecuaciones con 4N-4 incógnitas (que son los coeficientes de los N-1 polinomios de grado 3 que unen los N puntos). Este sistema se resuelve aplicando eliminación de Gauss. Existe una forma de calcular más eficientemente estas curvas; supongamos que conocemos los valores de Si’’(xi) y los llamamos pi , podemos expresar el valor de los coeficientes de cada curva en función de esos pi utilizando el siguiente sistema de ecuaciones: Figura 8 Una vez resuelto esto el problema se reduce a N-2 pi incógnitas, que se resuelven con las N-2 ecuaciones que salen de que Figura 9 Haciendo un cambio de variables Figura 10 nos queda la siguiente ecuación de la curva Si(t) entre el punto xi y xi+1 en función de pi y pi+1 Figura 11 en la ecuación anterior cuando x = xi t = 0 y cuando x = xi+1 t = 1 por lo tanto quedando S’i-1(1) = S’i(0) para i = 2, . . . , N-1 y llamando Figura 12 Nos queda la siguiente ecuación, completando el sistema de ecuaciones para averiguar pi Figura 13 Finalmente llamando Figura 14 Y para un caso en que N = 7 nos queda el siguiente sistema de ecuaciones Figura 15 El sistema de ecuaciones anterior se resuelve de la siguiente manera dado que es una matriz tridiagonal y además simétrica con respecto a la diagonal. Usamos el siguiente método: Figura 16 Y una vez obtenidos los valores pi se los utiliza en el siguiente método que devuelve el valor de la función interpolante para un x dado: Figura17 El método anterior primero ubica en que intervalo [xi,xi+1] se encuentra la x ingresada y luego hace todos los cálculos con esa curva interpolante.