You are on page 1of 76

UNIVERSIDAD POLITCNICA DE MADRID

ESCUELA TCNICA SUPERIOR DE INGENIEROS DE MINAS


DEPARTAMENTO DE MATEMTICA APLICADA Y MTODOS INFORMTICOS

Asignatura:
PROGRAMACIN Y MTODOS NUMRICOS Tema: DERIVACIN NUMRICA
Prof. Carlos Conde Lzaro Prof. Arturo Hidalgo Lpez Prof. Alfredo Lpez Benito

Marzo, 2007

Programacin y Mtodos Numricos

Derivacin Numrica

NDICE
1. INTRODUCCIN Y MOTIVACIN. 2. FRMULAS DE DERIVACIN NUMRICA. .. 3. FRMULAS DE DERIVACIN NUMRICA DE TIPO INTERPOLATORIO PARA APROXIMAR LA PRIMERA DERIVADA DE UNA FUNCIN. .. 4. EXPRESIONES DEL ERROR EN LAS FRMULAS DE DERIVACIN NUMRICA DE TIPO INTERPOLATORIO QUE APROXIMAN LA PRIMERA DERIVADA DE UNA FUNCIN .. 5. ALGUNAS FRMULAS DE DERIVACIN NUMRICA DE TIPO INTERPOLATORIO USUALES PARA APROXIMAR PRIMERAS DERIVADAS .. 5.1. Frmulas con dos puntos de soporte. . 5.1.1. Casos particulares. . 5.2. Frmulas con tres puntos de soporte. . 5.2.1. Casos particulares con soporte equidistante. . 6. OTROS MTODOS PARA LA OBTENCIN DE FRMULAS DE DERIVACIN NUMRICA DE TIPO INTERPOLATORIO. . 6.1. Mediante la combinacin de desarrollos en serie de Taylor. .. 6.2. Mtodo de coeficientes indeterminados. . 7. FRMULAS DE DERIVACIN NUMRICA DE TIPO INTERPOLATORIO PARA LA APROXIMACIN DE DERIVADAS DE ORDEN SUPERIOR. . 7.1. Obtencin de frmulas de derivacin de tipo interpolatorio mediante el mtodo de los coeficientes indeterminados. . 8. MEJORA DE LA PRECISIN DE LAS FRMULAS DE DERIVACIN NUMRICA. MTODO DE EXTRAPOLACIN DE RICHARDASON. BIBLIOGRAFA SOBRE EL TEMA. .. Pg. 1 4

10

19

29 29 31 33 36

39 39 43

47

63

67 74

ii

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

1. Introduccin y motivacin De muchas funciones con las que se trabaja en la prctica no se conoce su expresin analtica y tan slo se dispone de su valor en un conjunto de puntos (llamado soporte por analoga con la terminologa utilizada en los temas de interpolacin). No obstante, en ocasiones es necesario proceder al clculo del valor de alguna derivada de tales funciones en un punto concreto. Es obvio que en este tipo de situaciones no se puede utilizar el concepto riguroso de derivada (pues se desconoce la expresin de la funcin). Surge as la conveniencia de disear mtodos numricos que permitan aproximar el valor de las derivadas de una funcin en algn punto a partir del conocimiento de los valores de la funcin en un soporte dado. Los mtodos que estn desarrollados con este fin muestran un buen comportamiento en numerosos casos. Es por ello que algunas veces, aun disponiendo de la expresin analtica de las funciones a derivar, se opta por aproximar los valores de las derivadas mediante frmulas numricas suficientemente precisas. Ejemplo de ello son el mtodo de la secante o, ms generalmente, los mtodos de cuasi Newton detallados en el estudio de mtodos de resolucin de sistemas de ecuaciones no lineales. Es ms, muchas de las tcnicas de derivacin numrica que se abordarn en este tema estn en la base de diferentes mtodos utilizados para la resolucin de ecuaciones diferenciales, es decir de ecuaciones en las que intervienen derivadas de funciones incgnita. Es el caso, por ejemplo, de los llamados mtodos en diferencias finitas. La principal idea que subyace en las tcnicas de derivacin numrica est muy vinculada a la interpolacin y se podra resumir en lo siguiente: Si de una funcin f(x) se conocen sus valores en un determinado soporte de puntos, puede aproximarse la funcin f(x) por otra funcin p(x) que la interpole en dicho soporte y sustituir el valor de las derivadas de f(x) en un punto x* por el valor de las correspondientes derivadas de p(x) en dicho punto x*. Esta idea tan simple deber sin embargo ser analizada con detalle pues su aplicacin sin mayores consideraciones puede conducir a errores no admisibles. Puesto que entre las distintas tcnicas de interpolacin existentes se han abordado en temas precedentes las tcnicas de interpolacin polinmica de Lagrange, nos centraremos aqu en las frmulas obtenidas a partir de esta

Programacin y Mtodos Numricos

Derivacin Numrica

forma de interpolar. No obstante conviene indicar que para otras tcnicas de interpolacin podran disearse tcnicas de derivacin numrica de forma anloga a como se plantearn las recogidas en este tema. Una de las primeras frmulas que nos permiten aproximar una derivada primera tiene sus races en los comienzos del clculo diferencial en el siglo XVII. En ese entonces el concepto de lmite no estaba desarrollado de forma explcita y la primera derivada de una funcin f(x) en el punto x* se consideraba como el valor del cociente incremental: f(x * +h) f(x*) A= h cuando h era suficientemente pequeo. Una vez que, en el siglo XIX, se formaliz el concepto de lmite se pudo proceder a definir la primera derivada de una funcin f(x) en x* mediante la conocida expresin: f(x * + ) f(x*) f '(x*) = lim 0

En este sentido resulta razonable esperar que el valor del cociente incremental A y el valor del lmite usado en la determinacin de f(x*) se parezcan ms cuanto menor sea el valor de h que se utilice en la determinacin de A. De aqu puede surgir una primera idea para aproximar el valor de f(x) como el valor que se obtiene para el cociente incremental cuando se toma h suficientemente pequeo.
NOTA: Ms adelante se detallar cmo el cociente incremental que acabamos de considerar tambin puede obtenerse a partir de las frmulas del polinomio interpolador de una funcin. Con ello recuperaremos la idea que subyace en los mtodos de derivacin numrica. Ejemplos: 1) La funcin f(x) = x2 tiene como funcin primera derivada f(x) = 2.x por lo que f(1) = 2. En el punto x*=1 el cociente incremental antes considerado toma la expresin: (1 + h)2 12 2.h + h2 A= = = 2+h h h por lo que cuanto menor sea el valor de h considerado ms parecido ser el valor de A al valor de f(1).

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

2) No siempre es factible simplificar la expresin de los cocientes incrementales como se ha hecho en el ejemplo anterior. En efecto, si por ejemplo se considera la funcin f(x) = ex, es sabido que f(x) = ex y que f(0) = 1. El cociente incremental correspondiente a esta funcin en el punto x* = 0 resulta ser: eh 1 A= h Para distintos valores de h pueden obtenerse ahora los valores de A que aproximan la primera derivada. Pero ahora, estos valores dependern del procedimiento que se utilice para estimar eh , del nmero de decimales que se estn utilizando en los clculos y de la tcnica de aproximacin (truncado o redondeo) de los valores intermedios obtenidos. Por ejemplo, si se utilizan cuatro dgitos significativos y se redondea, los valores de eh y de A para distintas elecciones de h resultan ser: h eh A -1 10 1.105 1.05 -2 10 1.011 1.10 -3 10 1.001 1.00 -4 10 1.000 0.00 El ejemplo anterior pone de manifiesto que, en la prctica, al trabajar en aritmtica finita, reducciones excesivas del valor de h empeora la precisin del cociente incremental.

El ejemplo anterior pone de manifiesto que cabe distinguir, al menos, dos fuentes de error en las tcnicas de aproximacin numrica. La primera de ellas, que se designa habitualmente como error del mtodo o error de truncatura, es debida a sustituir la expresin de la derivada (a travs del clculo de un lmite) por una frmula en la que se combinan valores de la funcin en determinados puntos. La segunda fuente de error es debida a los errores de redondeo que se cometen en las operaciones que contemple la frmula numrica. En este tema nos ocuparemos de analizar la primera de las fuentes de error remitiendo al lector interesado en el anlisis de los errores de redondeo al primero de los temas de esta asignatura.

Programacin y Mtodos Numricos

Derivacin Numrica

2. Frmulas de derivacin numrica Sea f(x) una funcin derivable en un cierto intervalo I de la recta real y sea x* un punto de dicho intervalo. Consideremos adems un soporte de (n+1) puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores de la

funcin f(x). Por simplicidad supondremos adems, en todo cuanto sigue, que los puntos del soporte son todos ellos distintos y estn ordenados de menor a mayor es decir que: x0 < x1 < ... < xn.
Definicin 2.1. Siendo f(x) una funcin de la que se conocen sus valores en el soporte de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina frmula de derivacin numrica para aproximar el valor de la primera derivada f(x) en el punto x* sobre el soporte de puntos considerado, a toda expresin de la forma: f(x*) f*' = c0.f(x0) + c1.f(x1)+ . + cn.f(xn) =

c .f(x )
i=0 i i

donde c0, c1, , cn son (n+1) escalares denominados coeficientes (o pesos) de la frmula de derivacin

NOTA: La frmula de derivacin que se acaba de definir puede decirse que es una frmula lagrangiana pues en ella slo intervienen valores de la funcin f en los puntos del soporte. Podran considerarse frmulas ms generales, hermitianas, en las que el valor de f(x*) fuese aproximado a partir del valor de la funcin f y de algunas de sus derivadas en los puntos del soporte. No obstante, estas ltimas frmulas tienen un uso mucho ms espordico que las de tipo lagrangiano y es por ello que en este tema nos limitaremos a considerar como frmulas de derivacin numrica tan slo a las que hacen intervenir los valores de la funcin en los puntos del soporte.

En general el valor aproximado

f*'

y el valor exacto f(x*) diferirn,

cometindose un error en la aproximacin de f(x*). Es por ello que junto a la definicin de una frmula numrica conviene precisar de forma rigurosa la definicin del error que con ella se comete. En este sentido se introduce la siguiente definicin:

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Definicin 2.2. Siendo f*' la aproximacin de f(x*) que se obtiene operando sin error de redondeo segn la frmula de derivacin numrica: f(x*) f*' =

c .f(x )
i=0 i i

se denomina error de truncamiento de la frmula en el punto x*y para la funcin f al valor Rf(x*) = f(x*) - f*'

Obviamente se verificar que: f '(x*) = f*' + R f (x*) por lo que considerando la frmula en cuestin aplicada a todos los puntos x de un dominio dado puede definirse la funcin error de truncamiento de la frmula derivacin numrica para la funcin f considerada como la funcin: Rf : I R x Rf(x) = f(x) - f*' En el anlisis del error de truncamiento de las frmulas de derivacin numrica se perseguir encontrar cotas del valor de esta funcin de error Rf(x) en el intervalo I sobre el que se trabaje.
Ejemplo: Siendo {x0 , x1 } un soporte formado por dos puntos tales que x1 = x0 + h, y considerando que x* = x0, la sustitucin de la expresin de f(x0) por el cociente incremental: f(x1 ) f(x 0 ) f0' = h conduce a una frmula en la que sus coeficientes son c0 = (-1/h) y c1 = (1/h). Una forma de acotar el error de truncamiento de esta frmula, si se supone que f(x) es al menos de clase C2([x0, x1]) consiste en considerar el desarrollo en serie de Taylor siguiente: h2 (0,1) .f "(x 0 + .h) f(x1) = f(x0+h) = f(x0) + h.f(x0) + 2 de donde:

f '( x0 ) = Por tanto:

f ( x0 ) f ( x1 ) h .f "( x0 + .h ) h 2

(0,1)

h Rf ( x0 ) = f '( x0 ) f0' = .f "( x0 + .h ) 2 expresin que puede acotarse por:

(0,1)

Programacin y Mtodos Numricos

Derivacin Numrica

Rf ( x0 ) = f '( x0 ) f0'

h . S up { f "( x ) } 2 x( x0 ,x1 )

Para el caso particular de la funcin f(x) = x2 el cociente incremental considerado conduce a la expresin: 2 ( x + h )2 x0 = 2.x0 + h f0' = 0 h por lo que el error de truncatura cometido es en este caso Rf(x0) = h. Obsrvese que la acotacin antes realizada conducira (para esta funcin x2) a la acotacin |Rf(x0)| h coincidente con el error de truncatura realmente cometido1.
Las frmulas que conducen al valor exacto de la derivada se denominan frmulas exactas. Ms concretamente:
Definicin 2.3.

Se dice que la frmula de derivacin numrica f(x*) f*' =

c .f(x ) es
i=0 i i

exacta para la funcin f(x) en el punto x* y para el soporte {x0, ..., xn} cuando el error de truncatura Rf(x*) es nulo.
Ejemplo: Dado un soporte {x0 < x1 } y denotando por h = x1 x0, la frmula:

f(x*) f* ' =

f(x1 ) f(x 0 ) 1 1 = f(x 0 ) + f(x1 ) x1 x 0 h h

es una frmula exacta para la funcin f(x) = x2, en el punto x* = 1 y para el soporte {x0 = 0, x1 = 2}. En efecto, f(1) = 2 y:
2 = f '(1) = f* ' =

1 2 1 2 0 + 2 = 2 2 2

Ahora bien esta frmula no tiene que ser exacta si se cambia de punto x* (por ejemplo f(1.5) = 3 f* = 2) o si se cambia de soporte (por ejemplo para x0 = -1 y x1 = 2 , siendo f(x) = x2 y x* = 1 se tiene que f(1) = 2 f* = 1) o si se cambia de funcin (por ejemplo si f(x) = x3 con el soporte {x0 = 0 y x2 = 2} y para x* = 1 se tiene que: 3 = f(1) f* = 4)
1

No siempre las acotaciones del error de truncatura que se obtendrn sern tan finas como la que se acaba de describir.

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

De poco servira tener frmulas que slo fuesen exactas para funciones concretas con soportes concretos y en puntos concretos pues la aplicabilidad de dichas frmulas sera escasa. Por ello, las frmulas de derivacin numrica suelen disearse de forma que sean exactas para determinadas familias de funciones con independencia de cules sean los (n+1) puntos del soporte que se elijan y para cualquier punto x* en el que se apliquen. Ms concretamente puede darse la definicin siguiente:
Definicin 2.4. Se dice que la frmula de derivacin numrica:

f '(x*) f*' = c i .f(xi )


i= 0

es exacta de orden k para la familia de funciones de clase C1([x0 , xn]): {0 (x), 1(x),..., k (x),....} cuando es nulo el error de truncatura cometido al aplicar la frmula para la estimacin de la primera derivada de cualquiera de las (k+1) primeras funciones de la familia y en cualquier punto x* perteneciente al intervalo [x0 , xn]: Rk (x) = 0 x [x 0 ,xn ]
Propiedad 2.1.

Si la frmula de derivacin numrica f '(x*) f*' = c i .f(xi ) es exacta de orden k para la familia de funciones {0 (x), 1(x),..., k (x),....} entonces es exacta para cualquier combinacin lineal de las (k+1) primeras funciones de la familia
Demostracin: Si la frmula es exacta de orden k para la familia de funciones consideradas se podr escribir que:
i= 0

'j (x*) = c i . j (xi )


i=0

x* [ x 0 ,xn ] (j = 0, ..., k)

Por otra parte, una funcin cualquiera que sea combinacin lineal de las (k+1) primeras funciones de la familia ser de la forma:
f(x) = 0 0 (x) + 1 1 (x) + ..... + k k (x) = j j (x)
j= 0 k

por lo que su primera derivada en cualquier punto x* del intervalo [x0, xn]se puede expresar como:
7

Programacin y Mtodos Numricos

Derivacin Numrica

k k k n n n f '(x*) = j 'j (x*) = j c i j (x i ) = c i j j (xi ) = c i f(xi ) j=0 j=0 i= 0 i= 0 j= 0 i= 0

y puesto que la aplicacin de la frmula de derivacin numrica a la funcin f(x) en cualquier punto x* conduce a que: fx' = c i .f(xi )
i=0 n

puede concluirse que:


R f (x*) = 0

x* [ x 0 ,xn ]

Esto demuestra que la frmula es exacta para cualquier funcin f(x) que sea combinacin lineal de las (k+1) primeras funciones de la familia de funciones considerada. c.q.d. Las frmulas de derivacin numrica ms utilizadas en la prctica son exactas, de algn orden k, para la familia de funciones formada por los monomios, es decir: {1, x, x2, ...,xk, ....}. En este tema nos referiremos en exclusiva a esta familia de funciones y por ello cuando digamos que una frmula es de orden k se sobreentender que es de orden k para la familia de los monomios, es decir que permite estimar sin error alguno la primera derivada de cualquier funcin polinmica de grado menor o igual que k en cualquier punto x*.
Ejemplo: La frmula que se ha utilizado en ejemplos anteriores consistente en sustituir el lmite con el que se define la derivada por el cociente incremental en un soporte de dos puntos consecutivos es una frmula exacta de orden 1. En efecto, para la funcin f(x) = 1 se verifica que:
fx' = f(x 0 + h) f(x 0 ) 1 1 = = 0 = f '(x) h h x [ x 0 ,x 0 + h]

Asimismo para la funcin g(x) = x se tiene que:

g(x 0 + h) g(x 0 ) x 0 + h x 0 = = 1 = g'(x) x [ x 0 ,x 0 + h] h h Pero para la funcin q(x) = x2, en general, ya no coincidir el valor de la primera derivada y el valor estimado mediante la frmula de derivacin: g'x =

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

q'x =

2 q(x 0 + h) q(x 0 ) (x 0 + h)2 x 0 = = 2 x 0 + h q'(x) h h

x [ x 0 ,x 0 + h]

por lo que slo se puede afirmar que el error de la frmula es nulo para los monomios {1, x}. En consecuencia, como se seal anteriormente, la frmula es de orden 1.
NOTA: Para facilitar el seguimiento de todo cuanto hasta aqu se ha dicho, nos hemos referido nicamente a frmulas que permiten estimar el valor de la primera derivada de una funcin. Anlogo tratamiento podra realizarse para las frmulas de derivacin numrica que permiten estimar derivadas de orden mayor (segundas derivadas, terceras derivadas, etc...). A ellas nos referiremos en el apartado 7 de este tema.

Programacin y Mtodos Numricos

Derivacin Numrica

3. Frmulas de derivacin numrica de tipo interpolatorio para aproximar la primera derivada de una funcin. Como se ha comentado en el apartado anterior, las frmulas ms utilizadas en la prctica se buscan de forma que sean exactas para polinomios de grado menor o igual que n (es decir frmulas de orden de exactitud n). Una manera natural de construir frmulas exactas de orden n consiste en recordar que el polinomio pn(x) que interpola en el sentido de Lagrange y sobre un soporte de

(n+1) puntos a una funcin f(x) que sea polinmica de grado menor o igual que n coincide con dicha funcin2. Por ello es equivalente derivar la funcin polinmica f(x) que derivar la su polinomio interpolador pn(x). A todas las frmulas de derivacin que se obtienen derivando la expresin del polinomio interpolador de Lagrange se las denomina frmulas de derivacin de tipo interpolatorio.
Definicin 3.1. Se denomina frmula de derivacin numrica de tipo interpolatorio (de Lagrange) para aproximar derivadas de primer orden a cualquier frmula obtenida derivando una vez la expresin del polinomio interpolador de Lagrange construido sobre un soporte de (n+1) puntos distintos. NOTA: Obsrvese que en la definicin anterior se ha escrito entre parntesis de Lagrange. En efecto podra pensarse en derivar tambin la expresin del polinomio interpolador de Hermite obtenindose otros tipos de frmulas de derivacin de tipo interpolatorio. Puesto que nosotros slo nos vamos a referir a las frmulas que se obtienen al derivar la expresin del polinomio interpolador de Lagrange omitiremos en lo sucesivo la coletilla de Lagrange y simplemente diremos frmula de derivacin numrica de tipo interpolatorio.

Una frmula de derivacin numrica de tipo interpolatorio puede obtenrse de cualquiera de las expresiones del polinomio interpolador. Recordando la expresin del polinomio interpolador en funcin de los polinomios de base de Lagrange puede deducirse la expresin de los pesos que intervienen en dicha frmula. En efecto:
2

Consltese, por ejemplo, el tema dedicado a la Interpolacin de Lagrange elaborado por A. Hidalgo y C. Conde en estos mismos apuntes.

10

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Propiedad 3.1.

La condicin necesaria y suficiente para que la frmula de derivacin


' numrica fx* = ci .f ( xi ) que sea de tipo interpolatorio es que sus i =0 n

coeficientes satisfagan las igualdades: ci = L'i ( x*) (i = 0, 1, ..., n)

donde se ha denotado por Li(x) a los (n+1) polinomios de base de Lagrange3 sobre el soporte {x0, x1, ..., xn}.
Demostracin: a) Demostremos en primer lugar que si la frmula es de tipo interpolatorio entonces sus pesos satisfacen la relacin ci = Li(x*). En efecto, la expresin detallada del polinomio interpolador de Lagrange pn(x) de una funcin f(x) sobre

el soporte de (n+1) puntos {x0, x1, ..., xn} en funcin de los (n+1) polinomios de n base de Lagrange {Li (x)}i=0 es:
f(x) pn (x) = f(xi ) Li (x)
i= 0 n

de donde, en cualquier punto x* se puede considerar la aproximacin:


' f '(x*) pn (x*) = L'i (x*) f(x i ) i=0 n

Esta frmula es una frmula de derivacin numrica en la que sus coeficientes estn dados por la expresin: c i = L'i (x*) (i = 0, ..., n)

b) Demostremos que si la frmula de derivacin numrica satisface c i = L'i (x*) (i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede expresar como: pn(x) =

f(x )L (x)
i=0 i i

se tiene que si se verifican las igualdades

consideradas para los coeficientes:

n Recurdese que: Li (x) = (x x j ) j=0 ji

n (x x ) j i j=0 ji

(i = 0, 1, ..., n)

11

Programacin y Mtodos Numricos

Derivacin Numrica

n f(x*) c i f(xi ) = (L 'i (x*)f(x i )) = (Li (x*)f(xi )) ' = Li (x*)f(xi ) = p'n (x*) i= 0 i=0 i=0 i= 0
n n n

'

lo que demuestra que el valor de la primera derivada en x* se aproxima con el valor de la primera derivada del polinomio interpolador en x*. c.q.d. La propiedad anterior caracteriza a las frmulas de derivacin numrica de tipo interpolatorio que permiten aproximar primeras derivadas. Adems nos permite obtener otras propiedades que deben satisfacer los coeficientes de las frmulas de tipo interpolatorio. Por ejemplo:
Propiedad 3.2. En toda frmula
n i= 0

de

derivacin

numrica

de

tipo

interpolatorio

' fx* = c i .f(xi ) se verifica que:

c
i=1

=0

Demostracin: Puesto que segn las propiedades de los polinomios de base de Lagrange se

verifica que:

L (x) = 1
i=0 i

x , es obvio que:
'

n n Li (x) = L'i (x) = 0 i=0 i=0

En particular para el punto x* se tendr que:

L'i (x*) = ci = 0
i=0 i=0

c.q.d. Ocupmonos ahora de analizar el error en las frmulas de derivacin numrica de tipo interpolatorio. Denotando por (x) a la funcin error de interpolacin cometido al aproximar una funcin f(x) por su polinomio interpolador de Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que: f(x) = pn(x) + (x) por lo que:
' f '(x*) = pn (x*) + '(x*)

x (x 0 ,xn )

12

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

lo cual nos conduce a poder expresar el error en el punto x* de la frmula de derivacin numrica mediante:
R f (x*) = '(x*)

En el caso particular en que f(x) sea un polinomio de grado menor o igual que n se verificar que f(x) pn(x) y por tanto (x) = 0 x , de donde resulta que la frmula de derivacin numrica de tipo interpolatorio construida sobre un soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o igual que n. En resumen es exacta de orden n. Este hecho nos permite incluir a las frmulas de derivacin numricas de tipo interpolatorio en el conjunto de frmulas de derivacin exactas de orden n. Pero an puede precisarse ms, puesto que adems toda frmula exacta de orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema.
Teorema 3.1. La condicin necesaria y suficiente para que una frmula de derivacin
' numrica construida sobre un soporte de (n+1) puntos, fx* = c i .f(xi ) , i =0 n

sea exacta de orden n es que sea de tipo interpolatorio.


Demostracin: a) Demostremos en primer lugar que la condicin recogida en el enunciado del teorema es suficiente, es decir que si la frmula construida sobre el soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de orden n. Para ello basta con recapitular los razonamientos anteriormente realizados. En efecto, si f(x) es una funcin polinmica de grado menor o igual que n su polinomio interpolador de Lagrange sobre el soporte de (n+1) puntos coincide con la funcin y por tanto:

f(x) = pn(x) por lo que f(x) = pn(x) tendr que:

x . En particular para cualquier punto x* se

' ' f '(x*) = pn (x*) fx*

13

Programacin y Mtodos Numricos

Derivacin Numrica

Ello demuestra que la frmula es exacta sea cual sea el polinomio f(x) de grado menor o igual que n al que se aplique y el punto x* en el que se aproxime la primera derivada.. En particular lo ser cuando se aplique a los (n+1) primeros monomios {1, x, ..., xn} y por ello es exacta de grado n. b) Demostremos ahora que la condicin anterior tambin es necesaria, es decir que si la frmula construida sobre el soporte de (n+1) puntos es exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello partimos del hecho de que, al ser la frmula exacta de orden n, para cualquier funcin polinmica de grado menor o igual que n, p(x), se debe verificar que: p'(x*) = c i .p(xi )
i =0 n

Por otra parte, puesto que hemos considerado que p(x) es un polinomio de grado menor o igual que n, se verificar que el polinomio interpolador de p(x) en el soporte de (n+1) puntos coincidir con p(x) y por tanto p(x) se puede expresar como: p(x) = p(xi ).Li (x)
i= 0 n

de donde su primera derivada en el punto x* estar dada por: p'(x*) = L'i (x*).p(xi )
i= 0 n

Identificando las dos expresiones de la primera derivada de p(x) en x* se tiene que:

ci .p(xi ) = L'i (x*).p(xi )


i =0 i=0

Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea de grado menor o igual que n. Por tanto deber verificarse tambin en el caso de que consideremos como p(x) cualquiera de los (n+1) polinomios n de base de Lagrange construidos sobre el soporte {xi }i=0 . Recordemos adems que los polinomios de base de Lagrange verifican:

14

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

0 si i j Li (x j ) = 1 si i=j Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene que:

c .L
i =0 i

(xi ) = L'i (x*).L0 (xi ) c 0 = L'0 (x*)


i=0

Al hacerlo para el polinomio L1(x) resultar que:

ci .L1(xi ) = L'i (x*).L1(xi ) c1 = L'1(x*)


i =0 i= 0

Y en general al particularizar para cualquier polinomio de base Lj(x) obtendremos que:

ci .L j (xi ) = L'i (x*).L j (xi ) c j = L' j (x*)


i =0 i=0

c.q.d.
Ejemplos: 1) Si se considera un nico punto de soporte {x0} el polinomio interpolador de una funcin f(x) en dicho soporte ser el polinomio: p0(x) = f(x0). La figura 1 recoge, junto al grafo de la funcin f(x) el grafo de p0(x) y la tangente geomtrica a la curva en (x0, f(x0)). La pendiente de esta tangente geomtrica ser la derivada f(x0).

Figura 1: Interpretacin grfica del proceso de aproximacin de la derivada primera de una funcin mediante la frmula de tipo interpolatorio con soporte de un punto.

15

Programacin y Mtodos Numricos

Derivacin Numrica

Ello nos conducira a que, para cualquier punto x*, la frmula de derivacin de tipo interpolatorio de una funcin con un soporte de un nico punto es:
' ' f '(x*) fx* = p0 (x*) = 0 = 0.f(x 0 )

Obviamente esta frmula slo sera exacta en el caso de derivar constantes (es decir, polinomios de grado 0).

2) Si se considera un soporte de 2 puntos {x0, x1} el polinomio interpolador de la funcin f(x) en el sentido de Lagrange est dado por:
p1 (x) = f(x 0 ). (x x 0 ) (x x1 ) + f(x1 ). (x 0 x1 ) (x1 x 0 )

La derivada de este polinomio es:


' p1 (x) = f(x 0 ).

f(x1 ) f(x 0 ) 1 1 + f(x1 ). = (x 0 x1 ) (x1 x 0 ) (x1 x 0 )

Al no depender del punto en el que se evale la derivada podemos concluir que para cualquier abscisa x* el valor de la primera derivada de la funcin en ella, f(x*), se aproximar mediante:
' f '(x*) fx* =

f(x1 ) f(x 0 ) x1 x 0

Esta expresin se corresponde con el cociente incremental que se utiliz en los ejemplos de los apartados anteriores. Puede observarse que los pesos de la frmula son: c0 = -1/(x1 x0) y c1 = 1/(x1 x0) por lo que su suma se anula. La grfica de la figura 2 representa junto a los grafos del polinomio interpolador y de la funcin f(x) la tangente geomtrica al grafo de f(x) en un punto (x*, f(x*)).

16

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Figura 2: Interpretacin grfica del proceso de aproximacin de la derivada primera de una funcin mediante la frmula de tipo interpolatorio con soporte de dos puntos.

Obviamente esta frmula de derivacin numrica ser exacta sobre cualquier polinomio de grado menor o igual que 1 (es decir sobre lneas rectas).

Otras relaciones entre los pesos y los puntos del soporte de las frmulas de derivacin numrica de tipo interpolatorio se recogen en la propiedad siguiente:
Propiedad 3.3 En toda frmula
n i= 0

de

derivacin

numrica

de

tipo

interpolatorio

' fx* = c i .f(xi ) , construida sobre un soporte de (n+1) puntos, se verifica

que:

c x
i =1 i

k i

= k( x * )

k 1

(k = 1, ...n)

Demostracin: Por ser la frmula de tipo interpolatorio es exacta para todo polinomio de grado menor o igual que n. En particular lo ser para la funcin f(x) = xk sea cual sea el valor del entero positivo k siempre que k < n. Puesto que f(x*) = k(x*)(k-1), la exactitud de la frmula implica que:

c x
i=1 i

k i

= k( x * )

k 1

( 0 < k < n) c.q.d.

17

Programacin y Mtodos Numricos

Derivacin Numrica

EJERCICIO PROPUESTO: Demustrese que para cualquier funcin f(x) que sea derivable en todo punto del intervalo [x0, x1] siempre existe algn punto x* de dicho intervalo para el que

la frmula de derivacin numrica de tipo interpolatorio construida sobre el soporte {x0 ,x1} proporciona el valor exacto f(x*). Ntese que, si esto es as, en particular se puede afirmar que siempre existir algn punto x* en el intervalo [x0, x1] para el que la frmula construida con dos puntos de soporte proporciona el valor exacto de la derivada de xk sea cual sea el valor que le demos al entero no negativo k. Contradice esto la afirmacin de que la frmula es de orden 1?. A la luz de este comentario no sera ms preciso decir que la frmula es de orden infinito?.

18

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

4. Expresiones del error de las frmulas de derivacin numrica de tipo interpolatorio que aproximan la primera derivada de una funcin. El proceso seguido para obtener las frmulas de derivacin numrica de tipo interpolatorio nos conduce de forma natural a que el error de cada frmula Rf(x*) de derivacin as determinada es igual a la primera derivada de la funcin de error interpolacin (x) particularizada en el punto x* en que se deriva: Rf(x*)= '(x*) . No obstante trabajar con la expresin del error de

interpolacin que se dedujo en los temas dedicados al estudio de las tcnicas de interpolacin4 no es cmodo en muchas ocasiones. Es por ello interesante obtener otras expresiones ms cmodas para el anlisis del error de las frmulas de derivacin numrica. Una primera forma de obtener otra expresin del error de derivacin numrica se basa en utilizar diferencias divididas. Para ello, como es habitual, denotaremos por f[x0, x1, ..., xn, x] a la diferencia dividida de orden (n+1) de la funcin f(x) en los puntos {x0, x1, ..., xn, x] y consideraremos una funcin g(x) que a todo punto x le haga corresponder el valor: g(x) = f[x0, x1, ..., xn, x] La primera derivada de esta funcin estar dada por: g(x)= lim f[x 0 ,x1,....,xn ,x + h] f[x 0 ,x1,....,xn ,x] = lim f[x 0 ,x1,....,x n ,x,x + h] h 0 h 0 (x + h) x

que representaremos por: g'(x) = f[x 0 ,x1,....,xn ,x,x] Ms concretamente:


Definicin 10.4.1. Se define la diferencia dividida de orden (n+2 )de una funcin en el soporte {x0, x1, ..., xn, x, x} mediante: df[x 0 ,x1,....,xn ,x] f[x 0 ,x1,...,x n ,x,x] = dx

f (n +1 ( x ) n . (x xi ) donde x era un (n + 1)! i= 0 punto dependiente de la abscisa x en la que se deseaba estimar el error de interpolacin. Este error tambin se poda expresar usando las diferencias divididas como
4

Recurdese que la expresin obtenida era:

(x) =

(x) = f[x 0 , x1 ,..., xn , x] (x xi ) .


i=0

19

Programacin y Mtodos Numricos

Derivacin Numrica

Con ayuda de las diferencias divididas con puntos repetidos que se acaban de definir y partiendo de la expresin del error de interpolacin que se obtuvo al trabajar con diferencias divididas, es sencillo demostrar la siguiente propiedad:
Propiedad 4.1. La frmula
n i= 0

de

derivacin

numrica

de

tipo

interpolatorio

' fx* = c i .f(xi ) tiene asociado un error de truncatura dado por la expresin

n n Rf ( x*) = f [ x0 , x1 ,..., xn , x*, x * ] . ( x * xi ) + f [ x0 , x1 ,..., xn , x*, x * ] . ( x * x j ) j =0 i =0 i =0 j i


n

Demostracin: Basta con particularizar en x* la expresin obtenida al derivar una vez la funcin de error de interpolacin:

(x) = f[x 0 ,x1,...,xn ,x]. (x xi )


i =0

c.q.d. La expresin anterior, teniendo un inters terico, tambin es de difcil aplicacin prctica. Es por eso que lo que resta de este apartado lo dedicaremos a determinar una expresin de fcil aplicacin advirtiendo de antemano al lector que ms que la frmula que finalmente determinemos, en la prctica es el mtodo que vamos a seguir el que tiene inters prctico. Consideremos que f(x) es una funcin de clase Cn+1((x0, xn)) y que para aproximar la primera derivada de la funcin f(x) en un punto x* perteneciente al intervalo [x0 , xn] se considera la frmula de derivacin numrica de tipo
' interpolatorio fx* = c i .f(xi ) construida sobre un soporte de (n+1) puntos i =0 n

distintos {x0 < x1 < ....< xn}. Advirtase que, por ser la frmula de tipo interpolatorio, al menos, ser de orden n. Ello, en particular implica que servir para determinar sin error de truncatura ninguno las derivadas de las funciones {1, x, x2, ..., xn}. Ello a su vez se traduce en que:

c i xik = (xk )'x = x* c i xik = k.(x * )(k 1)


i=0 i=0

(k = 0,..., n)

20

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Denotemos adems por h al valor:


h = Max ( x * x 0 , x * x n
n

y sean {i }i=0 (n+1) escalares de valor absoluto no superior a 1 y tales que:

xi = x * +i h
Para cada uno de estos puntos, al haber supuesto la funcin f(x) suficientemente regular, se puede considerar el desarrollo en serie de Taylor siguiente: 2 .h2 n .hn (n f(xi ) = f(x * +i .h) = f(x*) + i .h.f '(x*) + i .f "(x*) + .... + i .f (x*) + 2 n! n+1.hn+1 (n+1 + i .f (x * +i .h) (n + 1)! Por tanto la frmula de derivacin numrica de tipo interpolatorio considerada podr rescribirse en la forma:
n h2 . n n n ' 2 fx* = c i .f(xi ) = c i .f(x*) + h. c i .i .f '(x*) + c i .i .f "(x*) + ..... + 2! i=0 i =0 i=0 i=0 n n +1 n n h h . c i .i(n+1) .f (n+1(x * +i .h) + . c i .in .f (n (x*) + n! i=0 (n + 1)! i=0

Simplifiquemos la expresin que se acaba de obtener. El coeficiente que multiplica a f(x*) es nulo pues es la suma de los pesos de la frmula (vase la propiedad 3.2.). Para simplificar otros sumandos de la expresin utilizaremos las dos propiedades siguientes:
Propiedad 4.2.
' Con la notacin introducida anteriormente y siendo fx* = c i .f(xi ) una i= 0 n

frmula de derivacin numrica de verifica que:

tipo interpolatorio con n > 0, se


= 1 h

c .
i i=0

Demostracin: Con la notacin que estamos utilizando se tiene que:

21

Programacin y Mtodos Numricos

Derivacin Numrica

i =
de donde:
n

xi x * h

n 1 n 1 n 1 c i .i = . c i .(xi x*) = . c i .xi .x * . c i h i=0 h i=1 i=0 i=0 h

En esta ltima igualdad se sabe que otra parte

c
i= 0

= 0 (vase la propiedad 3.2.). Por

c .x
i i =1

se corresponde con la expresin de la derivada del monomio

x en el punto x*. Por ello su valor ser 1. En resumen: n 1 c i .xi = h i=0 c.q.d.
Propiedad 4.3.
' Con la notacin introducida anteriormente y siendo fx* = c i .f(xi ) una i= 0 n

frmula de derivacin numrica de verifica que:

tipo interpolatorio, con n>1,


=0

se

c .
i i=0

k i

(k=2,....,n)

Demostracin: Con la notacin que se est utilizando y empleando la frmula de Newton para desarrollar potencias de binomios5, se tiene que:

c i .ik =
i=0

k 1 n 1 n k . c i .(xi x*)k = k . c i . ( 1) j . .xi(k j) .(x*) j = k h i= 0 h i=0 j=0 j

k 1 k n . ( 1) j . .(x*) j . c i .x(k j) i hk j=0 i= 0 j

Al ser la frmula de tipo interpolatorio ser exacta para cualquier polinomio de grado menor o igual que n. En particular, al haber considerado n > 1 si se toman valores de k tales que 2 k n se debe verificar para todo valor del entero j comprendido entre 0 y (k-1) que el sumatorio

c .x
i=0 i

(k j) i

coincide con el

k k! Como es habitual, en dicha frmula se utiliza la notacin para representar a (k j)!.j! j

22

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

valor de la derivada del monomio x(k-j) particularizado en el punto x*. Es decir que:

c .x
i=0 i

(k j) i

' = x(k j) = (k j).(x*)(k j1) x = x*

Para el caso en que j coincida con el valor de k el sumatorio quedar cuyo valor es nulo(vase la propiedad 3.2.). Por tanto:

c
i=0

c i .ik =
i=0

k 1 (k 1) . ( 1) j . .(x*) j .(k j).(x*)(k j1) = k h j= 0 j


(k 1) k 1 .(x*)(k 1) . ( 1) j .(k j). k h j=0 j

Puesto que6 se verifica que:


(k 1) j=0

(1) .(k j). j = 0


j

k 2

puede concluirse que:

c .
i=0 i

k i

=0

(k = 2, ..., n) c.q.d.

Estas dos propiedades junto a la expresin que obtuvimos antes de enunciarlas nos permiten demostrar fcilmente el siguiente teorema:
Teorema 4.1. Dado el soporte de (n+1) puntos x0 < x1 < ... < xn , siendo f(x) una funcin de clase C(n+1)((x0 , xn)), siendo x* un punto del intervalo [x0 , xn], denotando hi = xi x* , por h al valor h = mx(|x*-x0| , |x* - xn|) y por n {i }i=0 a los (n+1) escalares tales que hi = i .h , para toda frmula de

derivacin numrica de tipo interpolatorio:


' f '(x*) fx* = c i .f(x i ) i=0 n

existen (n+1) valores i pertenecientes al intervalo [-1 , 1] tales que:

El lector interesado puede encontrar la demostracin en el anexo a este apartado (Lema 4.2.)

23

Programacin y Mtodos Numricos

Derivacin Numrica

n hn Rf (x*) = f(x*) f = . c i .in .hi .f (n+1(x * +i .h) (n + 1)! i=0 ' x*

Demostracin: Introduciendo el resultado de las propiedades 4.2. y 4.3. en la expresin antes obtenida resulta:
n h2 . n n n ' 2 fx* = c i .f(xi ) = c i .f(x*) + h. c i .i .f '(x*) + c i .i .f "(x*) + ..... + 2! i=0 i =0 i=0 i=0

hn n hn+1 n . c i .in .f (n (x*) + . c i .i(n+1) .f (n+1(x * +i .h) = n! i=0 (n + 1)! i=0

= f '(x*) +

n hn . c i .in .hi .f (n+1(x * +i .h) (n + 1)! i=0

c.q.d.
NOTAS:

1) Obsrvese que en el trmino del error se ha descompuesto hn+1 en la forma hnh, dejando slo como factor comn del sumatorio hn y expresando en cada uno de los sumandos del trmino de error ih como hi. El motivo de ello es que los coeficientes ci de la frmula de derivacin dependen en general de los valores hi por lo que procediendo de esta manera el trmino de error podr expresarse en funcin de los valores de las derivadas f(n+1(i) (siendo i los puntos x*+ih), de hn y de (n+1) constantes i = ciinhi/(n+1)!. En los ejemplos del siguiente apartado se ilustrar este hecho. 2) La expresin anterior se resume frecuentemente indicando que el error es de orden O(hn). 3) Para algunas funciones y en algunos puntos se verificar que el trmino que multiplica a la derivada de orden (n+1) en el desarrollo en serie de Taylor del que se parta tambin se anula. En dichos casos, si f(x) es lo suficientemente regular, puede ampliarse el desarrollo en serie considerado truncndolo en el primero de los trminos que no se anule (que ser posterior a aquel en el que interviene la derivada n-sima).

24

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

4) Con todo, como ya seal anteriormente, lo ms interesante de esta forma de proceder no es tanto el resultado obtenido como el procedimiento seguido para determinar el error de la frmula (combinando desarrollos en serie de Taylor). 5) Cuando el soporte es equidistante los clculos anteriores suelen rehacerse designando como h a la distancia entre los puntos del soporte.

Habitualmente el error se acota en valor absoluto, |Rf(x*)|. A partir del teorema anterior es fcil obtener una cota de este error utilizando el lema siguiente:
Lema 4.1. Si g(x) es una funcin continua en [a, b] y se consideran (n+1) n n coeficientes positivos, {i }i=0 , y (n+1) puntos {i }i=0 pertenecientes al

intervalo [a, b], entonces existe un punto [a,b ] tal que:

.g( ) = .g()
i =0 i i

donde = i .
i =0

Demostracin: Denotemos por gm y por gM a los valores mnimo y mximo que toma la funcin g(x) en [a, b]. Por ser todos los coeficientes positivos se verifica que:
i .gm i .g(i ) i .gM (i = 0, 1, ..., n)

Sumando las expresiones anteriores se tiene que:

.g
i =0 i

i .g(i ) i .gM .gm i .g(i ) .gM


i=0 i= 0 i=0

1 n gm . i .g(i ) gM i= 0 Las desigualdades anteriores, junto a la hiptesis realizada sobre la continuidad de la funcin g(x) en el intervalo [a, b], nos muestran que, por aplicacin del teorema del valor medio, existir en [a, b] al menos un punto para el que se verifique que:

25

Programacin y Mtodos Numricos

Derivacin Numrica

n 1 n . i .g(i ) = g() i .g(i ) = .g() i =0 i=0

c.q.d. El lema precedente y el teorema 4.1. nos permiten demostrar fcilmente el siguiente teorema:
Teorema 4.2. Dado el soporte de (n+1) puntos x0 < x1 < .... < xn, siendo f(x) una funcin de clase C(n+1)((x0 , xn)), x* un punto del intervalo [x0 , xn] y denotando por h al valor h = mx( |x* x0 |, |xn x|), para toda frmula de derivacin

numrica de tipo interpolatorio:


' f '(x*) fx* = c i .f(xi ) n i=0

existe algn punto [ x 0 ,x n ] y alguna constante real positiva para los que se verifica: |Rf(x*)| .hn .f (n+1 ()
Demostracin: Segn el teorema 4.1., y utilizando la misma notacin que en l, se tiene que:
' Rf (x*) = f(x*) fx* = n hn . c i .in .hi .f (n+1 (x * +i .h) (n + 1)! i=0

de donde:
' Rf (x*) = f(x*) fx* = n hn . c i .in .hi .f (n+1 (x * +i .h) (n + 1)! i=0

n hn . c i .in .hi . f (n+1 (x * +i .h) (n + 1)! i=0

Aplicando el lema 4.1. (para la funcin g(x) = |f(n+1(x)|, evaluada en los puntos i = x* + i.h, y con los coeficientes i = |ci.in.hi| ) se puede concluir que existir un valor x [x0 , xn] para el que se verificar que:
n i i= 0 .h(n+1) . f (n+1 () R f (x*) (n + 1)! de donde se tiene el resultado de este teorema sin ms que llamar al escalar n 1 = . i (n + 1)! i=0 c.q.d.

26

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

En el apartado siguiente se deducirn algunas frmulas de derivacin numrica y se detallar cmo obtener la expresin del error que con ellas se comete.

ANEXO AL APARTADO 4 Lema 4.2. Para todo valor entero k superior o igua a 2 se verifica que:
( k 1 ) j =0

( 1) .( k j ). j = 0
j

k 2

Demostracin: Se tiene que:


(k 1) k k k k k k k ( 1) j (k j) = ( 1) j (k j) = k ( 1) j ( 1) j j j=0 j= 0 j j=0 j j j= 0 j

Analicemos, utilizando la frmula del binomio de Newton7, el primero de los sumandos del lado derecho de esta igualdad:
k k k ( 1) j = k(1 1)k = k0 = 0 j=0 j

Analicemos ahora el sumando que queda en el lado derecho:

(1) j j .
j j=0

Para ello procederemos por induccin. Para el valor k = 2 se tiene que el sumando anterior tiene el valor:

(1) j j = 1 0 1 + (1) 1 2 + 1 2 1 = 0
j j=0

Admitamos entonces que para algn valor (k-1) > 2 se verifica que:
(k 1) j=0

(1) j
j

k 1 =0 j

Recurdese que la frmula del binomio de Newton establece que: k k k ( a + b ) = a(k j) b j j=0 j

27

Programacin y Mtodos Numricos

Derivacin Numrica

y demostremos que en ese caso tambin se anula el sumatorio para el entero k. En efecto, con esta suposicin:
k k k k k! k! k! = ( 1) j j = ( 1) j = ( 1) j j = ( 1) j j j!(k j)! j=1 j!(k j)! j=1 ( j 1)!(k j)! j=0 j j=0 k

= k ( 1) j
j=1

k k k 1 (k 1)! (k 1)! = k ( 1) j = k ( 1) j =0 ( j 1)!(k j)! j!(k j 1)! j=0 j=0 j

Por tanto:
(k 1) k k k k k ( 1) j (k j) = k ( 1) j ( 1) j j = 0 0 = 0 j=0 j= 0 j j j= 0 j

c.q.d.

28

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

5. Algunas frmulas de derivacin numrica de tipo interpolatorio usuales para aproximar primeras derivadas. 5.1. Frmula con dos puntos de soporte Si se considera el soporte {x0 , x1} y una funcin f(x) de la que se conoce su valor en los puntos del soporte, el polinomio interpolador de Lagrange de tal funcin sobre el soporte escogido est dado por:

p(x) = f(x 0 ).

(x x 0 ) (x x1 ) + f(x1 ). (x 0 x1 ) (x1 x 0 )

Por tanto la expresin de la frmula que permite aproximar f(x*) se obtendr derivando la expresin de este polinomio de manera que:
' f '(x*) fx* = p '(x*) =

1 1 1 1 .f(x 0 ) + .f(x1 ) = .f(x 0 ) + .f(x1 ) (x 0 x1 ) (x1 x 0 ) (x1 x 0 ) (x1 x 0 )

Es habitual en este caso denotar por H a la distancia entre puntos: H = (x1 x0) con lo que la frmula anterior puede expresarse como:
' f(x*) fx* =

1 1 .f(x 0 ) + .f(x1 ) H H

siendo los coeficientes de la frmula c0 = -(1 / H) y c1 = (1 / H).


NOTAS: 1) Obsrvese que la frmula obtenida coincide con el cociente incremental que

nos sirvi para ilustrar las frmulas de derivacin numrica en la introduccin a este tema (apartado 1). 2) En la obtencin de esta frmula se ha partido de la expresin del polinomio interpolador que utiliza los polinomios de base de Lagrange. Cualquier otra expresin del polinomio interpolador nos hubiese conducido a idntico resultado pues el polinomio interpolador de Lagrange, sobre un soporte dado, es el mismo se utilice el mtodo que se utilice para determinarlo. As por ejemplo si se hubiera partido de la frmula de Newton en diferencias divididas: p(x) = f(x0) + f[x0, x1].(x-x0)

29

Programacin y Mtodos Numricos

Derivacin Numrica

que al derivarlo, teniendo en cuenta la expresin de la diferencia dividida nos proporciona: f(x1 ) f(x 0 ) .(x x 0 ) p(x) = f[x0, x1].(x-x0) = x1 x 0 por lo que particularizando esta expresin en el punto x = x* y denotando por H a la distancia entre puntos se tiene finalmente que:
' f(x*) fx* = p '(x*) =

1 1 .f(x 0 ) + .f(x1 ) H H

En este caso, al haber slo dos puntos de soporte, se puede considerar el soporte equidistante y podran haberse utilizado las expresiones del polinomio interpolador en diferencias finitas (centradas, regresivas o progresivas) obtenindose la misma frmula. Se deja el desarrollo detallado de estos casos como ejercicio propuesto al lector. 3) La figura 2 representada anteriormente (ver apartado 3) recoge la interpretacin grfica de este proceso de aproximacin.

La expresin del error de esta frmula, admitiendo la hiptesis de que f(x) sea de clase C2 ((x0 , x1)) y que x* pertenezca a [x0, x*], puede obtenerse sin ms que denotar por h al valor h = mx(|x0 x*|, |x1 x*|) y considerando entonces que: x0 - x* = 0 .h x1 - x* = 1.h por lo que:
' fx* = c0.f(x0) + c1.f(x1) =

1 1 . ( f(x1 ) f(x 0 ) ) = . ( f(x * +1.h) f(x * +0 .h) ) = H H 1 1 2 = . f(x*) + 1.h.f '(x*) + .1 .h2 .f "(x * +1.h) H 2 1 2 f(x*) 0 .h.f '(x*) .0 .h2 .f "(x * +0 .h) = 2 0 1 2 2 1 2 2 = 1 .h.f '(x*) + 1 .h .f "(x * +1.h) 0 .h .f "(x * +0 .h) = H 2.H 2.H 1 x x0 1 2 2 1 2 2 = . 1 .h.f '(x*) + 2.H 1 .h .f "(x * +1.h) 2.H 0 .h .f "(x * +0 .h) = H h

= f(x*) +

h2 2 2 . 1 .f "(x * +1.h) 0 .f "(x * +0 .h) 2.H

30

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Puesto que H se podr expresar como .h con ( > 1) resultar finalmente, aplicando el lema 4.1., que: Rf(x*) = h 2 2 . 1 .f "(x * +1.h) 0 .f "(x * +0 .h) = .h.f "() 2.

En el caso de ser x* un punto cualquiera el orden del error de la frmula de derivacin numrica es 0(h) donde h representa la mayor de las distancias del punto x* a los extremos del intervalo. Ms frecuente an que la expresin del error anterior es la que se obtiene al expresar dicha frmula en funcin de la distancia entre los puntos del soporte (H). Fcilmente se obtiene esta nueva expresin sin ms que considerar que h = .H (con < < 1) por lo que la expresin del error queda en el caso ms general en la forma: Rf(x*) = .H.f() La frmula de derivacin con dos puntos de soporte suele utilizarse cuando x* es uno de los puntos extremos del intervalo o el punto medio del mismo (caso, este ltimo, en el que el orden del error de la frmula se incrementa en una unidad). A continuacin se desarrollan estos casos particulares de la frmula de derivacin con un soporte de dos puntos.
5.1.1. Casos particulares

A) Caso en el que x* = x0
En este caso h = H, 0 = 0 y 1 = 1 y la frmula se puede escribir en la forma: f(x * +h) f(x*) ' fx* = h denominndose aproximacin mediante la diferencia finita progresiva de primer orden (o en adelanto). El error de esta frmula, si f(x) es suficientemente regular puede obtenerse particularizando en la expresin antes obtenida resultando:

h ' R f (x*) = f(x*) fx* = .f "(x * +.h) 2

[0,1]

Por tanto en este caso la frmula es exacta de orden 1.

31

Programacin y Mtodos Numricos

Derivacin Numrica

NOTA: Al mismo resultado sobre el error se llegara sin ms que considerar que: f(x*+h) = f(x*) + h.f(x*) + (h2/ 2).f(x*) + ..... de donde:

f(x*) =

f(x * +h) f(x*) 1 1 ' .h.f "(x*) .... = fx* .h.f "(x*) .... h 2 2

B) Caso en el que x* = x1
En este caso h = H, 0 = 1 y 1 = 1 y la frmula se puede escribir en la forma: f(x*) f(x * h) ' fx* = h denominndose aproximacin mediante la diferencia finita regresiva de primer orden (o en retroceso o upwind). El error de esta frmula, si f(x) es suficientemente regular puede obtenerse particularizando en la expresin antes obtenida resultando: h ' R f (x*) = f(x*) fx* = .f "(x * .h) 2
[0,1]

Por tanto, en este caso la frmula es exacta de orden 1.

NOTA:

Al mismo resultado sobre el error se llegara sin ms que considerar que: f(x*-h) = f(x*) - h.f(x*) + (h2/ 2).f(x*) - ..... de donde:
f(x*) f(x * h) 1 1 ' + .h.f "(x*) .... = fx* + .h.f "(x*) .... h 2 2

f(x*) =

C) Caso en que x* es el punto medio del intervalo: x* = (x0 + x1) / 2


En este caso h = H/2, 0 = 1 y 1 = 1 pudindose rescribir la frmula de derivacin numrica en la forma:
' fx* =

f(x * +h) f(x * h) 2.h

32

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

denominndose aproximacin mediante la diferencia finita centrada de primer orden. El error de esta frmula, si f(x) es suficientemente regular puede obtenerse, en un primer intento, particularizando en la expresin antes obtenida resultando: h ' 0 , 1 [0,1] R f (x*) = f(x*) fx* = . ( f "(x * +1.h) f "(x * 0 .h) ) 4 No obstante la expresin anterior nos deja con la duda de si no podrn anularse ms trminos del desarrollo en serie de Taylor a partir del cual se obtuvo la expresin del error. En efecto, en este caso si se admite que f(x) es suficientemente regular se podran considerar los desarrollos en serie de Taylor de f(x) con ms trminos que los antes planteados, es decir: h3 h4 (iv 2 f(x0) = f(x*-h) = f(x*) h.f(x*) + ().h f(x*) .f '''(x*) + .f (x*) .... 6 24 h3 h4 (iv f(x1) = f(x*+h) = f(x*) + h.f(x*) + ().h2f(x*) + .f '''(x*) + .f (x*) + .... 6 24 por lo que: h3 h5 (v .f '''(x*) + .f (x*) + ... f(x+h) f(x-h) = 2.h.f(x*) + 3 60 de donde: f(x * +h) f(x * h) h2 h4 (v ' fx* = = f '(x*) + .f '''(x*) + .f (x*) + .... 2.h 6 120 y por tanto: h2 h4 (v ' Rf(x*) = f(x*) - fx* = .f '''(x*) .f (x*) .... 6 120 En resumen, si f(x) es de clase C3((x0, x1)) puede afirmarse en este caso que: h2 R f (x*) = .f '''(x * +h) [0,1] 6 por lo que en este caso la frmula es exacta de orden 2.

5.2. Frmula con tres puntos de soporte Sea ahora el soporte de tres puntos x0 < x1 < x2 y consideremos un punto x* perteneciente al intervalo [x0, x2]. Sea adems f(x) una funcin de la que se conocen sus valores en los puntos del soporte. El polinomio interpolador de Lagrange de f(x) sobre este soporte puede expresarse, utilizando la frmula de Newton en diferencias divididas, mediante:

33

Programacin y Mtodos Numricos

Derivacin Numrica

p2(x) = f(x0) + f[x0, x1].(x - x0) + f[x0 , x1, x2].(x x0).(x x1) por lo que: p2(x) = f[x0, x1]+ f[x0 , x1, x2].((x x0) + (x x1)) lo que nos conduce a que la frmula de derivacin numrica de tipo interpolatorio con este soporte est dada por:
' f(x*) fx* = p'2 (x*) = f[x0, x1]+ f[x0 , x1, x2].((x* x0) + (x* x1))

NOTAS: 1) En este caso se ha utilizado la frmula de Newton del polinomio

interpolador para inferir a partir de ella la frmula de derivacin de tipo interpolatorio. Puesto que, sobre un soporte dado, el polinomio interpolador de Lagrange es nico podran haberse utilizado otras expresiones de este polinomio para obtener el mismo resultado. No obstante es cmodo utilizar la frmula de Newton en el caso general para no obtener expresiones que, desarrolladas, quedan muy aparatosas sin aportar nada para nuestros propsitos. 2) En la expresin anterior pueden sustituirse las diferencias divididas que intervienen por sus expresiones respectivas8. Ello hace que la frmula tome un aspecto ms engorroso para su manipulacin. 3) En el sentido de lo expresado en la primera de estas notas el polinomio interpolador podra haberse expresado en la forma: p2(x) = f(x0).L0(x) + f(x1).L1(x) + f(x2).L2(x) con:
L0 (x) = (x x 0 ).(x x 2 ) (x x 0 ).(x x1 ) (x x1 ).(x x 2 ) , L1 (x) = , L 2 (x) = (x1 x 0 ).(x1 x 2 ) (x 2 x 0 ).(x 2 x1 ) (x 0 x1 ).(x 0 x 2 )

Recurdese que:

f [ x0 , x1 ] =

f ( x1 ) f ( x0 ) , x1 x0

f [ x1 , x2 ] =

f ( x2 ) f ( x1 ) x2 x1

f [ x0 , x1 , x2 ] =

f [ x1 , x2 ] f [ x0 , x1 ] x 2 x0

34

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

para as obtener la misma frmula de derivacin numrica pero ahora con la expresin
' f(x*) fx* = p'2 (x*) = L'0 (x*).f(x 0 ) + L'1 (x*).f(x1 ) + L'2 (x*).f(x 2 )

En esta ltima expresin los coeficientes de la frmula aparecen de forma ms explcita y toman la expresin: c0 = L'0 (x*) =
(x * x1 ) + (x * x 2 ) , (x 0 x1 ).(x 0 x 2 )

c1 = L1 (x*) =

(x * x 0 ) + (x * x 2 ) (x1 x 0 ).(x1 x 2 )

c2 = L 2 (x*) =

(x * x 0 ) + (x * x1 ) (x 2 x 0 ).(x 2 x1 )

4) La interpretacin grfica del proceso de derivacin numrica seguido con esta frmula consiste en sustituir la tangente trigonomtrica del ngulo formado entre el eje de abscisas y la tangente geomtrica al grafo de f(x) en el punto (x*, f(x*)) por la tangente trigonomtrica del ngulo formado entre el eje de abscisas y la tangente geomtrica en el punto (x*, p2(x*)) al grafo de la parbola p2(x) que pasa por los puntos (x0 , f(x0)), (x1 , f(x1)) y (x2 , f(x2)). La figura 3 ilustra este proceso.

Figura 3: Interpretacin grfica del proceso de derivacin numrica seguido con una frmula de tipo interpolatorio con tres puntos de soporte.

35

Programacin y Mtodos Numricos

Derivacin Numrica

En lo que se refiere al error de truncatura de esta frmula, su expresin puede acotarse, si fC3((x0 , x1)), utilizando el teorema 4.2. mediante:

R f (x*) .h2 . f ''' () Los casos de aplicacin ms tpicos para esta frmula de derivacin numrica son aquellos en los que el punto x* coincide con uno de los puntos del soporte siendo, adems, el soporte equidistante. A continuacin se analizan con detalle estas situaciones.

5.2.1. Casos particulares con soporte equidistante

En este caso, denotando por H a la distancia entre puntos consecutivos del soporte las diferencias divididas que intervienen en la frmula pueden ser expresadas mediante:
f[x 0 ,x1 ] = f(x1 ) f(x 0 ) H f[x 0 ,x1,x 2 ] = f(x 2 ) 2.f(x1 ) + f(x 0 ) 2.H2

por lo que la frmula de derivacin numrica de tipo interpolatorio se convierte en:


' f '(x*) fx* =

f(x1 ) f(x 0 ) f(x 2 ) 2.f(x1 ) + f(x 0 ) + .((x * x 0 ) + (x * x1 )) 2 H 2.H

H x0 x1

H x2

A) Caso de soporte equidistante en el que x* = x0

Si se toma como punto x* el extremo izquierdo del soporte se tiene que: x0 = x*, x1 = x* + H y x2 = x* + 2.H. Con ello (x* - x0) = 0 y (x* - x1) = -H por lo que:
36

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid
' f '(x*) fx* =

f(x1 ) f(x 0 ) f(x 2 ) 2.f(x1 ) + f(x 0 ) = H 2.H f(x 2 ) + 4.f(x1 ) 3.f(x 0 ) f(x * +2.H) + 4.f(x * +H) 3.f(x*) = = 2.H 2.H

La frmula anterior se conoce con el nombre de frmula de derivacin numrica en diferencias progresivas de segundo orden. Si se admite que f(x) es una funcin suficientemente mente regular, el error de derivacin puede obtenerse fcilmente combinando los desarrollos en serie de Taylor: f(x* + 2.H) = f(x*) + 2.H.f(x*) +2.H2.f(x*) + (8/6).H3.f(x*) + f(x* + H) = f(x*) + H.f(x*) + ( ) H2.f(x*) + (1/6).H3.f(x*) +... por lo que: -f(x*+2.H) + 4.f(x*+H) 3.f(x*) = 2.H.f(x*) (2/3).H3.f(x*) + . de donde: f(x*) =
f(x * +2.H) + 4.f(x * +H) 3.f(x*) 1 2 + .H .f '''(x*) + .... 2.H 3

pudindose concluir que si f(x) es al menos de clase C3((x0 , x1)) entonces: Rf(x*) = f(x*) fx* = (1/3).H2.f()

B) Caso de soporte equidistante en el que x* = x1

Si se toma como punto x* el punto medio del soporte se tiene que: x0 = x* - H, x1 = x* y x2 = x* + H. Con ello (x* - x0) = H y (x* - x1) = 0 por lo que: f(x1 ) f(x 0 ) f(x 2 ) 2.f(x1 ) + f(x 0 ) f(x 2 ) f(x 0 ) ' f '(x*) fx* = + = = H 2.H 2.H
=

f(x * +H) f(x * H) 2.H


37

Programacin y Mtodos Numricos

Derivacin Numrica

frmula que coincide con la que se obtuvo al utilizar un soporte de 2 puntos y aproximar la derivada en el punto medio de ellos.
C) Caso de soporte equidistante en el que x* = x2

Si se toma como punto x* el punto derecho del soporte se tiene que: x0 = x* - 2.H, x1 = x*- H y x2 = x*. Con ello (x*-x0) = 2.H y (x*-x1) = H por lo que:
' f '(x*) fx* =

f(x1 ) f(x 0 ) f(x 2 ) 2.f(x1 ) + f(x 0 ) + .(3.H) = H 2.H2

3.f(x 2 ) 4.f(x1 ) + f(x 0 ) 3.f(x*) 4.f(x * H) + f(x * 2.H) = 2.H 2.H

expresin que se conoce como frmula de derivacin numrica en derivadas regresivas de segundo orden. Si f(x) es suficientemente regular pueden combinarse los desarrollos en serie de Taylor: f(x* - 2.H) = f(x*) - 2.H.f(x*) +2.H2.f(x*) - (8/6).H3.f(x*) + f(x* - H) = f(x*) - H.f(x*) + ( ) H2.f(x*) - (1/6).H3.f(x*) +... obteniendo: 3.f(x*) 4.f(x*-H) + f(x*-2.H) = 2.H.f(x*) (2/3).H3.f(x*) - .... de donde, si f(x) es al menos de clase C3((x0, x2) se obtiene que: Rf(x*) = f(x*) fx* = (1/3).H2.f()

38

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

6. Otros mtodos para la obtencin de frmulas de derivacin numrica de tipo interpolatorio. 6.1. Mediante la combinacin de desarrollos en serie de Taylor. El proceso seguido en el apartado 4 para determinar el error de derivacin

numrica muestra otra manera de calcular las frmulas de derivacin. En efecto, una alternativa al proceso de obtencin de frmulas de derivacin numrica mediante el clculo de la primera derivada del polinomio interpolador de Lagrange de la funcin f(x) en los (n+1) puntos del soporte, consiste en combinar los desarrollos de Taylor en torno al punto x* de f(x0), f(x1), ..., f(xn) buscando que en dicha combinacin se anulen el mayor nmero posible de los primeros trminos salvo, obviamente, el que multiplica a f(x*). Despejando despus f(x*) de esta combinacin se obtendr la frmula de derivacin y el trmino de error. De forma ms detallada, si se denota por hi = xi x* (i = 0, .., n) y se admite que f(x) posee la regularidad necesaria, se puede escribir que: hi2 h3 hk f "(x*) + i f '''(x*) + .... + i f (k (x*) + .... 2! 3! k!

f(xi) = f(x*+hi) = f(x*) + hif(x*) + Por lo que:

f(x ) = f(x*) + h f '(x*) + 2! h


i=0 i i i= 0 i i= 0 i i i= 0 i

2 i

f "(x*) +

1 n 1 n i hi3 f '''(x*) + .... + i hik f (k (x*) + ... 3! i=0 k! i=0

(1)

Si se desea que la frmula de derivacin sea del mayor orden posible debe buscarse que, salvo el coeficiente de f(x*), se anulen el mayor nmero de los primeros sumandos del desarrollo anterior. Esto es, que:

i = 0
i=0

ihi2 = 0
i=0

.........

h
i=0 i

k i

=0

En general el nmero de ecuaciones que as se pueden formar es de n ecuaciones quedando un sistema con (n+1) incgnitas (0, ..., n) y tan slo n ecuaciones. Ello es debido a que con el coeficiente de f(x*) se debe aadir la inecuacin

h
i =0 i

0.

39

Programacin y Mtodos Numricos

Derivacin Numrica

Por ello los coeficientes (0, ..., n) que se determinen mediante la resolucin del sistema:

i=0 n i=0

=0
2 i

h
i

=0

........

h
i=0 i

n i

=0

quedarn en funcin del valor que libremente se le asigne a uno de ellos. En todo caso, una vez calculados estos coeficientes, denotando por = i hi
i= 0 n

se tendr que los coeficientes de la frmula de derivacin se obtienen mediante: ci = i / (i = 0, ..., n) y que del primer trmino que no se haya podido anular en la expresin (1) se podr inferir fcilmente la expresin del error de derivacin. Ilustremos estos extremos con un ejemplo.
Ejemplo: Determinemos la frmula de derivacin numrica del mayor orden de exactitud

posible que permite calcular el valor aproximado de f(x*) usando un soporte de la forma: {x0 = x* - 2h, x1 = x* - ()h, x2 = x* + ()h, x3 = x* + (3/2)h} donde h es un valor real estrictamente positivo. Para ello, si suponemos que f(x) es suficientemente regular en (x0, x3) podemos considerar los desarrollos en serie de Taylor:

f(x*-2h) =f(x*) 2hf(x*) +

4h2 8h3 16h4 (iv f "(x*) f '''(x*) + f (x*) 2 6 24

32h5 (v f (x*) + ... 120 1 h2 h3 h4 (iv f (x*) f(x*-()h) =f(x*) hf(x*) + f "(x*) f '''(x*) + 8 48 384 2 h5 (v f (x*) + ... 3840

40

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

1 h2 h3 h4 (iv f (x*) + f(x*+()h) =f(x*) + hf(x*) + f "(x*) + f '''(x*) + 2 8 48 384 h5 (v f (x*) + ... + 3840 3 3 9h2 27h3 91h4 (iv f "(x*) + f '''(x*) + f (x*) + f(x*+ h) =f(x*) + hf(x*) + 2 2 8 48 384 273h5 (v f (x*) + ... + 3840
de donde:

1 1 3 0 f(x * 2h) + 1f(x * h) + 2 f(x * + h) + 3 f(x * + h) = 2 2 2


= ( 0 + 1 + 2 + 3 )f(x*) +

1 1 3 + 2 0 1 + 2 + 3 hf '(x*) + 2 2 2 1 1 9 + 2 0 + 1 + 2 + 3 h2 f "(x*) + 8 8 8 1 1 27 8 + . 0 1 + 2 + 3 h3 f '''(x*) + 48 48 48 6 1 1 91 16 1 + 2 + 3 h4 f (iv (x*) + + . 0 + 384 384 384 24 1 1 273 32 . 0 1 + 2 + 3 h5 f (v (x*) + .... + 3840 3840 3840 120
Si se desea que la frmula tenga el mayor orden posible se obligar a que:
0 + 1 + 2 + 3 = 0 1 1 9 20 + 1 + 2 + 3 = 0 8 8 8 8 1 1 27 . 0 1 + 2 + 3 = 0 6 48 48 48

41

Programacin y Mtodos Numricos

Derivacin Numrica

de donde9, dejando como incgnita libre 1, se tiene:


0 = 8 1 , 455 2 = 66 1 , 65 3 =

3 1 91

Si se asigna a 1 el valor 1 = 1 se tiene que: 8 66 , , 0 = 1 = 1, 2 = 455 65

3 =

3 91

Para estos valores de los coeficientes i, se tiene entonces que la combinacin de desarrollo en serie de Taylor antes obtenida se convierte en:

8 1 66 1 3 3 f(x * 2h) + f(x * h) f(x * + h) + f(x * + h) = 455 2 65 2 91 2


=

12 1 4 (iv hf '(x*) h f (x*) + .... 13 208

por lo que: f(x*) =

1 2 13 11 1 f ( x * 2h ) f ( x * h 2 ) + f ( x * + h 2 ) f ( x * + 3h 2 ) h 105 12 10 28

1 3 (iv h f (x*) + ..... 192

De esta igualdad se infiere que la frmula buscada es:

1 2 13 11 1 f '(x*) f* ' = f ( x * 2h ) f ( x * h 2 ) + f ( x * + h 2 ) f ( x * + 3h 2 ) h 105 12 10 28


y que con ella, si fC4((x*-2h, x*+3h/2)), se comete un error dado por:

R f (x*) =

1 3 (iv h f () 192

para algn valor (x*-2h, x*+3h/2). Es decir un error de orden 3.

Obsrvese que si al sistema anterior se le aadiese la ecuacin procedente de obligar a que se anulase el coeficiente de f(x*) se tendra un sistema que slo admite la solucin trivial 0 = = 1 = 2 = 3 = 0.

42

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

6.2. Mtodo de coeficientes indeterminados. Este mtodo de determinacin de frmulas de derivacin de tipo interpolatorio

soportadas en (n+1) puntos se basa en que, segn el teorema 3.1. toda frmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}. Por tanto, si se busca una frmula con expresin: f '(x*) f '* = c i f(xi ) , su aplicacin a
i=0 n

cada uno de los (n+1) monomios x (0 < k < n) nos conduce a que:

c
i=0 n i=0

=0
i k i

c x
es decir al sistema:

= k( x * )

(k 1)

(k = 1, ..., n)

1 1 1 x x x 1 2 0 2 2 2 x 0 x1 x 2 ... ... ... n xn x1 xn 2 0

... ... ... ... ...

1 c 0 0 c 1 xn 1 2x * 2 xn c 2 = ... ... ... (n 1) n xn c n n ( x * )

Si los (n+1) puntos del soporte son diferentes puede asegurarse que el sistema anterior es compatible determinado. Su resolucin proporciona los pesos de la frmula de derivacin buscada. Siendo h un valor estrictamente positivo en funcin del cual se puedan escribir, para valores convenientes de i (i = 0, ...,n), los puntos del soporte en la forma xi = x* + ih , el sistema anterior puede simplificarse si en lugar de aplicar la frmula a los monomios {1, x, ..., xn} se aplica a los polinomios: { 1, (x-x*), (x-x*)2, ...., (x-x*)n} En efecto, la aplicacin de la frmula a f(x) = 1 conduce a que:

c
i=0

=0

Si n > 0, su aplicacin a f(x) = (x x*) proporciona la ecuacin:

c h = 1 c
i=0 i i i= 0

i i

1 h

43

Programacin y Mtodos Numricos

Derivacin Numrica

Y si n > 1 , para valores del exponente menores o iguales que n se tiene que: k ( x * x * )
(k 1)

= c i ik hk c i ik = 0
i= 0 i=0

En resumen, los coeficientes de la frmula de tipo interpolatorio se obtienen resolviendo el sistema:


1 1 1 2 0 1 2 2 0 1 2 2 ... ... ... n n 1 n 2 0 ... 1 c 0 0 ... n c1 1h 2 ... n c 2 = 0 ... ... ... ... ... n c n 0 n

Una vez determinada la frmula, su error puede tambin ser calculado si se busca en la forma Rf(x*) = Kh(m-1)f(m() aplicndolo al primer binomio (x-x*)m (cuya derivada m-sima es una constante no nula) para el que la frmula deja de ser exacta (hecho que tendr lugar para m > n). Ilustremos esta forma de proceder obteniendo nuevamente la frmula de derivacin numrica hallada en el subapartado anterior mediante combinaciones de desarrollos en serie de Taylor.
Ejemplo: Determinemos la frmula de derivacin numrica de tipo interpolatorio que

permite calcular el valor aproximado de f(x*) usando un soporte de la forma: {x0 = x* - 2h, x1 = x* - ()h, x2 = x* + ()h, x3 = x* + (3/2)h} donde h es un valor real estrictamente positivo.

Segn se ha visto anteriormente, los coeficientes de la frmula se pueden obtener resolviendo el sistema: 1 1 1 1 c 0 0 1 3 c 1 1 h 2 2 2 1 2 = 4 14 14 9 4 c 2 0 8 18 18 27 8 c 3 0 o, eliminando denominadores, el sistema equivalente:

44

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

1 1 4 1 16 1 64 1

1 c 0 0 1 3 c1 2 h = 1 9 c 2 0 1 27 c 3 0 1

La solucin del sistema anterior nos proporciona los valores:

c0 =

2 13 11 1 ,c1 = ,c 2 = ,c 4 = 105h 12h 10h 28h

Para determinar el error de la frmula consideraremos la funcin f(x) = (x-x*)4. La primera derivada de dicha funcin en x* es: f(x*) = 4.(x*-x*)3 = 0 siendo el valor aproximado dado por la frmula: f*' = 1 2 13 1 4 11 1 4 1 3 4 1 3 4 105 ( 2h) 12 ( 2 h) + 10 ( 2 h ) 28 ( 2 h ) = 8 h h
' *

h3 1 por lo que R( x x*)4 (x*) = f '(x*) f = 0 = h3 . Si se busca el error en la 8 8 forma: R f (x*) = Kh3 f (iv (x*) para la funcin considerada (cuya cuarta derivada es: f(iv(x*) = 24) se tiene que: K = -1/192 En resumen la frmula buscada es: f*' = 1 2 13 11 1 3 1 1 105 f(x * 2h) 12 f(x * 2 h) + 10 f ( x * + 2 h ) 28 f ( x * + 2 h ) h

y el error de derivacin numrica est dado por: R f (x*) =


1 3 (iv h f () 192

45

Programacin y Mtodos Numricos

Derivacin Numrica

Ejercicio propuesto:

a) Siendo h un parmetro estrictamente positivo, determinar la frmula de derivacin numrica que permite aproximar el valor de f(x*) sobre el soporte: x0 = x* +h, x1 = x* + 2h y x2 = x* + ( 5 2 ) h . Suponiendo que f(x) es suficientemente regular en el intervalo [x*, x2], determnese tambin la expresin de su error e indquese la regularidad que se le debe exigir a f(x) para que dicha expresin sea vlida. Obtngase la frmula pedida y su error: i) Derivando el correspondiente polinomio interpolador de Lagrange, ii) Combinando desarrollos en serie de Taylor, y iii) Mediante el mtodo de coeficientes indeterminados. b) Aplquese la frmula obtenida en el apartado anterior a la obtencin de un valor aproximado de la primera derivada de la funcin f(x) = ecos(x) con los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 = 0.0001 y h4 = 0.00001. Realcense los clculos en coma flotante usando mantisas con 5 decimales significativos. c) Obtngase una cota del error de derivacin numrica vlida en el intervalo [x*, x2] para la funcin considerada en el apartado anterior. El error realmente cometido es en todos los casos inferior a la cota hallada? Si no lo fuese justifquese el motivo.

46

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

7. Frmulas de derivacin numrica de tipo interpolatorio para la aproximacin de derivadas de orden superior.

Los mtodos de obtencin de frmulas numricas para aproximar primeras derivadas pueden extenderse fcilmente para deducir frmulas de derivacin numrica que permitan aproximar derivadas de orden superior al primero. Destinaremos este apartado a describir este proceso con detalle. Sea f(x) una funcin k veces derivable en un cierto intervalo I de la recta real y sea x* un punto de dicho intervalo. Consideremos adems un soporte de (n+1) puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores de la funcin f(x). Por simplicidad supondremos que los puntos del soporte son todos ellos distintos y estn ordenados de menor a mayor es decir que: x0 < x1 < ... < xn.
Definicin 7.1. Siendo f(x) una funcin de la que se conocen sus valores en el soporte de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina frmula de derivacin numrica para aproximar el valor de la k-sima derivada f(k(x) en el punto x* sobre el soporte de puntos considerado, a toda

expresin de la forma: f(k(x*) f*(k = c0.f(x0) + c1.f(x1)+ . + cn.f(xn) =

c .f(x )
i=0 i i

donde c0, c1, , cn son (n+1) escalares denominados coeficientes (o pesos) de la frmula de derivacin.
NOTA: La frmula de derivacin que se acaba de definir puede decirse que es una

frmula lagrangiana pues en ella slo intervienen valores de la funcin f en los puntos del soporte. Podran considerarse frmulas ms generales, hermitianas, en las que el valor de f(k(x*) fuese aproximado a partir del valor de la funcin f y de algunas de sus derivadas en los puntos del soporte. No obstante, estas ltimas frmulas tienen un uso mucho ms espordico que las de tipo lagrangiano y es por ello que nos limitaremos a considerar como frmulas de derivacin numrica tan slo a las que hacen intervenir los valores de la funcin en los puntos del soporte.

47

Programacin y Mtodos Numricos

Derivacin Numrica

En general el valor aproximado f*(k y el valor exacto f(k(x*) diferirn, cometindose un error en la aproximacin de f(k (x*). Es por ello que junto a la definicin anterior conviene precisar la definicin del error que con la frmula se comete. En este sentido se introduce la siguiente definicin:
Definicin 7.2. Siendo f*(k la aproximacin de f(k(x*) que se obtiene operando sin error

de redondeo segn la frmula de derivacin numrica: f(k(x*) f*(k =

c .f(x )
i=0 i i

se denomina error de truncamiento de la frmula en el punto x* al valor Rf(x*) = f (k(x*) - f*(k

Obviamente se verificar que: f (k (x*) = f*(k + R f (x*) por lo que considerando la frmula en cuestin aplicada a todos los puntos x de un dominio dado puede definirse la funcin error de truncamiento de la frmula derivacin numrica para la funcin f considerada como la funcin: R Rf : I Rf(x) x En el anlisis del error de truncamiento de las frmulas de derivacin numrica se perseguir encontrar cotas del valor de esta funcin de error Rf(x) en el intervalo I sobre el que se trabaje.

Ejemplo: Siendo {x0 , x1 , x2 } un soporte formado por tres puntos tales que x0 = x1 h y x2 = x1 + h, considerando que x* = x1, la sustitucin de la expresin de f(x1)

por:

f "(x1 ) f1" = 2f [ x 0 ,x1,x 2 ] =

f(x 2 ) 2f(x1 ) + f(x 0 ) h2

conduce a una frmula en la que sus coeficientes son c0 = (1/h2) , c1 = (-2/h2) y c2 = (1/h2). Una forma de acotar el error de truncamiento de esta frmula, si se supone que f(x) es al menos de clase C3([x0, x1]) consiste en considerar los desarrollos en serie de Taylor siguientes:

48

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

f(x0) = f(x*-h) = f(x*) - h.f(x*) + h2 h3 h4 + .f "( x*) .f "'( x*) + .f ( iv ( x * +0 .h ) 2 3! 4! f(x2) = f(x*+h) = f(x*) + h.f x*) + h2 h3 h4 .f "( x*) + .f '''( x*) + .f ( iv ( x * +1 .h ) + 2 3! 4! de donde: f ( x2 ) + f ( x0 ) = 2f ( x*) + h2 f "( x*) +

0 ( 1,0)

1 (0,1)

h4 ( iv ( f ( x * +0 h ) + f ( iv ( x * +1 h )) 24

f ( x * +h ) 2f ( x*) + f ( x * h ) h2 ( iv f* " = = f "( x*) + ( f ( x * +0 h ) + f ( iv ( x * +1 h ) ) 2 h 24 Por tanto: Rf ( x0 ) = f "( x0 ) f0 " = h2 ( iv ( f ( x * +0 h ) + f ( iv ( x * +1 h ) ) 24

expresin que puede acotarse por:


Rf ( x0 ) = f "( x0 ) f0 " h2 . Sup {f ( iv ( x )} 12 x( x0 ,x1 )

Para el caso particular de la funcin f(x) = x4 en que f(x*) = 12(x*)2 se tiene que:

f* " =

(x * +h)4 2(x*)4 + (x * +h)4 = 12(x*)2+ 2h2 h2

por lo que el error de truncatura cometido es en este caso Rf(x0) = -2h2. Obsrvese que la acotacin antes realizada conducira (para esta funcin x4) a la acotacin |Rf(x0)| 2h2 coincidente con el valor absoluto del error de truncatura realmente cometido10.

10

No siempre las acotaciones del error de truncatura que se obtendrn sern tan finas como la que se acaba de describir.

49

Programacin y Mtodos Numricos

Derivacin Numrica

Definicin 7.3. Se dice que la frmula de derivacin numrica:

f (k (x*) f*(k = c i .f(xi )


i=0

es exacta de orden m para la familia de funciones de clase Ck([x0 , xn]):

{0 (x), 1(x),..., m (x),....}


cuando es nulo el error de truncatura cometido al aplicar la frmula para la estimacin de la k-sima derivada de cualquiera de las (m+1) primeras funciones de la familia en cualquier punto x* perteneciente al intervalo R j ( x ) = 0 x [ x0 ,xn ], ( j = 0,...,m ) [x0 , xn]:

Propiedad 7.1.

Si la frmula de derivacin numrica f (k (x*) f*(k = c i .f(xi ) es exacta de orden m para la familia de funciones {0 (x), 1(x),..., m (x),....} entonces es exacta para cualquier combinacin lineal de las (m+1) primeras funciones de la familia
Demostracin: Si la frmula es exacta de orden m para la familia de funciones consideradas
i=0

se podr escribir que:


(k (x*) = c i . j (xi ) j
i=0 n

x* [ x 0 ,xn ] (j = 0, ..., m)

Por otra parte, una funcin cualquiera que sea combinacin lineal de las (m+1) primeras funciones de la familia ser de la forma:
f(x) = 0 0 (x) + 1 1(x) + ..... + m m (x) = j j (x)
j=0 m

por lo que su k-sima derivada en cualquier punto x* del intervalo [x0, xn]se puede expresar como:
m m m n n n f (k (x*) = j (k (x*) = j c i j (x i ) = c i j j (xi ) = c i f(xi ) j j=0 j=0 i=0 i= 0 j= 0 i=0

50

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

y puesto que la aplicacin de la frmula de derivacin numrica a la funcin f(x) en cualquier punto x* conduce a que: fx(k = c i .f(xi )
i=0 n

puede concluirse que:


R f (x) = 0

x [ x 0 ,xn ]

Esto demuestra que la frmula es exacta para cualquier funcin f(x) que sea combinacin lineal de las (m+1) primeras funciones de la familia de funciones considerada. c.q.d. Las frmulas de derivacin numrica ms utilizadas en la prctica son exactas, de algn orden m, para la familia de funciones formada por los monomios, es decir: {1, x, x2, ...,xm, ....}. En este tema nos referiremos en exclusiva a esta familia de funciones y por ello cuando digamos que una frmula es de orden de exactitud m se sobreentender que es de orden de exactitud m para la familia de los monomios, es decir que permite estimar sin error alguno la k-sima derivada de cualquier funcin polinmica de grado menor o igual que m.
Ejemplo: La frmula que se ha utilizado en el ejemplo anterior

f "( x*) f*" =

f ( x * +h ) 2f ( x*) + f ( x * h ) h2

es una frmula exacta de orden 3. En efecto, para la funcin p(x) = 1 se verifica que: 1 21 + 1 p* " = = 0 = p"( x*) x * h2 Asimismo para la funcin p(x) = x se tiene que: p* " = ( x * + h ) 2( x*) + ( x * h ) = 0 = p"( x*) h2
x *

Tambin para la la funcin p(x) = x2 se tiene que: p* " = ( x * + h )2 2( x*)2 + ( x * h )2 = 2 = p"( x*) h2
x *

51

Programacin y Mtodos Numricos

Derivacin Numrica

Y para la funcin p(x) = x3 se verifica que: px " = ( x * + h )3 2( x*)3 + ( x * h )3 = 6x* = p"( x ) h2


x*

Pero para la funcin q(x) = x4 se tiene que: ( x * +h )4 2( x*)4 + ( x * h )4 qx " = = 12( x*)2 + 2h2 = q"( x*) + 2h2 2 h
x*

por lo que slo se puede afirmar que el error de la frmula es nulo para los monomios {1, x, x2, x3}. En consecuencia, como se seal anteriormente, la frmula es de orden de exactitud 3.

Entre las frmulas de derivacin numrica para aproximar las derivadas de orden k de una funcin f(x), las ms frecuentemente utilizadas son aquellas que se pueden obtener derivando k veces el polinomio interpolador de la funcin f(x). A tales frmulas se las denomina frmulas de tipo interpolatorio.
Definicin 7.4. Se denomina frmula de derivacin numrica de tipo interpolatorio (de Lagrange) para aproximar derivadas de orden k a cualquier

frmula obtenida derivando una vez la expresin del polinomio interpolador de Lagrange construido sobre un soporte de (n+1) puntos distintos.
NOTAS: 1) Obsrvese que en la definicin anterior se ha escrito entre parntesis de

Lagrange. En efecto podra pensarse en derivar tambin la expresin del polinomio interpolador de Hermite obtenindose otros tipos de frmulas de derivacin de tipo interpolatorio. Puesto que nosotros slo nos vamos a referir a las frmulas que se obtienen al derivar la expresin del polinomio interpolador de Lagrange omitiremos en lo sucesivo la coletilla de Lagrange y simplemente diremos frmula de derivacin numrica de tipo interpolatorio. 2) Si el orden de derivacin k fuese superior o igual al nmero de puntos (n+1) las frmulas de tipo interpolatorio correspondientes se reduciran a f(k(x*) = 0, pues la derivada de orden k de un polinomio de grado menor o igual que n, si n es inferior a k, es nula. Por dicho motivo, en todo cuanto sigue, se supondr que n > k.
52

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Una frmula de derivacin numrica de tipo interpolatorio puede obtenerse a partir de cualquiera de las expresiones del polinomio interpolador. Recordando la expresin del polinomio interpolador en funcin de los polinomios de base de Lagrange puede deducirse la expresin de los pesos que intervienen en dicha frmula. En efecto:
Teorema 7.1. Una condicin necesaria y suficiente para que la frmula de derivacin
(k numrica fx* = c i .f(xi ) sea de tipo interpolatorio es que sus coeficientes i=0 n

satisfagan las igualdades: ci = L(i k ( x*) (i = 0, 1, ..., n)

donde se ha denotado por Li(x) a los (n+1) polinomios de base de Lagrange11 sobre el soporte {x0, x1, ..., xn}.
Demostracin: a) Demostremos que en toda frmula de tipo interpolatorio sus coeficientes

satisfacen las igualdades recogiodas en el enunciado. En efecto, la expresin detallada del polinomio interpolador de Lagrange pn(x) de una funcin f(x) sobre el soporte de (n+1) puntos {x0, x1, ..., xn} en funcin de los (n+1) polinomios de n base de Lagrange {Li (x)}i=0 es: f(x) pn (x) = f(xi ) Li (x)
i= 0 n

de donde, en cualquier punto x* se puede considerar la aproximacin: f (k (x*) p(k (x*) = L(k (x*) f(xi ) n i
i=0 n

Esta frmula es una frmula de derivacin numrica en la que sus coeficientes estn dados por la expresin: c i = L(k (x*) i
n Recurdese que: Li (x) = (x x j ) j=0 ji n (x x ) j i j=0 ji

11

(i = 0, 1, ..., n)

53

Programacin y Mtodos Numricos

Derivacin Numrica

b) Demostremos que si la frmula de derivacin numrica satisface c i = L(k (x*) i (i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede expresar como: pn(x) =

f(x )L (x)
i=0 i i

se tiene que si se verifican las igualdades

consideradas para los coeficientes: f(x*) c i f(xi ) = (L (x*)f(x i ) ) = (Li (x*)f(xi ) )


n n n i= 0 i=0 (k i i=0 (k

n (k = Li (x*)f(xi ) = pn (x*) i=0

(k

lo que demuestra que el valor de la k-sima derivada en x* se aproxima con el valor de la k-sima derivada del polinomio interpolador en x*. c.q.d.

De la propiedad anterior se deduce fcilmente la siguiente:


Propiedad 7.2. En toda frmula
n i=0

de

derivacin

numrica

de

tipo

interpolatorio

(k fx* = c i .f(xi ) se verifica que:

c
i=1

=0

Demostracin: Puesto que segn las propiedades de los polinomios de base de Lagrange se

verifica que:

L (x) = 1
i=0 i

x , es obvio que:
(k

n n Li (x) = L(k (x) = 0 i i=0 i=0

En particular para el punto x* se tendr que:

L
i=0

(k i

(x*) = c i = 0
i= 0

c.q.d. Denotando por (x) a la funcin error de interpolacin cometido al aproximar una funcin f(x) por su polinomio interpolador de Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que:
54

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

f(x) = pn(x) + (x) por lo que:

x (x 0 ,xn )

f (k (x*) = p(k (x*) + (k (x*) n lo que nos conduce a poder expresar el error en el punto x* de la frmula de derivacin numrica mediante: R f (x*) = (k (x*) En el caso particular en que f(x) sea un polinomio de grado menor o igual que n se verificar que f(x) pn(x) y por tanto (x) = 0 x , de donde resulta que la frmula de derivacin numrica de tipo interpolatorio construida sobre un soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o igual que n. En resumen es exacta, al menos, de orden n. Este hecho nos permite incluir a las frmulas de derivacin numricas de tipo interpolatorio en el conjunto de frmulas de derivacin exactas de orden n. Pero an puede precisarse ms, puesto que adems toda frmula exacta de orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema.

Teorema 7.2. La condicin necesaria y suficiente para que una frmula de derivacin
(k numrica construida sobre un soporte de (n+1) puntos, fx* = c i .f(xi ) , i=0 n

sea exacta de orden n es que sea de tipo interpolatorio.


Demostracin:

a) Demostremos en primer lugar que la condicin recogida en el enunciado del teorema es suficiente, es decir que si la frmula construida sobre el soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de orden n. Para ello basta con recapitular los razonamientos anteriormente realizados. En efecto, si f(x) es una funcin polinmica de grado menor o igual que n su polinomio interpolador de Lagrange sobre el soporte de (n+1) puntos coincide con la funcin y por tanto: f(x) = pn(x)
55

Programacin y Mtodos Numricos

Derivacin Numrica

por lo que f(k(x) = p(k (x) n

x . En particular, al ser la frmula de

derivacin de tipo interpolatorio, para cualquier punto x* se tendr que:


(k f (k (x*) = p(k (x*) fx* n

Ello demuestra que la frmula es exacta sea cual sea el polinomio f(x) de grado menor o igual que n al que se aplique. En particular lo ser cuando se aplique los (n+1) primeros monomios {1, x, ..., xn} y por ello es exacta de grado n. b) Demostremos ahora que la condicin anterior tambin es necesaria, es decir que si la frmula construida sobre el soporte de (n+1) puntos es exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello partimos del hecho de que, al ser la frmula exacta de orden n, para cualquier funcin polinmica de grado menor o igual que n, p(x), se debe verificar que: p(k (x*) = c i .p(xi )
i= 0 n

Por otra parte, puesto que hemos considerado que p(x) es un polinomio de grado menor o igual que n, se verificar que el polinomio interpolador de p(x) en el soporte de (n+1) puntos coincidir con p(x) y por tanto p(x) se puede expresar como: p(x) = p(xi ).Li (x)
i= 0 n

de donde su k-sima derivada en el punto x* estar dada por: p(k (x*) = L(k (x*).p(xi ) i
i= 0 n

Identificando las dos expresiones de la primera derivada de p(x) en x* se tiene que:

ci.p(xi ) = L(k (x*).p(xi ) i


i=0 i= 0

Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea de grado menor o igual que n. Por tanto deber verificarse tambin en el caso de que consideremos como p(x) cualquiera de los (n+1) polinomios

56

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid
n

de base de Lagrange construidos sobre el soporte {xi }i=0 . Recordemos adems que los polinomios de base de Lagrange verifican:
0 si i j Li (x j ) = 1 si i=j

Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene que:

ci.L0 (xi ) = L(k (x*).L0 (xi ) c 0 = L(k (x*) i 0


i=0 i=0

Al hacerlo para el polinomio L1(x) resultar que:

ci.L1(xi ) = L(k (x*).L1(xi ) c1 = L(k (x*) i 1


i=0 i= 0

Y en general al particularizar para cualquier polinomio de base Lj(x) obtendremos que:

c .L (x ) = L
i=0 i j i i=0

(k i

(x*).L j (xi ) c j = L(k (x*) j c.q.d.

Ejemplos: 1. Sobre un soporte de tres puntos {x0, x1, x2} el polinomio interpolador de

Lagrange de una funcin f(x) puede expresarse como:


p2 (x) = f(x 0 ) + f [ x 0 ,x1 ](x x 0 ) + f [ x 0 ,x1,x 2 ](x x 0 )(x x1 )

por lo que la frmula de derivacin numrica que aproxima derivadas segundas sobre este soporte es: f "(x*) f " x* = p"2 (x) = 2f [ x 0 ,x1,x 2 ] 2. Sobre un soporte de cuatro puntos {x0, x1, x2, x3} el polinomio interpolador de Lagrange de una funcin f(x) puede expresarse como:
p3 ( x ) = f ( x0 ) + f [ x0 , x1 ]( x x0 ) + f [ x0 , x1, x2 ]( x x0 )( x x1 ) +

+f [ x0 , x1, x2 , x3 ]( x x0 )( x x1 )( x x2 )

57

Programacin y Mtodos Numricos

Derivacin Numrica

por lo que la frmula que aproxima f(x) es:


'' f "( x*) fx* = p" 3 ( x*) = 2f [ x0 ,x1 ,x2 ] + 2f [ x0 , x1, x2 , x3 ](3x * x0 x1 x2 )

y para la aproximacin de la tercera derivada:


''' f '''( x*) fx* = p''' 3 ( x*) = 6f [ x0 ,x1 ,x2 ,x3 ]

Propiedad 7.3 En toda frmula


n i=0

de

derivacin

numrica

de

tipo

interpolatorio

(k fx* = c i .f(xi ) , construida sobre un soporte de (n+1) puntos con n > k, se

verifica que: 0 ci xi = j ! ( x*)( j k ) i =1 ( j k )!


n j

si j < k si k j n (j = 1, ...n)

Demostracin: La demostracin de esta propiedad se deja como ejercicio propuesto al lector y consiste simplemente en comparar el valor (exacto) proporcionado por la frmula de derivacin al ser aplicada a la funcin f(x) = xj (j = 0, ..., n) con el valor de f(k(x*) . c.q.d.

En cuanto al error de las frmulas de derivacin que permiten aproximar derivadas de orden mayor que 1 puede realizarse un anlisis similar al descrito anteriormente para las frmulas que aproximaban la primera derivada. Dejamos al lector interesado la tarea de adaptar las propiedades y teoremas desarrollados en el apartado 4 a este tipo de frmulas. Nosotros nos centraremos en la descripcin del proceso que permite obtener frmulas de derivacin de tipo interpolatorio, junto a la expresin de su error, combinando desarrollos en serie de Taylor para funciones que tengan la suficiente regularidad. Para ello siendo n > k consideremos el soporte de (n+1) puntos {x0 < x1 <... < xn} y siendo x* el punto en el que se desea aproximar f(k(x) denotemos por hi al

58

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

valor: hi = hi = xi x* (i = 0, .., n). Suponiendo que f(x) es sufiecientemente regular pueden considerarse los desarrollos en serie de Taylor: hi2 h3 hk f "(x*) + i f '''(x*) + .... + i f (k (x*) + .... 2! 3! k!
n

f(xi) = f(x*+hi) = f(x*) + hif(x*) + Por lo que:


f(x ) = f(x*) + h f '(x*) + 2! h


i=0 i i i= 0 i i= 0 i i i= 0 i

2 i

f "(x*) +

1 n 1 n i hi3 f '''(x*) + .... + i hik f (k (x*) + ... 3! i=0 k! i=0

(1)

Si se desea que la frmula de derivacin sea del mayor orden posible debe buscarse que, salvo el coeficiente de f(k(x*), se anulen el mayor nmero de los primeros sumandos del desarrollo anterior. Esto es, que:

h
i=0 i

j i

=0

(j = 0, 1,...,(k-1), (k+1), ...n)

En general el nmero de ecuaciones que as se pueden formar es de n ecuaciones, obtenindose un sistema con (n+1) incgnitas (0, ..., n) y tan slo n ecuaciones. Ello es debido a que con el coeficiente de f(k(x*) se debe aadir la inecuacin

h
i=0 i

k i

0.

Por ello los coeficientes (0, ..., n) que se determinen mediante la resolucin del sistema:

i=0 n i=0

=0
i

h
i

=0

........

h
i=0 n i

(k 1) i (k +1) i

=0 =0

h
i=0 i

........

h
i=0 i

n i

=0

quedarn expresados en funcin del valor que libremente se le asigne a uno de ellos.

59

Programacin y Mtodos Numricos

Derivacin Numrica

En todo caso, una vez calculados estos coeficientes, denotando por = i hi


i= 0

se tendr que los coeficientes de la frmula de derivacin se obtienen mediante: ci = i / (i = 0, ..., n) y que del primer trmino que no se haya podido anular en la expresin (1) se podr inferir fcilmente la expresin del error de derivacin. Ilustremos estos extremos con un ejemplo.
Ejemplo: Determinemos la frmula de derivacin numrica del mayor orden de exactitud

posible que permite calcular el valor aproximado de f(x*) usando un soporte de la forma: {x0 = x* - 2h, x1 = x* - h, x2 = x*, x3 = x* +h, x4 = x* + 2h} donde h es un valor real estrictamente positivo.

Para ello, si suponemos que f(x) es suficientemente regular en (x*-2h, x*+2h) podemos considerar los desarrollos en serie de Taylor: 4h2 8h3 16h4 (iv f "(x*) f '''(x*) + f (x*) 2 6 24 32h5 (v 64h6 (vi 128h7 (vii f (x*) + f (x*) f (x*)... 120 720 5040 h2 h3 h4 (iv f "(x*) f '''(x*) + f (x*) 2 6 24 h5 (v h6 (vi h7 (vii f (x*) + f (x*) f (x*)... 120 720 5040

f(x*- 2h) =f(x*) 2hf(x*) +

f(x*-h) =f(x*) - hf(x*) +

f(x*) = f(x*)

f(x*+ h) =f(x*) + hf(x*) +

h2 h3 h4 (iv f "(x*) + f '''(x*) + f (x*) + 2 6 24 h5 (v h6 (vi h7 (vii f (x*) + f (x*) + f (x*) + ... + 120 720 5040 4h2 8h3 16h4 (iv f "(x*) + f '''(x*) + f (x*) + 2 6 24 32h5 (v 64h6 (vi 128h7 (vii f (x*) + f (x*) + f (x*)... + 120 720 5040

f(x*+2h) =f(x*) +2hf(x*) +

60

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

de donde:
0 f(x * 2h) + 1f(x * h) + 2 f(x*) + 3 f(x * +h) + 4 f(x * +2h) =
= ( 0 + 1 + 2 + 3 + 4 )f(x*) + + ( 2 0 1 + 3 + 2 4 )hf '(x*) +

+ ( 4 0 + 1 + 3 + 4 4 )

h2 f "(x*) + 2 h3 f '''(x*) + 6 h4 (iv f (x*) + 24

+ ( 8. 0 1 + 3 + 8 4 )

+ (16. 0 + 1 + 3 + 16 4 )

h5 (v f (x*) + .... + ( 32. 0 1 + 3 + 32 4 ) 120


Si se desea construir una frmula que con el soporte anterior aproxime el valor de f(x*) y que tenga el mayor orden de exactitud posible se obligar a que:
0 + 1 + 2 + 3 + 4 = 0 2 0 1 + 3 + 2 4 = 0 4.0 + 1 + 3 + 4 4 = 0 16. 0 + 1 + 3 + 16 4 = 0

(Coeficiente en h0 y f(x*)) (Coeficiente en h y f(x*)) (Coeficiente en h2 y f(x*)) (Coeficiente en h4 y f(iv (x*))

de donde12, dejando como incgnita libre 3, se tiene:


0 = 4 , 1 = 2 4 , 2 = 0 , 3 = 2 4 , 4 R

Cualquier eleccin no nula de 4 nos conducir a la frmula buscada. Obsrvese que se descarta la opcin 4 = 0 ya que ello anulara el coeficiente de f(x) con lo que no lo podramos despejar del desarrollo resultante. Si se asigna a 4 el valor 4 = 1 se tiene que:
Obsrvese que si al sistema anterior se le aadiese la ecuacin procedente de obligar a que se anulase el coeficiente de f(v(x*) se tendra un sistema que slo admite la solucin trivial 0 = = 1 = 2 = 3 = 4 = 0.
12

61

Programacin y Mtodos Numricos

Derivacin Numrica

0 = 1,

1 = 2 ,

2 = 0 ,

3 = 2 , 4 = 1

Para estos valores de los coeficientes i, se tiene entonces que la combinacin de desarrollo en serie de Taylor antes obtenida se convierte en:

f(x * 2h) + 2f(x * h) f(x * +h) + 2f(x * +2h) = = 12

h3 h5 (v f '''(x*) + 60 f (x*) + .... 6 120

de donde:

f(x*) =

1 1 1 1 f x * 2h ) + 3 f ( x * h ) 3 f ( x * +h ) + f ( x * +2h ) 3 ( 2h h h 2h3 1 h2 f (v (x*) + ..... 4

De esta igualdad se infiere que la frmula buscada es:

f '''(x*) f* ''' =

1 1 1 1 f x * 2h ) + 3 f ( x * h ) 3 f ( x * +h ) + f ( x * +2h ) 3 ( 2h h h 2h3

y que con ella, si fC5((x*-2h, x*+2h)), se comete un error dado por:

1 R f (x*) = h2 f (v () 4
para algn valor (x*-2h, x*+2h). Es decir un error de orden 0(h2).13

No debe confundirse el orden de exactitud de una frmula de derivacin numrica con el orden del error de dicha frmula. Mientras que el primero seala el mximo grado de los polinomios que pueden derivarse sin error con dicha frmula, el segundo seala la potencia menor a la que aparece elevado el parmetro h en la expresin del error.

13

62

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

7.1. Obtencin de frmulas de derivacin de tipo interpolatorio mediante el mtodo de los coeficientes indeterminados.

Un mtodo alternativo para la determinacin de frmulas de derivacin de tipo interpolatorio soportadas en (n+1) puntos se basa en que, segn el teorema 7.2. toda frmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}. Por tanto, si se busca una frmula cuya expresin sea: f (k (x*) f*(k = c i f(xi ) ,
i=0 n

su aplicacin a los binomios (x-x*) (0 < j < n) nos conduce a un sistema de ecuaciones cuya solucin nos proporciona los pesos de la frmula. De forma ms concreta, siendo h un valor estrictamente positivo en funcin del cual se puedan escribir, para valores convenientes de i (i = 0, ...,n), los puntos del soporte en la forma xi = x* + ih , la aplicacin de la frmula a los binomios f(x) = (x-x*)j (j = 0, ..., n) conduce a que, si k < n:

c
i=0

j i i

0 = j j!/ h

si j k si j = k

En resumen, los coeficientes de la frmula de tipo interpolatorio se obtienen resolviendo el sistema:


1 1 1 1 2 0 2 2 2 0 1 2 ... ... ... (k 1) (k 1) 0 1 (k 1) 2 k k k 1 2 0 (k +1) (k +1) 1 (k +1) 2 0 ... ... ... n n 1 n 0 2 ... 1 ... ... ... ... ... ... ... ... 0 0 n 2 n c 0 0 ... c1 ... (k n 1) c 2 = 0 k n ... k ! hk (k n +1) c n 0 ... ... n n 0

Una vez determinada la frmula, su error puede tambin ser calculado si se busca en la forma Rf(x*) = Kh(m-k)f(m() aplicndolo al primer binomio (x-x*)m (cuya derivada m-sima es m!) para el que la frmula deja de ser exacta (hecho que tendr lugar para m > n).

63

Programacin y Mtodos Numricos

Derivacin Numrica

Ilustremos esta forma de proceder obteniendo nuevamente la frmula de derivacin numrica hallada en el subapartado anterior mediante combinaciones de desarrollos en serie de Taylor.
Ejemplo: Determinemos la frmula de derivacin numrica del mayor orden de exactitud

posible que permite calcular el valor aproximado de f(x*) usando un soporte de la forma: {x0 = x* - 2h, x1 = x* - h, x2 = x*, x3 = x* +h, x4 = x* + 2h} donde h es un valor real estrictamente positivo. Segn se ha visto anteriormente, los coeficientes de la frmula, soportada por 4 puntos, se pueden obtener resolviendo el sistema obtenido al aplicar la frmula a los cuatro binomios {1, (x-x*), (x-x*)2, (x-x*)3} . Tal sistema es:
1 1 2 1 4 1 8 1 1 1 c0 0 1 2 c1 0 = 1 4 c2 0 1 8 c3 6 / h3

cuya solucin nos proporciona los valores: c0 =


1 1 1 1 , c1 = 3 , c2 = 3 , c4 = 3 2h 2h3 h h

Para determinar el error de la frmula consideraremos la funcin f(x) = (x-x*)4. La tercera derivada de dicha funcin en x* es: f(x*) = 432.(x*-x*) = 0 siendo el valor aproximado dado por la frmula: f*''' =

1 1 1 4 4 ( 2h )4 + ( h )4 ( h ) + ( 2h ) = 0 3 2 h 2

lo que nos indica que la frmula es tambin exacta para los polinomios de orden 4. Incrementemos una unidad el grado del binomio y apliqumosla a f(x) =(x x*)5. El valor exacto de la tercera derivada de este binomio es: f(x*) = 543.(x*-x*) = 0
64

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

siendo ahora el valor aproximado: f*''' =

1 1 1 5 5 ( 2h )5 + ( h )5 ( h ) + ( 2h ) = 30h 2 3 2 h 2

por lo que el error de derivacin est dado, para esta funcin por: R( x x *)5 ( x *) = 0 30h 2 = 30h 2 Si buscamos la expresin genrica del error en la forma: Rf ( x *) = K h 2 f (v ( ) es fcil verificar, aplicndolo a (x-x*)5, que:
30h 2 = K h 2 5! K = 1 2 (v h f ( x *) 4 30 1 = 5! 4

por lo que en general: Rf ( x *) =

En resumen la frmula buscada es: f*''' =

1 ( f ( x * 2h) + 2f ( x * h) 2f ( x * +h ) + f ( x * +2h ) ) 2h3

y el error de derivacin numrica, si f C 5 ([ x * 2h, x * +2h ]) est dado por: Rf ( x *) =


1 2 (v h f ( ) 4

es decir un error de orden 2.

65

Programacin y Mtodos Numricos

Derivacin Numrica

Ejercicio propuesto:

d) Siendo h un parmetro estrictamente positivo, determinar la frmula de derivacin numrica que permite aproximar el valor de f(x*) sobre el soporte: x0 = x* -h, x1 = x*, x2 = x* + 2h y x3 = x* + ( 5 2 ) h . Suponiendo que f(x) es suficientemente regular en el intervalo [x0, x3], determnese tambin la expresin de su error e indquese la regularidad que se le debe exigir a f(x) para que dicha expresin sea vlida. Obtngase la frmula pedida y su error: i) Derivando el correspondiente polinomio interpolador de Lagrange, ii) Combinando desarrollos en serie de Taylor, y iii) Mediante el mtodo de coeficientes indeterminados. e) Aplquese la frmula obtenida en el apartado anterior a la obtencin de un valor aproximado de la segunda derivada de la funcin f(x) = ecos(x) con los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 = 0.0001 y h4 = 0.00001. Realcense los clculos en coma flotante usando mantisas con 5 decimales significativos. f) Obtngase una cota del error de derivacin numrica vlida en el intervalo [x0, x2] para la funcin considerada en el apartado anterior. El error realmente cometido es en todos los casos inferior a la cota hallada? Si no lo fuese justifquese el motivo.

66

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

8. Mejora de la precisin de las frmulas de derivacin numrica. Mtodo de extrapolacin de Richardson. Como se present en apartados anteriores el error de las frmulas de

derivacin numrica (ya sea para aproximar la primera derivada o derivadas de orden superior) responde a expresiones en las que interviene hp donde p es un nmero no negativo y h es una longitud caracterstica del soporte (la distancia entre puntos consecutivos del soporte cuando este es equidistante, la distancia entre los puntos extremos del soporte, la mayor de las distancias del punto x* en el que se evala la derivada a los puntos del soporte, ....). Por ello, si se quiere mejorar la precisin de una frmula de derivacin numrica la primera idea que surge intuitivamente es la de reducir el valor de h (lo que generalmente se traduce en tomar puntos ms prximos entre s y ms cercanos al punto x*). En este sentido la forma habitual de proceder consiste en, siendo q un valor tal que 0 < q < 1, aplicar la frmula numrica para los valores h0 = h, h1 = qh, h2 = qh1 = q2h , ...., hj = qhj-1 = qjh, .... Se obtienen as diferentes valores V0, V1, ...., Vj, .... que aproximan la derivada en cuestin. Este proceso se finaliza cuando |Vj Vj-1| sea lo suficientemente pequeo (menor que un cierto predefinido de antemano).
Ejemplo: Si se utiliza la frmula:

1 1 f ( x * +h ) f ( x * +h ) 2h 2h para aproximar el valor de la primera derivada de la funcin f(x) = ex en el punto x* = 0 ( cuyo valor exacto es f(0) = 1) se obtendrn los siguientes valores para el valor aproximado de la derivada (calculados con el programa MAPLE 7 utilizando 20 dgitos), para diferentes valores de h: f '(x*) f* ' =
V0 = 1.042190610987.... h0 = 0.5, V1 = 1.010449267232.... h1 = 0.25, h2 = 0.125, V2 = 1.002606201928.... h3 = 0.0625, V3 = 1.000651168835.... h4 = 0.03125,V4 = 1.000162768364.... |Error|=0.0421906... |Error|=0.0104492... |Error|=0.0026062... |Error|=0.0006511... |Error|=0.0001627...

pudiendo observarse como el error se reduce de una aproximacin a la siguiente al reducir el paso a la mitad. Ntese que el error se reduce aproximadamente a la cuarta parte alreducir el paso a la mitad al ser el orden del error de la frmula empleada O(h2).

67

Programacin y Mtodos Numricos

Derivacin Numrica

La reduccin del paso h utilizado en una frmula que presente un error de orden p proporciona una sucesin de valores aproximados {V} j=0 que, si se admite que f(x) es suficientemente regular, converge hacia el valor exacto con una velocidad de convergencia de orden p, es decir que el error obtenido con un paso (qjh) es aproximadamente qp veces menor que el que se produce con paso (qj-1h). En este sentido, cuanto mayor sea el orden del error del mtodo ms rpida ser la convergencia hacia el valor exacto. Por ello esta reduccin del paso se suele combinar con la denominada tcnica de extrapolacin de Richardson14 que, en sntesis, genera a partir de la sucesin {V} j=0 otras sucesiones con mayor velocidad de convergencia hacia el valor exacto. Para describir este proceso, consideremos una frmula de derivacin numrica en la que el error sea de orden p y que pueda expresarse como:
n f (k (x*) = c i f(x i ) + f (m (x*)hp + f (m+1(x*)hp+1 + ... i=0

y denominemos Ve al valor exacto que se est aproximando, V0 al valor obtenido con el paso h y V1 al obtenido con paso qh (donde supondremos que q < 1). Se tendr que: Ve = V0 + f (m (x*)hp + f (m+1(x*)hp+1 + ... Ve = V1 + f (m (x*)qp hp + f (m+1(x*)qp+1hp +1 + ... Restando ambas igualdades se obtiene: V1 V0 = f (m (x*)(1 qp )hp + f (m+1(x*)(1 qp +1 )hp+1 + ...
f (m (x*)hp =

V1 V0 1 ( f (m+1(x*)(1 qp+1 )hp +1 + ...) p 1 q 1 qp

Sustituyendo esta expresin en la primera de las expresiones del valor exacto resulta que: 1 qp+1 p+1 V V Ve = V0 + 1 p0 + f (m+1(x*) 1 h + ... 1 q 1 qp
En honor al matemtico ingls Lewis Fry Richardson (1881 1953) que fue uno de los pioneros del clculo cientfico (y en concreto el primero en aplicar mtodos de diferencias finitas a la prediccin del tiempo).
14

68

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

lo que nos indica que el valor:


V1,1 = V0 + V1 V0 V1 qp V0 = 1 qp 1 qp

aproxima al valor exacto Ve con un error de orden (p+1). Anlogamente, si se considera el valor V1, obtenido con paso (qh) y el valor V2 obtenido con paso (q2h) se tiene que: Ve = V1 + f (m (x*)qp hp + f (m+1(x*)qp+1hp +1 + ... Ve = V2 + f (m (x*)q2p hp + f (m+1(x*)q2p+ 2 hp +1 + ... de donde un proceso anlogo al que se acaba de describir nos conduce a que:
Ve = V1 + 1 qp+1 V2 V1 (p +1) qh ) + f (m+1(x*) 1 + ... p p ( 1 q 1 q V2 V1 V2 qp V1 V1,2 = V1 + = 1 qp 1 qp

lo que nos indica que

aproxima el valor exacto con un error de orden (p+1). De manera ms general, si dado un valor del parmetro h se consideran las aproximaciones V0,j ( j = 0, 1, ...) obtenidas con un paso (qjh) usando una frmula de derivacin numrica que presente un error de orden p, pueden construirse los valores: V0,j qp V0,j1 (j = 1, 2, ...) V1,j = 1 qp verificndose, si f(x) es suficientemente regular, que:
Ve = V1,j + f
(m +1

1 qp +1 ( j1) (x*) 1 q h 1 qp

p +1

+ ...

1 qp+1 Denotando por b al valor b = 1 escribiremos la expresin anterior 1 qp

en la forma:

Ve = V1,j + bf (m+1(x*) q( j1)h

p +1

+ ...

69

Programacin y Mtodos Numricos

Derivacin Numrica

Segn lo anterior la sucesin de valores {V1,j } j=1 converge, cuando ha tiende hacia 0, hacia el valor exacto con un orden de convergencia (p+1) una unidad mayor que el orden de convergencia que presentaba la sucesin {V0 ,j } j=0 .

Sobre la propia sucesin {V1,j } j=1 puede entonces volverse a actuar. En efecto, como: Ve = V1,1 + bf (m+1(x*)hp +1 + O(hp+ 2 ) + ... y: Ve = V1,2 + bf (m+1(x*)( qh )
(p +1)

+ O(hp+ 2 ) + ...

se tiene que: 0 = V1,1 V1,2 + bf(m+1(x*)hp+1(1-qp+1) + O(hp+2) + ....


bf (m+1(x*)hp+1 =

V1,2 V11 + O(hp + 2 ) p +1 1 q

e introduciendo esta expresin en la primera de las que se han utilizado para obtenerla resulta que: V V1,1 V qp +1V1,1 Ve = V1,1 + 1,2 p+1 + O(hp+ 2 ) + ... = 1,2 + O(hp + 2 ) p +1 1 q 1 q De manera ms general, un razonamiento como el precedente muestra que si f(x) es suficientemente regular, la sucesin {V2,j } j=2 obtenida mediante:

V2,j =

V1,j qp+1V1,j1 1 qp+1

(j = 2, 3, ....)

converge hacia el valor exacto con un orden de convergencia (p+2). Estos nuevos valores {V2,j } j=2 pueden ser mejorados construyendo a partir de

ellos una sucesin {V3,j } j=3 que converja con orden (p+3) y as sucesivamente.

En general, si se parte de un mtodo que converge con velocidad de orden p, el mtodo de extrapolacin de Richardson consiste en: 1) Siendo 0 < q < 1 obtener las aproximaciones V0,j usando la frmula con un paso (qjh) (j = 0, 1, ...N). 2) Mejorar las aproximaciones calculando los k = 1, 2, ...., N, mediante la frmula de recurrencia: valores

{V }

k,j j=k

para

70

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

Vk,j =

Vk 1,j q(p +k 1) Vk 1,j1 1 q(p+k 1)

Cuanto mayores sean los valores de los subndices k y j ms precisas sern las aproximaciones obtenidas.
Ejemplo:

Ilustremos el mtodo de extrapolacin de Richardson calculando el valor de la primera derivada de la funcin f(x) = e la frmula:
x2 1+ x

sen( x) en el punto x*= 1 mediante

f(x * +h) f(x*) h que presenta un error de orden 1 (es decir O(h)). f '(x*) f* ' =
Para ello partiremos inicialmente del paso h = y posteriormente lo iremos reduciendo a la mitad diez veces. Con ello se obtienen los valores V0,j que figuran en la segunda columna de la tabla siguiente, siendo V0,j el valor obtenido para el paso hj =()(j+1). Las columnas 3, 4 y 5 de la tabla se corresponden con los valores V1,j , V2,j y V3,j respectivamente que proporciona la aplicacin del mtodo de extrapolacin de Richardson. Para poder apreciar mejor la evolucin del error, en la tabla siguiente se han recogido los valores de error cometido con cada una de las aproximaciones de esta tabla, es decir la diferencia entre valor exacto de f(1) y el valor aproximado que figura en cada fila y columna de la tabla, siendo el valor exacto:
f '(1) = e 2 cos( ) = 5.1796106318....
1

Los clculos se han realizado con el programa MAPLE 7 utilizando una precisin de 20 dgitos (aunque en la tabla se muestran redondeados a 5 decimales significativos).

71

Programacin y Mtodos Numricos

Derivacin Numrica

Aproximaciones
j (h = 2( j+1) ) 0 1 2 3 4 5 6 7 8 9 10 V0,j 4.91921 5.66420 5.55380 5.39593 5.29456 5.23872 5.20957 5.19469 5.18717 5.18340 5.18151 V1,j 6.40919 5.44340 5.23805 5.19320 5.18288 5.18041 5.17981 5.17966 5.17962 5.17961 V2,j V3,j

5.12148 5.16960 5.17825 5.17944 5.17959 5.17961 5.17961 5.17961 5.17961

5.17648 5.17948 5.17960 5.17961 5.17961 5.17961 5.17961 5.17961

Error de las aproximaciones


j (h = 2( j+1) ) 0 1 2 3 4 5 6 7 8 9 10 f '(1) V0,j f '(1) V1,j 0.260404 0.484587 1.22958 0.374191 0.263794 0.216317 0.058444 0.114954 0.013590 0.0591099 0.003266 0.0299549 0.000800 0.0150764 0.000198 0.0075628 0.000049 0.0037875 0.000012 0.0018953 0.000003 f '(1) V2,j f '(1) V3,j

0.0581335 0.0100063 0.0013613 0.0001752 0.0000222 0.0000028 0.0000003 4.36410 8 5.45810 9

0.003131 0.000126 5.72810 6 2.29210 7 1.62110 8 9.50210 10 5.74310 11 3.52910 12

La tabla de errores muestra cmo estos se reducen a, aproximadamente, la mitad ((1/2)1) al pasar de un valor al siguiente en la primera columna, la cuarta parte ((1/2)2) al pasar de un valor al siguiente en la segunda columna, la octava parte ((1/2)3) al pasar de un valor al siguiente en la tercera columna y la decimosexta parte ((1/2)4) al pasar de un valor al siguiente en la cuarta columna. Este hecho puede verse ms claramente en la figura siguiente en la

72

Derivacin Numrica .

Carlos Conde, Arturo Hidalgo, Alfredo Lpez ETSI Minas de la Universidad Politcnica de Madrid

que se representa la evolucin del logaritmo decimal del valor absoluto del error frente al logaritmo decimal del tamao de paso para las cuatro sucesiones de valores recogidos en la tabla anterior. log10(h)

Valores proporcionados por la frmula Valores corregidos aplicando el mtodo de Richardson una vez Valores corregidos aplicando el mtodo de Richardson dos veces Valores corregidos aplicando el mtodo de Richardson tres veces

log10(|f(1)-Vk,j|)

Puede comprobarse en la grfica como las pendientes (indicativas del orden de convergencia) de las curvas de error son ms pronunciadas cuanto ms se itera en la aplicacin del mtodo de extrapolacin de Richardson.

73

Programacin y Mtodos Numricos

Derivacin Numrica

BIBLIOGRAFA SOBRE EL TEMA

[1]. BURDEN, R. L. y FAIRES, J. D. (1.998). Anlisis numrico. (6 edicin). Ed. International Thomson editores. [2]. KINCAID, D. y CHENEY, W. (1.994). Anlisis numrico. Las matemticas del clculo cientfico. Ed. Addison-Wesley Iberoamericana. [3]. MICHAVILA, F. y CONDE, C. (1.988). Mtodos de Aproximacin. Ed. Depto. de Mat. Aplic. Y Mt. Informticos. Univ. Politcnica de Madrid. [4]. STOER, J. y BULIRSCH, R. (1.980). Introduction to numerical analysis. Ed. Springer Verlag. [5]. VIAO, J.M. y BURGUERA, M. (2000) Lecciones de mtodos numricos, 3: Interpolacin. Ed. Trculo edicions.

74

You might also like