Integración y diferenciación numérica

Anuncio
Capı́tulo 6
Integración y diferenciación
numérica
53
54
6.1
Introducción
Introducción
En este tema se tratará exclusivamente con funciones reales de variable real. Su objetivo
es tratar de obtener numéricamente valores para la derivada de una función en un punto,
o para la integral definida en algún intervalo, conociendo los valores de la función sólo en
algunos puntos. Obsérvese que, planteado sin ninguna restricción, o con restricciones muy
genéricas, este problema no tiene una única solución. Por ejemplo, si sólo establecemos la
restricción de que las funciones deben ser contı́nuas (o sea, de clase C 0 ) y pasar por ciertos
puntos (x0 , y0 ) . . . (xn , yn ), en la (figura 6.1) se pueden apreciar varias de ellas que cumplen
esto, y para las que obviamente, las derivadas en cualquier punto, ası́ como las integrales en
cualquier intervalo, difieren. Sin embargo, si nos restringimos a ciertas clases de funciones,
como los polinomios de grado n, la función, según se vió en el tema de interpolación, serı́a
única. Por todo ello, en la sección de derivación supondremos que para calcular la derivada
en un punto dado conocemos los valores de la función en cualesquiera puntos arbitrariamente
próximos a éste, e igualmente que para calcular la integral lo haremos de una de las funciones
que cumplen las condiciones pedidas, limitándonos a acotar el error cometido.
yy1
2
yy04
y3
x0 x1
x2
x3
x4
Figura 6.1: Varias funciones que pasan por una serie de puntos dados
En las secciones sucesivas necesitaremos dos teoremas de análisis matemático ya conocidos,
pero que se enuncian como recordatorio.
Teorema del resto
Sea f (x) una función de R en R de clase C n−1 (o sea, contı́nua y con derivadas hasta orden
n − 1 contı́nuas) en el intervalo cerrado [x, x + h] y cuya derivada de orden n existe en el
intervalo abierto ]x, x + h[. Entonces existe algún punto ξ ∈]x, x + h[ tal que
f (x + h) = f (x) + hf 0 (x) +
h2 00
hn (n)
f (x) + . . . +
f (ξ)
2
n!
El teorema es de existencia, es decir, dice que tal punto ξ está entre x y x + h, pero no cuál es.
En cualquier caso, conociendo los valores mı́nimo y máximo de las derivadas en [x, x + h] el
teorema, como veremos después, puede servir para acotar el error cometido en un desarrollo
en serie.
Propiedad de D’Arboux
Sea f (x) contı́nua en el intervalo cerrado [a, b], y supongamos que f (a) ≤ f (b). Entonces, ∀y ∈
]f (a), f (b)[ existe un punto ξ ∈]a, b[ tal que f (ξ) = y. Es decir, todos los valores comprendidos
55
entre los que la función toma en los dos extremos del intervalo se alcanzan en al menos uno
de los puntos interiores del mismo.
6.2
6.2.1
Diferenciación numérica
Métodos directos
Dada una función f de clase C 1 definida sobre un intervalo [x, x + h], estamos interesados en
calcular su derivada f 0 (x) en el punto x. Para ello, partimos de la definición de derivada:
f (x + h) − f (x)
h→0
h
f 0 (x) = lı́m
Entonces, podemos tomar un valor h pequeño y hacer una primera estimación del valor de la
derivada como
f (x + h) − f (x)
f 0 (x) '
(6.1)
h
Sin embargo, esta aproximación no permite acotar el error cometido. No obstante, si recurrimos a desarrollar en serie f alrededor de x hasta orden n-1, con resto de orden n, obtenemos
f (x + h) = f (x) + hf 0 (x) +
h2 00
hn (n)
f (x) + . . . +
f (ξ)
2
n!
Podemos particularizar a n = 2 y despejar f 0 (x) como
f 0 (x) =
f (x + h) − f (x) h 00
− f (ξ)
h
2
(6.2)
Como quiera que, si la derivada segunda existe en ]x, x + h[, el segundo término tiende a 0 al
tender h a 0, este término da el error cometido cuando no lo consideramos, es decir, cuando
aproximamos usando la ecuación (6.1).
Ejemplo: usar la ecuación (6.1) para evaluar la derivada de f (x) = cos(x) en x =
tomando h = 0,01, y evaluar luego el error cometido usando la ecuación (6.2).
π
4
cos( π4 + 0,01) − cos( π4 )
π
f( )'
= −0,71063051
4
0,01
0
El término de error será
h 00
f (ξ) |= 0,005 | cos(ξ) |≤ 0,005
2
de modo que la cota superior para el error será a = 0,005. Ası́ pues, f 0 ( π4 ) = −0,711 ± 0,005.
|
Como hemos visto, el término de error es proporcional al tamaño del paso, h. Por ello,
deberı́a tomarse un tamaño de paso pequeño. Alternativamente, podemos preguntarnos si
existen fórmulas más precisas, que hagan el error proporcional a otras potencias de h. En
efecto, si tomamos tres términos del desarrollo en serie de Taylor de f alrededor de x, y
además usamos dos valores de h, uno positivo y otro negativo, obtenemos
h2 00
f (x) +
2
h2
f (x − h) = f (x) − hf 0 (x) + f 00 (x) −
2
f (x + h) = f (x) + hf 0 (x) +
h3 000
f (ξ1 )
6
h3 000
f (ξ2 )
6
(6.3)
(6.4)
56
Diferenciación numérica
Restando dichas ecuaciones, y despejando la derivada se obtiene
f 0 (x) =
f (x + h) − f (x − h) h2 000
− (f (ξ1 ) + f 000 (ξ2 ))
2h
6
Si ahora suponemos que f es al menos de clase C 3 en el intervalo ]ξ1 , ξ2 [, por la propiedad de
000
000 (ξ )
2
, con lo que la derivada
D’Arboux, existe un punto ξ ∈]ξ1 , ξ2 [ tal que f 000 (ξ) = f (ξ1 )+f
2
queda
f (x + h) − f (x − h) h2 000
− f (ξ)
(6.5)
f 0 (x) =
2h
3
Observemos que el término de error es ahora del orden de h 2 , que si h es pequeña, es menor
que h, resultado obtenido en el caso anterior.
Por otra parte, es posible también usar ecuaciones similares a la (6.3) para calcular derivadas de orden superior. Por ejemplo, para la segunda,
h2 00
f (x) +
2
h2
f (x − h) = f (x) − hf 0 (x) + f 00 (x) −
2
f (x + h) = f (x) + hf 0 (x) +
h3 000
f (x) +
6
h3 000
f (x) +
6
h4 IV
f (ξ1 )
24
h4 IV
f (ξ2 )
24
(6.6)
(6.7)
Sumando ambas ecuaciones, usando de nuevo la propiedad de D’Arboux para la derivada
cuarta, y despejando f 00 (x), queda
f 00 (x) =
f (x + h) − 2f (x) + f (x − h) h2 IV
− f (ξ)
h2
12
Se deja como ejercicio el cálculo de una expresión similar para la derivada tercera.
Nótese que el cálculo de cualquier derivada involucra al valor de la función en puntos x + h
ó x − h. Si la función es conocida explı́citamente (p. ej., si tenemos su expresión analı́tica, o
un algoritmo seguro para su cálculo) esto es razonable. Pero si la función es el resultado de
algún experimento, o debe estimarse por procedimientos que vengan afectados de gran error,
no deberı́an usarse las fórmulas anteriores para la estimación de la derivada, dado que las
diferencias entre dos cantidades muy próximas que aparecen en los numeradores, ası́ como la
división por cantidades muy pequeñas, amplifican los errores.
6.2.2
Extrapolación de Richardson
Con este procedimiento trataremos de mejorar las ecuaciones obtenidas anteriormente para
conseguir aún más precisión en la estimación de la derivada de f en un punto x. Supongamos
que f (x) es de clase C n en [x, x + h]. En tal caso, su desarrollo en serie de Taylor alrededor
de x para los puntos x + h y x − h será de la forma
f (x + h) =
∞
X
hk
k=0
f (x − h) =
k!
f (k) (x)
∞
X
(−1)k hk
k=0
k!
f (k) (x)
Extrapolación de Richardson
57
Restando ambas ecuaciones, todos los términos de orden par se cancelan, resultando
f (x + h) − f (x − h) = 2hf 0 (x) +
2
2 3 000
h f (x) + h5 f (V ) (x) + . . .
3!
5!
de donde, despejando f 0 (x),
1 2 (3)
1 4 (V )
f (x + h) − f (x − h)
−
h f (x) + h f (x) + . . .
f (x) =
2h
3!
5!
0
lo que se puede escribir como
L = ϕ(h) + a2 h2 + a4 h4 + a6 h6 + . . .
(6.8)
(x−h)
1
en la que L = f 0 (x), la función ϕ(h) se define como f (x+h)−f
y ak = − (k+1)!
f (k+1) (x).
2h
Nótese que, debido a su definición, con h en el denominador, ϕ(h) sólo puede evaluarse para
valores de h distintos de 0, aunque arbitrariamente próximos. Nótese igualmente que el error
si damos ϕ(h) como valor para la derivada depende de términos en potencias de h, siendo
el término dominante el correspondiente a h 2 . La ecuación (6.8) da la primera estimación de
la derivada usando el método de Richardson, pero se puede continuar para conseguir que el
término dominante del error sea aún más pequeño. Para ello, escribamos la ecuación (6.8)
evaluándola en h2 , lo que da
h2
h4
h
+ a4 + . . .
L = ϕ( ) + a2
2
4
16
(6.9)
Restandole ahora a la ecuación (6.9) multiplicada por 4 la ecuación (6.8), obtenemos
h
h4
h6
3L = 4ϕ( ) − ϕ(h) − 3a4 − 15a6
− ...
2
4
16
de donde podemos despejar la derivada L que buscamos como
1
h4
h6
4 h
− 15a6
− ...
L = ϕ( ) − ϕ(h) − 3a4
3 2
3
4
16
(6.10)
Esto significa que, usando una simple combinación de ϕ(h) y ϕ( h2 ), hemos obtenido una
precisión del orden de h4 , frente al orden h2 que habı́amos obtenido usando sólo ϕ(h).
Análogamente se puede repetir el proceso tantas veces como se quiera; el siguente paso
definirı́a ψ(h) = 34 ϕ( h2 ) − 31 ϕ(h) con lo que la ecuación (6.10) evaluada en h y en h2 queda
L = ψ(h) + b4 h4 + b6 h6 + . . .
h
h4
h6
L = ψ( ) + b4 + b6 + . . .
2
16
64
de donde se puede despejar L, multiplicando la segunda ecuación por 16 y restándole la
primera:
16 h
1
h6
L = ψ( ) − ψ(h) − b6 − . . .
15 2
15
20
que es una estimación de f 0 (x) con precisión del orden de h6 .
58
Integración numérica
Escogido un valor apropiado, digamos 1, para h, la repetición del proceso lleva a la siguiente
fórmula general:
D(n, 0) = L + O(h2 )
D(n, 1) = L + O(h4 )
D(n, 2) = L + O(h6 )
...
D(n, k − 1) = L + O(h2k )
siendo D(n, 0) = ϕ( 2hn ) y el resto de las cantidades D definidas recursivamente como
D(n, k) =
4k
1
D(n, k − 1) − k
D(n − 1, k − 1)
k
4 −1
4 −1
Es obvio verificar que D(0, 0) = ϕ(h), D(1, 0) = ϕ( h2 ) y D(1, 1) = ψ(h).
Finalmente, recalquemos una vez más que todo esto involucra el conocimiento de f en
valores próximos a x (en concreto, en x + 2hn ) por lo que sólo deberá usarse si dichos valores
están disponibles, o se pueden calcular sin gran error.
6.3
Integración numérica
Dada una función f definida sobre un intervalo [a, b], estamos interesados en calcular
Z b
J(f ) =
f (x)dx
(6.11)
a
suponiendo que esta integral tenga sentido para la función f . La cuadratura o integración
numérica consiste en obtener fórmulas aproximadas para calcular la integral J(f ) de f . Estos
métodos son de gran utilidad cuando la integral no se puede calcular por métodos analı́ticos,
su cálculo resulta muy costoso y estamos interesados en una solución con precisión finita dada
o bien sólo disponemos de una tabla de valores de la función (es decir, no conocemos la forma
analı́tica de f ).
6.3.1
Integración vı́a interpolación polinomial
Una estrategia muy útil para calcular el valor numérico de la integral dada por la ecuación (6.11) consiste en reemplazar f por otra función g, fácil de integrar, que aproxima a f
de forma adecuada. Si f ≈ g, se deduce que
Z b
Z b
f (x)dx ≈
g(x)dx
a
a
Los polinomios son buenos candidatos para el papel de g. De hecho, g puede ser un polinomio
que interpola a f en cierto conjunto de nodos 1 .
1
Por ejemplo, también se puede recurrir a splines para interpolar a f y aprovechar que estas funciones son
fácilmente integrables.
Regla del trapecio
59
Supongamos que deseamos calcular la integral (6.11). Podemos elegir una serie de nudos,
x0 , x1 , . . . , xn en el intervalo [a, b] e iniciar un proceso de interpolación de Lagrange (ver
apartado 3.1.2 para una descripción de los polinomios de interpolación de Lagrange). El
polinomio de grado menor o igual a n que interpola a f en los nudos es:
p(x) =
n
X
f (xi )`i (x)
(6.12)
i=0
La integral (6.11) se puede escribir entonces como:
Z b
Z b
n Z b
X
f (xi )`i (x)dx
p(x)dx =
f (x)dx ≈
a
a
a
i=0
Es decir, tenemos una fórmula general que se puede emplear para cualquier f y que tiene la
forma:
Z b
n
X
f (x)dx ≈
Ai f (xi )
(6.13)
a
i=0
en donde
Ai =
6.3.2
Z
b
`i (x)dx
a
Regla del trapecio
Si en la expresión (6.13) empleamos polinomios de grado n = 1 y tomamos como nudos x 0 = a
y x1 = b, tenemos el caso más sencillo posible, en donde los polinomios de interpolación son:
`0 (x) =
`1 (x) =
por lo que:
A0 =
Z
b
`0 (x)dx =
a
b−x
b−a
x−a
b−a
1
(b − a) =
2
Z
b
`1 (x)dx = A1
a
La fórmula de cuadratura correspondiente es:
Z b
b−a
f (x)dx ≈
[f (a) + f (b)]
2
a
Esta expresión se conoce como regla del trapecio y proporciona un resultado exacto para
todas las funciones de grado menor o igual a 1.
Si en el intervalo de integración [a, b] se hace una partición en n subintervalos como la
siguiente:
a = x 0 < x1 < · · · < x n = b
en donde los puntos se encuentran equiespaciados de acuerdo con las expresiones:
xi =
a + ih
h = (b − a)/n
(0 ≤ i ≤ n)
60
Integración numérica
entonces se puede aplicar la regla del trapecio a cada uno de los subintervalos. Es ası́ como
se obtiene la regla del trapecio compuesta, que adopta la forma:
#
"
Z b
n−1
X
h
f (a + ih) + f (b)
f (x)dx ≈
f (a) + 2
2
a
i=1
6.3.3
Regla de Simpson
Empleando un razonamiento similar al anterior, podemos tomar un polinomio de grado n = 2
a+b
para interpolar a f , que pase por (a, f (a)), ( a+b
2 , f ( 2 )) y (b, f (b)), con lo que obtendrı́amos
la conocida regla de Simpson:
Z b
a+b
b−a
f (x)dx ≈
f (a) + 4f
+ f (b)
(6.14)
6
2
a
que es exacta para todos los polinomios de grado ≤ 2 y curiosamente, exacta para todos los
polinomios de grado ≤ 3.
En los cálculos prácticos se emplea, generalmente, la regla de Simpson compuesta,
en la que el intervalo de integración [a, b] se divide en un número par, n, de subintervalos.
Tenemos entonces:
xi = a + ih (0 ≤ i ≤ n)
en donde
h = (b − a)/n
Aplicando la regla de Simpson (6.14) en cada uno de los subintervalos se obtiene la expresión
final:


Z b
n/2
n/2
X
X
h
(6.15)
f (x2i−2 ) + 4
f (x2i−1 ) + f (xn )
f (x)dx ≈ f (x0 ) + 2
3
a
i=2
i=1
Descargar