ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE...

76
UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS DEPARTAMENTO DE MATEMÁTICA APLICADA Y MÉTODOS INFORMÁTICOS Asignatura: PROGRAMACIÓN Y MÉTODOS NUMÉRICOS Tema: DERIVACIÓN NUMÉRICA Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo López Prof. Alfredo López Benito Marzo, 2007

Transcript of ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE...

UNIVERSIDAD POLITÉCNICA DE MADRID

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS

DEPARTAMENTO DE MATEMÁTICA APLICADA Y

MÉTODOS INFORMÁTICOS

Asignatura: PROGRAMACIÓN Y MÉTODOS NUMÉRICOS

Tema: DERIVACIÓN NUMÉRICA

Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo López Prof. Alfredo López Benito

Marzo, 2007

Programación y Métodos Numéricos Derivación Numérica

ii

ÍNDICE Pág. 1. INTRODUCCIÓN Y MOTIVACIÓN. ………………………………… 1 2. FÓRMULAS DE DERIVACIÓN NUMÉRICA. ………..…………… 4 3. FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPO-

LATORIO PARA APROXIMAR LA PRIMERA DERIVADA DE UNA FUNCIÓN. ……………………………………………….. 10

4. EXPRESIONES DEL ERROR EN LAS FÓRMULAS DE DERIVA- CIÓN NUMÉRICA DE TIPO INTERPOLATORIO QUE APROXIMAN LA PRIMERA DERIVADA DE UNA FUNCIÓN .. 19 5. ALGUNAS FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPOLATORIO USUALES PARA APROXIMAR PRIME-

RAS DERIVADAS ……………………………………………….. 29 5.1. Fórmulas con dos puntos de soporte. ……………………. 29 5.1.1. Casos particulares. ………………………………. 31 5.2. Fórmulas con tres puntos de soporte. ……………………. 33 5.2.1. Casos particulares con soporte equidistante. . 36 6. OTROS MÉTODOS PARA LA OBTENCIÓN DE FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPOLATORIO. …. 39 6.1. Mediante la combinación de desarrollos en serie

de Taylor. ……………………………………..…………… 39 6.2. Método de coeficientes indeterminados. …………………. 43 7. FÓRMULAS DE DERIVACIÓN NUMÉRICA DE TIPO INTERPO- LATORIO PARA LA APROXIMACIÓN DE DERIVADAS DE ORDEN SUPERIOR. ……………………………………………. 47 7.1. Obtención de fórmulas de derivación de tipo interpolato- rio mediante el método de los coeficientes indetermi-

nados. ………………………………………………………. 63 8. MEJORA DE LA PRECISIÓN DE LAS FÓRMULAS DE DERIVA- CIÓN NUMÉRICA. MÉTODO DE EXTRAPOLACIÓN DE

RICHARDASON. …………………………………………………… 67

BIBLIOGRAFÍA SOBRE EL TEMA. …………………………………….. 74

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

1

1. Introducción y motivación De muchas funciones con las que se trabaja en la práctica no se conoce su expresión analítica y tan sólo se dispone de su valor en un conjunto de puntos (llamado soporte por analogía con la terminología utilizada en los temas de interpolación). No obstante, en ocasiones es necesario proceder al cálculo 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 expresión de la función). Surge así la conveniencia de diseñar métodos numéricos que permitan aproximar el valor de las derivadas de una función en algún punto a partir del conocimiento de los valores de la función en un soporte dado. Los métodos que están desarrollados con este fin muestran un buen comportamiento en numerosos casos. Es por ello que algunas veces, aun disponiendo de la expresión analítica de las funciones a derivar, se opta por aproximar los valores de las derivadas mediante fórmulas numéricas suficientemente precisas. Ejemplo de ello son el método de la secante o, más generalmente, los métodos de cuasi – Newton detallados en el estudio de métodos de resolución de sistemas de ecuaciones no lineales. Es más, muchas de las técnicas de derivación numérica que se abordarán en este tema están en la base de diferentes métodos utilizados para la resolución de ecuaciones diferenciales, es decir de ecuaciones en las que intervienen derivadas de funciones “incógnita”. Es el caso, por ejemplo, de los llamados métodos en diferencias finitas. La principal idea que subyace en las técnicas de derivación numérica está muy vinculada a la interpolación y se podría resumir en lo siguiente: Si de una función f(x) se conocen sus valores en un determinado soporte de puntos, puede “aproximarse” la función f(x) por otra función 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 aplicación sin mayores consideraciones puede conducir a errores no admisibles. Puesto que entre las distintas técnicas de interpolación existentes se han abordado en temas precedentes las técnicas de interpolación polinómica de Lagrange, nos centraremos aquí en las fórmulas obtenidas a partir de esta

Programación y Métodos Numéricos Derivación Numérica

2

forma de interpolar. No obstante conviene indicar que para otras técnicas de interpolación podrían diseñarse técnicas de derivación numérica de forma análoga a como se plantearán las recogidas en este tema. Una de las primeras fórmulas que nos permiten aproximar una derivada primera tiene sus raíces en los comienzos del cálculo diferencial en el siglo XVII. En ese entonces el concepto de límite no estaba desarrollado de forma explícita y la primera derivada de una función f(x) en el punto x* se consideraba como el valor del cociente incremental:

f(x * h) f(x*)Ah

+ −=

cuando h era “suficientemente pequeño”. Una vez que, en el siglo XIX, se formalizó el concepto de límite se pudo proceder a definir la primera derivada de una función f(x) en x* mediante la conocida expresión:

0

f(x * ) f(x*)f '(x*) limε→

+ε −⎛ ⎞= ⎜ ⎟ε⎝ ⎠

En este sentido resulta razonable esperar que el valor del cociente incremental A y el valor del límite usado en la determinación de f’(x*) se “parezcan” más cuanto menor sea el valor de h que se utilice en la determinación 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 pequeño. NOTA: Más adelante se detallará cómo el cociente incremental que acabamos de considerar también puede obtenerse a partir de las fórmulas del polinomio interpolador de una función. Con ello recuperaremos la idea que subyace en los métodos de derivación numérica. Ejemplos: 1º) La función f(x) = x2 tiene como función primera derivada f’(x) = 2.x por lo que f’(1) = 2. En el punto x*=1 el cociente incremental antes considerado toma la expresión:

2 2 2(1 h) 1 2.h hA 2 hh h

+ − += = = +

por lo que cuanto menor sea el valor de h considerado más parecido será el valor de A al valor de f’(1).

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

3

2º) No siempre es factible simplificar la expresión de los cocientes incrementales como se ha hecho en el ejemplo anterior. En efecto, si por ejemplo se considera la función f(x) = ex, es sabido que f’(x) = ex y que f’(0) = 1. El cociente incremental correspondiente a esta función en el punto x* = 0 resulta ser:

he 1Ah−

=

Para distintos valores de h pueden obtenerse ahora los valores de A que aproximan la primera derivada. Pero ahora, estos valores dependerán del procedimiento que se utilice para estimar eh , del número de decimales que se estén utilizando en los cálculos y de la técnica de aproximación (truncado o redondeo) de los valores intermedios obtenidos. Por ejemplo, si se utilizan cuatro dígitos significativos y se redondea, los valores de eh y de A para distintas elecciones de h resultan ser: h eh A 10-1 1.105 1.05 10-2 1.011 1.10 10-3 1.001 1.00 10-4 1.000 0.00 El ejemplo anterior pone de manifiesto que, en la práctica, al trabajar en aritmética finita, reducciones “excesivas” del valor de h empeora la precisión del cociente incremental.

• El ejemplo anterior pone de manifiesto que cabe distinguir, al menos, dos fuentes de error en las técnicas de aproximación numérica. La primera de ellas, que se designa habitualmente como error del método o error de truncatura, es debida a sustituir la expresión de la derivada (a través del cálculo de un límite) por una fórmula en la que se combinan valores de la función en determinados puntos. La segunda fuente de error es debida a los errores de redondeo que se cometen en las operaciones que contemple la fórmula numérica. En este tema nos ocuparemos de analizar la primera de las fuentes de error remitiendo al lector interesado en el análisis de los errores de redondeo al primero de los temas de esta asignatura.

Programación y Métodos Numéricos Derivación Numérica

4

2. Fórmulas de derivación numérica Sea f(x) una función derivable en un cierto intervalo I de la recta real y sea x* un punto de dicho intervalo. Consideremos además un soporte de (n+1) puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores de la función f(x). Por simplicidad supondremos además, en todo cuanto sigue, que los puntos del soporte son todos ellos distintos y están ordenados de menor a mayor es decir que: x0 < x1 < ... < xn. Definición 2.1.

Siendo f(x) una función de la que se conocen sus valores en el soporte de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina fórmula de derivación numérica para aproximar el valor de la primera derivada f’(x) en el punto x* sobre el soporte de puntos considerado, a toda expresión de la forma:

f’(x*) ≈ '*f = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) =

n

i ii 0

c .f(x )=∑

donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o pesos) de la fórmula de derivación

NOTA: La fórmula de derivación que se acaba de definir puede decirse que es una fórmula lagrangiana pues en ella sólo intervienen valores de la función f en los puntos del soporte. Podrían considerarse fórmulas más generales, hermitianas, en las que el valor de f’(x*) fuese aproximado a partir del valor de la función f y de algunas de sus derivadas en los puntos del soporte. No obstante, estas últimas fórmulas tienen un uso mucho más esporádico que las de tipo lagrangiano y es por ello que en este tema nos limitaremos a considerar como fórmulas de derivación numérica tan sólo a las que hacen intervenir los valores de la función en los puntos del soporte. En general el valor aproximado '

*f y el valor exacto f’(x*) diferirán,

cometiéndose un error en la aproximación de f’(x*). Es por ello que junto a la definición de una fórmula numérica conviene precisar de forma rigurosa la definición del error que con ella se comete. En este sentido se introduce la siguiente definición:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

5

Definición 2.2. Siendo '

*f la aproximación de f’(x*) que se obtiene operando sin error de

redondeo según la fórmula de derivación numérica:

f’(x*) ≈ '*f =

n

i ii 0

c .f(x )=∑

se denomina error de truncamiento de la fórmula en el punto x*y para la función f al valor Rf(x*) = f’(x*) - '

*f

Obviamente se verificará que: '

* ff '(x*) f R (x*)= + por lo que considerando la

fórmula en cuestión aplicada a todos los puntos x de un dominio dado puede definirse la función error de truncamiento de la fórmula derivación numérica para la función f considerada como la función:

Rf : I R x Rf(x) = f’(x) - '

*f

En el análisis del error de truncamiento de las fórmulas de derivación numérica se perseguirá encontrar cotas del valor de esta función 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 sustitución de la expresión de f’(x0) por el cociente incremental:

' 1 00

f(x ) f(x )f

h−

=

conduce a una fórmula en la que sus coeficientes son c0 = (-1/h) y c1 = (1/h). Una forma de acotar el error de truncamiento de esta fórmula, si se supone que f(x) es al menos de clase C2([x0, x1]) consiste en considerar el desarrollo en serie de Taylor siguiente:

f(x1) = f(x0+h) = f(x0) + h.f’(x0) + 2

0h .f "(x .h)2

+ θ (0,1)θ∈

de donde: −

= − +0 10 0

f ( x ) f ( x ) hf '( x ) .f "( x .h)h 2

θ (0,1)θ∈

Por tanto:

= − = − +'f 0 0 0 0

hR ( x ) f '( x ) f .f "( x .h)2

θ (0,1)θ∈

expresión que puede acotarse por:

Programación y Métodos Numéricos Derivación Numérica

6

{ }∈

= − ≤0 1

'f 0 0 0

x ( x ,x )

hR ( x ) f '( x ) f . Sup f "( x )2

Para el caso particular de la función f(x) = x2 el cociente incremental considerado conduce a la expresión:

+ −= = +

2 2' 0 0

0 0( x h) xf 2.x h

h

por lo que el error de truncatura cometido es en este caso Rf(x0) = h. Obsérvese que la acotación antes realizada conduciría (para esta función x2) a la acotación |Rf(x0)| ≤ h coincidente con el error de truncatura realmente cometido1. Las fórmulas que conducen al valor exacto de la derivada se denominan fórmulas exactas. Más concretamente: Definición 2.3.

Se dice que la fórmula de derivación numérica f’(x*) ≈ '*f =

n

i ii 0

c .f(x )=∑ es

exacta para la función 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 fórmula:

− −

≈ = = +−

1 0* 0 1

1 0

f(x ) f(x ) 1 1f(x*) f ' ·f(x ) ·f(x )x x h h

es una fórmula exacta para la función f(x) = x2, en el punto x* = 1 y para el soporte {x0 = 0, x1 = 2}. En efecto, f’(1) = 2 y:

= = = + =2 2*

1 12 f '(1) f ' ·0 ·2 22 2

Ahora bien esta fórmula 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 función (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 obtendrán serán tan “finas” como la que se acaba de describir.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

7

De poco serviría tener fórmulas que sólo fuesen exactas para funciones concretas con soportes concretos y en puntos concretos pues la aplicabilidad de dichas fórmulas sería escasa. Por ello, las fórmulas de derivación numérica suelen diseñarse de forma que sean exactas para determinadas familias de funciones con independencia de cuáles sean los (n+1) puntos del soporte que se elijan y para cualquier punto x* en el que se apliquen. Más concretamente puede darse la definición siguiente: Definición 2.4.

Se dice que la fórmula de derivación numérica: n

'* i i

i 0f '(x*) f c .f(x )

=

≈ = ∑

es exacta de orden k para la familia de funciones de clase C1([x0 , xn]): { }0 1 k(x), (x),..., (x),....φ φ φ

cuando es nulo el error de truncatura cometido al aplicar la fórmula para la estimación 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]: k 0 nR (x) 0 x [x ,x ]ϕ = ∀ ∈

Propiedad 2.1.

Si la fórmula de derivación numérica n

'* i i

i 0f '(x*) f c .f(x )

=

≈ = ∑ es exacta de

orden k para la familia de funciones { }0 1 k(x), (x),..., (x),....ϕ ϕ ϕ entonces es

exacta para cualquier combinación lineal de las (k+1) primeras funciones de la familia

Demostración: Si la fórmula es exacta de orden k para la familia de funciones consideradas se podrá escribir que:

[ ]=

ϕ = ϕ ∀ ∈∑n

'j i j i 0 n

i 0(x*) c . (x ) x* x ,x (j = 0, ..., k)

Por otra parte, una función cualquiera que sea combinación lineal de las (k+1) primeras funciones de la familia será de la forma:

k

0 0 1 1 k k j jj 0

f(x) (x) (x) ..... (x) (x)=

= α ⋅ϕ + α ⋅ϕ + + α ⋅ϕ = α ⋅ϕ∑

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

Programación y Métodos Numéricos Derivación Numérica

8

= = = = = =

⎛ ⎞⎛ ⎞= α ⋅ϕ = α ⋅ ⋅ϕ = ⋅ α ⋅ϕ = ⋅⎜ ⎟⎜ ⎟

⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑ ∑ ∑

k k n n k n'

j j j i j i i j j i i ij 0 j 0 i 0 i 0 j 0 i 0

f '(x*) (x*) c (x ) c (x ) c f(x )

y puesto que la aplicación de la fórmula de derivación numérica a la función f(x) en cualquier punto x* conduce a que:

n'x i i

i 0f c .f(x )

=

= ∑

puede concluirse que: [ ]f 0 nR (x*) 0 x* x ,x= ∀ ∈

Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea combinación lineal de las (k+1) primeras funciones de la familia de funciones considerada.

c.q.d. Las fórmulas de derivación numérica más utilizadas en la práctica son exactas, de algún 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 fórmula 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 función polinómica de grado menor o igual que k en cualquier punto x*. Ejemplo: La fórmula que se ha utilizado en ejemplos anteriores consistente en sustituir el límite con el que se define la derivada por el cociente incremental en un soporte de dos puntos consecutivos es una fórmula exacta de orden 1. En efecto, para la función f(x) = 1 se verifica que:

[ ]' 0 0x 0 0

f(x h) f(x ) 1 1f 0 f '(x) x x ,x hh h

+ − −= = = = ∀ ∈ +

Asimismo para la función g(x) = x se tiene que:

[ ]+ − + −= = = = ∀ ∈ +' 0 0 0 0

x 0 0g(x h) g(x ) x h xg 1 g'(x) x x ,x h

h h

Pero para la función q(x) = x2, en general, ya no coincidirá el valor de la primera derivada y el valor estimado mediante la fórmula de derivación:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

9

[ ]+ − + −= = = ⋅ + ≠ ∀ ∈ +

2 2' 0 0 0 0x 0 0 0

q(x h) q(x ) (x h) xq 2 x h q'(x) x x ,x hh h

por lo que sólo se puede afirmar que el error de la fórmula es nulo para los monomios {1, x}. En consecuencia, como se señaló anteriormente, la fórmula es de orden 1. NOTA: Para facilitar el seguimiento de todo cuanto hasta aquí se ha dicho, nos hemos referido únicamente a fórmulas que permiten estimar el valor de la primera derivada de una función. Análogo tratamiento podría realizarse para las fórmulas de derivación numérica que permiten estimar derivadas de orden mayor (segundas derivadas, terceras derivadas, etc...). A ellas nos referiremos en el apartado 7º de este tema.

Programación y Métodos Numéricos Derivación Numérica

10

3. Fórmulas de derivación numérica de tipo interpolatorio para aproximar la primera derivada de una función. Como se ha comentado en el apartado anterior, las fórmulas más utilizadas en la práctica se buscan de forma que sean exactas para polinomios de grado menor o igual que n (es decir fórmulas de orden de exactitud n). Una manera natural de construir fórmulas 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 función f(x) que sea polinómica de grado menor o igual que n coincide con dicha función2. Por ello es equivalente derivar la función polinómica f(x) que derivar la su polinomio interpolador pn(x). A todas las fórmulas de derivación que se obtienen derivando la expresión del polinomio interpolador de Lagrange se las denomina fórmulas de derivación de tipo interpolatorio. Definición 3.1.

Se denomina fórmula de derivación numérica de tipo interpolatorio (de Lagrange) para aproximar derivadas de primer orden a cualquier fórmula obtenida derivando una vez la expresión del polinomio interpolador de Lagrange construido sobre un soporte de (n+1) puntos distintos.

NOTA: Obsérvese que en la definición anterior se ha escrito entre paréntesis “de Lagrange”. En efecto podría pensarse en derivar también la expresión del polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a las fórmulas que se obtienen al derivar la expresión del polinomio interpolador de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente diremos fórmula de derivación numérica de tipo interpolatorio.

• Una fórmula de derivación numérica de tipo interpolatorio puede obtenrse de cualquiera de las expresiones del polinomio interpolador. Recordando la expresión del polinomio interpolador en función de los polinomios de base de Lagrange puede deducirse la expresión de los pesos que intervienen en dicha fórmula. En efecto:

2 Consúltese, por ejemplo, el tema dedicado a la Interpolación de Lagrange elaborado por A. Hidalgo y C. Conde en estos mismos apuntes.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

11

Propiedad 3.1. La condición necesaria y suficiente para que la fórmula de derivación

numérica n

'x* i i

i 0f c .f ( x )

=

= ∑ que sea de tipo interpolatorio es que sus

coeficientes satisfagan las igualdades:

'i ic L ( 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}.

Demostración: a) Demostremos en primer lugar que si la fórmula es de tipo interpolatorio entonces sus pesos satisfacen la relación ci = L’i(x*). En efecto, la expresión detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de base de Lagrange { }n

i i 0L (x)

= es:

n

n i ii 0

f(x) p (x) f(x ) L (x)=

≈ = ⋅∑

de donde, en cualquier punto x* se puede considerar la aproximación:

n' 'n i i

i 0f '(x*) p (x*) L (x*) f(x )

=

≈ = ⋅∑

Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes están dados por la expresión:

'i ic L (x*)= (i = 0, ..., n)

b) Demostremos que si la fórmula de derivación numérica satisface '

i ic L (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) = =∑

n

i ii 0

f(x )·L (x) se tiene que si se verifican las igualdades

consideradas para los coeficientes:

3 Recuérdese que: n n

i j i jj 0 j 0j i j i

L (x) (x x ) (x x )= =≠ ≠

⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟= − −⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠∏ ∏ (i = 0, 1, ..., n)

Programación y Métodos Numéricos Derivación Numérica

12

f’(x*) ( ) ( )= = = =

⎛ ⎞≈ = = = =⎜ ⎟

⎝ ⎠∑ ∑ ∑ ∑

'n n n n

i i i i i i i i ni 0 i 0 i 0 i 0

c f(x ) L ' (x*)f(x ) L (x*)f(x ) ' L (x*)f(x ) p' (x*)

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 fórmulas de derivación numérica de tipo interpolatorio que permiten aproximar primeras derivadas. Además nos permite obtener otras propiedades que deben satisfacer los coeficientes de las fórmulas de tipo interpolatorio. Por ejemplo: Propiedad 3.2.

En toda fórmula de derivación numérica de tipo interpolatorio n

'x* i i

i 0f c .f(x )

=

= ∑ se verifica que:

n

ii 1

c 0=

=∑

Demostración: Puesto que según las propiedades de los polinomios de base de Lagrange se

verifica que: n

ii 0

L (x) 1=

=∑ x∀ , es obvio que:

'n n'

i ii 0 i 0

L (x) L (x) 0= =

⎛ ⎞= =⎜ ⎟

⎝ ⎠∑ ∑ x∀

En particular para el punto x* se tendrá que:

n n'i i

i 0 i 0L (x*) c 0

= =

= =∑ ∑

c.q.d. Ocupémonos ahora de analizar el error en las fórmulas de derivación numérica de tipo interpolatorio. Denotando por (x)ε a la función error de interpolación

cometido al aproximar una función 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)ε 0 nx (x ,x )∀ ∈

por lo que: 'nf '(x*) p (x*) '(x*)= + ε

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

13

lo cual nos conduce a poder expresar el error en el punto x* de la fórmula de derivación numérica mediante:

fR (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

fórmula de derivación numérica 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 fórmulas de derivación numéricas de tipo interpolatorio en el conjunto de fórmulas de derivación exactas de orden n. Pero aún puede precisarse más, puesto que además toda fórmula 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 condición necesaria y suficiente para que una fórmula de derivación

numérica construida sobre un soporte de (n+1) puntos, n

'x* i i

i 0f c .f(x )

=

= ∑ ,

sea exacta de orden n es que sea de tipo interpolatorio. Demostración:

a) Demostremos en primer lugar que la condición recogida en el enunciado del teorema es suficiente, es decir que si la fórmula 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 función polinómica de grado menor o igual que n su polinomio interpolador de Lagrange sobre el soporte de (n+1) puntos coincide con la función y por tanto:

f(x) = pn(x) x∀

por lo que f’(x) = p’n(x) x∀ . En particular para cualquier punto x* se tendrá que:

' 'n x*f '(x*) p (x*) f= ≡

Programación y Métodos Numéricos Derivación Numérica

14

Ello demuestra que la fórmula 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 condición anterior también es necesaria, es decir que si la fórmula 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 fórmula exacta de orden n, para cualquier función polinómica de grado menor o igual que n, p(x), se debe verificar que:

n

i ii 0

p '(x*) c .p(x )=

= ∑

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:

n

i ii 0

p(x) p(x ).L (x)=

= ∑

de donde su primera derivada en el punto x* estará dada por:

n

'i i

i 0p '(x*) L (x*).p(x )

=

= ∑

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

n n'

i i i ii 0 i 0

c .p(x ) L (x*).p(x )= =

=∑ ∑

Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea de grado menor o igual que n. Por tanto deberá verificarse también en el caso de que consideremos como p(x) cualquiera de los (n+1) polinomios de base de Lagrange construidos sobre el soporte { }n

i i 0x

=. Recordemos

además que los polinomios de base de Lagrange verifican:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

15

i j

0 si i jL (x )

1 si i=j≠⎧

= ⎨⎩

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

n n' '

i 0 i i 0 i 0 0i 0 i 0

c .L (x ) L (x*).L (x ) c L (x*)= =

= ⇒ =∑ ∑

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

n n' '

i 1 i i 1 i 1 1i 0 i 0

c .L (x ) L (x*).L (x ) c L (x*)= =

= ⇒ =∑ ∑

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

n n' '

i j i i j i j ji 0 i 0

c .L (x ) L (x*).L (x ) c L (x*)= =

= ⇒ =∑ ∑

c.q.d. Ejemplos: 1º) Si se considera un único punto de soporte {x0} el polinomio interpolador de una función f(x) en dicho soporte será el polinomio: p0(x) = f(x0). La figura 1 recoge, junto al grafo de la función f(x) el grafo de p0(x) y la tangente geométrica a la curva en (x0, f(x0)). La pendiente de esta tangente geométrica será la derivada f’(x0).

Figura 1: Interpretación gráfica del proceso de aproximación de la derivada primera

de una función mediante la fórmula de tipo interpolatorio con soporte de un punto.

Programación y Métodos Numéricos Derivación Numérica

16

Ello nos conduciría a que, para cualquier punto x*, la fórmula de derivación de tipo interpolatorio de una función con un soporte de un único punto es:

' 'x* 0 0f '(x*) f p (x*) 0 0.f(x )≈ = = =

Obviamente esta fórmula sólo sería 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 función f(x) en el sentido de Lagrange está dado por:

01

1 0 10 1 1 0

(x x )(x x )p (x) f(x ). f(x ).(x x ) (x x )

−−= +

− −

La derivada de este polinomio es:

' 1 01 0 1

0 1 1 0 1 0

f(x ) f(x )1 1p (x) f(x ). f(x ).(x x ) (x x ) (x x )

−= + =

− − −

Al no depender del punto en el que se evalúe la derivada podemos concluir que para cualquier abscisa x* el valor de la primera derivada de la función en ella, f’(x*), se aproximará mediante:

' 1 0x*

1 0

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

x x−

≈ =−

Esta expresión se corresponde con el cociente incremental que se utilizó en los ejemplos de los apartados anteriores. Puede observarse que los pesos de la fórmula son: c0 = -1/(x1 – x0) y c1 = 1/(x1 – x0) por lo que su suma se anula. La gráfica de la figura 2 representa junto a los grafos del polinomio interpolador y de la función f(x) la tangente geométrica al grafo de f(x) en un punto (x*, f(x*)).

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

17

Figura 2: Interpretación gráfica del proceso de aproximación de la derivada primera

de una función mediante la fórmula de tipo interpolatorio con soporte de dos puntos. Obviamente esta fórmula de derivación numérica será exacta sobre cualquier polinomio de grado menor o igual que 1 (es decir sobre líneas rectas).

• Otras relaciones entre los pesos y los puntos del soporte de las fórmulas de derivación numérica de tipo interpolatorio se recogen en la propiedad siguiente: Propiedad 3.3

En toda fórmula de derivación numérica de tipo interpolatorio n

'x* i i

i 0f c .f(x )

=

= ∑ , construida sobre un soporte de (n+1) puntos, se verifica

que:

( )n

k 1ki i

i 1c x k· x * −

=

=∑ (k = 1, ...n)

Demostración: Por ser la fórmula de tipo interpolatorio es exacta para todo polinomio de grado menor o igual que n. En particular lo será para la función 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 fórmula implica que:

( ) −

=

=∑n

k 1ki i

i 1c x k· x * ( 0 < k < n)

c.q.d.

Programación y Métodos Numéricos Derivación Numérica

18

EJERCICIO PROPUESTO: Demuéstrese que para cualquier función f(x) que sea derivable en todo punto del intervalo [x0, x1] siempre existe algún punto x* de dicho intervalo para el que la fórmula de derivación numérica de tipo interpolatorio construida sobre el soporte {x0 ,x1} proporciona el valor exacto f’(x*). Nótese que, si esto es así, en particular se puede afirmar que siempre existirá algún punto x* en el intervalo [x0, x1] para el que la fórmula 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 afirmación de que la fórmula es de orden 1?. A la luz de este comentario ¿no sería más preciso decir que la fórmula es de orden infinito?.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

19

4. Expresiones del error de las fórmulas de derivación numérica de tipo interpolatorio que aproximan la primera derivada de una función. El proceso seguido para obtener las fórmulas de derivación numérica de tipo interpolatorio nos conduce de forma natural a que el error de cada fórmula Rf(x*) de derivación así determinada es igual a la primera derivada de la función de error interpolación (x)ε particularizada en el punto x* en que se deriva: Rf(x*)= '(x*)ε . No obstante trabajar con la expresión del error de

interpolación que se dedujo en los temas dedicados al estudio de las técnicas de interpolación4 no es cómodo en muchas ocasiones. Es por ello interesante obtener otras expresiones más cómodas para el análisis del error de las fórmulas de derivación numérica. Una primera forma de obtener otra expresión del error de derivación numérica 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 función f(x) en los puntos {x0, x1, ..., xn, x] y consideraremos una función g(x) que a todo punto x le haga corresponder el valor: g(x) = f[x0, x1, ..., xn, x] La primera derivada de esta función estará dada por:

g’(x)= 0 1 n 0 1 n0 1 nh 0 h 0

f[x ,x ,....,x ,x h] f[x ,x ,....,x ,x]lim lim f[x ,x ,....,x ,x,x h](x h) x→ →

+ −= +

+ −

que representaremos por:

0 1 ng'(x) f[x ,x ,....,x ,x,x]=

Más concretamente: Definición 10.4.1.

Se define la diferencia dividida de orden (n+2 )de una función en el soporte {x0, x1, ..., xn, x, x} mediante:

0 1 n0 1 n

df[x ,x ,....,x ,x]f[x ,x ,...,x ,x,x]

dx=

4 Recuérdese que la expresión obtenida era:

(n 1 nx

ii 0

f ( )(x) . (x x )

(n 1)!

+

=

ξε = −

+ ∏ donde xξ era un

punto dependiente de la abscisa x en la que se deseaba estimar el error de interpolación. Este error también se podía expresar usando las diferencias divididas como

n

0 1 n ii 0

(x) f[x , x ,..., x , x] (x x )=

ε = ⋅ −∏ .

Programación y Métodos Numéricos Derivación Numérica

20

Con ayuda de las diferencias divididas con puntos repetidos que se acaban de definir y partiendo de la expresión del error de interpolación que se obtuvo al trabajar con diferencias divididas, es sencillo demostrar la siguiente propiedad: Propiedad 4.1.

La fórmula de derivación numérica de tipo interpolatorio n

'x* i i

i 0f c .f(x )

=

= ∑ tiene asociado un error de truncatura dado por la expresión

[ ] [ ]n nn

f 0 1 n i 0 1 n ji 0i 0 j 0

j i

R ( x*) f x ,x ,...,x ,x*,x * . ( x * x ) f x ,x ,...,x ,x*,x * . ( x * x )== =

⎛ ⎞⎛ ⎞⎜ ⎟⎜ ⎟= − + −⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠⎝ ⎠∑∏ ∏

Demostración: Basta con particularizar en x* la expresión obtenida al derivar una vez la función de error de interpolación:

n

0 1 n ii 0

(x) f[x ,x ,...,x ,x]. (x x )=

ε = −∏

c.q.d. La expresión anterior, teniendo un interés teórico, también es de difícil aplicación práctica. Es por eso que lo que resta de este apartado lo dedicaremos a determinar una expresión de fácil aplicación advirtiendo de antemano al lector que más que la fórmula que finalmente determinemos, en la práctica es el método que vamos a seguir el que tiene interés práctico. Consideremos que f(x) es una función de clase Cn+1((x0, xn)) y que para aproximar la primera derivada de la función f(x) en un punto x* perteneciente al intervalo [x0 , xn] se considera la fórmula de derivación numérica de tipo

interpolatorio n

'x* i i

i 0f c .f(x )

=

= ∑ construida sobre un soporte de (n+1) puntos

distintos {x0 < x1 < ....< xn}. Adviértase que, por ser la fórmula 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:

n nk k ' k * (k 1)

i i x x* i ii 0 i 0

c x (x ) c x k.(x ) −=

= =

⋅ = ⇒ ⋅ =∑ ∑ (k = 0,..., n)

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

21

Denotemos además por h al valor:

( )0 nh Max x * x , x * x= − −

y sean { }n

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

i ix x * h= +θ ⋅

Para cada uno de estos puntos, al haber supuesto la función f(x) suficientemente regular, se puede considerar el desarrollo en serie de Taylor siguiente:

2 2 n n(ni i

i i i.h .hf(x ) f(x * .h) f(x*) .h.f '(x*) .f "(x*) .... .f (x*)2 n!

θ θ= +θ = + θ + + + +

n 1 n 1(n 1i

i.h .f (x * .h)

(n 1)!

+ ++θ

+ +δ+

Por tanto la fórmula de derivación numérica de tipo interpolatorio considerada podrá rescribirse en la forma:

2n n n n' 2x* i i i i i i i

i 0 i 0 i 0 i 0

h .f c .f(x ) c .f(x*) h. c . .f '(x*) c . .f "(x*) .....2!= = = =

⎛ ⎞ ⎛ ⎞ ⎛ ⎞= = + θ + θ + +⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑

++ +

= =

⎛ ⎞+ θ + θ +δ⎜ ⎟ +⎝ ⎠

∑ ∑n n 1n n

n (n (n 1) (n 1i i i i i

i 0 i 0

h h. c . .f (x*) . c . .f (x * .h)n! (n 1)!

Simplifiquemos la expresión que se acaba de obtener. El coeficiente que multiplica a f(x*) es nulo pues es la suma de los pesos de la fórmula (véase la propiedad 3.2.). Para simplificar otros sumandos de la expresión utilizaremos las dos propiedades siguientes: Propiedad 4.2.

Con la notación introducida anteriormente y siendo n

'x* i i

i 0f c .f(x )

=

= ∑ una

fórmula de derivación numérica de tipo interpolatorio con n > 0, se verifica que:

n

i ii 0

1c .h=

θ =∑

Demostración: Con la notación que estamos utilizando se tiene que:

Programación y Métodos Numéricos Derivación Numérica

22

ii

x x *h−

θ =

de donde: n n n n

i i i i i i ii 0 i 0 i 1 i 0

1 1 1c . . c .(x x*) . c .x .x * . ch h h= = = =

⎛ ⎞θ = − = −⎜ ⎟

⎝ ⎠∑ ∑ ∑ ∑

En esta última igualdad se sabe que n

ii 0

c 0=

=∑ (véase la propiedad 3.2.). Por

otra parte n

i ii 1

c .x=∑ se corresponde con la expresión de la derivada del monomio

x en el punto x*. Por ello su valor será 1. En resumen: n

i ii 0

1c .xh=

=∑

c.q.d. Propiedad 4.3.

Con la notación introducida anteriormente y siendo n

'x* i i

i 0f c .f(x )

=

= ∑ una

fórmula de derivación numérica de tipo interpolatorio, con n>1, se verifica que:

nk

i ii 0

c . 0=

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

Demostración: Con la notación que se está utilizando y empleando la fórmula de Newton para desarrollar potencias de binomios5, se tiene que:

n n n kk k j (k j) j

i i i i i ik ki 0 i 0 i 0 j 0

k1 1c . . c .(x x*) . c . ( 1) . .x .(x*)jh h

= = = =

⎛ ⎞⎛ ⎞⎛ ⎞θ = − = − =⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠⎝ ⎠⎝ ⎠

∑ ∑ ∑ ∑

k n

j j (k j)i ik

j 0 i 0

k1 . ( 1) . .(x*) . c .xjh

= =

⎛ ⎞⎛ ⎞ ⎛ ⎞= −⎜ ⎟⎜ ⎟ ⎜ ⎟

⎝ ⎠⎝ ⎠⎝ ⎠∑ ∑

Al ser la fórmula 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 n

(k j)i i

i 0c .x −

=∑ coincide con el

5 Como es habitual, en dicha fórmula se utiliza la notación

kj

⎛ ⎞⎜ ⎟⎝ ⎠

para representar a k!(k j)!.j!−

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

23

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

( )n '(k j) (k j) (k j 1)

i ix x*i 0

c .x x (k j).(x*)− − − −

==

⎤= = −⎥⎦∑

Para el caso en que j coincida con el valor de k el sumatorio quedará n

ii 0

c=∑

cuyo valor es nulo(véase la propiedad 3.2.). Por tanto:

nk

i ii 0

c .=

θ =∑(k 1)

j j (k j 1)k

j 0

k1 . ( 1) . .(x*) .(k j).(x*)jh

−− −

=

⎛ ⎞⎛ ⎞− − =⎜ ⎟⎜ ⎟

⎝ ⎠⎝ ⎠∑

(k 1)

(k 1) jk

j 0

k1 .(x*) . ( 1) .(k j).jh

−−

=

⎛ ⎞⎛ ⎞= − −⎜ ⎟⎜ ⎟

⎝ ⎠⎝ ⎠∑

Puesto que6 se verifica que:

=

⎛ ⎞− − = ∀ ≥⎜ ⎟

⎝ ⎠∑(k 1)

j

j 0

k( 1) .(k j). 0 k 2

j

puede concluirse que: n

ki i

i 0c . 0

=

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

c.q.d. Estas dos propiedades junto a la expresión que obtuvimos antes de enunciarlas nos permiten demostrar fácilmente el siguiente teorema: Teorema 4.1.

Dado el soporte de (n+1) puntos x0 < x1 < ... < xn , siendo f(x) una función de clase C(n+1)((x0 , xn)), siendo x* un punto del intervalo [x0 , xn], denotando hi = xi – x* , por h al valor h = máx(|x*-x0| , |x* - xn|) y por { }n

i i 0=θ a los (n+1) escalares tales que hi = i .hθ , para toda fórmula de

derivación numérica de tipo interpolatorio: n

'x* i i

i 0f '(x*) f c .f(x )

=

≈ = ∑

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

6 El lector interesado puede encontrar la demostración en el anexo a este apartado (Lema 4.2.)

Programación y Métodos Numéricos Derivación Numérica

24

( ) +

=

= − = θ +δ+ ∑

n n' n (n 1

f x* i i i ii 0

hR (x*) f(x*) f . c . .h .f (x * .h)(n 1)!

Demostración: Introduciendo el resultado de las propiedades 4.2. y 4.3. en la expresión antes obtenida resulta:

2n n n n' 2x* i i i i i i i

i 0 i 0 i 0 i 0

h .f c .f(x ) c .f(x*) h. c . .f '(x*) c . .f "(x*) .....2!= = = =

⎛ ⎞ ⎛ ⎞ ⎛ ⎞= = + θ + θ + +⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑

+

+ +

= =

⎛ ⎞+ θ + θ +δ⎜ ⎟ +⎝ ⎠

∑ ∑n n 1n n

n (n (n 1) (n 1i i i i i

i 0 i 0

h h. c . .f (x*) . c . .f (x * .h)n! (n 1)!

=

( ) +

=

= + θ +δ+ ∑

n nn (n 1

i i i ii 0

hf '(x*) . c . .h .f (x * .h)(n 1)!

c.q.d. NOTAS: 1ª) Obsérvese que en el término del error se ha descompuesto hn+1 en la forma hn·h, dejando sólo como factor común del sumatorio hn y expresando en cada uno de los sumandos del término de error θi·h como hi. El motivo de ello es que los coeficientes ci de la fórmula de derivación dependen en general de los valores hi por lo que procediendo de esta manera el término de error podrá expresarse en función de los valores de las derivadas f(n+1(ξi) (siendo ξi los puntos x*+δi·h), de hn y de (n+1) constantes γi = ci·θi

n·hi/(n+1)!. En los ejemplos del siguiente apartado se ilustrará este hecho. 2ª) La expresión 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 término que multiplica a la derivada de orden (n+1) en el desarrollo en serie de Taylor del que se partía también se anula. En dichos casos, si f(x) es lo suficientemente regular, puede ampliarse el desarrollo en serie considerado truncándolo en el primero de los términos que no se anule (que será posterior a aquel en el que interviene la derivada n-ésima).

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

25

4ª) Con todo, como ya señaló anteriormente, lo más interesante de esta forma de proceder no es tanto el resultado obtenido como el procedimiento seguido para determinar el error de la fórmula (combinando desarrollos en serie de Taylor). 5ª) Cuando el soporte es equidistante los cálculos 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 fácil obtener una cota de este error utilizando el lema siguiente: Lema 4.1.

Si g(x) es una función continua en [a, b] y se consideran (n+1) coeficientes positivos, { }n

i i 0=α , y (n+1) puntos { }n

i i 0=ξ pertenecientes al

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

=

α ξ = α ξ∑n

i ii 0

.g( ) .g( )

donde n

ii 0=

α = α∑ .

Demostración: Denotemos por gm y por gM a los valores mínimo y máximo que toma la función g(x) en [a, b]. Por ser todos los coeficientes positivos se verifica que:

i m i i i M.g .g( ) .g (i = 0, 1, ..., n)α ≤ α ξ ≤ α

Sumando las expresiones anteriores se tiene que:

n n n n

i m i i i M m i i Mi 0 i 0 i 0 i 0

.g .g( ) .g .g .g( ) .g= = = =

α ≤ α ξ ≤ α ⇒ α ≤ α ξ ≤ α ⇒∑ ∑ ∑ ∑

n

m i i Mi 0

1g . .g( ) g=

⇒ ≤ α ξ ≤α ∑

Las desigualdades anteriores, junto a la hipótesis realizada sobre la continuidad de la función g(x) en el intervalo [a, b], nos muestran que, por aplicación del teorema del valor medio, existirá en [a, b] al menos un punto ξ para el que se verifique que:

Programación y Métodos Numéricos Derivación Numérica

26

n n

i i i ii 0 i 0

1 . .g( ) g( ) .g( ) .g( )= =

α ξ = ξ ⇒ α ξ = α ξα ∑ ∑

c.q.d. El lema precedente y el teorema 4.1. nos permiten demostrar fácilmente el siguiente teorema: Teorema 4.2.

Dado el soporte de (n+1) puntos x0 < x1 < .... < xn, siendo f(x) una función de clase C(n+1)((x0 , xn)), x* un punto del intervalo [x0 , xn] y denotando por h al valor h = máx( |x* – x0 |, |xn – x|), para toda fórmula de derivación numérica de tipo interpolatorio:

n'x* i i

i 0f '(x*) f c .f(x )

=

≈ = ∑

existe algún punto [ ]0 nx ,xξ∈ y alguna constante real positiva β para los

que se verifica: |Rf(x*)| ≤ n (n 1.h .f ( )+β ξ

Demostración: Según el teorema 4.1., y utilizando la misma notación que en él, se tiene que:

( )n n

' n (n 1f x* i i i i

i 0

hR (x*) f(x*) f . c . .h .f (x * .h)(n 1)!

+

=

= − = θ +δ+ ∑

de donde:

( )n n

' n (n 1f x* i i i i

i 0

hR (x*) f(x*) f . c . .h .f (x * .h)(n 1)!

+

=

= − = θ +δ ≤+ ∑

n n

n (n 1i i i i

i 0

h . c . .h . f (x * .h)(n 1)!

+

=

≤ θ +δ+ ∑

Aplicando el lema 4.1. (para la función g(x) = |f(n+1(x)|, evaluada en los puntos ξi = x* + δi.h, y con los coeficientes αi = |ci.θi

n.hi| ) se puede concluir que existirá un valor x∈ [x0 , xn] para el que se verificará que:

n

ii 0 (n 1) (n 1

fR (x*) .h . f ( )(n 1)!= + +

⎧ ⎫α⎨ ⎬

⎩ ⎭≤ ξ+

de donde se tiene el resultado de este teorema sin más que llamar β al escalar

n

ii 0

1 .(n 1)! =

β = α+ ∑

c.q.d.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

27

En el apartado siguiente se deducirán algunas fórmulas de derivación numérica y se detallará cómo obtener la expresión 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

j 0

k( 1) .(k j ). 0 k 2

j

=

⎛ ⎞− − = ∀ ≥⎜ ⎟

⎝ ⎠∑

Demostración: Se tiene que:

= = = =

⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞− − = − − = − − −⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑(k 1) k k k

j j j j

j 0 j 0 j 0 j 0

k k k k( 1) ·(k j)· ( 1) ·(k j)· k· ( 1) · ( 1) ·j·

j j j j

Analicemos, utilizando la fórmula del binomio de Newton7, el primero de los sumandos del lado derecho de esta igualdad:

=

⎛ ⎞− = − = =⎜ ⎟

⎝ ⎠∑

kj k

j 0

kk· ( 1) · k·(1 1) k·0 0

j

Analicemos ahora el sumando que queda en el lado derecho: =

⎛ ⎞− ⎜ ⎟

⎝ ⎠∑

kj

j 0

k( 1) ·j·

j.

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

=

⎛ ⎞− = + − + =⎜ ⎟

⎝ ⎠∑

2j

j 0

2( 1) ·j· 1· 0 ·1 ( 1) ·1· 2 1· 2 ·1 0

j

Admitamos entonces que para algún valor (k-1) > 2 se verifica que:

=

−⎛ ⎞− =⎜ ⎟

⎝ ⎠∑(k 1)

j

j 0

k 1( 1) ·j· 0

j

7 Recuérdese que la fórmula del binomio de Newton establece que:

( ) −

=

⎛ ⎞+ = ⎜ ⎟

⎝ ⎠∑

kk (k j) j

j 0

ka b ·a ·b

j

Programación y Métodos Numéricos Derivación Numérica

28

y demostremos que en ese caso también se anula el sumatorio para el entero k. En efecto, con esta suposición:

= = = =

⎛ ⎞− = − = − = − =⎜ ⎟ − − − −⎝ ⎠

∑ ∑ ∑ ∑k k k k

j j j j

j 0 j 0 j 1 j 1

k k! k! k!( 1) ·j· ( 1) ·j· ( 1) ·j· ( 1) ·j j!·(k j)! j!·(k j)! ( j 1)!·(k j)!

= = =

−⎛ ⎞− −= − = − = − =⎜ ⎟− − − − ⎝ ⎠∑ ∑ ∑

k k kj j j

j 1 j 0 j 0

k 1(k 1)! (k 1)!k· ( 1) · k· ( 1) · k· ( 1) · 0( j 1)!·(k j)! j!·(k j 1)! j

Por tanto:

= = =

⎛ ⎞ ⎛ ⎞ ⎛ ⎞− − = − − − = − =⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠ ⎝ ⎠∑ ∑ ∑(k 1) k k

j j j

j 0 j 0 j 0

k k k( 1) ·(k j)· k· ( 1) · ( 1) ·j· 0 0 0

j j j

c.q.d.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

29

5. Algunas fórmulas de derivación numérica de tipo interpolatorio usuales para aproximar primeras derivadas. 5.1. Fórmula con dos puntos de soporte Si se considera el soporte {x0 , x1} y una función f(x) de la que se conoce su valor en los puntos del soporte, el polinomio interpolador de Lagrange de tal función sobre el soporte escogido está dado por:

01

0 10 1 1 0

(x x )(x x )p(x) f(x ). f(x ).(x x ) (x x )

−−= +

− −

Por tanto la expresión de la fórmula que permite aproximar f’(x*) se obtendrá derivando la expresión de este polinomio de manera que:

'x* 0 1 0 1

0 1 1 0 1 0 1 0

1 1 1 1f '(x*) f p '(x*) .f(x ) .f(x ) .f(x ) .f(x )(x x ) (x x ) (x x ) (x x )

−≈ = = + = +

− − − −

Es habitual en este caso denotar por H a la distancia entre puntos: H = (x1 – x0) con lo que la fórmula anterior puede expresarse como:

'x* 0 1

1 1f(x*) f .f(x ) .f(x )H H−

≈ = +

siendo los coeficientes de la fórmula c0 = -(1 / H) y c1 = (1 / H). NOTAS: 1ª) Obsérvese que la fórmula obtenida coincide con el cociente incremental que nos sirvió para ilustrar las fórmulas de derivación numérica en la introducción a este tema (apartado 1º). 2ª) En la obtención de esta fórmula se ha partido de la expresión del polinomio interpolador que utiliza los polinomios de base de Lagrange. Cualquier otra expresión del polinomio interpolador nos hubiese conducido a idéntico resultado pues el polinomio interpolador de Lagrange, sobre un soporte dado, es el mismo se utilice el método que se utilice para determinarlo. Así por ejemplo si se hubiera partido de la fórmula de Newton en diferencias divididas:

p(x) = f(x0) + f[x0, x1].(x-x0)

Programación y Métodos Numéricos Derivación Numérica

30

que al derivarlo, teniendo en cuenta la expresión de la diferencia dividida nos proporciona:

p’(x) = f[x0, x1].(x-x0) = 1 00

1 0

f(x ) f(x ).(x x )

x x−

−−

por lo que particularizando esta expresión en el punto x = x* y denotando por H a la distancia entre puntos se tiene finalmente que:

'x* 0 1

1 1f(x*) f p '(x*) .f(x ) .f(x )H H−

≈ = = +

En este caso, al haber sólo dos puntos de soporte, se puede considerar el soporte equidistante y podrían haberse utilizado las expresiones del polinomio interpolador en diferencias finitas (centradas, regresivas o progresivas) obteniéndose la misma fórmula. Se deja el desarrollo detallado de estos casos como ejercicio propuesto al lector. 3ª) La figura 2ª representada anteriormente (ver apartado 3º) recoge la interpretación gráfica de este proceso de aproximación.

• La expresión del error de esta fórmula, admitiendo la hipótesis de que f(x) sea de clase C2 ((x0 , x1)) y que x* pertenezca a [x0, x*], puede obtenerse sin más que denotar por h al valor h = máx(|x0 – x*|, |x1 – x*|) y considerando entonces que:

x0 - x* = 0.hθ x1 - x* = 1.hθ

por lo que: 'x*f = c0.f(x0) + c1.f(x1) = ( )1 0

1 . f(x ) f(x )H

− = ( )1 01 . f(x * .h) f(x * .h)H

+θ − +θ =

2 21 1 1

1 1. f(x*) .h.f '(x*) . .h .f "(x * .h)H 2

⎡= + θ + θ +δ −⎢⎣

2 20 0 0

1f(x*) .h.f '(x*) . .h .f "(x * .h)2

⎤− − θ − θ +δ =⎥⎦

= 1 0 .h.f '(x*)H

θ − θ + 2 2 2 21 1 0 0

1 1.h .f "(x * .h) .h .f "(x * .h)2.H 2.H

θ +δ − θ +δ =

= 1 0x x1 . .h.f '(x*)H h

−⎛ ⎞⎜ ⎟⎝ ⎠

+ 2 2 2 21 1 0 0

1 1.h .f "(x * .h) .h .f "(x * .h)2.H 2.H

θ +δ − θ +δ =

= f’(x*) + ( )2

2 21 1 0 0

h . .f "(x * .h) .f "(x * .h)2.H

θ +δ − θ +δ

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

31

Puesto que H se podrá expresar como γ.h con (γ > 1) resultará finalmente, aplicando el lema 4.1., que:

Rf(x*) = h .2.γ ( )2 2

1 1 0 0.f "(x * .h) .f "(x * .h)θ +δ − θ +δ = .h.f "( )β ξ

En el caso de ser x* un punto cualquiera el orden del error de la fórmula de derivación numérica es 0(h) donde h representa la mayor de las distancias del punto x* a los extremos del intervalo. Más frecuente aún que la expresión del error anterior es la que se obtiene al expresar dicha fórmula en función de la distancia entre los puntos del soporte (H). Fácilmente se obtiene esta nueva expresión sin más que considerar que h = μ.H (con ½ < μ < 1) por lo que la expresión del error queda en el caso más general en la forma:

Rf(x*) = ρ.H.f”(ξ)

La fórmula de derivación 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 fórmula se incrementa en una unidad). A continuación se desarrollan estos casos particulares de la fórmula de derivación 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 fórmula se puede escribir en la forma:

'x*

f(x * h) f(x*)fh

+ −=

denominándose “aproximación mediante la diferencia finita progresiva de primer orden” (o en adelanto). El error de esta fórmula, si f(x) es suficientemente regular puede obtenerse particularizando en la expresión antes obtenida resultando:

'f x*

hR (x*) f(x*) f .f "(x * .h)2

= − = − +δ [ ]0,1δ∈

Por tanto en este caso la fórmula es exacta de orden 1.

Programación y Métodos Numéricos Derivación Numérica

32

NOTA: Al mismo resultado sobre el error se llegaría sin más que considerar que: f(x*+h) = f(x*) + h.f’(x*) + (h2/ 2).f”(x*) + ..... de donde:

f’(x*) = 'x*

f(x * h) f(x*) 1 1.h.f "(x*) .... f .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 fórmula se puede escribir en la forma:

'x*

f(x*) f(x * h)fh

− −=

denominándose “aproximación mediante la diferencia finita regresiva de primer orden” (o en retroceso o upwind). El error de esta fórmula, si f(x) es suficientemente regular puede obtenerse particularizando en la expresión antes obtenida resultando:

'f x*

hR (x*) f(x*) f .f "(x * .h)2

= − = −δ [ ]0,1δ∈

Por tanto, en este caso la fórmula es exacta de orden 1.

NOTA:

Al mismo resultado sobre el error se llegaría sin más que considerar que: f(x*-h) = f(x*) - h.f’(x*) + (h2/ 2).f”(x*) - ..... de donde:

f’(x*) = 'x*

f(x*) f(x * h) 1 1.h.f "(x*) .... f .h.f "(x*) ....h 2 2

− −+ − = + −

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θ = pudiéndose rescribir la fórmula de derivación numérica en la forma:

'x*

f(x * h) f(x * h)f2.h

+ − −=

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

33

denominándose “aproximación mediante la diferencia finita centrada de primer orden”. El error de esta fórmula, si f(x) es suficientemente regular puede obtenerse, en un primer intento, particularizando en la expresión antes obtenida resultando:

( )'f x* 1 0

hR (x*) f(x*) f . f "(x * .h) f "(x * .h)4

= − = +δ − −δ [ ]0 1, 0,1δ δ ∈

No obstante la expresión anterior nos deja con la duda de si no podrán anularse más términos del desarrollo en serie de Taylor a partir del cual se obtuvo la expresión del error. En efecto, en este caso si se admite que f(x) es suficientemente regular se podrían considerar los desarrollos en serie de Taylor de f(x) con más términos que los antes planteados, es decir:

f(x0) = f(x*-h) = f(x*) – h.f’(x*) + (½).h2f”(x*) - 3 4

(ivh h.f '''(x*) .f (x*) ....6 24

+ −

f(x1) = f(x*+h) = f(x*) + h.f’(x*) + (½).h2f”(x*) + 3 4

(ivh h.f '''(x*) .f (x*) ....6 24

+ +

por lo que:

f(x+h) – f(x-h) = 2.h.f’(x*) + 3 5

(vh h.f '''(x*) .f (x*) ...3 60

+ +

de donde: 2 4

' (vx*

f(x * h) f(x * h) h hf f '(x*) .f '''(x*) .f (x*) ....2.h 6 120

+ − −= = + + +

y por tanto:

Rf(x*) = f’(x*) - 2 4

' (vx*

h hf .f '''(x*) .f (x*) ....6 120

= − − −

En resumen, si f(x) es de clase C3((x0, x1)) puede afirmarse en este caso que:

2

fhR (x*) .f '''(x * h)6

= − +δ [ ]0,1δ∈

por lo que en este caso la fórmula es exacta de orden 2.

5.2. Fórmula 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 además f(x) una función 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 fórmula de Newton en diferencias divididas, mediante:

Programación y Métodos Numéricos Derivación Numérica

34

p2(x) = f(x0) + f[x0, x1].(x - x0) + f[x0 , x1, x2].(x – x0).(x – x1) por lo que:

p’2(x) = f[x0, x1]+ f[x0 , x1, x2].((x – x0) + (x – x1))

lo que nos conduce a que la fórmula de derivación numérica de tipo interpolatorio con este soporte está dada por:

f’(x*) ' 'x* 2f p (x*)≈ = = f[x0, x1]+ f[x0 , x1, x2].((x* – x0) + (x* – x1))

NOTAS: 1ª) En este caso se ha utilizado la fórmula de Newton del polinomio interpolador para inferir a partir de ella la fórmula de derivación de tipo interpolatorio. Puesto que, sobre un soporte dado, el polinomio interpolador de Lagrange es único podrían haberse utilizado otras expresiones de este polinomio para obtener el mismo resultado. No obstante es cómodo utilizar la fórmula de Newton en el caso general para no obtener expresiones que, desarrolladas, quedan muy “aparatosas” sin aportar nada para nuestros propósitos. 2ª) En la expresión anterior pueden sustituirse las diferencias divididas que intervienen por sus expresiones respectivas8. Ello hace que la fórmula tome un aspecto más “engorroso” para su manipulación. 3ª) En el sentido de lo expresado en la primera de estas “notas” el polinomio interpolador podría haberse expresado en la forma:

p2(x) = f(x0).L0(x) + f(x1).L1(x) + f(x2).L2(x)

con:

1 2

00 1 0 2

(x x ).(x x )L (x)(x x ).(x x )

− −=

− −, 0 2

11 0 1 2

(x x ).(x x )L (x)

(x x ).(x x )− −

=− −

, 0 12

2 0 2 1

(x x ).(x x )L (x)

(x x ).(x x )− −

=− −

8 Recuérdese que: [ ] −

=−

1 00 1

1 0

f ( x ) f ( x )f x , x

x x , [ ] 2 1

1 22 1

f ( x ) f ( x )f x , x

x x−

=−

y

[ ] 1 2 0 10 1 2

2 0

f [ x , x ] f [ x , x ]f x , x , x

x x−

=−

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

35

para así obtener la misma fórmula de derivación numérica pero ahora con la expresión

' ' ' ' 'x* 2 0 0 1 1 2 2f(x*) f p (x*) L (x*).f(x ) L (x*).f(x ) L (x*).f(x )≈ = = + +

En esta última expresión los coeficientes de la fórmula aparecen de forma más explícita y toman la expresión:

c0 ' 1 20

0 1 0 2

(x * x ) (x * x )L (x*)(x x ).(x x )

− + −= =

− − , c1

0 21

1 0 1 2

(x * x ) (x * x )L (x*)

(x x ).(x x )− + −

= =− −

c2 0 12

2 0 2 1

(x * x ) (x * x )L (x*)

(x x ).(x x )− + −

= =− −

4ª) La interpretación gráfica del proceso de derivación numérica seguido con esta fórmula consiste en sustituir la tangente trigonométrica del ángulo formado entre el eje de abscisas y la tangente geométrica al grafo de f(x) en el punto (x*, f(x*)) por la tangente trigonométrica del ángulo formado entre el eje de abscisas y la tangente geométrica en el punto (x*, p2(x*)) al grafo de la parábola 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: Interpretación gráfica del proceso de derivación numérica seguido con una

fórmula de tipo interpolatorio con tres puntos de soporte.

Programación y Métodos Numéricos Derivación Numérica

36

En lo que se refiere al error de truncatura de esta fórmula, su expresión puede acotarse, si f∈C3((x0 , x1)), utilizando el teorema 4.2. mediante:

2 '''

fR (x*) .h . f ( )≤ β ξ

Los casos de aplicación más típicos para esta fórmula de derivación numérica son aquellos en los que el punto x* coincide con uno de los puntos del soporte siendo, además, el soporte equidistante. A continuación 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 fórmula pueden ser expresadas mediante:

1 00 1

f(x ) f(x )f[x ,x ]

H−

= 2 1 00 1 2 2

f(x ) 2.f(x ) f(x )f[x ,x ,x ]

2.H− +

=

por lo que la fórmula de derivación numérica de tipo interpolatorio se convierte en:

' *1 0 2 1 0x* 0 12

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

≈ = + − + −

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:

x0 x1 x2

H H

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

37

' 1 0 2 1 0x*

f(x ) f(x ) f(x ) 2.f(x ) f(x )f '(x*) fH 2.H− − +

≈ = − =

2 1 0f(x ) 4.f(x ) 3.f(x ) f(x * 2.H) 4.f(x * H) 3.f(x*)2.H 2.H

− + − − + + + −= =

La fórmula anterior se conoce con el nombre de fórmula de derivación numérica en diferencias progresivas de segundo orden. Si se admite que f(x) es una función suficientemente mente regular, el error de derivación puede obtenerse fácilmente 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*) 2f(x * 2.H) 4.f(x * H) 3.f(x*) 1.H .f '''(x*) ....2.H 3

− + + + −= + +

pudiéndose 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:

' 1 0 2 1 0 2 0x*

f(x ) f(x ) f(x ) 2.f(x ) f(x ) f(x ) f(x )f '(x*) fH 2.H 2.H− − + −

≈ = + = =

f(x * H) f(x * H)

2.H+ − −

=

Programación y Métodos Numéricos Derivación Numérica

38

fórmula 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:

' 1 0 2 1 0x* 2

f(x ) f(x ) f(x ) 2.f(x ) f(x )f '(x*) f .(3.H)H 2.H− − +

≈ = + =

2 1 03.f(x ) 4.f(x ) f(x ) 3.f(x*) 4.f(x * H) f(x * 2.H)

2.H 2.H− + − − + −

= =

expresión que se conoce como fórmula de derivación numérica 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’’’(ξ)

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

39

6. Otros métodos para la obtención de fórmulas de derivación numérica de tipo interpolatorio. 6.1. Mediante la combinación de desarrollos en serie de Taylor. El proceso seguido en el apartado 4º para determinar el error de derivación numérica muestra otra manera de calcular las fórmulas de derivación. En efecto, una alternativa al proceso de obtención de fórmulas de derivación numérica mediante el cálculo de la primera derivada del polinomio interpolador de Lagrange de la función 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 combinación se anulen el mayor número posible de los primeros términos salvo, obviamente, el que multiplica a f’(x*). Despejando después f’(x*) de esta combinación se obtendrá la fórmula de derivación y el término de error. De forma más 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:

f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + + + + +2 3 k

(ki i ih h h·f "(x*) ·f '''(x*) .... ·f (x*) ....2! 3! k!

Por lo que:

= = = =

⎛ ⎞ ⎛ ⎞ ⎛ ⎞α = α + α + α +⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑

n n n n2

i i i i i i ii 0 i 0 i 0 i 0

1·f(x ) ·f(x*) ·h ·f '(x*) ·h ·f "(x*)2!

= =

⎛ ⎞ ⎛ ⎞α + + α +⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠∑ ∑

n n3 k (k

i i i ii 0 i 0

1 1·h ·f '''(x*) .... ·h ·f (x*) ...3! k!

(1)

Si se desea que la fórmula de derivación sea del mayor orden posible debe buscarse que, salvo el coeficiente de f’(x*), se anulen el mayor número de los primeros sumandos del desarrollo anterior. Esto es, que:

=

α =∑n

ii 0

0 =

α =∑n

2i i

i 0·h 0 .........

=

α =∑n

ki i

i 0·h 0

En general el número de ecuaciones que así se pueden formar es de n ecuaciones quedando un sistema con (n+1) incógnitas (α0, ..., αn) y tan sólo n ecuaciones. Ello es debido a que con el coeficiente de f’(x*) se debe añadir la

inecuación =

α ≠∑n

i ii 0

·h 0 .

Programación y Métodos Numéricos Derivación Numérica

40

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

=

α =∑n

ii 0

0

=

α =∑n

2i i

i 0·h 0

........

=

α =∑n

ni i

i 0·h 0

quedarán en función del valor que libremente se le asigne a uno de ellos.

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

α = α∑n

i ii 0

·h

se tendrá que los coeficientes de la fórmula de derivación se obtienen mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya podido anular en la expresión (1) se podrá inferir fácilmente la expresión del error de derivación. Ilustremos estos extremos con un ejemplo. Ejemplo: Determinemos la fórmula de derivación numérica del mayor orden de exactitud posible que permite calcular el valor aproximado de f’(x*) usando un soporte de la forma: {x0 = x* - 2·h, 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*-2·h) =f(x*) –2·h·f’(x*) + − +2 34·h 8·h·f "(x*) ·f '''(x*)

2 6−

4(iv16·h ·f (x*)

24

− +5

(v32·h ·f (x*) ...120

f(x*-(½)·h) =f(x*) – 1·2

h·f’(x*) + − +2 3h h·f "(x*) ·f '''(x*)

8 48−

4(ivh ·f (x*)

384

− +5

(vh ·f (x*) ...3840

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

41

f(x*+(½)·h) =f(x*) + 1·2

h·f’(x*) + + +2 3h h·f "(x*) ·f '''(x*)

8 48+

4(ivh ·f (x*)

384

+ +5

(vh ·f (x*) ...3840

f(x*+ 32

·h) =f(x*) + 3·2

h·f’(x*) + + +2 39·h 27·h·f "(x*) ·f '''(x*)

8 48+

4(iv91·h ·f (x*)

384

+ +5

(v273·h ·f (x*) ...3840

de donde:

α − + α − + α + + α + =0 1 2 31 1 3·f(x * 2·h) ·f(x * ·h) ·f(x * ·h) ·f(x * ·h)2 2 2

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

⎛ ⎞+ − α − α + α + α +⎜ ⎟⎝ ⎠

0 1 2 31 1 32· · · · ·h·f '(x*)2 2 2

⎛ ⎞+ α + α + α + α +⎜ ⎟⎝ ⎠

20 1 2 3

1 1 92· · · · ·h ·f "(x*)8 8 8

⎛ ⎞+ − α − α + α + α +⎜ ⎟⎝ ⎠

30 1 2 3

8 1 1 27. · · · ·h ·f '''(x*)6 48 48 48

⎛ ⎞+ α + α + α + α +⎜ ⎟⎝ ⎠

4 (iv0 1 2 3

16 1 1 91. · · · ·h ·f (x*)24 384 384 384

⎛ ⎞+ − α − α + α + α +⎜ ⎟⎝ ⎠

5 (v0 1 2 3

32 1 1 273. · · · ·h ·f (x*) ....120 3840 3840 3840

Si se desea que la fórmula tenga el mayor orden posible se obligará a que: α + α + α + α =0 1 2 3 0

0 1 2 31 1 92· · · · 08 8 8

α + α + α + α =

0 1 2 38 1 1 27. · · · 06 48 48 48

− α − α + α + α =

Programación y Métodos Numéricos Derivación Numérica

42

de donde9, dejando como incógnita libre α1, se tiene:

0 1 2 1 3 18 66 3· , · , ·

455 65 91− −

α = α α = α α = α

Si se asigna a α1 el valor α1 = 1 se tiene que:

0 1 2 38 66 3, 1, ,

455 65 91− −

α = α = α = α =

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

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

− − + − − + + + =

= − − +4 (iv12 1·h·f '(x*) ·h ·f (x*) ....13 208

por lo que:

f’(x*) = ( ) ( ) ( ) ( )3·hh h2 2 2

1 2 13 11 1· ·f x * 2·h ·f x * ·f x * ·f x *h 105 12 10 28⎛ ⎞− − − + + − +⎜ ⎟⎝ ⎠

-

− +3 (iv1 ·h ·f (x*) .....192

De esta igualdad se infiere que la fórmula buscada es:

( ) ( ) ( ) ( )3·hh h2 2 2*

1 2 13 11 1f '(x*) f ' · ·f x * 2·h ·f x * ·f x * ·f x *h 105 12 10 28⎛ ⎞≈ = − − − + + − +⎜ ⎟⎝ ⎠

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

= − ξ3 (ivf

1R (x*) ·h ·f ( )192

para algún valor ξ∈(x*-2·h, x*+3·h/2). Es decir un error de orden 3. 9 Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a que se anulase el coeficiente de f’’’(x*) se tendría un sistema que sólo admite la solución trivial α0 = = α1 = α2 = α3 = 0.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

43

6.2. Método de coeficientes indeterminados. Este método de determinación de fórmulas de derivación de tipo interpolatorio soportadas en (n+1) puntos se basa en que, según el teorema 3.1. toda fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}. Por tanto, si

se busca una fórmula con expresión: =

≈ = ∑n

* i ii 0

f '(x*) f ' c f(x ) , su aplicación a

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

=

=∑n

ii 0

c 0

( ) −

=

=∑n

(k 1)ki i

i 0c x k· x * (k = 1, ..., n)

es decir al sistema:

( ) −

⎧ ⎫⎡ ⎤ ⎧ ⎫⎪ ⎪⎢ ⎥ ⎪ ⎪⎪ ⎪⎢ ⎥ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎢ ⎥ =⎨ ⎬ ⎨ ⎬

⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎩ ⎭⎣ ⎦ ⎩ ⎭

0

0 1 2 n 12 2 2 20 1 2 n 2

(n 1)n n n n0 1 2 n n

01 1 1 ... 1 c1x x x ... x c2x *x x x ... x c...... ... ... ... ... ...

x x x ... x c n x *

Si los (n+1) puntos del soporte son diferentes puede asegurarse que el sistema anterior es compatible determinado. Su resolución proporciona los pesos de la fórmula de derivación buscada. Siendo “h” un valor estrictamente positivo en función 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 fórmula a los monomios {1, x, ..., xn} se aplica a los polinomios:

{ 1, (x-x*), (x-x*)2, ...., (x-x*)n} En efecto, la aplicación de la fórmula a f(x) = 1 conduce a que:

=

=∑n

ii 0

c 0

Si n > 0, su aplicación a f(x) = (x – x*) proporciona la ecuación:

= =

γ = ⇒ γ =∑ ∑n n

i i i ii 0 i 0

1c h 1 ch

Programación y Métodos Numéricos Derivación Numérica

44

Y si n > 1 , para valores del exponente menores o iguales que n se tiene que:

( ) −

= =

− = γ ⇒ γ =∑ ∑n n

(k 1) k k ki i i i

i 0 i 0k x * x * c h c 0

En resumen, los coeficientes de la fórmula de tipo interpolatorio se obtienen resolviendo el sistema:

⎡ ⎤ ⎧ ⎫ ⎧ ⎫⎢ ⎥ ⎪ ⎪ ⎪ ⎪γ γ γ γ⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎢ ⎥ =γ γ γ γ ⎨ ⎬ ⎨ ⎬⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥γ γ γ γ ⎪ ⎪ ⎪ ⎪⎩ ⎭⎩ ⎭⎣ ⎦

0

1h0 1 2 n 1

2 2 2 20 1 2 n 2

n n n n0 1 2 n n

1 1 1 ... 1 c 0... c... c 0

... ... ... ... ... ... ...... c 0

Una vez determinada la fórmula, su error puede también ser calculado si se busca en la forma Rf(x*) = K·h(m-1)·f(m(ξ) aplicándolo al primer binomio (x-x*)m (cuya derivada m-ésima es una constante no nula) para el que la fórmula deja de ser exacta (hecho que tendrá lugar para m > n). Ilustremos esta forma de proceder obteniendo nuevamente la fórmula de derivación numérica hallada en el subapartado anterior mediante combinaciones de desarrollos en serie de Taylor. Ejemplo: Determinemos la fórmula de derivación numérica de tipo interpolatorio que permite calcular el valor aproximado de f’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - (½)·h, x2 = x* + (½)·h, x3 = x* + (3/2)·h} donde h es un valor real estrictamente positivo. Según se ha visto anteriormente, los coeficientes de la fórmula se pueden obtener resolviendo el sistema:

⎧ ⎫⎡ ⎤ ⎧ ⎫⎪ ⎪⎢ ⎥ ⎪ ⎪− ⎪ ⎪ ⎪ ⎪⎢ ⎥ =⎨ ⎬ ⎨ ⎬⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥ ⎪ ⎪ ⎪ ⎪−⎣ ⎦ ⎩ ⎭⎩ ⎭

0

31 1 12 2 2 h1

91 14 4 4 2

1 1 278 8 8 3

c1 1 1 1 0c2c4 0c8 0

o, eliminando denominadores, el sistema equivalente:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

45

⎧ ⎫⎡ ⎤ ⎧ ⎫⎪ ⎪⎢ ⎥ ⎪ ⎪− − ⎪ ⎪ ⎪ ⎪⎢ ⎥ =⎨ ⎬ ⎨ ⎬⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥ ⎪ ⎪ ⎪ ⎪− −⎣ ⎦ ⎩ ⎭⎩ ⎭

0

2h1

2

3

c1 1 1 1 0c4 1 1 3c16 1 1 9 0c64 1 1 27 0

La solución del sistema anterior nos proporciona los valores:

− −= = = =0 1 2 4

2 13 11 1c ,c ,c ,c105·h 12·h 10·h 28·h

Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4. La primera derivada de dicha función en x* es:

f’(x*) = 4.(x*-x*)3 = 0 siendo el valor aproximado dado por la fórmula:

( ) ( )−⎛ ⎞= − − + − =⎜ ⎟⎝ ⎠

4 4' 4 4 331 12 2 2*

1 2 13 11 1 1f ( 2h) ( h) h h hh 105 12 10 28 8

por lo que −

= − = − = −4

3' 3*(x x*)

h 1R (x*) f '(x*) f 0 h8 8

. Si se busca el error en la

forma: = 3 (iv

fR (x*) Kh f (x*)

para la función considerada (cuya cuarta derivada es: f(iv(x*) = 24) se tiene que:

K = -1/192 En resumen la fórmula buscada es:

( ) ( )⎛ ⎞= − − − + + − +⎜ ⎟⎝ ⎠

' 31 12 2 2*

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

y el error de derivación numérica está dado por:

−= ξ3 (iv

f1R (x*) h f ( )

192

Programación y Métodos Numéricos Derivación Numérica

46

Ejercicio propuesto:

a) Siendo h un parámetro estrictamente positivo, determinar la fórmula de derivación numérica 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], determínese también la expresión de su error e indíquese la regularidad que se le debe exigir a f(x) para que dicha expresión sea válida. Obténgase la fórmula pedida y su error:

i) Derivando el correspondiente polinomio interpolador de Lagrange,

ii) Combinando desarrollos en serie de Taylor, y iii) Mediante el método de coeficientes indeterminados.

b) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de un valor aproximado de la primera derivada de la función 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. Realícense los cálculos en coma flotante usando mantisas con 5 decimales significativos.

c) Obténgase una cota del error de derivación numérica válida en el

intervalo [x*, x2] para la función considerada en el apartado anterior. El error realmente cometido ¿es en todos los casos inferior a la cota hallada? Si no lo fuese justifíquese el motivo.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

47

7. Fórmulas de derivación numérica de tipo interpolatorio para la aproximación de derivadas de orden superior. Los métodos de obtención de fórmulas numéricas para aproximar primeras derivadas pueden extenderse fácilmente para deducir fórmulas de derivación numérica que permitan aproximar derivadas de orden superior al primero. Destinaremos este apartado a describir este proceso con detalle. Sea f(x) una función k veces derivable en un cierto intervalo I de la recta real y sea x* un punto de dicho intervalo. Consideremos además un soporte de (n+1) puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores de la función f(x). Por simplicidad supondremos que los puntos del soporte son todos ellos distintos y están ordenados de menor a mayor es decir que: x0 < x1 < ... < xn. Definición 7.1.

Siendo f(x) una función de la que se conocen sus valores en el soporte de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina fórmula de derivación numérica para aproximar el valor de la k-ésima derivada f(k(x) en el punto x* sobre el soporte de puntos considerado, a toda expresión de la forma:

f(k(x*) ≈ (k*f = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) =

n

i ii 0

c .f(x )=∑

donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o pesos) de la fórmula de derivación.

NOTA: La fórmula de derivación que se acaba de definir puede decirse que es una fórmula lagrangiana pues en ella sólo intervienen valores de la función f en los puntos del soporte. Podrían considerarse fórmulas más generales, hermitianas, en las que el valor de f(k(x*) fuese aproximado a partir del valor de la función f y de algunas de sus derivadas en los puntos del soporte. No obstante, estas últimas fórmulas tienen un uso mucho más esporádico que las de tipo lagrangiano y es por ello que nos limitaremos a considerar como fórmulas de derivación numérica tan sólo a las que hacen intervenir los valores de la función en los puntos del soporte.

Programación y Métodos Numéricos Derivación Numérica

48

En general el valor aproximado (k*f y el valor exacto f(k(x*) diferirán,

cometiéndose un error en la aproximación de f(k (x*). Es por ello que junto a la definición anterior conviene precisar la definición del error que con la fórmula se comete. En este sentido se introduce la siguiente definición: Definición 7.2.

Siendo (k*f la aproximación de f(k(x*) que se obtiene operando sin error

de redondeo según la fórmula de derivación numérica:

f(k(x*) ≈ (k*f =

n

i ii 0

c .f(x )=∑

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

*f

Obviamente se verificará que: (k (k

* ff (x*) f R (x*)= + por lo que considerando

la fórmula en cuestión aplicada a todos los puntos x de un dominio dado puede definirse la función error de truncamiento de la fórmula derivación numérica para la función f considerada como la función:

Rf : I R x Rf(x)

En el análisis del error de truncamiento de las fórmulas de derivación numérica se perseguirá encontrar cotas del valor de esta función 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 sustitución de la expresión de f”(x1) por:

[ ] − +≈ = =" 2 1 0

1 1 0 1 2 2

f(x ) 2·f(x ) f(x )f "(x ) f 2·f x ,x ,xh

conduce a una fórmula 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 fórmula, si se supone que f(x) es al menos de clase C3([x0, x1]) consiste en considerar los desarrollos en serie de Taylor siguientes:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

49

f(x0) = f(x*-h) = f(x*) - h.f’(x*) +

+2 3 4

( iv0

h h h.f "( x*) .f "'( x*) .f ( x * .h)2 3 ! 4 !

θ− + + 0 ( 1,0)θ ∈ −

f(x2) = f(x*+h) = f(x*) + h.f’ x*) +

+ 2 3 4

( iv1

h h h.f "( x*) .f '''( x*) .f ( x * .h )2 3 ! 4 !

θ+ + + 1 (0,1)θ ∈

de donde:

42 ( iv ( iv

2 0 0 1hf ( x ) f ( x ) 2·f ( x*) h ·f "( x*) ·( f ( x * ·h) f ( x * ·h))24

θ θ+ = + + + + + ⇒

( )2

( iv ( iv* 0 12

f ( x * h) 2·f ( x*) f ( x * h) hf " f "( x*) · f ( x * ·h) f ( x * ·h)h 24

θ θ+ − + −⇒ = = + + + +

Por tanto:

( )2

( iv ( ivf 0 0 0 0 1

hR ( x ) f "( x ) f " · f ( x * ·h) f ( x * ·h)24

θ θ= − = − + + +

expresión que puede acotarse por:

{ }0 1

2( iv

f 0 0 0x ( x ,x )

hR ( x ) f "( x ) f " . Sup f ( x )12 ∈

= − ≤

Para el caso particular de la función f(x) = x4 en que f”(x*) = 12·(x*)2 se tiene que:

+ − + += =

4 4 4

* 2

(x * h) 2·(x*) (x * h)f "h

12·(x*)2+ 2·h2

por lo que el error de truncatura cometido es en este caso Rf(x0) = -2·h2. Obsérvese que la acotación antes realizada conduciría (para esta función x4) a la acotación |Rf(x0)| ≤ 2·h2 coincidente con el valor absoluto del error de truncatura realmente cometido10.

10 No siempre las acotaciones del error de truncatura que se obtendrán serán tan “finas” como la que se acaba de describir.

Programación y Métodos Numéricos Derivación Numérica

50

Definición 7.3. Se dice que la fórmula de derivación numérica:

=

≈ = ∑n

(k (k* i i

i 0f (x*) f c .f(x )

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

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

cuando es nulo el error de truncatura cometido al aplicar la fórmula para la estimación de la k-ésima derivada de cualquiera de las (m+1) primeras funciones de la familia en cualquier punto x* perteneciente al intervalo [x0 , xn]: j 0 nR ( x ) 0 x [ x ,x ], ( j 0,...,m)ϕ = ∀ ∈ =

Propiedad 7.1.

Si la fórmula de derivación numérica =

≈ = ∑n

(k (k* i i

i 0f (x*) f c .f(x ) es exacta de

orden m para la familia de funciones { }ϕ ϕ ϕ0 1 m(x), (x),..., (x),.... entonces

es exacta para cualquier combinación lineal de las (m+1) primeras funciones de la familia

Demostración: Si la fórmula es exacta de orden m para la familia de funciones consideradas se podrá escribir que:

[ ]=

ϕ = ϕ ∀ ∈∑n

(kj i j i 0 n

i 0(x*) c . (x ) x* x ,x (j = 0, ..., m)

Por otra parte, una función cualquiera que sea combinación lineal de las (m+1) primeras funciones de la familia será de la forma:

=

= α ⋅ϕ + α ⋅ϕ + + α ⋅ϕ = α ⋅ϕ∑m

0 0 1 1 m m j jj 0

f(x) (x) (x) ..... (x) (x)

por lo que su k-ésima derivada en cualquier punto x* del intervalo [x0, xn]se puede expresar como:

= = = = = =

⎛ ⎞⎛ ⎞= α ⋅ϕ = α ⋅ ⋅ϕ = ⋅ α ⋅ϕ = ⋅⎜ ⎟⎜ ⎟

⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑ ∑ ∑m m n n m n

(k (kj j j i j i i j j i i i

j 0 j 0 i 0 i 0 j 0 i 0f (x*) (x*) c (x ) c (x ) c f(x )

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

51

y puesto que la aplicación de la fórmula de derivación numérica a la función f(x) en cualquier punto x* conduce a que:

=

= ∑n

(kx i i

i 0f c .f(x )

puede concluirse que: [ ]f 0 nR (x) 0 x x ,x= ∀ ∈

Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea combinación lineal de las (m+1) primeras funciones de la familia de funciones considerada.

c.q.d. Las fórmulas de derivación numérica más utilizadas en la práctica son exactas, de algún 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 fórmula 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 función polinómica de grado menor o igual que m. Ejemplo: La fórmula que se ha utilizado en el ejemplo anterior

"* 2

f ( x * h) 2·f ( x*) f ( x * h)f "( x*) fh

+ − + −≈ =

es una fórmula exacta de orden 3. En efecto, para la función p(x) = 1 se verifica que:

* 2

1 2·1 1p " 0 p"( x*) x *h

− += = = ∀

Asimismo para la función p(x) = x se tiene que:

* 2

( x * h) 2·( x*) ( x * h)p " 0 p"( x*) x *h

+ − + −= = = ∀

También para la la función p(x) = x2 se tiene que:

2 2 2

* 2

( x * h) 2·( x*) ( x * h)p " 2 p"( x*) x *h

+ − + −= = = ∀

Programación y Métodos Numéricos Derivación Numérica

52

Y para la función p(x) = x3 se verifica que:

3 3 3

x 2

( x * h) 2·( x*) ( x * h)p " 6·x* p"( x ) x*h

+ − + −= = = ∀

Pero para la función q(x) = x4 se tiene que:

4 4 42 2 2

x 2

( x * h) 2·( x*) ( x * h)q " 12·( x*) 2·h q"( x*) 2·h x*h

+ − + −= = + = + ∀

por lo que sólo se puede afirmar que el error de la fórmula es nulo para los monomios {1, x, x2, x3}. En consecuencia, como se señaló anteriormente, la fórmula es de orden de exactitud 3.

• Entre las fórmulas de derivación numérica para aproximar las derivadas de orden k de una función f(x), las más frecuentemente utilizadas son aquellas que se pueden obtener derivando k veces el polinomio interpolador de la función f(x). A tales fórmulas se las denomina fórmulas de tipo interpolatorio. Definición 7.4.

Se denomina fórmula de derivación numérica de tipo interpolatorio (de Lagrange) para aproximar derivadas de orden k a cualquier fórmula obtenida derivando una vez la expresión del polinomio interpolador de Lagrange construido sobre un soporte de (n+1) puntos distintos.

NOTAS: 1ª) Obsérvese que en la definición anterior se ha escrito entre paréntesis “de Lagrange”. En efecto podría pensarse en derivar también la expresión del polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a las fórmulas que se obtienen al derivar la expresión del polinomio interpolador de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente diremos fórmula de derivación numérica de tipo interpolatorio. 2ª) Si el orden de derivación k fuese superior o igual al número de puntos (n+1) las fórmulas de tipo interpolatorio correspondientes se reducirían 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. •

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

53

Una fórmula de derivación numérica de tipo interpolatorio puede obtenerse a partir de cualquiera de las expresiones del polinomio interpolador. Recordando la expresión del polinomio interpolador en función de los polinomios de base de Lagrange puede deducirse la expresión de los pesos que intervienen en dicha fórmula. En efecto: Teorema 7.1.

Una condición necesaria y suficiente para que la fórmula de derivación

numérica =

= ∑n

(kx* i i

i 0f c .f(x ) sea de tipo interpolatorio es que sus coeficientes

satisfagan las igualdades:

( ki ic L ( 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}.

Demostración: a) Demostremos que en toda fórmula de tipo interpolatorio sus coeficientes satisfacen las igualdades recogiodas en el enunciado. En efecto, la expresión detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de base de Lagrange { }n

i i 0L (x)

= es:

n

n i ii 0

f(x) p (x) f(x ) L (x)=

≈ = ⋅∑

de donde, en cualquier punto x* se puede considerar la aproximación:

=

≈ = ⋅∑n

(k (k (kn i i

i 0f (x*) p (x*) L (x*) f(x )

Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes están dados por la expresión:

= (ki ic L (x*)

11 Recuérdese que: n n

i j i jj 0 j 0j i j i

L (x) (x x ) (x x )= =≠ ≠

⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟= − −⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠∏ ∏ (i = 0, 1, ..., n)

Programación y Métodos Numéricos Derivación Numérica

54

b) Demostremos que si la fórmula de derivación numérica satisface = (ki ic L (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) = =∑

n

i ii 0

f(x )·L (x) se tiene que si se verifican las igualdades

consideradas para los coeficientes:

f’(x*) ( ) ( )= = = =

⎛ ⎞≈ = = = =⎜ ⎟

⎝ ⎠∑ ∑ ∑ ∑

(kn n n n(k(k (k

i i i i i i i i ni 0 i 0 i 0 i 0

c f(x ) L (x*)f(x ) L (x*)f(x ) L (x*)f(x ) p (x*)

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 fácilmente la siguiente: Propiedad 7.2.

En toda fórmula de derivación numérica de tipo interpolatorio

=

= ∑n

(kx* i i

i 0f c .f(x ) se verifica que:

n

ii 1

c 0=

=∑

Demostración: Puesto que según las propiedades de los polinomios de base de Lagrange se

verifica que: n

ii 0

L (x) 1=

=∑ x∀ , es obvio que:

= =

⎛ ⎞= =⎜ ⎟

⎝ ⎠∑ ∑

(kn n(k

i ii 0 i 0

L (x) L (x) 0 x∀

En particular para el punto x* se tendrá que:

= =

= =∑ ∑n n

(ki i

i 0 i 0L (x*) c 0

c.q.d. Denotando por (x)ε a la función error de interpolación cometido al aproximar

una función f(x) por su polinomio interpolador de Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

55

f(x) = pn(x) + (x)ε 0 nx (x ,x )∀ ∈

por lo que: = + ε(k (k (k

nf (x*) p (x*) (x*)

lo que nos conduce a poder expresar el error en el punto x* de la fórmula de derivación numérica mediante:

= ε(k

fR (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

fórmula de derivación numérica 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 fórmulas de derivación numéricas de tipo interpolatorio en el conjunto de fórmulas de derivación exactas de orden n. Pero aún puede precisarse más, puesto que además toda fórmula 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 condición necesaria y suficiente para que una fórmula de derivación

numérica construida sobre un soporte de (n+1) puntos, =

= ∑n

(kx* i i

i 0f c .f(x ) ,

sea exacta de orden n es que sea de tipo interpolatorio. Demostración:

a) Demostremos en primer lugar que la condición recogida en el enunciado del teorema es suficiente, es decir que si la fórmula 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 función polinómica de grado menor o igual que n su polinomio interpolador de Lagrange sobre el soporte de (n+1) puntos coincide con la función y por tanto:

f(x) = pn(x) x∀

Programación y Métodos Numéricos Derivación Numérica

56

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

np (x) x∀ . En particular, al ser la fórmula de

derivación de tipo interpolatorio, para cualquier punto x* se tendrá que:

= ≡(k (k (kn x*f (x*) p (x*) f

Ello demuestra que la fórmula 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 condición anterior también es necesaria, es decir que si la fórmula 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 fórmula exacta de orden n, para cualquier función polinómica de grado menor o igual que n, p(x), se debe verificar que:

=

= ∑n

(ki i

i 0p (x*) c .p(x )

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:

n

i ii 0

p(x) p(x ).L (x)=

= ∑

de donde su k-ésima derivada en el punto x* estará dada por:

=

= ∑n

(k (ki i

i 0p (x*) L (x*).p(x )

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

= =

=∑ ∑n n

(ki i i i

i 0 i 0c .p(x ) L (x*).p(x )

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

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

57

de base de Lagrange construidos sobre el soporte { }ni i 0

x=

. Recordemos

además que los polinomios de base de Lagrange verifican:

i j

0 si i jL (x )

1 si i=j≠⎧

= ⎨⎩

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

= =

= ⇒ =∑ ∑n n

(k (ki 0 i i 0 i 0 0

i 0 i 0c .L (x ) L (x*).L (x ) c L (x*)

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

= =

= ⇒ =∑ ∑n n

(k (ki 1 i i 1 i 1 1

i 0 i 0c .L (x ) L (x*).L (x ) c L (x*)

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

= =

= ⇒ =∑ ∑n n

(k (ki j i i j i j j

i 0 i 0c .L (x ) L (x*).L (x ) c L (x*)

c.q.d. Ejemplos: 1º. Sobre un soporte de tres puntos {x0, x1, x2} el polinomio interpolador de Lagrange de una función f(x) puede expresarse como:

[ ] [ ]= + − + − −2 0 0 1 0 0 1 2 0 1p (x) f(x ) f x ,x ·(x x ) f x ,x ,x ·(x x )·(x x )

por lo que la fórmula de derivación numérica que aproxima derivadas segundas sobre este soporte es:

[ ]≈ = =x* 2 0 1 2f "(x*) f " p" (x) 2·f x ,x ,x

2º. Sobre un soporte de cuatro puntos {x0, x1, x2, x3} el polinomio interpolador de Lagrange de una función f(x) puede expresarse como:

[ ] [ ]p x f x f x x x x f x x x x x x x= + − + − − +3 0 0 1 0 0 1 2 0 1( ) ( ) , ·( ) , , ·( )·( )

[ ]f x x x x x x x x x x+ − − −0 1 2 3 0 1 2, , , ·( )·( )·( )

Programación y Métodos Numéricos Derivación Numérica

58

por lo que la fórmula que aproxima f”(x) es:

[ ]''x* 3 0 1 2f "( x*) f p" ( x*) 2·f x ,x ,x≈ = = + [ ]f x x x x x x x x− − −0 1 2 3 0 1 22· , , , ·(3· * )

y para la aproximación de la tercera derivada:

[ ]'''x* 3 0 1 2 3f '''( x*) f p''' ( x*) 6·f x ,x ,x ,x≈ = =

• Propiedad 7.3

En toda fórmula de derivación numérica de tipo interpolatorio

=

= ∑n

(kx* i i

i 0f c .f(x ) , construida sobre un soporte de (n+1) puntos con n > k, se

verifica que:

nj

i i ( j k )i 1

0 si j kc x j ! ( x*) si k j n

( j k )!−

=

<⎧⎪= ⎨ ≤ ≤⎪ −⎩

∑ (j = 1, ...n)

Demostración: La demostración de esta propiedad se deja como ejercicio propuesto al lector y consiste simplemente en comparar el valor (exacto) proporcionado por la fórmula de derivación al ser aplicada a la función f(x) = xj (j = 0, ..., n) con el valor de f(k(x*) .

c.q.d. En cuanto al error de las fórmulas de derivación que permiten aproximar derivadas de orden mayor que 1 puede realizarse un análisis similar al descrito anteriormente para las fórmulas 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 fórmulas. Nosotros nos centraremos en la descripción del proceso que permite obtener fórmulas de derivación de tipo interpolatorio, junto a la expresión 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

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

59

valor: hi = hi = xi – x* (i = 0, .., n). Suponiendo que f(x) es sufiecientemente regular pueden considerarse los desarrollos en serie de Taylor:

f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + + + + +2 3 k

(ki i ih h h·f "(x*) ·f '''(x*) .... ·f (x*) ....2! 3! k!

Por lo que:

= = = =

⎛ ⎞ ⎛ ⎞ ⎛ ⎞α = α + α + α +⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠ ⎝ ⎠∑ ∑ ∑ ∑

n n n n2

i i i i i i ii 0 i 0 i 0 i 0

1·f(x ) ·f(x*) ·h ·f '(x*) ·h ·f "(x*)2!

= =

⎛ ⎞ ⎛ ⎞α + + α +⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠∑ ∑

n n3 k (k

i i i ii 0 i 0

1 1·h ·f '''(x*) .... ·h ·f (x*) ...3! k!

(1)

Si se desea que la fórmula de derivación sea del mayor orden posible debe buscarse que, salvo el coeficiente de f(k(x*), se anulen el mayor número de los primeros sumandos del desarrollo anterior. Esto es, que:

=

α =∑n

ji i

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

En general el número de ecuaciones que así se pueden formar es de n ecuaciones, obteniéndose un sistema con (n+1) incógnitas (α0, ..., αn) y tan sólo n ecuaciones. Ello es debido a que con el coeficiente de f(k(x*) se debe

añadir la inecuación =

α ≠∑n

ki i

i 0·h 0 .

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

=

α =∑n

ii 0

0

=

α =∑n

i ii 0

·h 0

........

=

α =∑n

(k 1)i i

i 0·h 0

+

=

α =∑n

(k 1)i i

i 0·h 0

........

=

α =∑n

ni i

i 0·h 0

quedarán expresados en función del valor que libremente se le asigne a uno de ellos.

Programación y Métodos Numéricos Derivación Numérica

60

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

α = α∑n

i ii 0

·h

se tendrá que los coeficientes de la fórmula de derivación se obtienen mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya podido anular en la expresión (1) se podrá inferir fácilmente la expresión del error de derivación. Ilustremos estos extremos con un ejemplo. Ejemplo: Determinemos la fórmula de derivación numérica del mayor orden de exactitud posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h es un valor real estrictamente positivo. Para ello, si suponemos que f(x) es suficientemente regular en (x*-2·h, x*+2·h) podemos considerar los desarrollos en serie de Taylor:

f(x*- 2·h) =f(x*) –2·h·f’(x*) + − +2 34·h 8·h·f "(x*) ·f '''(x*)

2 6−

4(iv16·h ·f (x*)

24

− + −5 6 7

(v (vi (vii32·h 64·h 128·h·f (x*) ·f (x*) ·f (x*)...120 720 5040

f(x*-·h) =f(x*) - h·f’(x*) + − +2 3h h·f "(x*) ·f '''(x*)

2 6−

4(ivh ·f (x*)

24

− + −5 6 7

(v (vi (viih h h·f (x*) ·f (x*) ·f (x*)...120 720 5040

f(x*) = f(x*)

f(x*+ h) =f(x*) + h·f’(x*) + + +2 3h h·f "(x*) ·f '''(x*)

2 6+

4(ivh ·f (x*)

24

+ + + +5 6 7

(v (vi (viih h h·f (x*) ·f (x*) ·f (x*) ...120 720 5040

f(x*+2·h) =f(x*) +2·h·f’(x*) + + +2 34·h 8·h·f "(x*) ·f '''(x*)

2 6+

4(iv16·h ·f (x*)

24

+ + +5 6 7

(v (vi (vii32·h 64·h 128·h·f (x*) ·f (x*) ·f (x*)...120 720 5040

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

61

de donde:

α − + α − + α + α + + α + =0 1 2 3 4·f(x * 2·h) ·f(x * h) ·f(x*) ·f(x * h) ·f(x * 2·h)

( )= α + α + α + α + α +0 1 2 3 4 ·f(x*)

( )+ − α − α + α + α +0 1 3 42· 2· ·h·f '(x*)

( )+ α + α + α + α +2

0 1 3 4h4· 4· · ·f "(x*)2

( )+ − α − α + α + α +3

0 1 3 4h8. 8· · ·f '''(x*)6

( )+ α + α + α + α +4

(iv0 1 3 4

h16. 16· · ·f (x*)24

( )+ − α − α + α + α +5

(v0 1 3 4

h32. 32· · ·f (x*) ....120

Si se desea construir una fórmula 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 (Coeficiente en h0 y f(x*)) − α − α + α + α =0 1 3 42· 2· 0 (Coeficiente en h y f’(x*))

α + α + α + α =0 1 3 44. 4· 0 (Coeficiente en h2 y f”(x*)) α + α + α + α =0 1 3 416. 16· 0 (Coeficiente en h4 y f(iv (x*))

de donde12, dejando como incógnita libre α3, se tiene:

α = −α α = α α = α = − α α ∈R0 4 1 4 2 3 4 4, 2· , 0 , 2· ,

Cualquier elección no nula de α4 nos conducirá a la fórmula buscada. Obsérvese que se descarta la opción α4 = 0 ya que ello anularía el coeficiente de f’’’(x) con lo que no lo podríamos despejar del desarrollo resultante. Si se asigna a α4 el valor α4 = 1 se tiene que:

12 Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a que se anulase el coeficiente de f’(v(x*) se tendría un sistema que sólo admite la solución trivial α0 = = α1 = α2 = α3 = α4 = 0.

Programación y Métodos Numéricos Derivación Numérica

62

α = − α = α = α = − α =0 1 2 3 41, 2 , 0 , 2 , 1

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

− − + − − + + + =f(x * 2·h) 2·f(x * h) f(x * h) 2·f(x * 2·h)

= + +3 5

(vh h12· ·f '''(x*) 60· ·f (x*) ....6 120

de donde:

f’’’(x*) = ( ) ( ) ( ) ( )− − + − − + + +3 3 3 3

1 1 1 1·f x * 2·h ·f x * h ·f x * h ·f x * 2·h2·h h h 2·h

-

− +2 (v1·h ·f (x*) .....4

De esta igualdad se infiere que la fórmula buscada es:

( ) ( ) ( ) ( )≈ = − − + − − + + +* 3 3 3 3

1 1 1 1f '''(x*) f ''' ·f x * 2·h ·f x * h ·f x * h ·f x * 2·h2·h h h 2·h

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

= − ξ2 (vf

1R (x*) ·h ·f ( )4

para algún valor ξ∈(x*-2·h, x*+2·h). Es decir un error de orden 0(h2).13

13 No debe confundirse el orden de exactitud de una fórmula de derivación numérica con el orden del error de dicha fórmula. Mientras que el primero señala el máximo grado de los polinomios que pueden derivarse sin error con dicha fórmula, el segundo señala la potencia menor a la que aparece elevado el parámetro “h” en la expresión del error.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

63

7.1. Obtención de fórmulas de derivación de tipo interpolatorio mediante el método de los coeficientes indeterminados. Un método alternativo para la determinación de fórmulas de derivación de tipo interpolatorio soportadas en (n+1) puntos se basa en que, según el teorema 7.2. toda fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}.

Por tanto, si se busca una fórmula cuya expresión sea: =

≈ = ∑n

(k (k* i i

i 0f (x*) f c f(x ) ,

su aplicación a los binomios (x-x*)j (0 < j < n) nos conduce a un sistema de ecuaciones cuya solución nos proporciona los pesos de la fórmula. De forma más concreta, siendo “h” un valor estrictamente positivo en función del cual se puedan escribir, para valores convenientes de γi (i = 0, ...,n), los puntos del soporte en la forma xi = x* + γ ih , la aplicación de la fórmula a los binomios

f(x) = (x-x*)j (j = 0, ..., n) conduce a que, si k < n:

=

≠⎧γ = ⎨ =⎩

∑n

ji i j

i 0

0 si j kc

j!/h si j k

En resumen, los coeficientes de la fórmula de tipo interpolatorio se obtienen resolviendo el sistema:

− − − −

+ + + +

⎡ ⎤⎢ ⎥γ γ γ γ⎢ ⎥⎢ ⎥γ γ γ γ ⎧⎢ ⎥ ⎪⎢ ⎥ ⎪⎢ ⎥γ γ γ γ ⎨⎢ ⎥γ γ γ γ⎢ ⎥⎢ ⎥γ γ γ γ⎢ ⎥⎢ ⎥⎢ ⎥γ γ γ γ⎢ ⎥⎣ ⎦

0 1 2 n2 2 2 20 1 2 n 0

1(k 1) (k 1) (k 1) (k 1)0 1 2 n 2k k k k0 1 2 n(k 1) (k 1) (k 1) (k 1)0 1 2 n n

n n n n0 1 2 n

1 1 1 ... 1...... c

... ... ... ... ... c... c... ...... c

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

⎧ ⎫⎪ ⎪⎪ ⎪⎪ ⎪⎫⎪ ⎪⎪⎪ ⎪⎪⎪ ⎪ ⎪ ⎪=⎬ ⎨ ⎬

⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎩ ⎭

⎪ ⎪⎪ ⎪⎪ ⎪⎩ ⎭

kk!

h

000...0

0...0

Una vez determinada la fórmula, su error puede también ser calculado si se busca en la forma Rf(x*) = K·h(m-k)·f(m(ξ) aplicándolo al primer binomio (x-x*)m (cuya derivada m-ésima es m!) para el que la fórmula deja de ser exacta (hecho que tendrá lugar para m > n).

Programación y Métodos Numéricos Derivación Numérica

64

Ilustremos esta forma de proceder obteniendo nuevamente la fórmula de derivación numérica hallada en el subapartado anterior mediante combinaciones de desarrollos en serie de Taylor. Ejemplo: Determinemos la fórmula de derivación numérica del mayor orden de exactitud posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h es un valor real estrictamente positivo. Según se ha visto anteriormente, los coeficientes de la fórmula, soportada por 4 puntos, se pueden obtener resolviendo el sistema obtenido al aplicar la fórmula a los cuatro binomios {1, (x-x*), (x-x*)2, (x-x*)3} . Tal sistema es:

cccc h

⎧ ⎫⎡ ⎤ ⎧ ⎫⎪ ⎪⎢ ⎥ ⎪ ⎪− − ⎪ ⎪ ⎪ ⎪⎢ ⎥ =⎨ ⎬ ⎨ ⎬⎢ ⎥ ⎪ ⎪ ⎪ ⎪⎢ ⎥ ⎪ ⎪ ⎪ ⎪− −⎣ ⎦ ⎩ ⎭⎩ ⎭

0

1

23

3

1 1 1 1 02 1 1 2 0

4 1 1 4 08 1 1 8 6 /

cuya solución nos proporciona los valores:

c c c ch h h h− −

= = = =0 1 2 43 3 3 3

1 1 1 1, , ,2· 2·

Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4. La tercera derivada de dicha función en x* es:

f’’’(x*) = 4·3·2.(x*-x*) = 0 siendo el valor aproximado dado por la fórmula:

( ) ( )f h h h hh

⎛ ⎞= − − + − − + =⎜ ⎟⎝ ⎠

4 4''' 4 4* 3

1 1 1( 2 ) ( ) 2 02 2

lo que nos indica que la fórmula es también exacta para los polinomios de orden 4º. Incrementemos una unidad el grado del binomio y apliquémosla a f(x) =(x – x*)5. El valor exacto de la tercera derivada de este binomio es:

f’’’(x*) = 5·4·3.(x*-x*) = 0

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

65

siendo ahora el valor aproximado:

( ) ( )f h h h h hh

⎛ ⎞= − − + − − + =⎜ ⎟⎝ ⎠

5 5''' 5 5 2* 3

1 1 1( 2 ) ( ) 2 30·2 2

por lo que el error de derivación está dado, para esta función por:

x xR x h h−

= − = −52 2

( *) ( *) 0 30· 30·

Si buscamos la expresión genérica del error en la forma:

v

fR x K h f ξ= 2 (( *) · · ( )

es fácil verificar, aplicándolo a (x-x*)5, que:

h K h K − −− = ⇒ = =2 2 30 130· · ·5!

5! 4

por lo que en general: vfR x h f x−

= 2 (1( *) ( *)4

En resumen la fórmula buscada es:

( ) ( )( )f f x h f x h f x h f x hh

= − − + − − + + +'''* 3

1 ( * 2 ) 2 ( * ) 2 * * 22

y el error de derivación numérica, si f [ ]C x h x h∈ − +5( * 2 , * 2 ) está dado por:

v

fR x h f ξ−= 2 (1( *) ( )

4

es decir un error de orden 2.

Programación y Métodos Numéricos Derivación Numérica

66

Ejercicio propuesto:

d) Siendo h un parámetro estrictamente positivo, determinar la fórmula de derivación numérica 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], determínese también la expresión de su error e indíquese la regularidad que se le debe exigir a f(x) para que dicha expresión sea válida. Obténgase la fórmula pedida y su error:

i) Derivando el correspondiente polinomio interpolador de Lagrange,

ii) Combinando desarrollos en serie de Taylor, y iii) Mediante el método de coeficientes indeterminados.

e) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de un valor aproximado de la segunda derivada de la función 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. Realícense los cálculos en coma flotante usando mantisas con 5 decimales significativos.

f) Obténgase una cota del error de derivación numérica válida en el

intervalo [x0, x2] para la función considerada en el apartado anterior. El error realmente cometido ¿es en todos los casos inferior a la cota hallada? Si no lo fuese justifíquese el motivo.

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

67

8. Mejora de la precisión de las fórmulas de derivación numérica. Método de extrapolación de Richardson. Como se presentó en apartados anteriores el error de las fórmulas de derivación numérica (ya sea para aproximar la primera derivada o derivadas de orden superior) responde a expresiones en las que interviene hp donde p es un número no negativo y “h” es una longitud característica 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 evalúa la derivada a los puntos del soporte, ....). Por ello, si se quiere mejorar la precisión de una fórmula de derivación numérica la primera idea que surge intuitivamente es la de reducir el valor de h (lo que generalmente se traduce en tomar puntos más próximos entre sí y más 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 fórmula numérica para los valores h0 = h, h1 = q·h, h2 = q·h1 = q2·h , ...., hj = q·hj-1 = qj·h, .... Se obtienen así diferentes valores V0, V1, ...., Vj, .... que aproximan la derivada en cuestión. Este proceso se finaliza cuando |Vj – Vj-1| sea lo suficientemente pequeño (menor que un cierto ε predefinido de antemano). Ejemplo: Si se utiliza la fórmula:

( ) ( )≈ = + − +*1 1f '(x*) f ' ·f x * h ·f x * h

2·h 2·h

para aproximar el valor de la primera derivada de la función f(x) = ex en el punto x* = 0 ( cuyo valor exacto es f’(0) = 1) se obtendrán los siguientes valores para el valor aproximado de la derivada (calculados con el programa MAPLE 7 utilizando 20 dígitos), para diferentes valores de h: h0 = 0.5, V0 = 1.042190610987.... |Error|=0.0421906... h1 = 0.25, V1 = 1.010449267232.... |Error|=0.0104492... h2 = 0.125, V2 = 1.002606201928.... |Error|=0.0026062... h3 = 0.0625, V3 = 1.000651168835.... |Error|=0.0006511... h4 = 0.03125,V4 = 1.000162768364.... |Error|=0.0001627... pudiendo observarse como el error se reduce de una aproximación a la siguiente al reducir el paso a la mitad. Nótese que el error se reduce aproximadamente a la cuarta parte alreducir el paso a la mitad al ser el orden del error de la fórmula empleada O(h2).

Programación y Métodos Numéricos Derivación Numérica

68

La reducción del “paso” h utilizado en una fórmula que presente un error de orden p proporciona una sucesión de valores aproximados { }∞=j 0

V 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 método más rápida será la convergencia hacia el valor exacto. Por ello esta reducción del paso se suele combinar con la denominada técnica de extrapolación de Richardson14 que, en síntesis, genera a partir de la sucesión { }∞=j 0

V otras

sucesiones con mayor velocidad de convergencia hacia el valor exacto. Para describir este proceso, consideremos una fórmula de derivación numérica en la que el error sea de orden p y que pueda expresarse como:

+ +

=

⎛ ⎞= + α + β +⎜ ⎟⎝ ⎠∑

n(k (m p (m 1 p 1

i ii 0

f (x*) c ·f(x ) ·f (x*)·h ·f (x*)·h ...

y denominemos Ve al valor exacto que se está aproximando, V0 al valor obtenido con el paso h y V1 al obtenido con paso q·h (donde supondremos que q < 1). Se tendrá que: Ve = V0 + + +α + β +(m p (m 1 p 1·f (x*)·h ·f (x*)·h ... Ve = V1 + + + +α + β +(m p p (m 1 p 1 p 1·f (x*)·q ·h ·f (x*)·q ·h ...

Restando ambas igualdades se obtiene: V1 – V0 = + + +α − + β − +(m p p (m 1 p 1 p 1·f (x*)·(1 q )·h ·f (x*)·(1 q )·h ... ⇒

⇒ ( )+ + +−α = − β − +

− −(m p (m 1 p 1 p 11 0

p p

V V 1·f (x*)·h · ·f (x*)·(1 q )·h ...1 q 1 q

Sustituyendo esta expresión en la primera de las expresiones del valor exacto resulta que:

++ +⎛ ⎞− −

= + + β − +⎜ ⎟− −⎝ ⎠

p 1(m 1 p 11 0

e 0 p p

V V 1 qV V ·f (x*)· 1 ·h ...1 q 1 q

14 En honor al matemático inglés Lewis Fry Richardson (1881 – 1953) que fue uno de los pioneros del cálculo científico (y en concreto el primero en aplicar métodos de diferencias finitas a la predicción del tiempo).

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

69

lo que nos indica que el valor:

− −= + =

− −

p1 0 1 0

1,1 0 p p

V V V q ·VV V1 q 1 q

aproxima al valor exacto Ve con un error de orden (p+1). Análogamente, si se considera el valor V1, obtenido con paso (q·h) y el valor V2 obtenido con paso (q2h) se tiene que: Ve = V1 + + + +α + β +(m p p (m 1 p 1 p 1·f (x*)·q ·h ·f (x*)·q ·h ... Ve = V2 + + + +α + β +(m 2p p (m 1 2p 2 p 1·f (x*)·q ·h ·f (x*)·q ·h ...

de donde un proceso análogo al que se acaba de describir nos conduce a que:

( )+

++ ⎛ ⎞− −= + + β − +⎜ ⎟− −⎝ ⎠

p 1(p 1)(m 12 1

e 1 p pV V 1 qV V ·f (x*)· 1 · qh ...1 q 1 q

lo que nos indica que − −

= + =− −

p2 1 2 1

1,2 1 p p

V V V q ·VV V1 q 1 q

aproxima el valor exacto con un error de orden (p+1). De manera más general, si dado un valor del parámetro h se consideran las aproximaciones V0,j ( j = 0, 1, ...) obtenidas con un paso (qj·h) usando una fórmula de derivación numérica que presente un error de orden p, pueden construirse los valores:

−−=

p0,j 0,j 1

1,j p

V q ·VV

1 q (j = 1, 2, ...)

verificándose, si f(x) es suficientemente regular, que:

( )+ ++ −⎛ ⎞−

= + β − +⎜ ⎟−⎝ ⎠

p 1 p 1(m 1 ( j 1)e 1,j p

1 qV V ·f (x*)· 1 · q h ...1 q

Denotando por b al valor 11· 1

1

+⎛ ⎞−= β −⎜ ⎟−⎝ ⎠

p

pqbq

escribiremos la expresión anterior

en la forma:

( ) ++ −= + +p 1(m 1 ( j 1)

e 1,jV V b·f (x*)· q h ...

Programación y Métodos Numéricos Derivación Numérica

70

Según lo anterior la sucesión de valores { }1, 1

=j jV 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 sucesión { }0, 0

=j jV .

Sobre la propia sucesión { }1, 1

=j jV puede entonces volverse a actuar. En efecto,

como: + + += + + +(m 1 p 1 p 2

e 1,1V V b·f (x*)·h O(h ) ...

y: ( ) ++ += + + +

(p 1)(m 1 p 2e 1,2V V b·f (x*)· qh O(h ) ...

se tiene que: 0 = V1,1 – V1,2 + b·f(m+1(x*)·hp+1·(1-qp+1) + O(hp+2) + .... ⇒

+ + ++

−⇒ = +

−1,2 11(m 1 p 1 p 2

p 1

V Vb·f (x*)·h O(h )

1 q

e introduciendo esta expresión en la primera de las que se han utilizado para obtenerla resulta que:

+

+ ++ +

− −= + + + = +

− −

p 11,2 1,1 1,2 1,1p 2 p 2

e 1,1 p 1 p 1

V V V q VV V O(h ) ... O(h )

1 q 1 q

De manera más general, un razonamiento como el precedente muestra que si f(x) es suficientemente regular, la sucesión { }∞

=2,j j 2V obtenida mediante:

+−

+

−=

p 11,j 1,j 1

2,j p 1

V q VV

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

converge hacia el valor exacto con un orden de convergencia (p+2). Estos nuevos valores { }∞

=2,j j 2V pueden ser mejorados construyendo a partir de

ellos una sucesión { }∞=3,j j 3

V que converja con orden (p+3) y así sucesivamente.

En general, si se parte de un método que converge con velocidad de orden p, el método de extrapolación de Richardson consiste en:

1º) Siendo 0 < q < 1 obtener las aproximaciones V0,j usando la fórmula con un paso (qjh) (j = 0, 1, ...N). 2º) Mejorar las aproximaciones calculando los valores { }

=

N

k,j j kV para

k = 1, 2, ...., N, mediante la fórmula de recurrencia:

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

71

+ −− − −

+ −

−=

(p k 1)k 1,j k 1,j 1

k,j (p k 1)

V q ·VV

1 q

Cuanto mayores sean los valores de los subíndices k y j más precisas serán las aproximaciones obtenidas.

Ejemplo: Ilustremos el método de extrapolación de Richardson calculando el valor de la

primera derivada de la función ⎛ ⎞⎜ ⎟⎜ ⎟+⎝ ⎠= π

2x1 xf(x) e ·sen( x) en el punto x*= 1 mediante

la fórmula:

+ −≈ =*

f(x * h) f(x*)f '(x*) f 'h

que presenta un error de orden 1 (es decir O(h)). 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 aplicación del método de extrapolación de Richardson. Para poder apreciar mejor la evolución 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:

= π π = −12f '(1) e · ·cos( ) 5.1796106318....

Los cálculos se han realizado con el programa MAPLE 7 utilizando una precisión de 20 dígitos (aunque en la tabla se muestran redondeados a 5 decimales significativos).

Programación y Métodos Numéricos Derivación Numérica

72

Aproximaciones

− +=−− −− − −− − − −− − − −− − − −− − −

( j 1)0,j 1,j 2,j 3,jj (h 2 ) V V V V

0 4.919211 5.66420 6.409192 5.55380 5.44340 5.121483 5.39593 5.23805 5.16960 5.176484 5.29456 5.19320 5.17825 5.179485 5.23872 5.18288 5.17944 5.179606 5.20957 5.18041 5.17 −

− − − −− − − −− − − −− − − −

959 5.179617 5.19469 5.17981 5.17961 5.179618 5.18717 5.17966 5.17961 5.179619 5.18340 5.17962 5.17961 5.1796110 5.18151 5.17961 5.17961 5.17961

Error de las aproximaciones

− += − − − −−

−− −− −−

( j 1)0,j 1,j 2,j 3,jj (h 2 ) f '(1) V f '(1) V f '(1) V f '(1) V

0 0.2604041 0.484587 1.229582 0.374191 0.263794 0.05813353 0.216317 0.058444 0.0100063 0.0031314 0.114954 0.013590 0.0013613 0.0001265 0.0591099 0.003266 0.00 −

− −

−− −− −− −− −−

6

7

8

10

8 11

01752 5.728·106 0.0299549 0.000800 0.0000222 2.292·107 0.0150764 0.000198 0.0000028 1.621·108 0.0075628 0.000049 0.0000003 9.502·109 0.0037875 0.000012 4.364·10 5.743·1010 0.0018953 0.000003 5.458 − −−9 12·10 3.529·10

La tabla de errores muestra cómo 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 más claramente en la figura siguiente en la

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid

.

73

que se representa la evolución del logaritmo decimal del valor absoluto del error frente al logaritmo decimal del tamaño de paso para las cuatro sucesiones de valores recogidos en la tabla anterior.

Puede comprobarse en la gráfica como las pendientes (indicativas del orden de convergencia) de las curvas de error son más pronunciadas cuanto más se itera en la aplicación del método de extrapolación de Richardson.

log10(h)

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

Valores proporcionados por la fórmula

Valores corregidos aplicando el método

de Richardson una vez

Valores corregidos aplicando el método

de Richardson dos veces

Valores corregidos aplicando el método

de Richardson tres veces

Programación y Métodos Numéricos Derivación Numérica

74

BIBLIOGRAFÍA SOBRE EL TEMA

[1]. BURDEN, R. L. y FAIRES, J. D. (1.998). Análisis numérico. (6ª edición).

Ed. International Thomson editores. [2]. KINCAID, D. y CHENEY, W. (1.994). Análisis numérico. Las

matemáticas del cálculo científico. Ed. Addison-Wesley Iberoamericana.

[3]. MICHAVILA, F. y CONDE, C. (1.988). Métodos de Aproximación. Ed.

Depto. de Mat. Aplic. Y Mét. Informáticos. – Univ. Politécnica de Madrid. [4]. STOER, J. y BULIRSCH, R. (1.980). Introduction to numerical analysis.

Ed. Springer Verlag. [5]. VIAÑO, J.M. y BURGUERA, M. (2000) Lecciones de métodos

numéricos, 3: Interpolación. Ed. Tórculo edicions.