Parte III Técnicas Numéricas 4 Capı́tulo 1 Interpolación Resumen 1.0.1 En este capitulo se veran diferentes tecnicas de interpolacion que resumimos de acuerdo a las caracteristicas en cuanto a su uso y sus ventajas de calculo Metodos para usar cuanto tenemos una malla de puntos equiespaciados.En este caso tenemos el metodo o polinomio de Lagrange que es facil de programar pero dificil para calculos manuales;El polinomio de Newton con diferencias, que se hace a partir de operadores de diferencias hacia atras o adelante, que tiene la ventaja de que el calculo del error es facil y se puede cambiar facilmente el orden del polinomio mediante un esquema recursivo Metodos para usar con malla de punto no equidistantes. En este caso tenemos una variante a el metodo de Newton que se llama diferencias divididas de que consiste en armar un polinomio factorizado con coeficientes donde las diferencias estan ponderadas por la distancia que existe entre nodos o puntos de la malla.Tambien tenemos otro metodo que es el de Chebyshev en el que se eligen los puntos de la malla de interpolacion que son raices de los polinomios de Chebyshev para luego aplicar el polinomio de Lagrange. Este metodo tiene la ventaja de minimizar el error , haciendo su distribucion mas uniforme en todo el intervalo de interpolacion Interpolacion de Hermite que permite construir un polinomio que ajusta no solo a los valores de una funcion sino tambien a las derivadas de los puntos 5 1.1 Introducción 6 Interpolacion mediante Splines o Cercha Cubica que consiste en construir una curva por trozos, partiendo el intervalo total en intervalos de 4 puntos , en el que se ajusta polinomio de grados 3 mediante resolucion de ecuaciones simultaneas de un sistema tridiagonal luego de fijar condiciones en los extremos de intervalo 1.1. Introducción Ya hemos hablado en el desarrollo del curso que la evaluacion de funciones complejas como pueden ser exp(x) o cos(x) se haran en las computadoras a traves de la aproximacion mediantes funciones polinomicas Ejemplo 1.1.1 Va mos a tratar de aproximar la funcion exp(x)en el intervalo [−1, 1] mediante un polinomio de grado 2 Para eso efectuamos el desarrollo de Taylor de f alrededor del origen P T2 (x) = 1 + x + 2!1 x2 1 Figura 1.1: Polinomio de Taylor de orden 2 1 Polinomio de Taylor de orden 2 1.1 Introducción 7 La aproximacion a exp(x) puede mejorarse con el uso de un polinomio de Chebyshev, que tambien se vera en este capitulo y que aparece en el siguiente grafico Figura 1.2: Aproximacion a exp(x) por Polinomio de Chebyshev P CH2 (x)=1+1,129772x+0,532042x2 Como vemos en ambos graficos la aproximacion es bastante buena aunque tenemos asociado para cada un caso un cierto error ( de truncamiento) propio del metodo de aproximacion empleado Por lo tanto la idea al igual que en las otras tecnicas nuemricas vistas es descomponer la funcion bajo estudio en f (x) = Pn (x) + ETn (x) donde Pn (x) es de la forma k=n k X f (x0 ) k=0 k! (x − x0 )k (1.1) (1.2) n+1 y ETn (x) = f (c) (x − x0 )n+1 x ≤ c ≤ x0 (n + 1)! (1.3) 1.1 Introducción 8 Inclusive para el caso de exp(x) la aproximacion lineal en el inetrvalo [−1, 1] no funciona del todo mal aunque vemos que a medida que nos alejamos de de 0 (que es x0 ) el error aumenta Figura 1.3: P T1 (x) = 1 + x que aproxima a exp(x) y el error crece Este se debe a que ambas curvas tiene diferente curvatura2 con lo que seria deseable poder encontrar una funcion polinomica con la misma curvatura que la funcion a ser aproximada Ejemplo 1.1.2 Vamos a aproximar la funcion f (x) = ln(1 + x) por el polinomio P (x) = 0,02957206x5 − 0,1295295x4 + 0,28249626x3 − 0,4907554x2 + 0,99910735x Vemos que el error que surge de la aproximacion es muy pequeno aunque el grafico a donde aparecen ambas curvas es enganoso de acuerdo a la escala Si observamos el grafico b vemos es el error se distribuye en forma desigual y crece en los extremos del intervalo 2 la funcion y = f (x) puede definirse en un punto (x0 , y0 ) como curvatura kh de una i2 3 00 0 k = f (x0 )/(1 + f (x0 ) ) 2 1.1 Introducción 9 Figura 1.4: Grafico a ln(1 + x) y P (x) de orden 5 Figura 1.5: Grafico (9)E(x) ln(1 + x)P5 (x) 1.2 Interpolación Polinomial en Series de Potencias 1.2. 10 Interpolación Polinomial en Series de Potencias A traves de una serie de N+1 puntos pasa un Polinomio de grado N y que es unico; esto hace que independientemente de la formual de interpolacion usada todas son matematicamente equivalentes. Si tenemos una malla de puntos 3 x0, x1, ....xk dados en orden creciente con espacios entre ellos de tamano arbitrario planteamos la siguiente espresion 2 N g(x) = a0 + a1 x + a2 x + .... + aN x = i=N X ai x i (1.4) i=o El ajuste en serie de potencias a los N+1 puntos da lugra a un sistema de ecuaciones lineales fo = a0 + a1 x0 + a2 x20 + .... + aN xN o 2 f1 = a0 + a1 x1 + a2 x1 + .... + aN xN 1 ............................................... fo = a0 + a1 xN + a2 x2N + .... + aN xN N (1.5) (1.6) (1.7) (1.8) Esta forma de resolver el P.I. no es deseada porque las potencias pueden ser numeros muy grandes con lo que tendremos problemas de redondeo muy severo4 Para evitarnos estos problemas trabajaremos con las formulas de interpolacion que se desarrollan en las secciones que siguen. 1.3. 1.3.1. Interpolación de Lagrange Interpolación lineal de Lagrange Vamos a comenzar por plantearnos el caso de interpolar mediante una linea recta que une 2 puntos cualesquieras de nuestra coleccion de abcisas; este metodo permite el desarrollo de la regla del trapecio que se usa para la integracion numerica 3 4 conjunto de puntos abcisas o nodos Este problema del redondeo y la acumulacion ya fue presentado en capitulos anteriores 1.3 Interpolación de Lagrange 11 Supongamos que tenemos una funcion como aparece en la figura que sigue que queremos ajustar a 2 puntos dados x0 y x1 Figura 1.6: La ecuacion de la recta quepasa por los puntos (x0 , y0 ) y (x1 , y1 ) es la que presentamos a contrinuacion y = P (x) = y0 + (y1 − y0 ) (x − x0) (x1 − x0 ) (1.9) Vemos rapidamente que esta ecuacion verifica P (x0 ) = y0 y P (x) = y1 Vamos a tratar de rescribir la misma expresion tal cual lo hizo Lagrange5 y = P1 (x) = y0 (x − x1) (x − x0) + y1 (x0 − x1 ) (x1 − x0 ) (1.10) Vamos a considerar los cocientes que aparecen en la ecuacion anterior afectando las ordenadas de los puntos en cuestion como 2 terminos con la siguiente notacion 5 Matematico frances Joseph Louis Lagrange 1.3 Interpolación de Lagrange L1,0 (x) = 12 (x − x1) (x − x0) : L1,1 (x) = (x0 − x1 ) (x1 − x0 ) (1.11) Estos 2 terminos verifican la igualdad y = P1 (x) y se llaman polinomios coeficientes de Lagrange Reescribimos 1 X y = P1 (x) = yk L1,k (x) (1.12) k=0 Este polinomio de denomina polinomio de Interpolacion lineal de Lagrange o Polinomio de Orden 1 de Lagrange Ejemplo 1.3.2 Consideremos la funcion exp(2x) en el intervalo [0, 1] Como queda el P L1 (x)6 que pasa por los puntos x0 = 0,1 y x1 = 0,95 De acuerdo a la ecuacion vista antes nos queda P L1 (x) = 1. 221 4 ∗ (x−0,1) + 6. 685 9 ∗ (0,95−0,1) = (x−0,95) (0,1−0,95) Figura 1.7: P L1 (x) que aproxima la funcion f (x) = exp(2x) 6 Polinomio de Lagrange de Orden 1 1.3 Interpolación de Lagrange 13 Simplificando la expresion del polinomio obtenemos P L1 (x) = 6. 428 8x+ 0. 578 52 que vemos que tiene un error que crece en la parte media del intervalo de interpolacion. La expresion mas formal del termino de error lo veremos en la seccion siguiente luego de presentar la generalizacion del Polinomio de Lagrange. Ejemplo 1.3.3 Vamos a construir el P1 (x) que pasa por los puntos [0, 1,2] y [0,2, 1,0] para aproximar la funcion f (x) = cos(x) P1 (x) = cos(0) ∗ (x−1,2) (0−1,2) + cos(1,2) ∗ (x−0) (1,2−0) = 1,0 ∗ (x−1,2) + 0. 362 36 (0−1,2) (x−0) ∗ (1,2−0) (x−1,0) (x−0,2) (x−1,0) Q1 (x) = cos(0,2) ∗ (0,2−1,0) + cos(1,0) ∗ (1,0−0,2) = : 0. 980 07 ∗ (0,2−1,0) +. 301965 ∗ (x−0,2) (1,0−0,2) Figura 1.8: Aproximacion de cos(x)por P1 (x) en [0, 1,2] Podemos corroborar que Q1 (x) tiene menor error al tener una amplitud menor el intervalo de interpolacion.POr otra parte vemosque el error en mayor en el medio del intervalo 1.4 Interpolación de Newton 1.3.4. 14 Generalización de la interpolacion de Lagrange Vamos a ver ahora como queda el polinomio interpolador cuando disponemos de una malla de N+1 puntos Por una serie de N+1 puntos pasa un polinomio de grado N que tiene la siguiente forma y = PN (x) = N X yk LN,k (x) (1.13) k=0 QN LN,k (x) = QN0 0 (x − xj ) (xk − xj ) con (xk 6= xj ) (1.14) Si nos fijamos en LN,k (x) = 1 si j = k y LN,k (x) = 0 si j 6= k y por otro lado podemos probar que LN,k (x) es unico. 1.4. Interpolación de Newton Vamos a cambiar la forma del polinomio de interpolación buscando una expresión mas sencilla de calcular: a su vez salvo que graficamente veamos cual podr{ia ser la mejor elección para el grado del polinomio a ajustar tendremos el P ILN una vez que nos hayamos decidido.Esta situación se puede cambiar a través del uso del P INN 7 Para eso vamos a presentar 2 fórmulas diferentes que permiten trabajar con mallas de datos equiespaciados y también con colección de nodos a distancia variable que muchas veces son los problemas mas frecuentes en el ajuste de datos 1.4.1. Interpolación de Newton por diferencias hacia adelante Supongamos que las abcisas de los datos tiene igual separación con un tamaño de intervalo hy los puntos los vamos a notar como (xi , fi ) Nos construimos una tabla de diferencias hacia adelante tal como aparece en la tabla que sigue Vemos que nos podemos definir un operador de diferencia entre 2 datos consecutivos 7 Polinomio de Interpolaci´n de Newton de Grado N 1.4 Interpolación de Newton 15 ∆fi = fi ∆1 fi = fi+1 − fi ∆2 fi = ∆fi+1 − ∆fi ∆3 fi = ∆2 fi+1 − ∆2 fi ...... ∆k fi = ∆k−1 fi+1 − ∆k−1 fi Diferencia hacia adelante de orden 0 Diferencia hacia adelnate de orden 1 Diferencia hacia adelante de orden 2 Diferencia hacia adelante de orden k En la tabla que sigue tenemos una columna que nos da el indice de los datos, la ordenadas de los datos, la diferencia hacia adelante de orden 1. etc; asi nos queda formada una matriz triangular que es muy facil de evaluar con la ayuda de una computadora i 0 1 2 3 4 fi f0 f1 f2 f3 f4 ∆1 fi ∆1 f0 ∆1 f1 ∆1 f2 ∆1 f3 ∆1 f4 ∆2 fi ∆2 f0 ∆2 f1 ∆2 f2 ∆2 f3 ∆3 fi ∆3 f0 ∆3 f1 ∆3 f2 ∆4 fi ∆4 f0 ∆4 f1 Cuadro 1.1: Tabla de diferencias hacia adelante Precisamos ahora ademas de tener las diferencias calcular los coeficientes binomiales que estan dados como siguen 1 1 s s s s = 1; = s; = s(s−1); . . . = s(s−1)...(s−n+1) o 1 2 n 2! n! 0 donde s es una coordenada local definida por s = x−x y h es el intervalo h uniforme de la malla de puntos Ahora que tenemos definidos los coeficientes binomiales nos podemos armar la fórmula de interpolacion de Newton que pasa por la malla de puntos (f0 f1 f2 f3 ....fk ) k X s P N (x) = P N (x0 + sh) = ∆n f0 n n=0 (1.15) 1.4 Interpolación de Newton 16 Podemos verificar que para k = 2 nos queda P N (x0 + sh) = f0 + s(f1 − f0 ) + s(s − 1) (f2 − 2f1 + f0 ) 2 (1.16) Si evaluamos esta última ecuación para los diferentes valores de k nos va a quedar un polinomio de orden k s=0 PN(x0 ) = P N (x0 + 0) = f0 s=1 PN(x1 ) = P N (x0 + h) = f0 + ∆f0 = f1 s=2 PN(x2 ) = P N (x0 + 2h) = f0 + 2∆f0 + ∆2 f0 = f2 ∆2 f0 + .... = fk s=k PN(xk ) = P N (x0 + kh) = f0 + k∆f0 + k(k−1) 2 Podemos también plantear que el P N se puede armar a partir de x2 yf2 remplazando en la ecuación de manera que tenemos k X s P N (x2 ) = ∆n f2 n con s = n=0 (x − x2 ) h (1.17) Veamos un ejemplo Tenemos los siguientes datos que presentamos en la tabla i 0 1 2 3 4 5 xi 0.1 0.3 0.5 0.7 0.9 1.1 f(xi ) .99750 .97763 .93847 .88120 .80752 .71962 6 1.3 .62009 Ajustamos el PN hacia adelante en los nodos (0, 1, 2) y (0, 1, 2, 3, 4) Ajustamos PN en (2, 3, 4) y 4, 5, 6 Para eso tenemos que hacer en primer termino la T.D.H.A.8 8 Tabla de diferencias hacia adelante 1.5 Interpolación con datos no equiespaciados 17 1.4.2. Interpolación de Newton por diferencias divididas 1.5. Interpolación con datos no equiespaciados 1.5.1. Nodos y Polinomios de Chebyshev Vamos a presentar una serie de polinomios que como dijimos en la introducción del capı́tulo permitirán una mejora en la aproximación, que la que se obtiene trabajando con el método convencional de Lagrange sobre una malla de datos equiespaciados. Para eso vamos a considerar una función f (x) que la definimos en el intervalo [−1, 1], construidos sobre los nodos −1, x0 < x1 < . . . < xn ≤ 1. Este polinomio interpolador lo planteamos como sigue f (x) = PN (x) + EN (x) con EN (x) = Qx f (N +1) (c) (N + 1)! (1.18) y Qx es el polinomio de grado N + 1 Qx = (x − x0 )(x − x1 ) . . . (x − xN ) (1.19) Lo que vamos a hacer es acotar el error usando máx f (N +1) (x) : −1 ≤ x ≤ 1 |EN (x)| ≤ |Q(x)| (N + 1)! La solución, {xk }N conjunto de nodos que hace mı́nimo k=0 máx {|Q(x)| : −1 ≤ x ≤ 1} son las raı́ces de los polinomios de Chebyshev en el intervalo [−1, 1] Esos nodos que encontramos de esta manera se sustituyen para poder aplicarle el polinomio de Lagrange. Para eso vamos a dar un detalle de como se generan y cuales son sus propiedades. 1.5 Interpolación con datos no equiespaciados 18 1. Fórmula de Recurrencia T0 (x) = 1,T1 (x) = x, P CHk (x) = 2xP CHk−1 (x) − P CHk−2 (x) para k = 2, 3, . . . . . .(1.20) 2. El coeficiente de xn en P CHN (x) es 2N −1 para N ≥ 1 3. Simetrı́a Cuando N = 2M , el polinomio P CH2M (x) es una función par P CH2M (−x) = −P CH2M (x) (1.21) Cuando N = 2M + 1, el polinomio P CH2M +1 (x) es una funcion impar P CH2M +1 (−x) = −P CH2M +1 (x) (1.22) 4. Podemos representar trigonometricamente a P CH2N en el intervalo [−1, 1] P CHN (x) = cos(N arc cos(x)) para − 1x ≤ 1 (1.23) 5. Tiene raı́ces simples en en intervalo [−1, 1],que podemos ver en la figura que sigue xk = cos (2k + 1) π 2N para k = 0, 1, . . . , N − 1 (1.24) Estas raı́ces son los nodos o abcisas del polinomio de Chebyshev Se puede probar que P CHN (x) ≤ 1 para − 1 ≤ x ≤ 1 6. La propiedad de representación trigonometrica se puede hacer a partir de la siguiente identidad cos(kθ) = cos(2θ) cos((k − 2)θ) − sen(2θ)sen((k − 2)θ) sustituyendo cos(2θ) = 2 cos2 (θ) − 1 y sen(2θ) = 2sen(θ) cos(θ) Se llega a la fórmula 2x cos((k − 1) arc cos(x)) − cos((k − 2)(x)) = cos(k(x)) para − 1 ≤ x ≤(1.25) 1 1.5 Interpolación con datos no equiespaciados 19 Podemos ver que se verifica P CH0 (x) = cos(0(x)) = 1 P CH1 (x) = cos(1(x)) = x P CHN (x) = 2xP CHN −1 (x) − P CHN −2 (x) = cos(N (x)) Hay que recordar que cuando presentamos el P.CH.9 factorisamos el error de truncamiento asociado al P.L.10 de manera de poder acotarlo Esa cota es (N +1) Qx f (N +1)!(c) (con x que vive en el intervalo [−1, 1] tendra un valor minimo para Qx cuando se elige x0 , x1 , . . . , xN de manera que Qx = (1/2)N P CHN +1 (x) Entonces lo que vamos a hacer a partir de un aproximación por Lagrange con nodos equiespaciados es evaluarlo con los nodos asociados a Chebyshev Para eso debemos resolver las raı́ces de cada Polinomio en el intervalo [−1, 1] es decir P CHN (x) = cos(N cos−1 (x)) = 0 Recordando que la función cos(x) se anula en ± π2 , ±3 π2 . . . cos(N cos−1 (x)) = N cos−1 (x) = (N + o lo que es lo mismo reformulándolo N + 12 − k xk = cos π , N 1 − k)π, 2 para k = 1, 2, ..., N(1.26) para k = 1, 2, ..., N (1.27) Si por ejemplo queremos determinar los 3 puntos o nodos de Chebyshev, tenemos entonces N = 3 que nos da para xk con Observar que en este caso el P.L. es de orden 3 La otra ventaja que tiene la factorización trigonometrica para encontrar las raı́ces en [−1, 1] es que podemos en realidad buscarla en cualquier intervalo [a, b] y haciendo la transformación que corresponda x= 9 10 (b − a)x + a + b 2z − a − b ⇒z= b−a 2 Polinomio de Chebyshev Polinomio de Lagrange con −1≤x≤1 y a≤z≤b 1.5 Interpolación con datos no equiespaciados 20 Entonces la solución que nos da las raı́ces en el intervalo [a,b] N + 12 − k 1 zk = (b − a) cos π + a + b , para k = 1, 2, ..., N 2 N Supongamos que queremos hallar los 3 puntos o nodos en el intervalo [2, 4] para poder determinar el polinomio de aproximación para f (x) = ln(z) 1. Tenemos entonces 2 ≤ z ≤ 4, con lo que si sustituimos a y b nos queda a = 2, b = 4, N = 3 que nos da a b N 2 4 3 k zk y=ln(z) 1 2.13397 0.75984 2 3 1.098612 3 3.86602 1.352226 Cuadro 1.2: Ejemplo de aplicación para Nodos y Polinomio de Chebyshev 1.5 Interpolación con datos no equiespaciados Figura 1.9: Diferentes polinomios de Chebyshev en el intervalo [−1, 1] 21 1.6 Errores en los diferentes métodos de interpolación 1.5.2. Polinomios Ortogonales 1.5.3. Polinomios de Hermite 1.6. Errores en los diferentes métodos de interpolación 1.6.1. Error de la interpolación de Lagrange 1.6.2. Error de la interpolación de Newton 1.7. 22 Interpolación Fragmentaria o Splines A partir de una serie de puntos dados vamos a construirnos una Gran curva enlazando una serie de polinomios de grado bajo que solamente interpola entre 2 nodos consecutivos. Si la curva que usamos en cada par de nodos en una lı́nea recta tenemos una lineal poligonal como curva total.Para eso podemos usar el PIL que ya vimos en el capitulo anterior Para una colección de puntos {{xk , yk }}k=N k=0 construimos curvas Sk (x) que pasan por todos ellos Sean 2 puntos genéricos [xk , yk ] [xk+1 , yk+1 ] por donde pasa la curva lineal que tiene la ecuación que sigue S(xk ) = yk (x − xk+1) (x − xk) + yk+1 (x0 − xk+1 ) (xk+1 − xk ) (1.28) Esta ecuación es quivalente a la PIL y vamos a volver e rescribirla como (yk+1 − yk) (xk+1 − xk ) y0 = yo + d0 (x − x0 ), x ∈ [x0 , x1 ] y1 = yk + d1 (x − x1 ), x ∈ [x1 , x2 ] ........ S(x)= ....... yN −1 = yN −1 + dN −1 (x − xN −1 ), x ∈ [xN −1 , xN ] Esta función es lo que se llama cercha lineal11 S(xk ) = yk + dk (x − xk ), donde dk = 11 En ingles este tipo de curva se llama spline (1.29) 1.7 Interpolación Fragmentaria o Splines 23 Aclaración Cuando tenemos la coleccionde puntos donde las abcisas estan ordenadas en forma creciente construimos una curva que llamamos S(x), cercha lineal, que es una funcion definida por intervalos y que podemos plantear en forma genérica como Sk (x) = Sk (x) = yk + dk (x − xk ) 1.7.1. (1.30) Cerchas Cúbicas El procedimiento desarrollado en la sección anterior se puede ampliar partiendo nuestra malla de puntos de manera que entre un conjunto de nodos consecutivos ajustamos polinomios de grado 3.Que ventaja tiene trabajar con funciones cubicas? Obtenemos curvas que cuando las unimos para formar nuestra Cercha aparece como una curva mas suave.:esto se debe a la propiedad de que la función cubicas es 2 veces derivables y la derivada segunda es continua en el intervalo de ajuste.La curva que formamos entonces se llama Sercha cúbica o Spline Cúbico Definición 1.7.2 A partir de la colección de puntos con abcisas ordenadas en forma creciente y no necesariamente equiespaciados construimos una función S(x) Cercha Cubica Interpoladora tal que para los datos existen N polonimios cúbicos Sk (x) que son S(x) = Sk (x) = sk,o + sk,1 (x − xk ) + sk,2 (x − xk )2 + sk,3 (x − xk )3 con x ∈ [xk , xk+1 ] Por lo tanto la cuestión ahora es lograr encontrar los valores de los 4 coeficientes de cada polinomio cubico de los N posibles Esta forma de definir la curva general presenta propiedad para cada polinomio cúbico 1. Sk (x) = yk 2. Sk (xk+1 ) = Sk+1 (xk ) k = 0, 1, ..........N k = 0, 1, ..........N − 2 , 3. Sk, (xk+1 ) = Sk+1 (xk ) k = 0, 1, ..........N − 2 ” 4. Sk” (xk+1 ) = Sk+1 (xk ) k = 0, 1, ..........N − 2 1.7 Interpolación Fragmentaria o Splines 24 Estas propiedades que indican la continuidad de la derivada primera y segunda en el intervalo de ajuste vamos a usarlas para encontrar valores para los coeficientes de cada polinomio cubico.Al tener N polinomios con 4 coeficientes cada 1 y manejando a su vez los grados de libertad para cada una de la propiedad vistas en el apartado anterior tenemos al final un sistema con N+1+3N-3=4N-2 condiciones que para poder resolver podemos plantear restricciones en los extremos de manera de llegar a los 4N grados de libertad que tendrı́a el sistema de 4N incógnitas Existen mas de un manera de poder llegar a plantear la forma genérica de cada ecuación donde aparecen los coeficientes del polinomio cúbico