ULPGC
´lisis Nume ´rico Tutorial de Ana Interpolaci´ on : F´ ormula de Newton en diferencias divididas
´tica Informa P´agina Web P´agina de Inicio
Jes´ us Garc´ıa Quesada Departamento de Inform´ atica y Sistemas
Contenido
Universidad de Las Palmas de Gran Canaria 35017 Campus de Tafira, Espa˜ na
JJ
II
J
I
Email :
[email protected]
2 de Octubre de 2000, v0.3 P´agina 1 de 19 Volver Pantalla completa Cerrar Salir
ULPGC
´Indice General ´ 1 FORMULA DE NEWTON EN DIFERENCIAS DIVIDIDAS
3 ´tica Informa
2 PROBLEMAS Soluciones a los Problemas
10 13
P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
P´agina 2 de 19 Volver Pantalla completa Cerrar Salir
ULPGC
´ 1. FORMULA DE NEWTON EN DIFERENCIAS DIVIDIDAS Sea pk (x) el polinomio de interpolaci´on en los puntos x0 , x1 , . . . , xk (grado m´aximo = k). Considerando pk (x), pk−1 (x) y su diferencia :
P´agina 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´agina de Inicio
06i6k−1
Contenido
y tambi´en 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,
´tica Informa
06i6k−1
Ahora bien, qk (x) es un polinomio de grado m´aximo k ya que es la resta de dos polinomios, pk (x) de grado k y pk−1 (x) de grado k − 1 y seg´ un 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´agina 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 ´esta u ´ltima identidad tenemos : ak =
yk − pk−1 (xk ) (x − x0 )(x − x1 ) · · · (x − xk−1 )
´tica Informa P´agina Web
con lo cual podemos poner : pk (x) = pk−1 (x) + qk (x)
P´agina 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´ on 1. Dada la funci´on 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´agina 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´ on. 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
´tica Informa P´agina Web P´agina 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´agina 5 de 19 Volver Pantalla completa Cerrar Salir
ULPGC Por tanto, por la unicidad del polinomio de interpolaci´on, tendremos que p(x) = pk (x) y entonces f [xi , xi+1 , · · · , xi+k ] = coeficiente t´ermino principal de pk (x) = coeficiente t´ermino principal de qk−1 (x) coeficiente t´ermino 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
´tica Informa P´agina Web P´agina de Inicio
¿C´omo organizar el c´alculo de la tabla de diferencias divididas?
Contenido
Ejemplo. El c´alculo de las diferencias divididas para cuatro puntos se ordenar´ıa como sigue : Soluci´ on: x0 −→ y0 = f [x0] &
JJ
II
J
I
f [x0 , x1] & x1 −→ y1 = f [x1 ] %
P´agina 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´alculo del polinomio de interpolaci´on 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 )
´tica Informa P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
o tambi´en de forma m´as concisa : pn (x) =
n X i=0
f [x0 , x1 , . . . , xi ]
i−1 Y
(x − xj )
j=0
P´agina 7 de 19
que se denomina f´ ormula de interpolaci´ on de Newton en diferencias divididas. Para la evaluaci´on del polinomio de interpolaci´on 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´on en un punto z, y donde se ha puesto ak = f [x0 , . . . , xk ]. Obs´ervese que se necesitan n productos y 2n? sumas/restas. Ejemplo. Obtener una f´ormula para la suma de los cuadrados de los primeros n´ umeros naturales. n P Soluci´ on: Sabemos que k 2 = n(n+1)(2n+1) y como queremos obtenerla por interpolaci´on 6 k=1
construimos un conjunto de valores seg´ un los diferentes valores de n. Como el polinomio ha de ser el mismo para cualquier posible ordenaci´on 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
´tica Informa P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
1/3 19/6
0 1/3
23/6
P´agina 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) ´tica Informa
Ejemplo. Obtener por interpolaci´on 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´ on: Por la f´ormula 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´agina Web P´agina de Inicio Contenido
JJ
II
J
I
P´agina 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´ogicamente.
(2)
Pantalla completa Cerrar Salir
ULPGC
2. PROBLEMAS Problema 1. Los siguientes datos est´an tomados de un polinomio de grado 6 5. ¿C´ ual es el grado del polinomio? xi yi
−2 −1 0 1 2 3 −5 1 1 1 7 25
Problema 2. Determinar el n´ umero de sumas/restas y el n´ umero 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
´tica Informa P´agina Web P´agina 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 u ´ltimos puntos
P´agina 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 u ´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]
´tica Informa P´agina Web
R.L. Burden and D. Faires. An´ alisis Num´erico. Grupo Editorial Iberoamericana, M´exico, 1980.
P´agina 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
Germund Dahlquist and ˚ Ake Bj¨orck. Numerical Methods. Prentice-Hall, Englewood Cliffs, New Jersey, 1974.
J
I
[DB74]
[Fad59] V.N. Faddeeva. Computational Methods of Linear Algebra. Dover Publications, Inc, New York, 1959.
P´agina 11 de 19 Volver
[Fr¨o79]
C.-E. Fr¨oberg. 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´alisis Num´erico. Ed. Trillas, M´exico, 1972. [Hil74]
F. B. Hildebrand. Introduction to Numerical Analysis. McGraw–Hill, New York, second edition, 1974.
[KC94]
D. Kincaid and W. Cheney. An´ alisis Num´erico : las matem´ aticas del c´ alculo cient´ıfico. Addison-Wesley Iberoamericana, 1994.
´tica Informa P´agina 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´agina 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´agina 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 ]
´tica Informa
f [xi , . . . , xi+4 ]
P´agina Web
3 P´agina de Inicio
1 0
0 1
3
Contenido
0 1
6
y por tanto el polinomio tiene grado tres, siendo ´este:
JJ
II
J
I
P´agina 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´ormula de O(n2 ): El n´ umero 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: ´tica Informa pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + · · · + f [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) · · · (x − xn−1 )
P´agina Web
son necesarias 2n sumas/restas y n productos, ya que se considera el anidamiento del esquema de Ruffini–Horner :
P´agina de Inicio
pn (z) = (· · · (an (z − xn−1 ) + an−1 )(z − xn−2 ) + · · · + a1 )(z − x0 ) + a0
Contenido
para la evaluaci´on en un punto z, y donde es ak = f [x0 , . . . , xk ]. J
JJ
II
J
I
P´agina 14 de 19 Volver Pantalla completa Cerrar Salir
ULPGC Problema 3(a) 1.0919
´tica Informa P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
P´agina 15 de 19 Volver Pantalla completa Cerrar Salir
ULPGC Problema 3(b) 1.0973
´tica Informa P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
P´agina 16 de 19 Volver Pantalla completa Cerrar Salir
ULPGC Problema 3(c) 1.0941
´tica Informa P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
P´agina 17 de 19 Volver Pantalla completa Cerrar Salir
ULPGC Problema 3(d) 1.0951
´tica Informa P´agina Web P´agina de Inicio Contenido
JJ
II
J
I
P´agina 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´on: 1 f (x) = sen(x + 1)