ULPGC Tutorial de Análisis Numérico Interpolación : Fórmula de Newton en diferencias divididas Informática Página Web Página de Inicio Jesús Garcı́a Quesada Departamento de Informática y Sistemas Contenido Universidad de Las Palmas de Gran Canaria 35017 Campus de Tafira, España JJ II J I Email : jgarcia@dis.ulpgc.es 2 de Octubre de 2000, v0.3 Página 1 de 19 Volver Pantalla completa Cerrar Salir ULPGC Índice General 1 FÓRMULA DE NEWTON EN DIFERENCIAS DIVIDIDAS 3 Informática 2 PROBLEMAS Soluciones a los Problemas 10 13 Página Web Página de Inicio Contenido JJ II J I Página 2 de 19 Volver Pantalla completa Cerrar Salir ULPGC 1. FÓRMULA DE NEWTON EN DIFERENCIAS DIVIDIDAS Sea pk (x) el polinomio de interpolación en los puntos x0 , x1 , . . . , xk (grado máximo = k). Considerando pk (x), pk−1 (x) y su diferencia : Página Web qk (x) = pk (x) − pk−1 (x) vemos que para los puntos x0 , x1 , . . . , xk−1 tenemos que : pk−1 (xi ) = yi = pk (xi ), Página de Inicio 06i6k−1 Contenido y también que para el siguiente punto xk tenemos que pk (xk ) = yk , sin conocerse el valor a priori que pueda tener pk−1 (xk ). Por tanto, el polinomio qk (x) verifica : qk (xi ) = pk (xi ) − pk−1 (xi ) = yi − yi = 0, Informática 06i6k−1 Ahora bien, qk (x) es un polinomio de grado máximo k ya que es la resta de dos polinomios, pk (x) de grado k y pk−1 (x) de grado k − 1 y según se acaba de ver se anula en los k puntos anteriores tiene con lo cual se puede expresar de la siguiente forma : qk (x) = ak (x − x0 )(x − x1 ) · · · (x − xk−1 ) = ak k−1 Y (x − xi ) JJ II J I Página 3 de 19 Volver Pantalla completa i=0 Por otra parte, en el punto xk se cumple : Cerrar Salir ULPGC qk (xk ) = pk (xk ) − pk−1 (xk ) = ak (xk − x0 )(xk − x1 ) · · · (xk − xk−1 ) y despejando entonces ak de ésta última identidad tenemos : ak = yk − pk−1 (xk ) (x − x0 )(x − x1 ) · · · (x − xk−1 ) Informática Página Web con lo cual podemos poner : pk (x) = pk−1 (x) + qk (x) Página de Inicio donde lo que parece complicado es calcular el ak , que serı́a el coeficiente de xk en el polinomio pk (x) pero para esto se puede utilizar las diferencias divididas: Contenido Definición 1. Dada la función f de la cual se conoce su valor en los puntos x0 , x1 , . . . , xk , se llama diferencia dividida de f en los puntos x0 , x1 , . . . , xk al valor ak = f [x0 , x1 , · · · , xk ] y se calcula recursivamente como sigue : f [xi ] = f (xi ) = yi f [xi+1 ] − f [xi ] f [xi , xi+1 ] = xi+1 − xi f [xi+1 , xi+2 , · · · , xi+k ] − f [xi , xi+1 , · · · , xi+k−1 ] f [xi , xi+1 , · · · , xi+k ] = xi+k − xi JJ II J I Página 4 de 19 Volver Pantalla completa Cerrar Salir ULPGC Lema 1.1. f [xi , xi+1 , · · · , xi+k ] = f [xi+1 , xi+2 , · · · , xi+k ] − f [xi , xi+1 , · · · , xi+k−1 ] xi+k − xi Demostración. Sea pj (x) el polinomio de grado 6 j que coincide con f (x) en los puntos xi , xi+1 , . . . , xi+j y sea qk−1 (x) el polinomio de grado 6 k − 1 que coincide con f (x) en los puntos xi+1 , xi+2 , . . . , xi+k . Entonces : p(x) = x − xi xi+k − x qk−1 (x) + pk−1 (x) xi+k − xi xi+k − xi Informática Página Web Página de Inicio es un polinomio de grado 6 k que verifica : Contenido p(xj ) = f (xj ), para j = i, i + 1, . . . , i + k ya que : xi+k − xi pk−1 (xi ) = yi = f (xi ) xi+k − xi xi+k − xi Para i + k : p(xi+k ) = qk−1 (xi+k ) = yi+k = f (xi+k ) xi+k − xi y para cada j = i + 1, . . . , i + k − 1 : xj − xi xi+k − xj p(xj ) = qk−1 (xj ) + pk−1 (xj ) = xi+k − xi xi+k − xi xj − xi xi+k − xj xi+k − xi + yj = yj = yj xi+k − xi xi+k − xi xi+k − xi Para i : p(xi ) = JJ II J I Página 5 de 19 Volver Pantalla completa Cerrar Salir ULPGC Por tanto, por la unicidad del polinomio de interpolación, tendremos que p(x) = pk (x) y entonces f [xi , xi+1 , · · · , xi+k ] = coeficiente término principal de pk (x) = coeficiente término principal de qk−1 (x) coeficiente término principal de pk−1 (x) − = = xi+k − xi xi+k − xi f [xi+1 , xi+2 , · · · , xi+k ] − f [xi , xi+1 , · · · , xi+k−1 ] = xi+k − xi Informática Página Web Página de Inicio ¿Cómo organizar el cálculo de la tabla de diferencias divididas? Contenido Ejemplo. El cálculo de las diferencias divididas para cuatro puntos se ordenarı́a como sigue : Solución: x0 −→ y0 = f [x0] & JJ II J I f [x0 , x1] & x1 −→ y1 = f [x1 ] % Página 6 de 19 f [x0 , x1 , x2] & f [x1 , x2 ] % x2 −→ y2 = f [x2 ] f [x0 , x1 , x2 , x3] f [x1 , x2 , x3 ] % Volver f [x2 , x3 ] x3 −→ y3 = f [x3 ] Pantalla completa Cerrar Salir ULPGC Podemos abordar entonces el cálculo del polinomio de interpolación en los puntos (x0 , y0 ), (x1 , y1 ),(x2 , y2 ),. . . , (xn , yn ) de la siguiente forma : p0 (x) = a0 = f [x0 ] = f (x0 ) = y0 p1 (x) = p0 (x) + a1 (x − x0 ) = f [x0 ] + a1 (x − x0 ) = f [x0 ] + f [x0 , x1 ](x − x0 ) p2 (x) = p1 (x) + a2 (x − x0 )(x − x1 ) = f [x0 ] + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) = = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) .. . pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 )(x − x1 ) . . . (x − xn−1 ) = pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · · + f [x0 , x1 , · · · , xn ](x − x0 )(x − x1 ) . . . (x − xn−1 ) Informática Página Web Página de Inicio Contenido JJ II J I o también de forma más concisa : pn (x) = n X i=0 f [x0 , x1 , . . . , xi ] i−1 Y (x − xj ) j=0 Página 7 de 19 que se denomina fórmula de interpolación de Newton en diferencias divididas. Para la evaluación del polinomio de interpolación en su forma de Newton en diferencias divididas pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + · · · + f [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) · · · (x − xn−1 ) usaremos el anidamiento del esquema de Ruffini–Horner : Pantalla completa pn (z) = (· · · (an (z − xn−1 ) + an−1 )(z − xn−2 ) + · · · + a1 )(z − x0 ) + a0 Cerrar Volver Salir ULPGC para la evaluación en un punto z, y donde se ha puesto ak = f [x0 , . . . , xk ]. Obsérvese que se necesitan n productos y 2n? sumas/restas. Ejemplo. Obtener una fórmula para la suma de los cuadrados de los primeros números naturales. n P Solución: Sabemos que k 2 = n(n+1)(2n+1) y como queremos obtenerla por interpolación 6 k=1 construimos un conjunto de valores según los diferentes valores de n. Como el polinomio ha de ser el mismo para cualquier posible ordenación de los puntos, elegimos el siguiente orden: n 3 −→ 2 −→ 5 −→ 1 −→ 4 −→ y f [xi , xi+1 ] 14 9 5 50/3 55 54/4 1 29/3 30 f [xi , xi+1 , xi+2 ] f [xi , . . . , xi+3 ] f [xi , . . . , xi+4 ] 23/6 Informática Página Web Página de Inicio Contenido JJ II J I 1/3 19/6 0 1/3 23/6 Página 8 de 19 Volver Pantalla completa Cerrar Salir ULPGC El polinomio es por tanto: 23 1 (x − 3)(x − 2) + (x − 3)(x − 2)(x − 5) = 6 3 3 2 2x + 3x + 6x x(x + 1)(2x + 1) = = 6 6 como cabrı́a esperar. p(x) =14 + 9(x − 3) + (1) Informática Ejemplo. Obtener por interpolación el valor para x = 3 conocidos los valores x0 = 0, y0 = −1; x1 = 1, y1 = 0; x2 = 2, y2 = 7; x3 = 4, y3 = 63. Solución: Por la fórmula de Newton tenemos, sustituyendo ya el valor x = 3 : x y f [xi , xi+1 ] f [xi , xi+1 , xi+2 ] f [xi , . . . , xi+3 ] 0 −1 1 1 0 3 7 1 2 7 7 28 4 63 Página Web Página de Inicio Contenido JJ II J I Página 9 de 19 Volver El valor del polinomio es por tanto: p(3) = −1 + 1.(3) + 3.3.(2) + 1.(3).(2).(1) = 26 que es lo mismo que se obtuvo con Lagrange, lógicamente. (2) Pantalla completa Cerrar Salir ULPGC 2. PROBLEMAS Problema 1. Los siguientes datos están tomados de un polinomio de grado 6 5. ¿Cúal es el grado del polinomio? xi yi −2 −1 0 1 2 3 −5 1 1 1 7 25 Problema 2. Determinar el número de sumas/restas y el número de productos/divisiones que se necesitan para: 1. calcular las diferencias divididas para n + 1 nodos. 2. calcular (eficientemente) el polinomio de Newton, una vez se conocen las diferencias divididas. Problema 3. Construir la tabla de diferencias divididas para los puntos x −0.2 0.5 0.1 0.7 0.0 f (x) 1.3940 1.0025 1.1221 1.0084 1.1884 Informática Página Web Página de Inicio Contenido JJ II J I y usarla para estimar f (0.15) usando: (a) el polinomio de grado dos obtenido con los tres primeros puntos (b) el polinomio de grado dos obtenido con los tres últimos puntos Página 10 de 19 Volver (c) el polinomio de grado tres obtenido con los cuatro primeros puntos (d) el polinomio de grado tres obtenido con los cuatro últimos puntos Pantalla completa (e) el polinomio de grado cuatro Cerrar Salir ULPGC Referencias [Act90] F.S. Acton. Numerical Methods That (Usually) Work. The Mathematical Association of America, Washington, 1990. [Atk89] K. E. Atkinson. An Introduction to Numerical Analysis. John Wiley, New York, 2nd. edition, 1989. [BF80] [CC89] Informática Página Web R.L. Burden and D. Faires. Análisis Numérico. Grupo Editorial Iberoamericana, México, 1980. Página de Inicio S.C. Chapra and R.P. Canale. Numerical Methods for Engineers. McGraw-Hill International, New York, second edition, 1989. Contenido [CdB80] S. D. Conte and C. de Boor. Elementary Numerical Analysis: An Algorithmic Approach. McGraw–Hill, New York, third edition, 1980. JJ II [DB74] J I Germund Dahlquist and Åke Björck. Numerical Methods. Prentice-Hall, Englewood Cliffs, New Jersey, 1974. [Fad59] V.N. Faddeeva. Computational Methods of Linear Algebra. Dover Publications, Inc, New York, 1959. Página 11 de 19 Volver [Frö79] C.-E. Fröberg. Introduction to Numerical Analysis. Adison–Wesley, Reading, Massachusetts, 2nd. edition, 1979. [GW89] C.F. Gerald and P.O. Wheatley. Applied Numerical Analysis. Addison–Wesley Publishing Co., Reading, Massachusets, fourth edition, 1989. Pantalla completa Cerrar Salir ULPGC [Hen72] P. Henrici. Elementos de Análisis Numérico. Ed. Trillas, México, 1972. [Hil74] F. B. Hildebrand. Introduction to Numerical Analysis. McGraw–Hill, New York, second edition, 1974. [KC94] D. Kincaid and W. Cheney. Análisis Numérico : las matemáticas del cálculo cientı́fico. Addison-Wesley Iberoamericana, 1994. Informática Página Web [Mar87] M. J. Maron. Numerical Analysis: A Practical Approach. Macmillan Publishing Co., New York, second edition, 1987. [ML91] M. J. Maron and R. J. Lopez. Numerical Analysis: A Practical Approach. Wadsworth, Belmont, California, third edition, 1991. Página de Inicio Contenido [RR78] Anthony Ralston and Philip Rabinowitz. A First Course in Numerical Analysis. McGraw-Hill, New York, 2nd. edition, 1978. JJ II [Sch89] H.R. Schwarz. Numerical Analysis. John Wiley & Sons, Chichester, 1989. J I [Wer84] W. Werner. Mathematics of Computation, 43:205–217, 1984. Página 12 de 19 [YG73a] David M. Young and R.T. Gregory. A Survey of Numerical Mathematics, volume I. Dover Publications, New York, 1973. Volver [YG73b] David M. Young and R.T. Gregory. A Survey of Numerical Mathematics, volume II. Dover Publications, New York, 1973. Pantalla completa Cerrar Salir ULPGC Soluciones a los Problemas Problema 1. La tabla de diferencias divididas es: x y f [xi , xi+1 ] −2 −5 6 −1 1 0 0 1 0 1 1 6 2 7 18 3 25 f [xi , xi+1 , xi+2 ] f [xi , . . . , xi+3 ] Informática f [xi , . . . , xi+4 ] Página Web 3 Página de Inicio 1 0 0 1 3 Contenido 0 1 6 y por tanto el polinomio tiene grado tres, siendo éste: JJ II J I Página 13 de 19 Volver p(x) = − 5 + 6(x + 2) + 3(x + 2)(x + 1) + 1(x + 2)(x + 1)x = = x3 − x + 1 Pantalla completa como se puede constatar a partir de los nodos dados. J Cerrar Salir ULPGC Problema 2. Probar que es una fórmula de O(n2 ): El número de sumas/restas necesarias para calcular las diferencias divididas es n(n+1) y el de divisiones es la mitad n(n + 1)/2. Para evaluar eficientemente el polinomio en su forma de Newton: Informática pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + · · · + f [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) · · · (x − xn−1 ) Página Web son necesarias 2n sumas/restas y n productos, ya que se considera el anidamiento del esquema de Ruffini–Horner : Página de Inicio pn (z) = (· · · (an (z − xn−1 ) + an−1 )(z − xn−2 ) + · · · + a1 )(z − x0 ) + a0 Contenido para la evaluación en un punto z, y donde es ak = f [x0 , . . . , xk ]. J JJ II J I Página 14 de 19 Volver Pantalla completa Cerrar Salir ULPGC Problema 3(a) 1.0919 Informática Página Web Página de Inicio Contenido JJ II J I Página 15 de 19 Volver Pantalla completa Cerrar Salir ULPGC Problema 3(b) 1.0973 Informática Página Web Página de Inicio Contenido JJ II J I Página 16 de 19 Volver Pantalla completa Cerrar Salir ULPGC Problema 3(c) 1.0941 Informática Página Web Página de Inicio Contenido JJ II J I Página 17 de 19 Volver Pantalla completa Cerrar Salir ULPGC Problema 3(d) 1.0951 Informática Página Web Página de Inicio Contenido JJ II J I Página 18 de 19 Volver Pantalla completa Cerrar Salir Problema 3(e) 1.0920. El valor real es f (0.15) = 1.0956, ya que los valores corresponden a la función: 1 f (x) = sen(x + 1)