Cálculo numérico

Anuncio
Cálculo numérico
Interpolación cúbica por tramos. Integración numérica.
22 noviembre, 2010.
1
Interpolación cúbica por tramos
Los interpolantes llamados splines tienen propiedades que los hacen útiles desde el punto de
vista de las aplicaciones. A continuación obtendremos las ecuaciones que definen a la clase
de splines cúbicos cuya tercera derivada cumple con cierta propiedad en los extremos del
intervalo de definición.
Partiremos de un conjunto de n parejas de números reales (xi , yi ), xi < xi+1 , i =
1, . . . , n − 1 para las cuales se desea construir una función de interpolación polinomial por
tramos en el intervalo [x1 , xn ]. Las propiedades de s, la función de interpolación, son las
siguientes:
• el grado de los polinomios debe ser 3
• s debe ser dos veces continuamente diferenciable en [x1 , xn ].
De aquı́ en adelante nos referiremos a los elementos del conjunto {x1 , x2 , . . . , xn } como los
nodos.
Observa que la restricción sobre el grado de los polinomios obedece al comportamiento
anómalo de la interpolación polinomial clásica. Un ejemplo muy difundido de este fenómeno
es la llamada función de Runge, cuyos polinomios de interpolación oscilan en los extremos
del intervalo conforme se incrementa el grado.
Una manera de resolver el problema de las oscilaciones de los polinomios, asociado fundamentalmente con grados altos, consiste en construir una función de interpolación por tramos,
en donde cada tramo es un polinomio de grado bajo, tı́picamente 2 ó 3. La construcción
generalmente deja un par de grados de libertad, uno en cada extremo del intervalo [x1 , xn ],
lo cual ofrece flexibilidad para determinar propiedades del interpolante en dichos puntos.
Consideremos ahora las siguientes definiciones
hi = xi+1 − xi ,
x − xi
w=
,
hi
w
b = 1 − w,
en términos de las cuales se formula la función de interpolación cúbica en el intervalo [xi , xi+1 ]
s(x) = wyi+1 + wy
b i + h2i [(w 3 − w)σi+1 + (w
b3 − w)σ
b i ],
1
(1)
en donde σi , σi+1 son constantes a determinar. Observar que, independientemente de los
valores de σi , σi+1 , se cumple
s(xi ) = yi ,
s(xi+1 ) = yi+1 .
Las definiciones anteriores tienen como finalidad calcular eficientemente los coeficientes de
los polinomios de interpolación en cada segmento [xi , xi+1 ]. En términos formales hemos
escogido una base adecuada del conjunto de los polinomios de grado ≤ 3. Esta base, en la
variable w, es
{w, 1 − w, w 3, (1 − w)3 }.
(2)
La formulación (1) es muy eficiente en términos computacionales debido a que solamente
tiene dos parámetros a determinar por segmento: σi y σi+1 .
Las derivadas de s juegan un papel muy importante, ya que en los nodos deben cumplirse
las condiciones de diferenciabilidad. Utilizando la regla de la cadena y las definiciones de
h, w, w
b tenemos que:
yi+1 − yi
+ hi [(3w 2 − 1)σi+1 − (3w
b2 − 1)σi ],
hi
s′′ (x) = 6wσi+1 + 6wσ
b i,
6(σi+1 − σi )
,
s′′′ (x) =
hi
s′ (x) =
(3)
(4)
(5)
en particular s′′ es una función lineal de x que interpola los valores 6σi y 6σi+1 , es decir
s′′ (xi ) = 6σi ,
s′′ (xi+1 ) = 6σi+1 .
Observar que la relación anterior implica que se cumple la condición de continuidad de la
segunda derivada del interpolante en cada nodo.
La condición de continuidad de las primeras derivadas en los nodos se obtiene evaluando
a la derivada de s(x) en los extremos de cada subintervalo, para la cual es necesario definir
las derivadas por la izquierda y derecha respectivamente
s′+ (xi ) = ∆i − hi (σi+1 + 2σi )
s′− (xi+1 ) = ∆i + hi (2σi+1 + σi ),
en donde ∆i = (yi+1 − yi)/hi . Entonces dicha condición queda establecida como sigue:
s′− (xi ) = s′+ (xi ),
i = 2, . . . , n − 1.
Esto equivale al siguiente sistema de n − 2 ecuaciones lineales con n incógnitas (las componentes del vector σ)
hi−1 σi−1 + 2(hi−1 + hi )σi + hi σi+1 = ∆i − ∆i−1 ,
i = 2, . . . , n − 1.
Por lo tanto, es necesario agregar dos condiciones para obtener un sistema cuadrado. Precisamente esta caracterı́stica hace que un spline sea tan versátil. En nuestro caso, definiremos
2
la tercera derivada de s(x) en los extremos x1 , xn , en función de las diferencias divididas de
(3)
tercer orden ∆i
yi+1 − yi
,
xi+1 − xi
∆i+1 − ∆i
=
,
xi+2 − xi
∆i =
(2)
∆i
(2)
(3)
∆i
=
(2)
∆i+1 − ∆i
.
xi+3 − xi
Esto se debe a que las diferencias divididas aproximan a la derivada correspondiente de s(x),
en particular
(3)
(3)
6∆1 ≈ s′′′ (x1 ), 6∆n−3 ≈ s′′′ (xn ).
Lo cual proporciona dos condiciones para completar el sistema de ecuaciones lineales
σ2 − σ1
(3)
= ∆1
h1
σn − σn−1
(3)
= ∆n−3 .
hn−1
Haciendo algunas simplificaciones, el sistema final se puede plantear de la siguiente manera:


 

(3)
−h1
h1
0 ···
0
0
σ1
h21 ∆1
 h1 2(h1 + h2 ) h2 · · ·
  σ2   ∆2 − ∆1 
0
0


 


  ..  

..
.
.
.
.
.
.
.
.

 .  = 
.
.
.
.
.
.


 

 0
···
0 hn−2 2(hn−2 + hn−1 ) hn−1   σn−1   ∆n−1 − ∆n−2 
(3)
0
···
0
hn−1
−hn−1
σn
−h2n−1 ∆n−3
En lo que resta de la discusión, esencialmente por motivos de espacio, nos referiremos al
sistema anterior utilizando la notación
Hσ = ∆.
Es inmediato observar que H tiene las siguientes caracterı́sticas:
• simétrica, tridiagonal
• diagonalmente dominante,
• no singular,
por lo tanto el vector solución σ existe y es único. Desde el punto de vista computacional σ
se puede obtener utilizando diferentes técnicas. Sin embargo eliminación gaussiana (EG) sin
pivoteo resulta ser extremadamente eficiente en estos casos. Observa con cuidado que EG
preserva la estructura cero de H en el siguiente sentido: H y su factorización LU tienen ceros
en las mismas posiciones. Por lo tanto, EG no requiere de espacio extra para almacenar L
y U.
En la Tabla siguiente mostramos los requerimientos computacionales (memoria y número
de operaciones) para factorizar H y obtener el vector solución σ.
3
H, σ, ∆
eliminación
sust h adelante
sust h atrás
memoria
4×n−1
0
0
0
multiplicaciones
2×n−4
n−1
2×n−1
Finalmente, los coeficientes de los polinomios de interpolación se pueden obtener a partir
de los valores de las constantes σi . Definiendo a s(x) como:
s(x) = yi + bi (x − xi ) + ci (x − xi )2 + di(x − xi )3 ,
las expresiones para los coeficientes bi , ci , di en términos de las componentes de σ son las
siguientes:
(yi+1 − yi )
− hi (σi+1 + 2σi ),
hi
= 3σi ,
σi+1 − σi
.
=
hi
bi =
ci
di
Estos coeficientes se pueden manipular para obtener, por ejemplo, expresiones explı́citas que
aproximen a la derivada o a la integral definida de la función desconocida f en el intervalo
[x1 , xn ].
Es importante recordar que las terceras derivadas del spline se calcularon utilizando
diferencias divididas de tercer orden. Si el espaciamiento en los extremos cumple con las
restricciones vistas en clase, esta aproximación es correcta. Otra manera, frecuente en aplicaciones en donde no existe información de la función en los extremos del intervalo [x1 , xn ],
es considerar que las derivadas segundas del spline se anulan en x1 y en xn y por lo tanto
σ1 = σn = 0. Este caso es conocido como spline natural.
2
Integración numérica
Uno de los problemas básicos en análisis numérico es calcular aproximaciones para la integral
Z b
I(f ) =
f (x) dx
(6)
a
de una función continua f : [a, b] → R.
Existen diversas situaciones en las cuales el teorema fundamental del cálculo no es de
utilidad para obtener (1) en forma cerrada. Por ejemplo, cuando f no está disponible en
forma analı́tica, es decir que solamente podemos obtener valores de f para un número finito
de valores de x.
Los algoritmos de integración numérica se basan, prácticamente en su mayorı́a, en hacer
particiones finitas del intervalo [a, b]. Entonces la integral (6) se estima como la suma de las
aproximaciones en cada subintervalo [xi , xi+1 ] definidas como
(xi+1 − xi )fi = hi fi ,
4
en donde fi se obtiene mediante fórmulas o reglas llamadas cuadraturas. Las cuadraturas
más elementales son la regla del trapecio y la regla del rectángulo, en donde fi se calcula
como sigue
(xi+1 + xi )
,
2
f (xi+1 ) + f (xi )
.
=
2
fiT = f (yi),
fiR
yi =
Las reglas compuestas asociadas consisten en sumar las aproximaciones en cada subintervalo,
por lo tanto
R(f ) =
T (f ) =
n
X
i=1
n
X
i=1
f (yi)hi ,
f (xi+1 ) + f (xi )
hi
2
son las reglas compuestas del rectángulo y del trapecio respectivamente.
En esta sección vamos a estudiar el error de aproximación de las reglas anteriores. Es
decir trataremos de obtener cotas para las cantidades
|I(f ) − R(f )|,
|I(f ) − T (f )|.
Para tales fines, la notación introducida en la sección anterior cambiará ligeramente. Ahora
consideraremos n + 1 nodos en el intervalo [a, b], en donde x1 = a y xn+1 = b. Denotaremos
por paneles a los subintervalos de la forma [xi , xi+1 ].
La herramienta de análisis es la serie de Taylor de f con centro en yi, el punto medio del
panel [xi , xi+1 ].
1
1
f (x) = f (yi) + (x − yi )f ′ (yi ) + (x − yi)2 f ′′ (yi) + · · · + (x − yi )4 f (4) (yi ) + O(h5i ),
2
4!
(7)
para lo cual requeriremos que f sea 5 veces continuamente diferenciable en el intervalo [a, b].
De la expresión anterior es fácil observar que la integral de f en el i-ésimo panel está
dada por
Z xi+1
1
1 5 (4)
f (x) dx = hi f (yi) + h3i f ′′ (yi) +
hi f (yi ) + · · · + O(h6 ),
(8)
24
1920
xi
y que por lo tanto que el término dominante de error en la regla rectangular es de orden
cúbico. El error total en la regla rectangular es la suma de los errores en cada panel
n
1 X 3 ′′
h f (yi ),
E=
24 i=1 i
(9)
de donde se puede concluir inmediatamente que |E| = O(h2), h = max{hi , i = 1, 2, . . . , n}.
5
Consideremos el análisis de la regla trapezoidal, ahora necesitamos los valores de f en xi
y xi+1 respectivamente
1
1
1
1 4 (4)
f (xi ) = f (yi) − hi f ′ (yi ) + h2i f ′′ (yi ) − h3i (yi)f ′′′ (yi) +
h f (yi ) + · · ·
2
8
48
384 i
1
1
1
1 4 (4)
f (xi+1 ) = f (yi) + hi f ′ (yi ) + h2i f ′′ (yi ) + h3i (yi )f ′′′ (yi ) +
h f (yi ) + · · ·
2
8
48
384 i
de estas expresiones se obtiene
f (xi+1 ) + f (xi )
1
1 4 iv
= f (yi ) + h2i f ′′ (yi ) +
h f (yi) + · · ·
2
8
384 i
Combinando (10) con el desarrollo de la integral (8) tenemos
Z xi+1
1
1 5 (4)
f (xi+1 ) + f (xi )
hi − h3i f ′′ (yi ) −
h f (yi ) + · · ·
f (x) dx =
2
12
480 i
xi
(10)
(11)
Por lo tanto el error en la regla trapezoidal, en cada panel, es de orden cúbico. El error total
es −2E, es decir dos veces el error obtenido en la regla rectangular.
Si definimos la cantidad
n
1 X 5 (4)
F =
h f (yi)
1920 i=1 i
entonces obtenemos el resultado siguiente
I(f ) = R(f ) + E + F + · · ·
= T (f ) − 2E − 4F + · · ·
Observa con cuidado que una combinación lineal de la regla trapezoidal y de la regla rectangular permite cancelar el término E. La regla resultante es conocida como la regla de
Simpson.
Desde un punto de vista geométrico, la regla compuesta de Simpson se puede definir
como sigue:
1. construir la parábola pi que pasa por los puntos
(xi , yi),
2. obtener
(yi , f (yi)),
Z
(xi+1 , yi+1 ),
xi+1
pi (x) dx,
xi
3. obtener la suma
n Z
X
i=1
xi+1
pi (x) dx.
xi
6
Ejercicios
1. Verifica que en cualquier spline cúbico:
• Los n nodos aportan 2(n − 1) condiciones.
• La continuidad de las derivadas aporta n − 2 condiciones.
• La continuidad de las segundas derivadas contribuye con n − 2 condiciones.
• El número de coeficientes a determinar es 4(n − 1). Por lo tanto quedan dos
grados de libertad.
2. Prueba que el conjunto (2) es una base. Sugerencia: consultar el libro de Carl D.
Meyer.
3. Obtener las expresiones (3)-(5).
4. Utiliza σ para obtener las expresiones para los coeficientes de los polinomios de interpolación
pi (x) = yi + bi (x − xi ) + ci (x − xi )2 + di (x − xi )3 ,
5. Modifica las ecuaciones del spline descrito en estas notas para obtener un spline natural;
es decir un spline en el cual
σ1 = σn = 0.
6. ¿Cuáles son las propiedades matemáticas de la matriz de coeficientes en un spline
natural.
7. Obtener la expresión (11) a partir de (8) y de (10).
8. Derivar la regla de Simpson y probar que la fórmula resultante es igual a la combinación
2
1
S(f ) = R(f ) + T (f ),
3
3
en donde R(f ) y T (f ) son las aproximaciones obtenidas por la regla del rectángulo y
la regla del trapecio respectivamente.
9. Probar que
Z
a
b
s(x) dx =
n
X
hi
i
fi + fi+1
ci + ci+1
− h3i
.
2
12
10. Escribe un programa en Matlab que obtenga aproximaciones a π mediante la integral
Z 1
4
dx.
π=
2
0 1+x
11. Utiliza: a) la regla del rectángulo; b) la regla del trapecio; c) la regla de Simpson. Compara los resultados obtenidos por las tres reglas cuando el espaciamiento es uniforme
h = 1/n. Usa los siguientes valores n = 8, 32, 128.
7
12. Utiliza procedimientos de Matlab para interpolar la función de Runge
f (x) =
1
,
1 + 25x2
x ∈ [−1, 1]
en 21 puntos igualmente espaciados del intervalo de definición. Compara los resultados
con los obtenidos con un polinomio de grado 20 que interpola a los mismos datos.
8
Descargar