Notas de Clase

Anuncio
———————————————————–
MÉTODOS NUMÉRICOS
- NOTAS DE CLASE ———————————————————–
René Escalante
Departamento de Cómputo Cientı́fico y Estadı́stica
UNIVERSIDAD SIMON BOLIVAR
- Noviembre, 2014 -
Contenido
1 Aproximación de funciones
1.1 El teorema de aproximación de Weierstrass y el teorema de
Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Interpolación polinómica . . . . . . . . . . . . . . . . . . . . .
1.2.1 La forma de Lagrange . . . . . . . . . . . . . . . . . .
1.2.2 Otras formas . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 El método de las diferencias divididas . . . . . . . . . .
1.2.4 Error del polinomio de interpolación . . . . . . . . . .
1.3 Interpolación de Hermite . . . . . . . . . . . . . . . . . . . . .
1.4 Interpolación polinómica a trozos . . . . . . . . . . . . . . . .
1.4.1 Interpolación local . . . . . . . . . . . . . . . . . . . .
1.4.2 Funciones splines . . . . . . . . . . . . . . . . . . . . .
1.5 Mejores aproximaciones . . . . . . . . . . . . . . . . . . . . .
1.5.1 Mı́nimos cuadrados . . . . . . . . . . . . . . . . . . . .
1.5.2 El enfoque de Chebyshev . . . . . . . . . . . . . . . . .
1.6 Interpolación trigonométrica . . . . . . . . . . . . . . . . . . .
1.6.1 Series de Fourier y la transformada discreta de Fourier
1.6.2 La transformada rápida de Fourier . . . . . . . . . . .
1.7 Experimentación numérica adicional . . . . . . . . . . . . . . .
1.8 Apéndice al Capı́tulo 6 . . . . . . . . . . . . . . . . . . . . . .
1
3
5
6
6
9
12
15
15
17
22
23
25
29
29
33
35
37
2 Diferenciación e integración numéricas
2.1 Diferenciación numérica . . . . . . . . . . . . .
2.2 Integración numérica . . . . . . . . . . . . . . .
2.2.1 Fórmulas de Newton-Cotes y extensiones
2.2.2 Cuadratura gaussiana . . . . . . . . . .
2.3 Extrapolación de Richardson . . . . . . . . . . .
2.4 Experimentación numérica adicional . . . . . . .
41
42
45
45
49
53
54
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
ii
3 Problemas de valores iniciales
3.1 Preliminares . . . . . . . . . . . . . .
3.2 EDOs de primer orden . . . . . . . .
3.2.1 Métodos de un paso . . . . .
3.2.2 Métodos multi-paso . . . . . .
3.3 Sistemas y EDOs de orden mayor . .
3.4 Estabilidad y ecuaciones de stiff . . .
3.5 Experimentación numérica adicional .
4 Problemas con valores en la frontera
4.1 Método del disparo . . . . . . . . . .
4.2 Método de las diferencias finitas . . .
4.3 Métodos de proyecciones . . . . . . .
4.3.1 Método de colocación . . . . .
4.3.2 Método de Galerkin . . . . . .
Referencias
CONTENIDO
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
59
61
62
70
78
80
88
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
93
. 97
. 101
. 104
. 105
. 108
217
Capı́tulo 1
Aproximación de funciones
Desarrollamos aquı́ el importante tema de aproximación de funciones basados
principalmente en las referencias [2], [6], [29] y [34].
1.1
El teorema de aproximación de Weierstrass y el teorema de Taylor
A fin de justificar el uso de polinomios para aproximar funciones continuas,
introducimos aquı́ el importante resultado que sigue.
Teorema 1.1 (Teorema de Weierstrass) Si f ∈ C[a, b] y si ϵ > 0, entonces existe un polinomio p que satisface |f (x) − p(x)| ≤ ϵ en [a, b].
Demostración: Sin pérdida de generalidad podemos asumir que [a, b] =
[0, 1] (¿por qué?). Consideremos la sucesión de polinomios {Bn } definida en
el intervalo [0, 1] por
n ( )
∑
n
(Bn f )(x) =
f (k/n)xk (1 − x)n−k ,
k
k=0
los cuales son los denominados polinomios de Bernstein1 . Resulta importante interpretar Bn como un operador lineal sobre C[0, 1]. Es fácil verificar
la linealidad de Bn (i.e., Bn (αf + βg) = αBn f + βBn g, con α, β ∈ R y
1
Propuestos por Serge Bernstein en 1912. Estos polinomios han sido utilizados también
en el diseño asistido por computador.
1
2
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
f, g ∈ C[0, 1]). Observemos además que si f ≥ 0 entonces también Bn f ≥ 02 .
A partir de estas dos propiedades se puede demostrar [29, §6.1] que si tenemos una sucesión, digamos An , de operadores lineales y positivos, definidos
en C[a, b], y si ∥An f − f ∥∞ → 0 para f (x) igual a 1, x y x2 (como en efecto
ocurre), entonces lo mismo ocurrirá para toda f ∈ C[a, b].
2
Observación:
• Los polinomios de Bernstein imitan muy bien el comportamiento cualitativo de f [9, §1.3]. Por ejemplo, si f ∈ C k [0, 1], entonces ∥f (k) −
(Bn f )(k) ∥∞ → 0 cuando n → ∞. Sin embargo, esta propiedad tiene su
costo, pues la convergencia es por lo general muy pobre [2].
El teorema de Taylor
El teorema de Taylor es útil cuando trabajamos con funciones que tienen
un número importante de derivadas continuas, pero cuando tenemos datos
obtenidos de un experimento o funciones con un número pequeño de derivadas,
entonces la aplicación del teorema de Taylor no es , en general, recomendable.
Recordemos que si f ∈ C n+1 [a, b] para algún n ≥ 0 y si x, x0 ∈ [a, b],
entonces
f (x) =
n
∑
f (k) (x0 )
k=0
k!
(x − x0 )k +
f (n+1) (ξ)
(x − x0 )n+1 ,
(n + 1)!
para algún ξ ≡ ξ(x) entre x0 y x. En particular, si x0 = 0, tenemos la
conocida serie de Maclaurin. A partir del teorema de Taylor obtenemos las
denominadas series
de potencias de muchas funciones ∑
importantes, tales
∑
∞
i x2i+1
i
i
como sen x = ∞
(−1)
(−∞
<
x
<
∞),
1/x
=
i=0
i=0 (−1) (x − 1)
(2i+1)!
(0 < x < 2), etc. El siguiente resultado trata sobre su convergencia.
∑
i
Teorema 1.2 Para toda serie de potencias ∞
i=0 ai (x−x0 ) existe un número
r ∈ [0, ∞], denominado el radio de convergencia de la serie, tal que la
serie converge
para |x − x0 | < r y diverge para |x − x0 | > r. Más aun,
∑
a
(x
− x0 )i define
continuamente diferenciable en
s(x) = ∞
i=0 i
∑∞ una función
i−1
′
tiene∫ radio de convergencia r.
(x0 − r, x0 + r) y s (x) = i=0 iai (x − x0 )
x
Además, si |a − x0 | < r y |x − x0 | < r, entonces a s(t)dt puede calcularse
integrando la serie de s término a término, obteniéndose una serie que tiene
también radio de convergencia r.
2
Es decir, los operadores Bn son positivos.
1.2. INTERPOLACIÓN POLINÓMICA
1.2
3
Interpolación polinómica
Dado un conjunto finito de puntos, el concepto de interpolación implica a
grosso modo escoger una función, digamos p, de una clase dada de funciones,
de forma tal que la representación gráfica de la misma contenga al conjunto
finito de puntos. Este conjunto finito de puntos o datos, pueden haberse
obtenido a través de la realización de un experimento o a través de la simple
observación de un fenómeno fı́sico. Los datos también pueden considerarse
como coordenadas de puntos de una función f . En este sentido, decimos que
p interpola a la función f en un conjunto de puntos diferentes, o nodos, si
los valores de p y f en esos puntos coinciden. La clase de funciones a la que
nos referimos aquı́ (y a la que pertenece p) es la de los polinomios.
El propósito principal de la interpolación es el de interpolar datos conocidos en puntos discretos tal que los valores funcionales entre esos puntos
puedan ser estimados.
La denominada teorı́a de interpolación polinómica tiene importantes
aplicaciones en la derivación de otros métodos en diferentes áreas del cálculo
cientı́fico, como por ejemplo en la teorı́a de aproximación, en integración
numérica y en la resolución numérica de ecuaciones diferenciales. Otra aplicación la encontramos cuando se desarrollan medios para trabajar con funciones que son almacenadas en forma tabular. La interpolación es una herramienta importante cuando no podemos evaluar rápidamente la función en
puntos intermedios.
Un resultado fundamental en la teorı́a de interpolación polinómica viene
dado por el siguiente resultado.
Teorema 1.3 Dados n + 1 puntos (números reales) distintos x0 , x1 , . . . , xn y
n + 1 valores arbitrarios y0 , y1 , . . . , yn , existe un único polinomio pn de grado
≤ n que interpola a yi en xi , para todo i = 0, 1, . . . , n (i.e., pn (xi ) = yi , para
i = 0, 1, . . . , n).
4
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
Demostración: Existencia. Sigue por inducción. Para n = 0 siempre
podemos escoger una función constante p0 (de grado 0) tal que p0 (x0 ) =
y0 . Supongamos pues que existe un polinomio de grado ≤ k − 1 tal que
pk−1 (xi ) = yi para i = 0, 1, . . . , k − 1, y definamos el polinomio pk como
pk (x) = pk−1 (x) + λ
k−1
∏
(x − xj ),
j=0
el cual es un polinomio de grado ≤ k que interpola los mismos datos
pk−1 ,
∏que
k−1
pues pk (xi ) = pk−1 (xi ) = yi para i = 0, 1, . . . , k − 1. Ahora, como j=0 (xk −
∏
xj ) ̸= 0 (¿por qué?), basta observar que si λ = [yk −pk−1 (xk )]/ k−1
j=0 (xk −xj ),
entonces también pk (xk ) = yk .
Unicidad. Supongamos que hubieran dos de tales polinomios, pn y qn . Entonces, el polinomio pn − qn , de grado ≤ n, es tal que (pn − qn )(xi ) = 0 para
i = 0, 1, . . . , n. Al ser este polinomio de grado ≤ n, tendrá un máximo de n
ceros (a menos que sea el polinomio nulo). Pero como los xi ’s son distintos,
el polinomio pn − qn tiene n + 1 ceros, por lo que pn = qn .
2
Observemos que de la demostración anterior resulta claro que podemos
obtener cada uno de los polinomios p0 , p1 , . . . , pn sumando un término al
polinomio de grado inmediatamente anterior, de manera que pn será una
suma de términos. Es decir,
pk =
k
∑
i=0
i−1
∏
λi (x − xj ),
(1.1)
j=0
∏
donde asumimos que −1
j=0 (x − xj ) = 1. Los polinomios pk ası́ definidos se
denominan polinomios de interpolación en la forma de Newton. Observemos que los coeficientes λi se pueden estimar de la misma forma como se
estimó λ en la demostración del teorema. Notemos también que si añadimos
más puntos al problema de interpolación, los coeficientes ya calculados no
necesitan ser modificados, pues en (1.1) λ0 sólo depende del punto (x0 , y0 ),
λ1 depende de (x0 , y0 ) y (x1 , y1 ), etc. De manera que podemos fácilmente
agregar puntos adicionales para interpolar.
1.2. INTERPOLACIÓN POLINÓMICA
5
Ejemplo 1.
Usemos la forma de Newton para encontrar el polinomio de interpolacin de
menor grado para los valores (x0 , y0 ) = (0, −2), (x1 , y1 ) = (1, −5), (x2 , y2 ) =
(−1, −10) y (x3 , y3 ) = (2, 19).
Observemos primero que p0 (x) = −2 y que el polinomio p1 (x) = p0 (x) +
λ(x − x0 ) = −2 + λ(x − 0). Ahora, como p1 (1) = −5 (por la condición de
interpolación), λ = −3 y p1 (x) = −2 − 3x. Asimismo,
p2 (x) = p1 (x) + λ(x − x0 )(x − x1 ) = −2 − 3x + λ(x − 0)(x − 1).
Y como p2 (−1) = −10, tenemos que p2 (−1) = 1 + λ2 = −10, por lo que
λ = −9/2. Ası́ que
9
p2 (x) = −2 − 3x − x(x − 1).
2
Por último,
p3 (x) = p2 (x) + λx(x − 1)(x + 1)
De la condición de interpolación, p3(2) = 19, sigue que λ = 6 y
9
p3 (x) = −2 − 3x − x(x − 1) + 6x(x − 1)(x + 1).
2
Una manera práctica (desde el punto de vista computacional) para expresar este polinomio serı́a la siguiente
(
( 9
))
p3 (x) = −2 + x − 3 + (x − 1) − + (x + 1)6 ,
2
la cual se conoce como la forma anidada y requiere de menos operaciones
al momento de evaluar un polinomio (algoritmo de Horner).
Ejercicio 2:
Escribir un algoritmo en pseudocódigo que calcule los coeficientes de la forma
de Newton de un polinomio de interpolación. Utilizando un software de
cómputo cientı́fico probar el algoritmo, por ejemplo, con el polinomio p4 (x) =
15x4 −7x3 +12x2 −93x−734 y valores a interpolar3 xi = 3i−12, i = 0, . . . , 4.
3
Para evaluar el polinomio en los puntos dados puede usar el algoritmo de Horner (§??).
1.2. INTERPOLACIÓN POLIN
1.2.1
La forma de Lagrange
Este método expresa el polinomio de interpolación en la forma
pn (x) = y0 ℓ0 (x) + y1 ℓ1 (x) + . . . + yn ℓn (x),
(1.2)
donde los ℓi ’s (0 ≤ i ≤ n) son polinomios tales que ℓi (xj ) = δij , para i, j =
0, 1 . . . , n, y pn (xj ) = yj . Observemos que ℓ0 debe ser de la forma
donde λ = 1/
∏n
ℓ0 (x) = λ(x − x1 )(x − x2 ) . . . (x − xn ),
j=1 (x0
− xj ) (¿por qué?). Por lo que
n
∏
x − xj
.
ℓ0 (x) =
x − xj
j=1 0
De la misma forma podemos obtener expresiones similares para los otros ℓi
(1 ≤ i ≤ n). En general,
n
∏
x − xj
ℓi (x) =
x − xj
j=0 i
(0 ≤ i ≤ n).
j̸=i
Estos polinomios se denominan polinomios cardinales. Ası́ que, el polinomio de interpolación (1.2) en la forma de Lagrange es
pn (x) =
n
∑
i=0
pn (xi )
n
∏
x − xj
.
x
−
x
i
j
j=0
j̸=i
Ejercicio 3:
Calcular el polinomio de interpolación en la forma de Lagrange para los datos
del Ejercicio 2. Observemos que el polinomio obtenido tiene una apariencia
diferente a la del polinomio encontrado en el Ejercicio 2, ¿se trata del mismo
polinomio?
6
1.2.2
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
Otras formas
Si expresamos el polinomio de interpolación en la forma
pn (x) = c0 + c1 x + c2 x2 + . . . + cn xn .
Observemos que como pn (xi ) = yi , i = 0, 1, . . . , n, podemos hallar c0 , c1 , . . . , cn
al resolver el sistema lineal de n + 1 ecuaciones

 


y0
1 x0 x20 . . . xn0
c0
 1 x1 x2 . . . xn   c1   y1 
1
1 


 
 1 x2 x2 . . . xn   c2   y2 
2
2 


=
 .. ..
.. . .
..   ..   .. 
 . .
. .  .   . 
.
yn
cn
1 xn x2n . . . xnn
La matriz de coeficientes es no singular (¿por qué?) y se denomina matriz de Vandermonde. Desafortunadamente, en la práctica, la matriz de
Vandermonde está mal condicionada, por lo que no se recomienda usar esta
estrategia para calcular el polinomio de interpolación.
Desde un punto de vista numérico, para calcular el polinomio de interpolación, es recomendable usar la forma de Newton (junto con el método
de las diferencias divididas, §1.4). Sin embargo, la forma de Lagrange será
de utilidad en el capı́tulo que sigue cuando deduzcamos algunas fórmulas de
cuadratura.
1.2.3
El método de las diferencias divididas
Sean x0 , x1 , . . . , xn un conjunto de puntos o nodos diferentes y que f es una
función cuya evaluación en los nodos es conocida. Por el Teorema 1.3 sabemos
que existe un único poliomio pn de grado ≤ n tal que pn (xi ) = f (xi ), para
todo i =∏0, 1, . . . , n. Definamos también, para j = 1, . . . , n, los polinomios
qj (x) = j−1
k=0 (x − xk ) y q0 (x) = 1. De manera que la forma
∑de Newton del
polinomio de interpolación se puede escribir como pn (x) = nj=0 λj qj (x).
Observemos
además que podemos determinar los coeficientes λj a partir
∑n
del SEL j=0 λj qj (xi ) = f (xi ), i = 0, 1, . . . , n, y que la matriz de coeficientes
del sistema, con entradas
∏j−1 qj (xi ) (0 ≤ i, j ≤ n), es una matriz triangular inferior (pues qj (xi ) = k=0 (xi − xk ) = 0 cuando i ≤ j − 1). Notemos también
que al resolver el sistema anterior para los λj podemos ir de arriba hacia
abajo, de manera que λ0 dependerá solamente de f (x0 ), λ1 de f (x0 ) y f (x1 ),
1.2. INTERPOLACIÓN POLINÓMICA
7
etc., hasta llegar a λn que dependerá de f (x0 ), f (x1 ), . . . , f (xn ). Introduciremos la notación λn = f [x0 , x1 , . . . , xn ] para indicar esta dependencia y la
denominaremos, para valores cualesquiera de n, la diferencia dividida de
f . De manera que podremos expresar la forma de Newton del polinomio de
interpolación como
pn (x) =
n
∑
f [x0 , x1 , . . . , xj ]
j=0
j−1
∏
(x − xk )
(1.3)
k=0
Observemos que f [x0 , x1 , . . . , xn ] es el coeficiente de qn (x) = (x − x0 )(x −
x1 ) . . . (x − xn−1 ) = xn + términos de menor grado, entonces f [x0 , x1 , . . . , xn ]
es el coeficiente de xn en el polinomio de interpolación. Ası́ que f [x0 ] es
el coeficiente de x0 en el polinomio de grado 0 que interpola a f en x0 .
Es decir, f [x0 ] = f (x0 ). Asimismo, f [x0 , x1 ] es el coeficiente de x en el
polinomio de grado ≤ 1 que interpola a f en x0 y x1 . Como este polinomio
(x0 )
(x0 )
es f (x0 ) + f (xx11)−f
(x − x0 ) (¿por qué?), resulta que f [x0 , x1 ] = f (xx11)−f
.
−x0
−x0
Más aun, si pk es el polinomio de grado ≤ k que interpola a f en
x0 , x1 , . . . , xk y q es el polinomio de grado ≤ n − 1 que interpola a f en
x1 , x2 , . . . , xn , entonces
pn (x) = q(x) +
x − xn
[q(x) − pn−1 (x)].
xn − x0
(¿por qué?)
Como los coeficientes de xn en ambos lados de esta expresión deben ser
iguales, encontramos que
f [x0 , x1 , . . . , xn ] =
f [x1 , x2 , . . . , xn ] − f [x0 , x1 , . . . , xn−1 ]
.
xn − x0
(1.4)
De donde sigue que
f [x0 , x1 ] =
f [x1 ] − f [x0 ]
,
x1 − x0
f [x0 , x1 , x2 ] =
f [x1 , x2 ] − f [x0 , x1 ]
, etc.
x2 − x0
Dados los datos (xi , f (xi )) podemos, a partir de ellos, construir una tabla
con las diferencias divididas; por ejemplo, para cinco datos tendrı́amos la
siguiente tabla:
x0
x1
f [x0 ] f [x0 , x1 ] f [x0 , x1 , x2 ] f [x0 , x1 , x2 , x3 ] f [x0 , x1 , x2 , x3 , x4 ]
f [x1 ] f [x1 , x2 ] f [x1 , x2 , x3 ] f [x1 , x2 , x3 , x4 ]
8
x2
x3
x4
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
f [x2 ] f [x2 , x3 ] f [x2 , x3 , x4 ]
f [x3 ] f [x3 , x4 ]
f [x4 ]
De (1.3), resulta claro que los coeficientes que necesitamos para encontrar
el polinomio de interpolación en la forma de Newton están en la primera fila
de la tabla.
Ejercicio 4:
A partir de (1.4) construir la tabla de las diferencias divididas para el siguiente conjunto de datos:
x:
−12
−9
−6
−3
0
f (x) :
325246 104593 21208 1057 − 734
Encontrar el polinomio de interpolación de Newton. Comparar con el Ejercicio 2.
Ejercicio 5:
Usando la notación aij = f [xi , xi+1 , . . . , xi+j ], escribir un algoritmo en pseudocódigo para calcular la tabla de las diferencias divididas y en el que los
datos de entrada estén dados por ai0 = f (xi ), para i = 0, 1, . . . , n. Probar el
algoritmo con los datos del ejercicio anterior.
Ejercicio 6:
Demostrar que si (y0 , y1 , . . . , yn ) es una permutación de (x0 , x1 , . . . , xn ), entonces f [y0 , y1 , . . . , yn ] = f [x0 , x1 , . . . , xn ].
Otra importante propiedad de las diferencias divididas es la siguiente.
Teorema 1.4 Sea pn un polinomio de grado ≤ n que interpola a una función
f en un conjunto de n + 1 puntos distintos x0 , x1 , . . . , xn . Si z es un punto
diferente de los nodos dados, entonces
f (z) − pn (z) = f [x0 , x1 . . . , xn , z]
n
∏
(z − xj ).
j=0
Demostración: Sea pn+1 el polinomio de grado ≤ n + 1 que interpola f en
1.2. INTERPOLACIÓN POLINÓMICA
9
los nodos x0 , x1 , . . . , xn , z. Por (1.3) sigue que
pn+1 (x) = pn (x) + f [x0 , x1 , . . . , xn , z]
n
∏
(x − xj ).
j=0
Como pn+1 (z) = f (z) tenemos que
f (z) = pn (z) + f [x0 , x1 . . . , xn , z]
n
∏
(z − xj ).
j=0
2
1.2.4
Error del polinomio de interpolación
Sea f (x) una función en C n+1 (I), donde I es el intervalo [a, b], y sean
x0 , x1 , . . . , xn n + 1 nodos distintos en I. Si pn es el polinomio de grado
≤ n que interpola a f en x0 , x1 , . . . , xn , el error de interpolación en (x) de
pn (x) está dado por en (x) = f (x) − pn (x).
Por el Teorema 1.4, para
∏n todo z distinto de los nodos x0 , x1 , . . . , xn ,
en (z) = f [x0 , x1 . . . , xn , z] j=0 (z −xj ). Observemos que no podemos evaluar
el lado derecho de esta expresión sin conocer de antemano f (z), sin embargo
si conocemos la (n + 1)-ésima derivada de f (x) podremos, en algunos casos,
estimar en (z).
Teorema 1.5 Para todo z ∈ I, existe ξ ≡ ξ(z) ∈ (a, b) tal que
f (n+1) (ξ) ∏
(z − xj ).
(n + 1)! j=0
n
en (z) = f (z) − pn (z) =
(1.5)
Demostración: Por el Teorema 1.4 será suficiente demostrar que si f es una
función en C k (I) y si x0 , x1 , . . . , xk son k + 1 puntos distintos en I, entonces
existe ξ ∈ (a, b) tal que f [x0 , x1 . . . , xk ] = f (k) (ξ)/k!.
Para k = 1, el resultado sigue directamente del TVM. Para k > 1, observamos que ek (x) tiene por lo menos k + 1 ceros distintos x0 , x1 , . . . , xk en I,
y como ek (x) es una función en C k (I) (¿por qué?), entonces, por el teorema
de Rolle, e′k (x) tiene al menos k ceros en el intervalo (a, b), e′′k (x) tiene por
lo menos k − 1 ceros en (a, b), etc. Continuando de esta forma, sigue que
10
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
(k)
ek (x) tiene por lo menos un cero en (a, b). Si ξ es un tal cero, entonces
(k)
(k)
(k)
0 = ek (ξ) = f (k) (ξ) − pk (ξ). Y como también pk (ξ) = f [x0 , x1 , . . . , xk ]k!
(¿por qué?), obtenemos el resultado que querı́amos demostrar. (Observemos
también que podemos suponer que el nodo ξ en (1.5) cae entre los xi ’s si
tomamos a = mini xi y b = maxi xi .)
2
Ejercicio 7:
Encontrar una cota para el error de interpolación lineal.
Observaciones:
• En el caso de que los nodos sean igualmente espaciados, el máximo
local de |Φn+1 (x)| se incrementa cuando nos movemos de la mitad del
intervalo hacia los extremos, y este incremento será mayor en la medida en que incrementemos n (ver el Ejercicio 1 de la §1.7). Por esta
razón es recomendable, sobretodo en este caso, usar el polinomio de
interpolación solamente para los nodos ubicados cerca del punto medio
del intervalo. Por supuesto que este comportamiento empeorará si nos
movemos fuera de los extremos del intervalo (i.e., extrapolación).
1.2. INTERPOLACIÓN POLINÓMICA
11
Dada una función f ∈ C[a, b] y pn polinomios de interpolación para f
con nodos igualmente espaciados, pareciera razonable pensar que si usamos
polinomios de grados cada vez mayores los mismos convergerán uniformemente a f en [a, b] (i.e., ∥f − pn ∥∞ → 0 cuando n → ∞). Éste será el caso
si, por ejemplo, f (x) = cos x en el intervalo [0, 1] (¿por qué?); sin embargo,
si consideramos la función f definida por4 f (x) = (x2 + 1)−1 en el intervalo
[−5, 5], encontramos que para los polinomios de interpolación pn , con nodos
igualmente espaciados, la sucesión {∥f −pn ∥∞ } no está acotada5 (ver el Ejercicio 1 de la §1.7, en donde el lector podrá constatar la ocurrencia de grandes
oscilaciones de pn ).
4
Ejemplo dado por Carl Runge en 1901.
En [27] se demuestra que para cualquier x tal que 3.64 < |x| < 5 y k ≥ 0,
supn≥k |f (x) − pn (x)| = ∞.
5
1.4. INTERPOLACIÓN POLINÓMICA A TROZOS
1.4
15
Interpolación polinómica a trozos
Este tipo de funciones polinómicas tiene aplicaciones en teorı́a de aproximación, computación gráfica, ajuste de datos, diferenciación e integración
numéricas y en la resolución numérica de ecuaciones integrales y diferenciales.
Para una función polinómica a trozos p, suponemos que existe un conjunto
de nodos x0 , x1 , . . . , xn tales que
−∞ < x0 < x1 . . . < xn < ∞,
donde p será un polinomio en cada uno de los subintervalos
(−∞, x0 ], [x0 , x1 ] . . . [xn , ∞).
(1.7)
Muchas veces, en el tratamiento de los polinomios a trozos no se incluyen el
primero ni el último de estos subintervalos.
Def inición 1.1 Diremos que p es un polinomio a trozos de orden k si
en cada uno de los subintervalos (1.7) el grado de p(x) es menor que k.
Por lo general, el polinomio a trozos se define de manera conveniente para
que sea una función continua.
Un problema de interpolación polinómica a trozos puede ser local o
global. Para el tipo de problema local, el polinomio p en cada subintervalo está completamente definido por los datos de interpolación en los nodos
dentro del mismo subintervalo y sus puntos extremos. En el problema global
el polinomio p en cada subintervalo depende de todos los datos de interpolación (e.g., las funciones splines, §1.4.2).
1.4.1
Interpolación local
Supongamos que deseamos aproximar una función f en un intervalo [a, b] de
manera que a = x0 < x1 < . . . < xn = b.
Como un primer caso proponemos usar interpolación polinómica ordinaria
en cada subintervalo [xi−1 , xi ]. Supongamos que tenemos cuatro nodos de
interpolación en cada subintervalo [xi−1 , xi ], xi−1 ≤ ti,1 < ti,2 < ti,3 < ti,4 ≤
xi , i = 1, . . . , n, de manera que p(x) es el polinomio de grado ≤ 3 en (xi−1 , xi )
que interpola f (x) en ti,1 . . . , ti,4 . Llamaremos a esta función de interpolación
el polinomio a trozos de Lagrange Ln (x). En el caso de que ti,1 = xi−1
y ti,4 = xi , para cada i = 1, 2, . . . , n, entonces p es continua en [a, b].
16
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
Por el Teorema 1.5 notemos que para Ln (x), con x ∈ [xi−1 , xi ] (i =
1, . . . , n),
f (4) (ξi ) ∏
(x − ti,j ),
4! j=1
4
f (x) − Ln (x) =
donde ξi ∈ (xi−1 , xi ).
En el caso particular de que los nodos estén igualmente espaciados, definimos µi = (xi − xi−1 )/3, ti,k = xi−1 + (k − 1)µi , k = 1, . . . , 4. Claramente,
para x ∈ [xi−1 , xi ],
|f (x) − Ln (x)| ≤
µ4i
max |f (4) (z)|,
24 z∈[xi−1 ,xi ]
(1.8)
para i = 1, 2, . . . , n. Para mantener un mismo nivel de error a través de todo
el intervalo [a, b], µi se podrı́a escoger de acuerdo al tamaño de la derivada
f (4) en [xi−1 , xi ]. De manera que si la función f tuviera un comportamiento
variable en [a, b], el polinomo a trozos Ln (x) se podrı́a escoger de manera tal
que simule este comportamiento, al ajustar a = x0 < x1 < . . . < xn = b.
Esta es una razón importante para escoger y usar la interpolación polinómica
a trozos, pues la interpolación polinómica ordinaria en [a, b] no permite esta
flexibilidad. Para aquellos casos en que usamos nodos igualmente espaciados (1.8) nos garantiza la convergencia cuando la interpolación ordinaria
puede fallar, como en el ejemplo de Runge (ver el Ejercicio 1, §1.7).
Ejercicio 14:
Para f (x) = ex en [0, 1], con nodos igualmente espaciados y un error máximo
< 10−8 , estimar µ ≡ µi y el número de subintervalos n, si usamos como
estrategia de aproximación un polinomio de interpolación cúbica a trozos.
1.4. INTERPOLACIÓN POLINÓMICA A TROZOS
1.4.2
17
Funciones splines
Una función spline es un polinomio a trozos bajo ciertas condiciones de continuidad.
Def inición 1.2 Dados n + 1 puntos x0 , x1 , . . . , xn tales que a = x0 < x1 <
. . . < xn = b y un entero r ≥ 0, una función spline de grado r con nodos
x0 , x1 , . . . , xn es una función S que satisface las dos propiedades siguientes:
(i) En cada subintervalo [xi−1 , xi ), S es un polinomio, Si−1 , de grado ≤ r.
(ii) S ∈ C (r−1) [a, b].
Observemos que los splines de
Es decir,


S0 (x)


 S1 (x)
S(x) =
..

.


 S (x)
n−1
grado 0 son funciones constantes a trozos.
=
=
..
.
c0 ,
c1 ,
..
.
x ∈ [x0 , x1 )
x ∈ [x1 , x2 )
..
.
= cn−1 , x ∈ [xn−1 , xn ),
donde los ci ’s (i = 0, 1, . . . , n − 1) son constantes y los intervalos [xi−1 , xi )
no se intersectan entre sı́. Asimismo, una función spline de grado 1 se define
como:


S0 (x)
= a 0 x + b0 ,
x ∈ [x0 , x1 )


 S1 (x)
= a 1 x + b1 ,
x ∈ [x1 , x2 )
S(x) =
..
.. ..
..

.
.
.
.


 S (x) = a x + b , x ∈ [x , x ),
n−1
n−1
n−1
n−1
n
En este caso la función S es continua, por lo que Si (xi+1 ) = Si+1 (xi+1 ),
para i = 0, 1, . . . , n − 2. También podemos definir la función spline sobre
18
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
toda la recta real, de manera que podemos usar a0 x + b0 para el intervalo
(−∞, x1 ) y an−1 x + bn−1 para [xn−1 , ∞).
Consideremos ahora el caso r = 3. Se trata de los splines cúbicos
los cuales son muy utilizados. Supongamos que conocemos de antemano
el conjunto de datos (pares ordenados) (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ); el spline
cúbico S debe interpolar estos datos (i.e., S(xi ) = yi , i = 0, 1, . . . , n). En
cada subintervalo [xi , xi+1 ), i = 0, 1, . . . , n − 1, S estará definido por un
polinomio cúbico Si diferente, ası́


S0 (x),
x ∈ [x0 , x1 )


 S1 (x),
x ∈ [x1 , x2 )
S(x) =
..
..

.
.


 S (x), x ∈ [x , x ).
n−1
n−1
n
Si−1 y Si interpolan el mismo valor en xi , por lo que Si−1 (xi ) = Si (xi ) =
yi , i = 1, 2, . . . , n − 1, lo cual permite que S sea una función continua.
Supondremos además que S ′ y S ′′ son funciones continuas.
De manera que tenemos: 4n coeficientes de los polinomios cúbicos, 2n
condiciones correspondientes a dos condiciones de interpolación, S(xi ) = yi y
S(xi+1 ) = yi+1 por cada subintervalo [xi , xi+1 ], n−1 condiciones derivadas de
la continuidad de S ′ , S ′i−1 (xi ) = S ′i (xi ), i = 1, 2, . . . , n−1, y n−1 condiciones
adicionales correspondientes a la continuidad de S ′′ en los nodos interiores.
Por lo tanto, contamos con 4n − 2 condiciones para estimar 4n coeficientes.
Observemos que la continuidad de S no nos proporciona más condiciones
pues ya las tomamos en cuenta en las condiciones de interpolación. Veamos
ahora cómo procederemos con las dos condiciones que nos faltan.
Encontremos primero los polinomios cúbicos Si en [xi , xi+1 ] (i = 0, 1, . . . ,
n − 1). Para i = 0, 1, . . . , n, sea zi ≡ S ′′ (xi ); como S ′′ es continua en los
nodos interiores, resulta claro que para i = 1, 2, . . . , n − 1, limx→x−i S ′′ (x) =
limx→x+i S ′′ (x) = zi . Observemos también que cada Si′′ es una función lineal
tal que Si′′ (xi ) = zi y Si′′ (xi+1 ) = zi+1 , por lo que, para i = 0, 1, . . . , n − 1,
Si′′ (x) = zi+1
xi+1 − x
x − xi
+ zi
,
hi
hi
donde hi = xi+1 − xi . Integrando dos veces, obtenemos que
Si (x) = zi+1
(x − xi )3
(xi+1 − x)3
+ zi
+ C1 (x − xi ) + C2 (xi+1 − x),
6hi
6hi
1.4. INTERPOLACIÓN POLINÓMICA A TROZOS
19
donde C1 y C2 son las constantes de integración, que podemos obtener a
partir de las condiciones de interpolación: Si (xi ) = yi y Si (xi+1 ) = yi+1 . Ası́
que
Si (x) = zi+1
(y
(x − xi )3
(xi+1 − x)3 ( yi+1 zi+1 hi )
zi hi )
i
(x − xi ) +
(xi+1 − x),
+ zi
+
+
+
6hi
6hi
hi
6
hi
6
(1.9)
Ahora, para determinar z1 , z2 , . . . , zn−1 usaremos las condiciones de continuidad de S ′ : S ′i−1 (xi ) = S ′i (xi ). Obtendremos S ′i (x) derivando la ecuación
(1.9). La expresión obtenida, para i = 1, 2, . . . , n − 1, será la siguiente
hi−1 zi−1 + 2(hi + hi−1 )zi + hi zi+1 = 6
yi+1 − yi
yi − yi−1
−6
hi
hi−1
(1.10)
(¡verificar!). Lo que dará lugar a un SEL de n − 1 ecuaciones para las n + 1
incógnitas z0 , z1 , . . . , zn , por lo que podemos escoger z0 y zn arbitrarios para
finalmente obtener z1 , z2 , . . . , zn−1 . Una elección que resulta ser suficiente es
z0 = zn = 0 (i.e., condiciones de frontera libres)6 . Este tipo de spline cúbico
se denomina spline cúbico natural.
La representación en forma matricial del sistema (1.10) es:


 

z1
b1
u1 h1 0
...
...
0

..   z2   b2 
 h1 u2 h2

 

0
.
.
.
. 

  z3   b3 
..

 .   . 
.
 0 h2 u3 h3
 .   . 
 . .
 .  =  . ,
...
 ..
 .   . 
.. ... ...
0

  ..   .. 


 

.
.

. hn−3 un−2 hn−2   zn−2   bn−2 
0 ...
0
hn−2 un−1
zn−1
bn−1
donde hi = xi+1 −xi , ui = 2(hi −hi−1 ), bi = vi −vi−1 , con vi = 6(yi+1 −yi )/hi .
Notemos que este sistema es simétrico, tridiagonal y diagonal dominante.
Ejercicio 15:
Dado un x ∈ R cualquiera, escribir un algoritmo en pseudocódigo que estime
el valor del spline cúbico natural en x, S(x). Usando un software de cómputo
cientı́fico escribir un programa para este algoritmo. Escribir un subprograma
6
Se puede demostrar que estas condiciones son una “buena” elección en el sentido de
∫b
∫b
que a [S ′′ (x)]2 dx ≤ a [f ′′ (x)]2 dx, donde f ∈ C 2 [a, b] y S es un spline cúbico que interpola
a f en los xi ’s para i = 0, 1, . . . , n, con a = x0 y b = xn (ver, por ejemplo, [2], [6] o [29]).
20
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
que aproveche la estructura de la matriz de coeficientes para resolver el sistema (1.10) de una manera eficiente. Escribir otro subprograma para determinar cuál de los subintervalos (−∞, x1 ), [x1 , x2 ), . . . , [xn−1 , ∞) contiene
a x. Una vez determinado el ı́ndice i, usar (1.9) para evaluar el polinomio
Si en x usando√el algoritmo de Horner. Probar el programa con las funciones f1 (x) = x, f2 (x) = ex y f3 (x) = (1 + x2 )−1 en 15 nodos igualmente
espaciados en el intervalo [0,3], tabulando los errores ek (x) = S(x) − fk (x)
(k = 1, 2, 3) en 45 puntos.
1.7. EXPERIMENTACIÓN NUMÉRICA ADICIONAL
1.7
Experimentación numérica adicional
La referencia básica que seguimos aquı́ es el curso introductorio [15].
35
36
CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES
Ejercicio 1: Análisis del error de interpolación para el caso de nodos igualmente espaciados.
Consideremos la fórmula del error de interpolación (ver, por ejemplo, [2] o
[5]). Claramente,
cn+1
max |f (x) − pn (x)| ≤
max |Φn+1 (x)|,
x∈[a,b]
(n + 1)! x∈[a,b]
donde
cn+1 = max |f
(n+1)
(t)|
t∈[a,b]
y
Φn+1 (x) =
n
∏
(x − xj ).
j=0
Observemos que este resultado nos da una estimación superior del error para
cualquier valor de x. El primer término de la derecha es una constante en
[a, b], por lo que la distribución está determinada por Φn+1 (x). Usaremos
solamente nodos igualmente espaciados: xj = x0 + jh, para j = 0, 1, . . . , n.
a) Para distintos valores de n (= 1, 2, 3, 6, 9), grafique, usando MATLAB,
el polinomio Φn+1 (x). Aquı́, [a, b] = [−3, 3], x0 = a y h = b−a
. ¿Qué
n
observa? ¿Cómo convendrı́a escoger los nodos cuando usamos interpolación de un grado mayor?
b) Consideremos la función
f (x) =
1
,
1 + x2
− 5 ≤ x ≤ 5.
(1.18)
Grafique, usando MATLAB, p10 (x), f (x) y |f (x) − p10 (x)|. ¿Qué observa? ¿Podemos decir que en general
n→∞
max |f (x) − pn (x)| −→ 0 ?
x∈[a,b]
c) Consideremos la función
f (x) = sen(x)
en
0 ≤ x ≤ π,
(1.19)
y p4 (x), el polinomio de interpolación de f en los puntos (nodos igualmente espaciados)
x = [0, π/4, π/2, 3π/4, π], y = [0, sen(π/4), sen(π/2), sen(3π/4), sen(π)].
Si e(x) = sen(x) − p4 (x), graficar, usando MATLAB, sen(x) y 100e(x).
¿Qué observa? Explique.
1.8. APÉNDICE AL CAPÍTULO 6
37
Ejercicio 2: Uso de comandos MATLAB.
Revise y adquiera experiencia en el uso de los siguientes comandos MATLAB:
polyfit, polyval, interpl. Supongamos que en cada uno de los casos (1.18)
y (1.19) (Ejercicio 1) se particiona el intervalo en n + 1 nodos igualmente
espaciados. Usando los comandos señalados, construya los interpoladores:
polinómico, spline lineal, spline cúbico; siendo n = 5, 10, 20. Grafique los
correspondientes errores y estime las magnitudes máximas de los mismos.
Justifique.
Ejercicio 3:
Interpole y grafique la función z = f (x, y) de dos variables, definida por
2
2
z = e−x −y en el rectángulo −2 ≤ x ≤ 2, −3 ≤ y ≤ 3. Use interp2 y las
opciones ’linear’ y ’cubic’.
1.8
Apéndice al Capı́tulo 6
A1. Los polinomios de Chebyshev
Comencemos por definir estos polinomios.
Def inición 1.7 Los polinomios Tn , de grados n = 0, 1, . . ., definidos recursivamente por
T0 (x) = 1,
T1 (x) = x,
Tn+1 (x) = 2xTn (x) − Tn−1 (x),
n ≥ 1,
se denominan polinomios de Chebyshev18 de primera clase.
Algunos de ellos son:
T2 (x) = 2x2 − 1,
T3 (x) = 4x3 − 3x,
T4 (x) = 8x4 − 8x2 + 1,
T5 (x) = 16x5 − 20x3 + 5x,
18
En honor al matemático ruso Pafnuti Lvovich Chebyshev (1821-1894).
Capı́tulo 2
Diferenciación e integración
numéricas
La integración numérica es el proceso por medio del cual se genera un
valor numérico para la integral de una función sobre un conjunto dado1 .
Asimismo, se conoce como∫ cuadratura numérica al método involucrado
b
en la aproximación de I = a f (x)dx, y que utiliza una expresión de la forma
n
∑
Ki f (xi )
i=0
para aproximar I.
Para el caso de muchas funciones, la integral I puede calcularse analı́ticamente. Sin embargo, en las aplicaciones, en general, el cálculo analı́tico
directo no es posible. Este es el caso, por ejemplo, de las siguientes integrales:
∫ 2
∫ 1∫ 1
∫ 1∫ x
−x2
x
e dx,
sen(xye )dxdy y
tan(xy 2 )dydx.
0
0
0
0
x2
Una
∫ b estrategia muy poderosa para calcular el valor numérico de la integral
f (x)dx consiste en reemplazar f por otra función g, que aproxime a f
a
de alguna manera conveniente
y sea∫ fácil de integrar. Ası́ que, a partir de
∫b
b
f ≈ g, deducimos que a f (x)dx ≈ a g(x)dx. Por supuesto, los polinomios
son buenos candidatos para g, y de hecho g puede ser un polinomio que
interpole a f en un cierto conjunto de nodos.
1
También, denominamos cuadratura a la evaluación numérica de una integral.
41
42 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
Dos de las técnicas de integración numérica (quizás para nosotros las más
familiares) estiman f (x) utilizando, bien una serie de funciones lineales a
trozos, o bien una serie de funciones cuadráticas a trozos. En el primer caso,
podemos calcular las áreas de los trapecios que constituyen el área bajo las
funciones lineales consideradas (la regla de los trapecios); en el segundo
caso, cuando estimamos la función usando funciones cuadráticas a trozos,
podemos calcular y sumar las áreas consideradas (la regla de Simpson).
Comparada con la integración, la diferenciación numérica es mucho más
difı́cil. La integración no es sensible a pequeños cambios en la “forma” de una
función, mientras que la diferenciación sı́ lo es. Cualquier pequeño cambio en
una función puede fácilmente crear grandes cambios en su inclinación, en la
vecindad de ese cambio. Ası́ que, de ser posible, la diferenciación numérica
es evitada, especialmente si los datos son obtenidos de manera experimental.
En este caso, podemos usar mı́nimos cuadrados y obtener una curva de ajuste
de los datos, para luego diferenciar el polinomio resultante. De manera que
cuando se aproxima la derivada de una función cuyos valores se conocen
solamente en un conjunto discreto de puntos, un método recomendable serı́a
el de ajustar alguna función suave a los datos discretos dados y luego diferenciar la función de aproximación, para ası́ aproximar las derivadas de la
función original. Si los datos proporcionados son suficientemente suaves, el
uso de interpolación o de splines puede ser la estrategia apropiada.
2.1
Diferenciación numérica
Las conocidas fórmulas en diferencias finitas son por lo general inapropiadas para datos discretos o con perturbaciones, pero son muy útiles para
aproximar las derivadas de una función suave dada, de la que conocemos una
expresión analı́tica o que podemos evaluar de manera precisa para diferentes
valores de su argumento. Veamos a continuación algunas fórmulas en diferencias finitas que, por cierto, son también de especial utilidad en el estudio
numérico de las ecuaciones diferenciales.
Dada una función f : R → R lo suficientemente suave, buscamos aproximar su primera y segunda derivadas en un punto x. Consideremos los
siguientes desarrollos de Taylor:
f (x + h) = f (x) + hf ′ (x) + h2
f ′′′ (x)
f (4) (x)
f ′′ (x)
+ h3
+ h4
+ ...
2!
3!
4!
2.1. DIFERENCIACIÓN NUMÉRICA
43
f ′′ (x)
f ′′′ (x)
f (4) (x)
− h3
+ h4
+ ...
2!
3!
4!
Despejando f ′ (x) de la primera serie, obtenemos la fórmula en diferencia
hacia adelante:
f (x − h) = f (x) − hf ′ (x) + h2
f ′ (x) =
f (x + h) − f (x)
f ′′ (x)
f (x + h) − f (x)
+h
+ ... ≈
,
h
2!
h
la cual aproxima la derivada de f (x) con una precisión de primer orden, pues
el término dominante en el resto de la serie es de O(h). Asimismo, de la
segunda serie obtenemos la fórmula en diferencia hacia atrás:
f ′ (x) =
f (x) − f (x − h)
f ′′ (x)
f (x) − f (x − h)
+h
+ ... ≈
,
h
2!
h
con una precisión también de primer orden. Restando la segunda serie de la
primera obtenemos la fórmula en diferencia centrada:
f ′ (x) =
f ′′′ (x)
f (x + h) − f (x − h)
f (x + h) − f (x − h)
− h2
+ ... ≈
,
2h
3!
2h
la cual tiene una precisión de segundo orden (i.e., O(h2 )). Por último, si
sumamos las dos series obtenemos una fórmula en diferencia centrada para
la segunda derivada:
(4)
f (x + h) − 2f (x) + f (x − h)
(x)
2f
−
h
+ ...
2
h
12
f (x + h) − 2f (x) + f (x − h)
≈
,
h2
f ′′ (x) =
con una precisión también de segundo orden.
Interpolación
Dados n + 1 nodos x0 , x1 , . . . xn en un intervalo [a, b], podemos usar la forma
de Lagrange (§1.2.1) de un polinomio de interpolación para interpolar una
función dada f ∈ C n+1 [a, b] en esos nodos. Ası́ que, junto con la fórmula
para el error de interpolación (1.5), obtenemos que
f (x) =
n
∑
i=0
f (n+1) (ξ) ∏
f (xi )ℓi (x) +
(x − xi ),
(n + 1)! i=0
n
44 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
donde ξ ≡ ξ(x) ∈ (a, b).
Ejercicio 1:
Si xk es uno de los n + 1 nodos, usar la expresión anterior para demostrar
que
n
n
∑
f (n+1) (ξ(xk )) ∏
(xk − xj ).
f ′ (xk ) =
f (xi )ℓ′i (xk ) +
(n
+
1)!
j=0
i=0
j̸=k
Obtener también la expresión para f ′ (x) cuando n = 2 y k = 1. En el caso
de nodos igualmente espaciados, deducir la fórmula en diferencia centrada.
Existen varias opciones para el cálculo de las derivadas de una función,
incluyendo aproximaciones en diferencias finitas y la evaluación a través del
uso de alguna fórmula, hallada a mano o usando un paquete de cómputo
cientı́fico. Cada uno de estos métodos tiene sus inconvenientes. Ası́, la
diferenciación manual es tediosa y propensa a errores, la derivación simbólica
tiende a ser difı́cil de manejar para el caso de funciones complicadas y, en el
caso de las aproximaciones en diferencias finitas, se requiere de una elección
cuidadosa del tamaño del paso, h, y su precisión está limitada por los errores
de redondeo.
Otra alternativa es la denominada diferenciación automática o AD
(por sus siglas en inglés, automatic differentiation), la cual se basa en la descomposición de la función en operaciones aritméticas básicas y llamadas a
funciones matemáticas elementales (seno, exponencial, etc.), ası́ como en la
aplicación sistemática de la regla de la cadena; gracias a la cual, cada función
puede operarse por separado y manejar sus derivadas de forma independiente. La AD permite obtener la derivada de una función definida mediante
R2
un archivo en Fortran, C/C++ o MATLAB⃝
, independientemente de lo
compleja o larga que ésta sea, sin pérdida de precisión y en un tiempo de
cómputo razonable. Además, no sólo permite calcular la primera derivada,
sino también derivadas de orden superior, gradientes, jacobianos y hessianos.
La AD tiene un tiempo de CPU menor que la derivación manual y una
precisión mayor que la numérica. Para una interesante aplicación de la AD
se puede consultar el artı́culo de Callejo et al. [4].
2
MATLAB es una marca registrada de The MathWorks, Inc.
2.2. INTEGRACIÓN NUMÉRICA
2.2
45
Integración numérica
En el comienzo de este Capı́tulo hicimos algunos comentarios acerca de las
dificultades de calcular integrales a partir de las técnicas aprendidas en los
cursos de cálculo elemental. También es cierto que existen muchas funciones elementales que no poseen antiderivadas sencillas, como por ejemplo
2
la función f (x) = ex (una antiderivada de ella la encontramos en la solución
del Ejercicio 1(ii), §1.1).
Si de antemano sabemos que un sistema de polinomios aproxima a una
función dada, podemos encontrar, a partir de ellos, una buena estimación
de la integral de esa función. Consideraremos primero los polinomios de
interpolación3 .
2.2.1
Fórmulas de Newton-Cotes y extensiones
Sean x0 , x1 , . . . , xn un conjunto de nodos dados en un intervalo [a, b]. Consideremos el polinomio de grado ≤ n que interpola a f en estos nodos en la
forma de Lagrange:
pn (x) =
n
∑
n
∏
x − xj
donde ℓi (x) =
(i = 0, 1, . . . , n).
x − xj
j=0 i
f (xi )ℓi (x),
i=0
j̸=i
Entonces,
∫
∫
b
f (x)dx ≈
a
b
pn (x)dx =
a
n
∑
i=0
∫
f (xi )
b
ℓi (x)dx,
a
que también podemos expresar como
∫
b
f (x)dx ≈
a
n
∑
i=0
∫
Ki f (xi ),
donde Ki =
b
ℓi (x)dx.
(2.1)
a
Observemos que la fórmula (2.1) es exacta para los elementos del espacio Pn .
En el caso de que los nodos sean igualmente espaciados, denominaremos a
esta expresión fórmula de Newton-Cotes (o fórmula de N-C para abreviar).
3
También podrı́amos usar splines para interpolar a f y luego integrar.
46 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
Ejemplo:
Si n = 2 y [a, b] = [0, 1], entonces ℓ0 (x) = 2(x−1/2)(x−1), ℓ1 (x) = −4x(x−1)
y ℓ2 (x) = 2x(x − 1/2). Por lo que K0 = K2 = 1/6 y K1 = 2/3, y
∫
0
1
1
2 (1) 1
f (x)dx ≈ f (0) + f
+ f (1).
6
3 2
6
(2.2)
Ejercicio 2:
Encontrar las fórmulas de N-C cuando [a, b] = [0, 1] y n = 3, 5.
Ejercicio 3:
Demostrar que la fórmula de cuadratura (2.1), cuando n = 1, x0 = a y x1 = b,
∫b
está dada por a f (x)dx ≈ [(b − a)/2][f (a) + f (b)] (regla del trapecio). Ver
también que el error asociado a esta aproximación es (−1/12)(b − a)3 f ′′ (ξ),
con ξ ∈ (a, b). Observemos que esta fórmula da un resultado exacto en el
caso de que f ∈ P1 .
Observemos que si partimos de la expresión (2.1) y suponemos que es
∫b
exacta para los elementos de Pn , entonces necesariamente Ki = a ℓi (x)dx
∫b
∑
(pues a ℓj (x)dx = ni=0 Ki ℓj (xi ) = Kj ). De esta manera podemos obtener,
para distintos valores de n, expresiones como la (2.1). Por ejemplo,
∫ 1 si estamos
interesados en obtener una fórmula que aproxime la integral 0 f (x)dx por
la expresión K0 f (0) + K1 f (1/2) + K2 f (1), exacta para los elementos de P2 ,
entonces, de las ecuaciones
∫
∫
1
dx = K0 + K1 + K2 ,
0
0
1
1
xdx = K1 + K2 y
2
∫
0
1
1
x2 dx = K1 + K2 ,
4
obtenemos que K0 = K2 = 1/6 y K1 = 2/3 como en (2.2).
Si definimos sobre el intervalo [a, b] una partición a = x0 < x1 < . . . <
xn = b, con los nodos no necesariamente igualmente espaciados, podemos
considerar una fórmula de cuadratura en cada uno de los sucesivos subintervalos generados por estos nodos. Estamos hablamos entonces de una fórmula
de cuadratura compuesta.
2.2. INTEGRACIÓN NUMÉRICA
47
Ejercicio 4:
Suponiendo nodos igualmente espaciados, definimos h = (b − a)/n y xi = a +
∫b
ih. Deducir la regla del trapecio compuesta: a f (x)dx ≈ (h/2)[f (a) +
∑
2 n−1
i=1 f (a+ih)+f (b)]. Demostrar también que el error asociado viene dado
por (−1/12)(b − a)h2 f ′′ (ξ), con ξ ∈ (a, b).
Consideremos de nuevo el caso n = 2 sobre un intervalo [a, b], con los
nodos x0 = a, x1 = a + h y x2 = b, donde h = (b − a)/2. Por lo tanto,
∫
∫
b
f (x)dx ≈
a
x2
x0
2
(∑
i=0
∫
2
)
1 x2 ∏
ℓi (x)f (xi ) dx +
(x − xi )f (3) (ξ(x))dx.
6 x0 i=0
Observemos que el término de error es de orden O(h4 ) y la fórmula es exacta
para los elementos de P2 , pero si seguimos una estrategia alternativa podemos
obtener un término de error de orden mayor.
Consideremos el polinomio de Taylor de f alrededor de x1 . Sabemos que
para cada x ∈ [x0 , x2 ], existe ξ ≡ ξ(x) ∈ (x0 , x2 ) tal que
f (x) = f (x1 )+f ′ (x1 )(x−x1 )+
de donde
∫ x2
f (x)dx
x0
=
f ′′ (x1 )
f ′′′ (x1 )
f (4) (ξ)
(x−x1 )2 +
(x−x1 )3 +
(x−x1 )4 ,
2
3!
4!
f ′′ (x1 )
f ′ (x1 )
(x − x1 )2 +
(x − x1 )3
2
6
x2
∫ x2
′′′
f (x1 )
1
4
+
(x − x1 ) +
f (4) (ξ)(x − x1 )4 dx.
24
24 x0
f (x1 )(x − x1 ) +
x0
Como (x − x1 )4 ≥ 0 en [x0 , x2 ], por el TVM para integrales sigue que
x2
∫ x2
(4) ′
f
(ξ
)
(x − x1 )5 ,
f (4) (ξ)(x − x1 )4 dx =
5
x0
x0
para algún ξ ′ ∈ (x0 , x2 ). Por otra parte, como h = x2 −x1 = x1 −x0 , sigue que
(x2 −x1 )2 −(x0 −x1 )2 = (x2 −x1 )4 −(x0 −x1 )4 = 0, (x2 −x1 )3 −(x0 −x1 )3 = 2h3
y (x2 − x1 )5 − (x0 − x1 )5 = 2h5 . Por lo tanto,
∫ x2
f ′′ (x1 ) 3 f (4) (ξ ′ ) 5
h +
h.
f (x)dx = 2f (x1 )h +
3
60
x0
48 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
Ahora, si usamos la fórmula en diferencia centrada para aproximar la segunda
derivada (§2.1), obtenemos
∫ x2
[ f (x ) − 2f (x ) + f (x ) f (4) (ξ ′′ ) ] h3 f (4) (ξ ′ )
0
1
2
f (x)dx = 2f (x1 )h +
−
h2
+
h5
2
h
12
3
60
x0
h [ 1 (4) ′′
1 (4) ′ ] h5
= [f (x0 ) + 4f (x1 ) + f (x2 )] − f (ξ ) − f (ξ )
.
3
3
5
12
Observemos que esta fórmula es exacta para los elementos de P3 con
término de error O(h5 ).
Def inición 2.1 La fórmula de cuadratura obtenida del proceso anterior, con
n = 2 e intervalo [a, b], la cual está dada por
∫ b
(a + b)
]
b − a[
f (x)dx ≈
f (a) + 4f
+ f (b) ,
6
2
a
se denomina regla de Simpson.
Ejercicio 5:
Demostrar que el error de la regla de Simpson está dado por (−1/90)h5 f (4) (ξ),
donde ξ ∈ (a, b) y h = (b − a)/2. (Sugerencia: observemos que F (a + 2h) =
∫ a+2h
∫x
f
(x)dx
≈
(h/3)[f
(a)
+
4f
(a
+
h)
+
f
(a
+
2h)],
donde
F
(x)
=
f (t)dt;
a
a
el resultado sigue por aplicar el teorema de Taylor a ambos lados de la expresión.).
Ejercicio 6:
Suponiendo nodos igualmente espaciados, definimos h = (b − a)/n y xi =
a + ih para i = 0, 1, . . . , n. Para un número par de intervalos (i.e., n par),
podemos deducir la regla de Simpson compuesta:
∫
b
f (x)dx =
a
n/2 ∫
∑
i=1
x2i
f (x)dx
x2i−2
h∑
≈
[f (x2i−2 ) + 4f (x2i−1 ) + f (x2i )]
3 i=1
n/2
n/2
n/2
]
∑
∑
h[
=
f (x0 ) + 2
f (x2i−2 ) + 4
f (x2i−1 ) + f (xn ) .
3
i=2
i=1
2.2. INTEGRACIÓN NUMÉRICA
49
Demostrar que el error viene dado por (−1/180)(b − a)h4 f (4) (ξ), con ξ ∈
(a, b).
Podemos considerar también fórmulas de cuadratura más generales. Por
ejemplo, si w es una función de peso ≥ 0 dada, entonces
∫
b
w(x)f (x)dx ≈
n
∑
a
donde Ki =
∫b
a
Ki f (xi ),
(2.3)
i=0
w(x)ℓi (x)dx.
Ejercicio 7:
Encontrar una fórmula
∫ π
cos2 xf (x)dx ≈ K0 f (−3π/4) + K1 f (−π/4) + K2 f (π/4) + K3 f (3π/4),
−π
que sea exacta para todo elemento de P3 .
2.2.2
Cuadratura gaussiana
En la §2.2.1 consideramos fórmulas de cuadatura de la forma
∫
b
f (x)dx ≈
a
n
∑
Ki f (xi ),
(2.4)
i=0
las cuales resultan ser exactas para los elementos de Pn . La selección de los
nodos x0 , x1 , . . . , xn se hacı́a de antemano, y se hallaban los coeficientes de
manera única a partir del requerimiento de que la expresión anterior fuera
una igualdad para todo f ∈ Pn . Asimismo, obtuvimos las fórmulas de NC integrando los polinomios de interpolación y utilizando los valores de la
función en nodos igualmente espaciados, lo cual fue útil cuando dedujimos las
reglas compuestas. Sin embargo, esta restricción no produce necesariamente
una mejor aproximación. Por ejemplo, en el caso de la regla del trapecio,
aproximamos la integral de una función en un intervalo dado [a, b] cuando
integramos la recta entre los nodos a y b. Sin embargo, nos resulta intuitivamente claro que el segmento de recta que une los puntos extremos de
la gráfica de la función, (a, f (a)) y (b, f (b)), no necesariamente es la mejor
50 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
función lineal, que para ese intervalo, podemos considerar a fin de obtener el
mejor estimado de la integral. En este sentido, la cuadratura gaussiana nos
permite escoger los puntos para la estimación de la integral de una forma
óptima.
Gauss se percató de que el grado de exactitud de (2.4) podı́a ser llevado a
2n+1 si consideramos los nodos xi ’s como variables, en lugar de ser conocidos
de antemano. Para ello, solamente necesitamos resolver el sistema de 2n + 2
ecuaciones para las 2n + 2 incógnitas K0 , K1 , . . . , Kn , x0 , x1 , . . . , xn , y que
obtenemos al asumir la igualdad en (2.4) cuando f (x) es igual a x0 , x1 , x2 ,
hasta x2n+1 . Si [a, b] = [−1, 1], estas ecuaciones son, para j = 0, 1, . . . , 2n+1,
n
∑
∫
Ki ξij
1
xj dx
=
i=0
−1
Los ξi ’s que satisfacen este sistema son los denominados nodos de GaussLegendre.
Aquı́ también podemos determinar los correspondientes Ki ’s de
∫1
Ki = −1 ℓi (x)dx. Sustituyendo estos valores en
∫
1
−1
f (x)dx ≈
n
∑
Ki f (ξi )
i=0
obtenemos la denominada fórmula de cuadratura de Gauss-Legendre
para n + 1 puntos.
Ejemplo:
Encontremos
K0 , K1 , ξ0 y ξ1 que garanticen la igualdad para elementos de P3
∫1
de −1 f (x)dx ≈ K0 f (ξ0 ) + K1 f (ξ1 ) (i.e., la cuadratura de Gauss-Legendre
para 2 puntos).
Para ello debemos
resolver el sistema de ecuaciones:
∫1
∫1
K0 + K1 = −1 dx = 2, K0 ξ0 + K1 ξ1 = −1 xdx = 0,
∫1
∫1
K0 ξ02 + K1 ξ12 = −1 x2 dx = 23 , K0 ξ03 + K1 ξ13 = −1 x3 dx = 0.
Este sistema no lineal puede resolverse más fácilmente si suponemos que los
nodos ξ0 y ξ1 están localizados simétricamente alrededor del origen, y que
los correspondientes valores de f (ξ0 ) y f (ξ1 ) tienen la misma ponderación
(i.e., K0 = K1 ). De manera que ξ0 = −ξ1 y K0 = K1 . Estas ecuaciones,
junto con las ecuaciones no homogéneas
del√sistema, nos permite encontrar
√
que K0 = K1 = 1, ξ0 = −1/ 3 y ξ1 = 1/ 3 (¡verificar!). Por lo tanto, la
2.2. INTEGRACIÓN NUMÉRICA
51
fórmula de cuadratura requerida es
∫
1
−1
√
√
f (x)dx ≈ f (−1/ 3) + f (1/ 3).
Ejercicio 8:
Si [a, b] = [−1, 1], encontrar las fórmulas de cuadratura de Gauss-Legendre
para 1 y 3 puntos.
A fin de justificar el método, consideremos las fórmulas de cuadratura
(2.3). El siguiente resultado nos dice en dónde debemos ubicar los nodos
para que la fórmula de cuadratura sea exacta en P2n+1 .
Teorema 2.1 Sea q ∫un polinomio distinto de cero de grado n + 1 y wb
ortogonal a Pn (i.e., a w(x)q(x)p(x)dx = 0, ∀p ∈ Pn ). Si x0 , x1 , . . . , xn
son los ceros de q, entonces la fórmula de cuadratura (2.3) será exacta para
todo ϕ ∈ P2n+1 .
Demostración: Sea ϕ ∈ P2n+1 . Si dividimos ϕ entre q obtendremos un
cociente, digamos p, y un resto r, ambos en Pn . Es decir, ϕ = qp + r. Ası́
que ϕ(xi ) = r(xi ) (0 ≤ i ≤ n). Como la fórmula (2.3) es exacta para los
elementos de Pn y q es w-ortogonal a Pn , sigue que
∫
∫
b
b
w(x)ϕ(x)dx =
a
w(x)r(x)dx =
a
n
∑
i=0
Ki r(xi ) =
n
∑
Ki ϕ(xi ). 2
i=0
El siguiente resultado demuestra que las raı́ces del polinomio q del teorema
anterior son simples y se encuentra en el intervalo (a, b).
Proposición 2.1 Sea w una función de peso positiva en C[a, b]. Supongamos que f ∈ C[a, b] es distinta de cero y w-ortogonal a Pn , entonces f cambia
de signo en (a, b) por lo menos n + 1 veces.
Demostración: Ejercicio.
2
Ejemplo:
En el caso de que w(x)
en el ejemplo
√
√ 1], encontramos
∫ 1 = 1 y [a, b] = [−1,
anterior (n = 1) que −1 f (x)dx ≈ f (−1/ 3) + f (1/ 3). Para el caso de
52 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
que n = 4 (i.e., la cuadratura de Gauss-Legendre para 5 puntos) podemos
demostrar que
∫ 1
4
∑
f (x)dx ≈
Ki f (ξi ),
−1
i=0
√
√
√
√
donde −ξ0 = ξ4 = (1/3) 5 + 2 10/7, −ξ1 = ξ3 = (1/3) 5 − 2 10/7 ,
√
√
ξ2 = 0, K0 =√K4 = 0.3(0.7 +√5 0.7)/(2 + 5 0.7), K2 = 128/225, K1 = K3 =
0.3(−0.7 + 5 0.7)/(−2 + 5 0.7).
Los nodos en una fórmula gaussiana son las raı́ces de un polinomio qn+1 de
grado n + 1, el cual debe cumplir las propiedades de ser un polinomio mónico
y w-ortogonal a Pn . Este tipo de polinomio pertenece a los denominados
polinomios ortogonales. En cuanto al cálculo de los coeficientes Ki de la
fórmula gaussiana, los podemos estimar de la misma forma que en el caso de
las fórmulas no gaussianas.
La opción correcta para determinar los parámetros ξi (0 ≤ i ≤ n), necesarios para obtener una fórmula de aproximación exacta para cualquier elemento de P2n+1 , es aquella en que los parámetros son las raı́ces de los polinomios de Legendre de grado n + 1(ver Apéndice A2. en §1.8), las cuales
son diferentes, se encuentran en el intervalo (−1.1) y son simétricas respecto
al origen.
Los nodos y los coeficientes de muchas fórmulas de integración pueden
consultarse en [1], los cuales, para las funciones adecuadas, pueden usarse
para obtener una precisión aceptable con un costo de tan sólo algunas evaluaciones. Para acanzar una mayor precisión se pueden usar fórmulas de un
orden mayor.
Ejercicio 9:
Supongamos que ξ0 , ξ1 , . . . , ξn∫ son las raı́ces∑del polinomio de Legendre qn+1 .
1
Si p ∈ P2n+1 , demostrar que −1 p(x)dx = ni=0 Ki p(ξi ). (Sugerencia: ver el
Teorema 2.1).
Observación:
• La integral en un intervalo dado [a, b] se puede expresar en una integral
en [−1, 1] a través de un sencillo cambio de variable. Es decir, z =
(2x − a − b)/(b − a) ∈ [−1, 1] sii x = [(b − a)z + b + a]/2 ∈ [a, b]. De
manera que,
∫
∫ b
(b − a) 1 ( (b − a)z + b + a )
f (x)dx =
f
dz.
2
2
a
−1
Lo cual nos permite obtener la fórmula de cuadratura gaussiana para
cualquier intervalo [a, b].
Ejercicio 10:
Encontrar la fórmula de cuadratura gaussiana en el caso de que [a, b] = [2, 4],
w(x) = 1 y n = 2.
Ejercicio 11:
Demostrar∑
que en una fórmula de cuadratura gaussiana con [a, b] = [−1, 1] y
w(x) = 1, ni=0 Ki = 2.
54 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
2.4
Experimentación numérica adicional
Dado un conjunto de datos que describen una función, MATLAB nos permite
calcular una aproximación a la derivada de la misma a través del uso del
2.4. EXPERIMENTACIÓN NUMÉRICA ADICIONAL
55
comando diff, que calcula la diferencia entre los elementos consecutivos de
un arreglo.
Como la derivada de y = f (x) está definida por
f (x + h) − f (x)
dy
= lim
,
dx h→0
h
que puede aproximarse por el cociente incremental
f (x + h) − f (x)
,
h
donde h > 0,
podemos estimar la derivada escribiendo:
>> dy = diff(y)./diff(x);
>> dx = x(1:length(x)-1);
donde x y y son arreglos dados y dx crea un nuevo arreglo a partir de x, pues
dy es más corto que y (dx representa los valores de x que corresponden a la
derivada).
Ejercicio 1: Definamos los arreglos
>> x = (0:0.1:1);
>> y = [-.447 1.978 3.28 6.16 7.08 7.34 ...
7.66 9.56 9.48 9.30 11.2];
Encuentre el polinomio de ajuste (con orden de ajuste n = 2) y su derivada
(usando polyder). Encuentre luego la derivada usando el comando diff.
Grafique ambas aproximaciones de la derivada (puede usarse el comando
plot). ¿Qué observa?
Como la derivada de un polinomio es fácil de expresar, MATLAB cuenta
con la función polyder para la diferenciación numérica de polinomios. Ası́,
por ejemplo, si
>> p = [2 3 7 5 3 2];
>> pp = polyder(p)
pp =
10
12
21
10
3
56 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS
Siempre podemos usar mı́nimos cuadrados y obtener una curva de ajuste
de los datos (para lo que podemos usar la función polyfit), para luego
diferenciar el polinomio resultante usando polyder.
MATLAB tiene dos funciones de cuadratura numérica: quad y quadl.
La primera usa una forma adaptable de la regla de Simpson; la segunda usa
la cuadratura adaptable recursiva de Lobatto de alto orden. Ambas
funciones aproximan a la integral definida de una función dada con un error
(por defecto) del orden de 10−6 (puediendo especificarse un error menor). La
función quadl es mejor para
manejar funciones con cierto tipo de singulari∫1√
dades, como es el caso de 0 xdx.
∫b√
Ejercicio 2: Estimar la integral de la función raı́z cuadrada, a xdx, usando quad y quadl, para diferentes valores no negativos de los extremos
de integración (puede usar el comando input para introducir estos valores).
Comparar los valores obtenidos con los valores analı́ticos para un intervalo
dado [a, b], a,b > 0 (esto es, comparar con 23 (b3/2 − a3/2 )).
Ejercicio 3:
a) Como se vio en la parte teórica, MATLAB tiene dos procedimientos
de cuadratura: quad y quadl. Use el comando help de MATLAB
para saber cómo trabajan estas funciones. Efectúe algunas pruebas
con algunas funciones conocidas (sen(x), cos(x), ex , polinomios, etc.)
sobre algunos subintervalos de sus dominios.
b) Investigue con el help de MATLAB la función humps. Aplique quad y
quadl a la integral de la función humps desde 0 hasta 1, sobre el rango
de tolerancias: 10−2 , 10−3 , 10−4 , 10−5 , 10−6 .
c) Algunos M-archivos de interés pueden ser hallados en la Internet4 vı́a
ftp:
ftp://ftp.cs.cornell.edu/pub/cv
Si selecciona chapter4 encontrará los M-archivos (“M-files”) correspondientes al tema de cuadratura numérica, y puede descargar, por
ejemplo, el script ShowQuads que le resolverá el problema anterior.
4
Son los M-archivos mencionados al final de cada capı́tulo de [30].
2.4. EXPERIMENTACIÓN NUMÉRICA ADICIONAL
57
También puede usar el script GLvsNC a fin de comparar las reglas de
Newton-Cotes y Gauss cuando las aplicamos a la integral de sen(x)
desde 0 a π/2, para distintos valores de n (= 2, 3, 4, 5, 6). ¿Qué pudiera
inferirse de esta comparación?
Ejercicio 4: Integración doble [26, Cap. 4].
Consideramos aquı́ resolver numéricamente la integral
∫ ymax ∫ xmax
f (x, y) dxdy,
ymin
xmin
donde f (x, y) = ysen(x) + xcos(y) (recuerde que el primer paso consiste en
definir el integrando). MATLAB usa la función dblquad para el cálculo de
integrales dobles, la cual evalúa el lazo exterior usando quad; luego, en cada
iteración, quad llama una segunda función que evalúa el lazo interior. Vea la
ayuda help dblquad. Para [xmin, xmax] = [π, 2π] y [ymin, ymax] = [0, π],
calcule la integral doble de la función dada.
Nota: La función MATLAB para integrales triples es triplequad. Escriba
help triplequad para obtener información sobre la misma.
Capı́tulo 3
Problemas de valores iniciales
para EDOs
Muchos sistemas fı́sicos y naturales dan lugar a modelos matemáticos que
contienen ecuaciones diferenciales ordinarias (EDOs). Aunque pareciera ser
mejor resolver analı́ticamente estas ecuaciones, muchas de ellas tienen soluciones analı́ticas complicadas o simplemente no las conocemos. En estos
casos, requerimos del uso de una técnica numérica para buscar una solución
aproximada de la ecuación diferencial. La bibliografı́a relacionada con este
tema, al nivel que proponemos aquı́, es realmente extensa1 y nosotros, simplemente, hacemos una adaptación de la misma.
3.1
Preliminares
Consideraremos aquı́ el estudio y análisis de métodos numéricos para la EDO
de primer orden de la forma
y ′ (t) = f (t, y(t)),
donde y(t) es una función de valores reales (de la variable real t) y f es una
función conocida que toma valores reales y depende de dos variables reales.
Nuestro objetivo será el de encontrar soluciones numéricas de esta ecuación
diferencial. Sin embargo, en general, la solución de esta ecuación es una
familia infinita de curvas solución, que constituye la solución general. Por
1
Ver por ejemplo, [2], [6], [19], [22], [24], [27], [29], [34], [36].
59
60
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
lo que para escoger una solución particular de esta familia necesitaremos,
además, de una condición inicial. Dados dos números reales, t0 y y0 , el
objetivo de un problema de valores iniciales (PVI) consiste en encontrar
una solución y(t), para t > t0 , tal que
y ′ (t) = f (t, y(t)),
y(t0 ) = y0 ,
(3.1)
A fin de garantizar la existencia de una solución única para el PVI (3.1),
debemos considerar el siguiente teorema.
Teorema 3.1 (Teorema de Picard (1856-1941)) Supongamos que la función de valores reales (t, y) 7→ f (t, y) es continua en la región R = {(t, y) ∈
R2 : y ∈ [y0 − C, y0 + C] ∧ t ∈ [t0 , TM ]}, que |f (t, y0 )| ≤ K cuando
t ∈ [t0 , TM ], y que f satisface la condición de Lipschitz, i.e. existe λ > 0 tal
que |f (t, u) − f (t, v)| < λ|u − v| ∀(t, u), (t, v) ∈ R. Si también suponemos que
C ≥ (K/λ)(eλ(TM −t0 ) − 1), entonces existe una única función y ∈ C 1 [t0 , TM ]
tal que y(t0 ) = y0 ∧ y ′ (t) = f (t, y(t)) para t ∈ [t0 , TM ]; además, |y(t) − y0 | ≤
C, t ∈ [t0 , TM ].
Demostración. Ver, por ejemplo, [3]. 2
Al aplicar este teorema necesitamos escoger la constante C tal que las
hipótesis sean satisfechas. También, se puede demostrar que si TM − t0 es lo
suficientemente pequeño y si ∂f /∂y es continua en una vecindad de (t0 , y0 ),
entonces se satisfacerán las condiciones del teorema [3].
Ejemplo.
Consideremos el PVI sguiente:
y ′ (t) − αy(t) = β,
y(t0 ) = y0 ,
donde α y β son constantes. Claramente, λ = |α| (independientemente de
C) y K = |αy0 | + |β|. De manera que, para cualquier intervalo [t0 , TM ], si
escogemos C lo suficientemente grande las condiciones son satisfechas. Por
lo tanto, el PVI tiene una única solución definida en t ∈ [t0 , TM ], que es
continuamente diferenciable.
Ejercicio 1.
Aplicar el Teorema 3.1 al siguiente PVI no lineal
y ′ (t) = y 2 (t),
y(0) = 1,
3.2. EDOS DE PRIMER ORDEN
61
¿Cuál es la solución única de este PVI?
En estas notas siempre supondremos que la función f satisface las condiciones del Teorema de Picard. Asumimos también que deseamos resolver el
PVI (3.1) en el intervalo [t0 , TM ], el cual dividimos en N subintervalos usando los puntos tn = t0 + nh, n = 0, 1, . . . , N , donde h = (TM − t0 )/N . De
manera que, para cada n, buscaremos estimar una aproximación yn de y(tn ).
Estas aproximaciones se calculan de manera sucesiva para n = 1, 2, . . . , N .
Llamaremos a h el tamaño del paso.
3.2
EDOs de primer orden
Entre las técnicas numéricas más utilizadas para resolver ecuaciones diferenciales ordinarias están los denominados métodos de Runge-Kutta. Estos
métodos se basan en aproximar una función a partir de su desarrollo en
serie de Taylor. Ası́, un método de Runge-Kutta de primer orden2 usa un
desarrollo de Taylor de primer orden, un método de Runge-Kutta de segundo
orden usa un desarrollo de Taylor de segundo orden, etc.
En el caso del método de Runge-Kutta de primer orden, en cada paso
evaluamos f en el punto correspondiente a la solución aproximada actual
(tn , yn ), para luego utilizar la información obtenida de la pendiente para
hallar yn+1 . Ası́, la ecuación queda
yn+1 = yn + hn f (tn , yn ),
cuya aplicación sucesiva define el algoritmo:
n=0
Se repite:
fn = f (tn , yn )
Se define el paso hn > 0
tn+1 = tn + hn
yn+1 = yn + hn fn
n=n+1
Con un error local de truncamiento O(h3 ), obtenemos el método de
2
Éste es el denominado método de Euler.
62
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
Runge-Kutta de segundo orden:
k1 = hf (tn , yn )
(3.2)
k2 = hf (tn + h, yn + k1 )
(3.3)
yn+1 = yn +
k1 + k2
2
(3.4)
Observemos que por cada paso se requieren dos evaluaciones de f .
El método de Runge-Kutta más conocido es el siguiente método de cuarto
orden:
k1 = hf (tn , yn )
(3.5)
h
1
k2 = hf (tn + , yn + k1 )
2
2
(3.6)
h
1
k3 = hf (tn + , yn + k2 )
2
2
(3.7)
k4 = hf (tn + h, yn + k3 )
(3.8)
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6
(3.9)
El cual requiere de cuatro evaluaciones de f por paso.
A continuación estudiaremos con mayor detalle estas técnicas.
3.2.1
Métodos de un paso
En este tipo de métodos yn+1 viene expresada en términos del valor yn
obtenido en el paso anterior. El caso más simple de los métodos de un
paso es el denominado método de Euler, que definiremos a continuación.
Sabiendo que y(t0 ) = y0 , supondremos que ya hemos calculado yn , para
algún n = 0, 1, . . . , N − 1 (N ≥ 1). Definimos entonces, para cada n =
0, 1, . . . , N − 1, de a un paso por vez, el siguiente esquema iterativo:
yn+1 = yn + hf (tn , yn ),
con el que buscaremos estimar, en la red de puntos dada, los valores aproximados yn de y(tn ).
3.2. EDOS DE PRIMER ORDEN
63
Observemos que al considerar el desarrollo de Taylor, hasta los dos primeros
términos, de y(tn+1 ) = y(tn + h) alrededor de tn con y ′ (tn ) = f (tn , y(tn )),
obtendremos
y(tn + h) = y(tn ) + hf (tn , y(tn )) + O(h2 ).
Si además sustituimos y(tn ) y y(tn +h) por sus valores aproximados yn y yn+1
respectivamente, y desechamos el término O(h2 ), obtendremos el método de
Euler.
En una forma más general podemos expresar los métodos de un paso
como
yn+1 = yn + hΨ(tn , yn , h),
n = 0, 1, . . . , N − 1,
y(t0 ) = y0 ,
(3.10)
donde Ψ(tn , yn , h) es una función continua de sus variables. Ası́, por ejemplo,
en el caso del método de Euler, Ψ(tn , yn , h) = f (tn , yn ).
Al resolver una ecuación diferencial numéricamente se presentan diferentes tipos de errores.
Def inición 3.1 Llamaremos error de truncamiento local el que ocurre
en un paso dado cuando reemplazamos un proceso infinito por uno finito. El
error de truncamiento global es la acumulación de todos los errores de
truncamiento local. Denominaremos también error de redondeo global
al que se presenta cuando acumulamos los errores de redondeo (local ) de los
pasos anteriores. El error total es la suma de los errores de truncamiento
global y de redondeo global.
El error de truncamiento local está presente en cada paso del proceso
de obtención de la solución numérica. El error de truncamiento global está
asociado con el método numérico particular que aplicamos y es independiente
del hardware que utilicemos.
Para el caso del método numérico (3.10), consideraremos el error en ≡
y(tn ) − yn , también denominado error global, y el error de truncamiento
ên ≡
y(tn+1 ) − y(tn )
− Ψ(tn , y(tn ), h).
h
(3.11)
3.2. EDOS DE PRIMER ORDEN
67
Métodos implı́citos de un paso
∫t
Observemos que de y(tn+1 ) − y(tn ) = tnn+1 y ′ (t)dt y luego aproximar la integral usando la regla del trapecio, obtenemos el siguiente método de un
paso:
h
yn+1 = yn + [f (tn+1 , yn+1 ) + f (tn , yn )],
(3.14)
2
el cual se denomina método de la regla del trapecio3 y tiene una precisión
de segundo orden. En efecto, como el error de truncamiento ên está dado
por
y(tn+1 ) − y(tn ) 1
ên =
− [f (tn+1 , y(tn+1 )) + f (tn , y(tn ))]
h
2
y como el error para la regla del trapecio viene dada por (−1/12)(tn+1 −
tn )3 f ′′ (ξ), con ξ ∈ (tn , tn+1 ) (ver §2.2.1), entonces |ên | ≤ (1/12)h2 M, donde
M = maxz∈[t0 ,tM ] f ′′ (z).
Como yn+1 aparece a ambos lados de (3.14), para calcular yn+1 a partir de
yn necesitamos resolver una ecuación que, por lo general, no es lineal. Podemos resolver la ecuación (3.14) para yn+1 , por ejemplo, usando el método de
Newton (siempre y cuando la derivada fy sea relativamente fácil de calcular),
usando como iterado inicial yn + hf (tn , yn ). Este tipo de métodos, en donde
requerimos resolver una ecuación para determinar el nuevo valor de yn+1 , son
de segundo orden (i.e., el error en es O(h2 )), y se conocen como métodos
implı́citos.
3
También conocido como el método de Adams-Moulton de segundo orden.
68
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
Ejercicio 3.
Para el mismo PVI del Ejercicio 2, aplicar el método de la regla del trapecio
para los tamaños de paso h = 0.4 y h/2. Graficar los resultados obtenidos
y comparar con el método de Euler del Ejercicio 2. ¿Qué efecto tiene la
reducción del tamaño de paso por un factor de 2?
Métodos de Runge-Kutta
Comencemos por considerar la siguiente familia de métodos:
yn+1 = yn + hΨ(tn , yn , h),
(3.15)
donde
Ψ(tn , yn , h) = αf (tn , yn ) + βf (tn + µh, yn + νhf (tn , yn ))
y α, β, µ y ν son parámetros a ser determinados.
Observaciones.
• (3.2)-(3.4) coincide con el caso α = β = 1/2 y µ = ν = 1. Este método
se suele denominar método de Euler mejorado. Otro ejemplo es
el método de Euler modificado, para el cual α = 0, β = 1 y
µ = ν = 1/2. Asimismo, el método de Euler también es un miembro
de esta familia (caso α = 1 y β = 0); no obstante, ahora nos interesan
métodos con un orden de precisión mayor que 1.
• De acuerdo con la Definición 3.2 (i.e., cuando Ψ(t, y, 0) = f (t, y)), un
método de esta familia será consistente sii α + β = 1. Este es el caso
de los ejemplos anteriores.
Con el objeto de determinar el error de truncamiento (3.11) necesitaremos
calcular algunas derivadas de y. A fin de simplificar la notación, supongamos
que las funciones en el lado derecho de las siguientes expresiones están evaluadas en (tn , y(tn )), de manera que
y ′ (tn ) = f,
y ′′ (tn ) = ft + fy f,
y ′′′ (tn ) = ftt + fty f + (fty + fyy f )f + fy (ft + fy f ),
...
...
3.2. EDOS DE PRIMER ORDEN
69
Y usando el desarrollo de Taylor en dos variables, tenemos que
Ψ(tn , y(tn ), h) =
1
1
αf + β(f + µhft + νhf fy + (µh)2 ftt + µνh2 f fty + (νh)2 f 2 fyy + O(h3 )).
2
2
Por lo que el error de truncamiento queda
y(tn + h) − y(tn )
− Ψ(tn , y(tn ), h)
h
1
1
= f + h(ft + fy f ) + h2 (ftt + fty f + (fty + fyy f )f + fy (ft + fy f ))
2
3!
1
1
−[αf + β(f + µhft + νhf fy + (µh)2 ftt + µνh2 f fty + (νh)2 f 2 fyy )]
2
2
+O(h3 ).
ên =
Como α + β = 1, (1 − α − β)f = 0, y como el término h[(1/2)(ft + fy f ) −
βµft − βνf fy ] se anula para toda f tal que βµ = βν = 1/2, el método será
de segundo orden si ν = µ, β = 1/2µ y α = 1 − 1/2µ, con µ ̸= 0. De manera
que el error de truncamiento del método queda:
ên = h2
[( 1
6
−
(1 µ)
]
1
µ)
(ftt +fyy f 2 )+ − f fty + (ft fy +f fy2 ) +O(h3 ). (3.16)
4
3 2
6
Demostrando que en efecto existe una familia de métodos, dependiente de
un parámetro (µ ̸= 0), que es de segundo orden.
Observemos que en (3.16) no tenemos manera de escoger, para toda f , el
parámetro µ para que el método sea de tercer orden (ver el Ejercicio 4).
Ejercicio 4.
Corroborar la última observación anterior para el caso del PVI: y ′ = y,
y(0) = 1. ¿Cuál es el error de truncamiento? ¿Cómo depende de µ?
Ejercicio 5.
Para los métodos de Euler modificado y de Euler mejorado estimar sus respectivos errores de truncamiento y verificar que son métodos de segundo
orden.
70
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
Podemos realizar un análisis similar, aunque más complicado, para obtener
métodos de Runge-Kutta de orden mayor, como el método (3.5)-(3.9), el cual
se conoce como el método clásico de Runge-Kutta de cuarto orden.
Ejercicio 6.
Para el mismo PVI del Ejercicio 2 y tamaños de paso, aplicar el métodos de
la regla del trapecio y el clásico de Runge-Kutta de cuarto orden. Graficar,
para cada h y en el mismo sistema coordenado, los resultados obtenidos junto
con el método utilizado en el Ejercicio 2. Graficar los errores en otro sistema
coordenado, indicando en el eje horizontal el número de puntos igualmente
espaciados (N = 1.6/h), en una escala logarı́tmica, y en el eje vertical ln |eN |.
Interpretar y comparar las gráficas que corresponden a cada uno de los tres
métodos.
3.2.2
Métodos multi-paso
Estos son los denominados métodos de k pasos, donde ahora yn+1 viene
expresada en términos de los k valores anteriores: yn , yn−1 , . . . , yn−k+1 (k ≥
2).
Si bien está claro que cuando aplicamos los métodos de Runge-Kutta
podemos alcanzar una mayor precisión, también es cierto que esto ocurre a
costa de llevar a cabo un mayor trabajo computacional, pues se requiere de
un número mayor de evaluaciones de f . Por otra parte, si consideramos, por
ejemplo, los tres nodos tn−1 , tn = tn−1 + h y tn+1 = tn−1 + 2h, e integramos la
ecuación diferencial y ′ (t) =∫ f (t, y(t)) entre tn−1 y tn+1 , entonces obtendremos
tn+1
que y(tn+1 ) − y(tn−1 ) = tn−1
f (t, y(t))dt. Si a continuación aplicamos el
método de Simpson (ver §2.2.1) para aproximar la integral del lado derecho,
conseguimos el método
h
yn+1 = yn−1 + [f (tn+1 , yn+1 ) + 4f (tn , yn ) + f (tn−1 , yn−1 )],
3
(3.17)
que tan sólo requiere de tres evaluaciones de la función f por paso.
Observemos también que para calcular yn+1 en (3.17) necesitamos de
los dos valores anteriores, yn−1 y yn , por lo que este método es diferente a
los métodos de un paso que tan sólo requieren del valor anterior, yn . Este
3.2. EDOS DE PRIMER ORDEN
71
tipo de métodos se denomina métodos multi-paso lineales. Daremos a
continuación una definición más general.
Def inición 3.4 Sea {tn } una sucesión de nodos igualmente espaciados con
tamaño de paso h. Entonces, el método
k
∑
aj yn+j = h
j=0
k
∑
bj f (tn+j , yn+j ),
(3.18)
j=0
donde los coeficientes aj y bj (j = 0, 1, . . . , k) son constantes reales con ak
distinto de cero, se denomina método de k pasos lineal. Es mejor suponer
también que no se da el caso de que a0 = b0 = 0. Si bk = 0 decimos que el
método es explı́cito, y si bk ̸= 0 entonces decimos que es implı́cito.
Ası́, por ejemplo, (3.17) es un método de 2 pasos lineal implı́cito.
Observación:
• En la definición anterior decimos que el método (3.18) es “lineal”
porque sólo involucra combinaciones lineales de los yn+j y f (tn+j , yn+j ),
para j = 0, 1, . . . , k.
Ejemplos.
El método de Euler es un método de un paso lineal explı́cito. Asimismo, el
denominado método de Euler implı́cito
yn+1 = yn + f (tn+1 , yn+1 ),
es un método de un paso lineal implı́cito. El método de la regla del trapecio
es también un método de un paso lineal implı́cito.
El denominado método de Adams-Bashforth
yn+4 = yn+3 +
h
(55fn+3 − 59fn+2 + 37fn+1 − 9fn ),
24
(3.19)
en donde usamos la notación fk ≡ f (tk , yk ), es un método de 4 pasos lineal
explı́cito. El denominado método de Adams-Moulton
yn+3 = yn+2 +
h
(9fn+3 + 19fn+2 − 5fn+1 − 9fn )
24
es un método de 3 pasos lineal implı́cito.
(3.20)
72
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
∫t
Como ya hemos observado, partiendo de y(tn+1 ) = y(tn )+ tnn+1 f (t, y(t))dt,
podemos aproximar la integral usando una fórmula de cuadratura numérica,
para obtener una fórmula que genera, en cada paso, una solución aproximada
del problema 3.1. La expresión obtenida será de la forma:
yn+1 = yn + afn + bfn−1 + cfn−2 + . . . ,
la cual se denomina fórmula de Adams-Bashforth. A manera de ejemplo,
supongamos que deseamos aproximar, para los puntos ti = t0 +ih (0 ≤ i ≤ n),
la integral anterior de la siguiente manera:
∫ tn+1
f (t, y(t))dt ≈ h[Afn + Bfn−1 + Cfn−2 + Dfn−3 + Efn−4 ].
tn
Determinaremos los coeficientes A, B, C, D y E de manera tal que esta
expresión sea exacta siempre que el integrando sea un polinomio de grado
≤ 4. Sin pérdida de generalidad, podemos suponer que tn = 0 y h = 1
(¿por qué?); claramente tn+1 = 1, tn−1 = −1, tn−2 = −2, tn−3 = −3 y
tn−4 = −4. Asimismo, podemos considerar convenientemente, como base de
P4 , los polinomios p0 (t) = 1, p1 (t) = t, p2 = t(t + 1), p3 (t) = t(t + 1)(t + 2) y
p4 = t(t + 1)(t + 2)(t + 3). Cuando los sustituı́mos en la ecuación
∫ 1
pn (t)dt = Apn (0) + Bpn (−1) + Cpn (−2) + Dpn (−3) + Epn (−4),
0
obtenemos el siguiente sistema de ecuaciones:
1=A+B+C +D+E
1
= −B − 2C − 3D −
2
5
= 2C + 6D + 12E
6
9
= −6D − 24E
4
251
= 24E,
30
4E
que fácilmente resolvemos por sustitución hacia atrás, obteniendo la fórmula
yn+1 = yn +
h
[1901fn − 2774fn−1 + 2616fn−2 − 1274fn−3 + 251fn−4 ],
720
denominada método de Adams-Bashforth de quinto orden.
3.2. EDOS DE PRIMER ORDEN
73
El procedimiento ilustrado es el método de los coeficientes indeterminados. De manera similar podemos obtener métodos de orden superior.
A fin de mejorar la precisión, los métodos de Adams-Bashforth se suelen
aplicar conjuntamente con otros métodos. Supongamos ahora que usamos
un método de cuadratura numérica que incluya fn+1 , entonces ahora
yn+1 = yn + afn+1 + bfn + cfn−1 + . . .
Ejercicio 7.
Aplicar el método de los coeficientes indeterminados para deducir el siguiente
método:
yn+1 = yn +
h
[251fn+1 + 646fn − 264fn−1 + 106fn−2 − 19fn−3 ].
720
Se trata del método de Adams-Moulton de quinto orden.
Notemos que este método no se puede aplicar directamente para avanzar
en la solución, ya que yn+1 aparece a ambos lados de la ecuación. Sin embargo, podemos usar el método de Adams-Bashforth de quinto orden anterior
p
para estimar un valor de yn+1 , el predictor yn+1
, para luego utilizarlo con el
método de Adams-Moulton de quinto orden para obtener un nuevo valor de
c
yn+1 , el corrector yn+1
. Este algoritmo se denomina el método predictorcorrector. De manera que, en la expresión anterior para el método de
p
Adams-Moulton de quinto orden, fn+1 = f (tn+1 , yn+1
).
Dado que tan sólo conocemos el valor inicial y0 , podemos usar, por ejemplo, el método de Runge-Kutta para obtener y1 , y2 , y3 y y4 . En general, se
utilizan conjuntamente métodos de un mismo orden4 .
Como se desprende de (3.18), requerimos de k valores iniciales, y0 , y1 , . . .,
yk−1 , antes de aplicar el método de k pasos lineal al PVI (3.1). De ellos,
como acabamos de observar, y0 está dado por la condición inicial, pero los
demás debemos estimarlos de alguna otra forma, por ejemplo, usando un
4
La precisión de una solución numérica de una ecuación diferencial está determinada por
el orden del método utilizado. El orden indica cuántos términos de una solución expresada
en serie de Taylor está utilizando el método. Por ejemplo, decimos que un método dado
es de cuarto orden porque produce de manera aproximada la misma precisión que la que
se obtiene al usar una serie de Taylor con los términos h, h2 , h3 y h4 . De manera que en
cada paso de la solución en la que se aplica el método esperamos que el error sea O(h5 ).
Más adelante precisaremos esta idea intuitiva de orden
74
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
método de un paso. En cualquier caso, los valores iniciales contendrán errores numéricos, por lo que es importante saber cómo este hecho afectará a
las siguientes aproximaciones yn ’s, para n ≥ k, que hemos calculado usando
(3.18). Por lo tanto, es relevante considerar aquı́ la “estabilidad” del método
numérico con respecto a “pequeñas perturbaciones” en las condiciones iniciales.
88
3.5
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
Experimentación numérica adicional
Ejercicio 1. Usando un software de cómputo cientı́fico, implementar los
métodos de Runge-Kutta de órdenes uno, dos y cuatro, con paso de tamaño
fijo. Consideremos, por ejemplo, resolver numéricamente el siguiente PVI:
y ′ (t) = 3y(t) + e2t , y(0) = 3,
en el intervalo [0, 3] (la solución analı́tica es y = 4e3t − e2t ). Graficar la
solución.
Ejercicio 2.
Aplicar el método de Runge-Kutta para resolver numéricamente el siguiente
problema de valores iniciales:
 ′′
y (x) + xy(x) = 1, 0 ≤ x ≤ 1,



y(0) = 3−2/3 Γ(1/3) ≈ 1.2878993169,



y ′ (0) = −3−1/3 Γ(2/3) ≈ −0.9388929401,
∫∞
donde Γ es la función Gamma, la cual se define por Γ(s) = 0 ts−1 e−t dt,
con s real > 0. Las soluciones de la ecuacion y ′′ (x) + xy = 1 se llaman
3.5. EXPERIMENTACIÓN NUMÉRICA ADICIONAL
89
funciones generalizadas de Airy9 de orden 0. A fin de comprobar el resultado,
la respuesta en la red de puntos t = 0, 0.1, 0.2, . . . , 0.9, 1.0, es:
0
0.10000000000000
0.20000000000000
0.30000000000000
0.40000000000000
0.50000000000000
0.60000000000000
0.70000000000000
0.80000000000000
0.90000000000000
1.00000000000000
1.28789931690000
1.19880295408549
1.11852115068333
1.04601372670662
0.98037804300430
0.92082923969703
0.86668350462695
0.81734388182298
0.77228821288660
0.73105887250618
0.69325401561206
Obtener también la gráfica de la solución aproximada (ası́ como la de su
derivada).
Ejercicio 3. (Movimiento cerca de los puntos de Langrange)
Consideremos dos grandes masas esféricas M1 y M2 , con M1 > M2 . En la
ausencia de otras fuerzas, estos cuerpos se moverán en órbitas elı́pticas alrededor de su centro de masa común (como en el caso de la Tierra y la Luna).
Bajo la influencia gravitacional de los dos cuerpos grandes, consideremos
Las soluciones de la versión homogénea: y ′′ + xy = 0, conocidas como funciones
de Airy, aparecen de un modo natural en muchos problemas de la Fı́sica-Matemática;
por ejemplo, en la teorı́a de difracción de ondas de radio alrededor de la superficie
terrestre; en el diseño de cáscaras toroidales delgadas, sometidas a la acción de presiones internas y fuerzas radiales distribuidas; en el estudio de la deformación, tanto de
columnas sujetas a fuerzas longitudinales, como en placas delgadas en las cuales actúan
además de fuerzas transversales, fuerzas centrı́fugas internas. Cuando se estudia la aproximación WKM (Wentzel - Kramers - Brillouin), para resolver determinados problemas de
la mecánica cuántica, se usa un método de aproximación, en el cual aparece la ecuación
uno-dimensional de Schrödinger,
9
d2 y
2m
+ 2 (E − V (x))y = 0
2
dx
h
(con E > V , E − V =
toma la forma
m 2
2V ,
y V la velocidad clásica), la cual, después de cierto análisis,
d2 y
− zy = 0,
dz 2
que es una ecuación de Airy (para más detalles ver [12]).
90
CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES
el movimiento de un tercer cuerpo, como una nave espacial (con una masa
insignificante en comparación con M1 y M2 ). Se producen entonces cinco
puntos de equilibrio para el movimiento del cuerpo pequeño con relación a
los dos cuerpos grandes. Tres de los mismos (encontrados por Euler) están
sobre la lı́nea que une los dos cuerpos grandes. Los otros dos (encontrados
por Lagrange) son los denominados puntos de Lagrange. Cada uno de ellos
forma un triángulo equilátero en el plano de movimiento con las posiciones
de los dos cuerpos grandes. Y estamos interesados en el movimiento de la
nave cuando pasa cerca de un punto de Lagrange.
A fin de simplificar nuestro análisis, supondremos que los dos cuerpos
grandes se mueven en cı́rculos (por lo que mantienen una distancia constante
entre sı́). Tomaremos como el origen del sistema de coordenadas el centro de
masa y supondremos que el eje x siempre contiene a los dos cuerpos grandes.
La distancia entre los cuerpos grandes será la unidad de distancia, y la suma
de las dos masas será la unidad de masa (M1 +M2 = 1). Por último, la unidad
de tiempo será tal que una órbita completa tome 2π unidades (en nuestro
caso, 1 año ≡ 2π unidades, lo que equivale a tomar la constante gravitacional
igual a 1). Con todas estas suposiciones, el parámetro fundamental es la masa
2
relativa del más pequeño de los dos cuerpos: µ = M1M+M
= M2 . Entonces, la
2
posición de M1 es (−µ, 0) y√la de M2 es (1 − µ, 0). La posición del punto de
Lagrange será ((1 − 2µ)/2, 3/2). Si (x, y) es la posición de la nave espacial,
entonces las distancias a M1 y M2 son:
r12 = (x + µ)2 + y 2 ,
r22 = (x − 1 + µ)2 + y 2 .
Por último, las ecuaciones de Newton del movimiento aplicadas a este caso
son:
(1 − µ)(x + µ) µ(x − 1 + µ)
−
,
r13
r23
..
(1 − µ)y µy
.
y +2 x −y = −
− 3.
r13
r2
..
.
x −2 y −x = −
(3.36)
Encuentre el sistema de cuatro ecuaciones de primer orden equivalente al
sistema (3.36) (ver Ejemplo de §6.2). Si los dos cuerpos
son la Tierra y
√
la Luna, µ = 0.0122, x = (1 − 2µ)/2 + ξ y y = 3/2 + η. Ası́, (ξ, η)
es la posición de la nave relativa al punto de Lagrange. Comenzando con
condiciones iniciales menores que 1/100 unidades de distancia del punto de
3.5. EXPERIMENTACIÓN NUMÉRICA ADICIONAL
91
Lagrange, calcular la solución. Para cada solución calculada, obtener la
gráfica de η vs. ξ para observar el movimiento relativo al punto de Lagrange.
Graficar además y vs. x, que incluya las posiciones de M1 y M2 , a fin de
obtener una visión global del movimiento. (Nota: Tomado del texto de
Polking y Arnold, 1999 [33])
Capı́tulo 4
Problemas con valores en la
frontera para EDOs
En muchos problemas prácticos requerimos determinar una solución para
un sistema de ecuaciones diferenciales en un intervalo finito dado, con s
condiciones complementarias conocidas en uno de los extremos del intervalo
y m − s condiciones en el otro extremo. A un problema, con este tipo de
condiciones, lo denominaremos un problema con valores en la frontera
(PVF). Los métodos numéricos que abordan esta clase de problemas son
diferentes a los considerados para los PVIs. Más precisamente, requerimos la
solución en un intervalo [a, b], con algunas condiciones dadas en a, y el resto
en b, sin embargo pueden darse situaciones más complicado, que involucran
tres o más puntos.
Proponemos pues el caso de un problema con valores en la frontera en
dos puntos para una ecuación diferencial de segundo orden. Nos referimos al
problema
y ′′ = f (t, y, y ′ ), t ∈ (a, b), con las condiciones y(a) = α, y(b) = β,
(4.1)
donde α y β son números reales dados.
Ejemplo.
y ′′ = −y,
y(0) = 3,
y(π/2) = 7.
(4.2)
La solución general de la ecuación diferencial es y(t) = C1 sen t + C2 cos t.
Hallamos las constantes C1 y C2 tales que se satisfagan las condiciones de
frontera. Ası́, C1 = 7 y C2 = 3. De manera que la solución de (4.2) es
93
94
CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA
y(t) = 7 sen t + 3 cos t.
El procedimiento que seguimos en el ejemplo anterior deja de ser práctico
cuando no conocemos la solución general de la ecuación diferencial (4.1).
De allı́ la necesidad de contar con métodos numéricos adecuados que nos
permitan abordar este tipo de problema.
Consideremos ahora el siguiente problema de apariencia similar al anterior:
y ′′ = −y,
y(0) = 3, y(π) = 7.
(4.3)
Si imponemos las condiciones de frontera a la solución general, obtenemos
la contradicción de que C2 = 7 y C2 = −7. Por lo que el problema (4.3)
no tiene solución. El asunto de la existencia de soluciones de (4.1) tiende a
ser más complicado que para el caso de los PVIs. Mostremos a continuación
otro ejemplo.
Ejemplo. ([34, §12.1])
Consideremos el PVF siguiente
−y ′′ (t) = f (t), t ∈ (0, 1),
y(0) = y(1) = 0.
(4.4)
Del TFC sigue que si y ∈ C 2 [0, 1] y satisface la ecuación diferencial −y ′′ (t) =
f (t), entonces
∫
t
y(t) = −
F (s)ds + C1 t + C2 ,
∫s
donde C1 y C2 son constantes abitrarias y F (s) = 0 f (t)dt. Integrando por
partes tenemos que
∫ t
∫ t
t ∫ t
′
F (s)ds = sF (s) −
sF (s)ds =
(t − s)f (s)ds.
0
0
0
0
0
es claro que de las condiciones de frontera sigue que C2 = 0 y C1 =
∫Ahora,
1
(1 − s)f (s)ds. De manera que la solución de (4.4) se puede expresar como
0
∫ 1
∫ t
y(t) = t
(1 − s)f (s)ds −
(t − s)f (s)ds,
0
o bien,
∫
y(t) =
{
1
G(t, s)f (s)ds, donde G(t, s) =
0
0
s(1 − t) si s ∈ [0, t],
t(1 − s) si s ∈ [t, 1],
(4.5)
95
para cualquier t fijo. La función G se denomina función de Green para el
PVF (4.4). Ésta es una función lineal a trozos de s para t fijo, y viceversa
1
(¡verificar!). Además, la función G es continua,
∫ 1 simétrica , nula en los puntos
extremos del intervalo [0, 1], no negativa y 0 G(t, s)ds = t(1 − t)/2. Por esta
razón podemos concluir que para toda f ∈ C[0, 1] existe una única solución
y ∈ C 2 [0, 1] del PVF (4.4) que tiene la representación (4.5).
Ejercicio 1.
(a) Demostrar que si f ∈ C[0, 1] la solución de (4.4), dada por (4.5), tiene
las propiedades de monotonicidad y del principio del máximo2 .
(b) Demostrar que y(t) = −t ln(t) si f (t) = 1/t en (4.4). Esto muestra que
y ∈ C 2 (0, 1), pero y(0) no está definida y además y ′ , y ′′ no existen en
t = 0 (lo que implica que si f ∈ C(0, 1), pero no a C[0, 1], entonces
y∈
/ C[0, 1]).
El siguiente teorema nos dice algo más.
Teorema 4.1 El PVF
Ly ≡ y ′′ = f (t, y)
y(0) = 0,
y(1) = 0,
(4.6)
tiene solución única si fy es continua, no negativa y acotada en el conjunto
F = {(t, y) ∈ R2 : t ∈ [0, 1], y ∈ R}.
Demostración: La demostración se desarrolla siguiendo un procedimiento
similar, aunque más elaborado, al mostrado en el ejemplo anterior, donde se
parte de la equivalencia entre una ecuación integral definida en términos de
una función de Green para el operador L y el PVF (4.6). Para los detalles
ver la referencia [28, §4.1]. 2
Esto es, G(t, s) = G(s, t) ∀t, s ∈ [0, 1].
La primera propiedad dice que si f ∈ C[0, 1] es una función no negativa, entonces y
también lo es. La segunda establece que si f ∈ C[0, 1], entonces ∥y∥∞ ≤ 81 ∥f ∥∞ , donde
∥y∥∞ = maxt∈[0,1] |y(t)| es la norma del máximo.
1
2
96
CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA
Ejercicio 2.
Aplicar el teorema anterior para demostrar que el PVF en dos puntos
y ′′ = (5y + sen 3y)et
y(0) = y(1) = 0
tiene una solución única.
Consideremos ahora el problema más general:
y ′′ (t) = f (t, y)
y(a) = α,
y(b) = β,
(4.7)
Ejercicio 3.
(a) Realizar el cambio de variable adecuado para que los problemas (4.7)
y
x′′ (s) = (b − a)2 f (a + (b − a)s, x(s)),
x(0) = α,
x(1) = β, (4.8)
sean equivalentes. Es decir, demostrar que si x es una solución de
(4.8), entonces la función y, definida por y(t) = x((t − a)/(b − a))
(a ≤ t ≤ b), es una solución de (4.7), y si y es una solución de (4.7),
entonces la función x, definida por x(s) = y(a + (b − a)s) (0 ≤ s ≤ 1),
es una solución de (4.8).
(b) Demostrar que los siguientes PVFs
{ ′′
{ ′′
y (t) = sen(ty) + y 2 ,
x (t) = 16{sen[(4s + 1)x] + x2 },
y(1) = 3, y(5) = 7,
x(0) = 3, x(1) = 7,
son equivalentes.
Ejercicio 4.
(a) Demostrar que los siguientes PVFs
{ ′′
{ ′′
y (t) = f (t, y),
z (t) = f (t, z + α + (β − α)t),
y(0) = α, y(1) = β,
z(0) = 0, z(1) = 0,
son equivalentes.
(b) Demostrar que el PVF
{ ′′
y (t) = [5y − 10t + 35 + sen(3y − 6t + 21)]et ,
y(0) = −7, y(1) = −5,
tiene una solución única.
4.1. MÉTODO DEL DISPARO
4.1
97
Método del disparo
El método del disparo reemplaza un problema con valores en la frontera en
dos puntos por una sucesión de problemas de valores iniciales cuyas soluciones
convergen a la solución del problema dado. De manera que la estrategia a
seguir para abordar el PVF (4.1) es la de proponer un valor inicial y ′ (a) tal
que el PVI asociado nos permita obtener una solución aproximada con la expectativa de que y(b) = β. Si este no fuera el caso, proponemos de nuevo otro
valor para y ′ (a) y repetimos el proceso, el cual, por cierto, denominaremos
de disparo. Estudiemos algunas estrategias para hacer esto.
Supongamos pues que el PVI asociado es
yγ′′ = f (t, yγ , yγ′ ),
yγ (a) = α, yγ′ (a) = γ,
(4.9)
donde γ denota el valor propuesto para y ′ (a). Si denotamos por yγ la solución
de este problema, claramente, nuestro objetivo es el de escoger γ de manera
que yγ (b) = β. Ahora bien, si consideramos la función ϕ, definida por
ϕ(γ) ≡ yγ (b) − β,
(4.10)
nuestro objetivo será entonces el de resolver para γ la ecuación, en general,
no lineal ϕ(γ) = 0. Por lo que necesitamos de algún método numérico adicional para resover esta ecuación (e.g., un método tipo secante). El costo
computacional involucrado será alto, ya que cada valor de ϕ(γ) lo obtenemos
al resolver numéricamente un PVI.
Supogamos que tenemos dos valores de ϕ, digamos ϕ(γ1 ) y ϕ(γ2 ), y que
que ϕ es una función lineal. Entonces,
(
)
ϕ(γ2 ) − ϕ(γ1 )
ϕ(γ) = ϕ(γ2 ) +
(γ − γ2 ).
γ2 − γ1
Si escogemos γ3 tal que ϕ(γ3 ) = 0 (i.e., el punto de corte con el eje de las
abscisas), entonces
(
)
γ2 − γ1
γ3 = γ2 −
ϕ(γ2 ).
ϕ(γ2 ) − ϕ(γ1 )
Podemos aplicar este mismo procedimiento a fin de obtener la sucesión
{γi }∞
i=1 a partir de
(
)
γn − γn−1
γn+1 = γn −
ϕ(γn ) (n ≥ 1),
ϕ(γn ) − ϕ(γn−1 )
98
CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA
que constituye el conocido método de la secante para ecuaciones no lineales (ver §??). Una estrategia adicional consiste en que después de que
hayamos obtenido algunos valores de γ para los que ϕ(γ) ≈ 0, detengamos
el proceso y apliquemos interpolación polinomial a fin de obtener una mejor
estimación ([29, §8.8]); sin embargo, el éxito de esta estrategia depende de
que la función inversa de ϕ sea diferenciable en una vecindad de la raı́z y de
que ésta sea simple.
Por supuesto que también podemos aplicar aquı́ el método de Newton
para ecuaciones no lineales (§??):
γn+1 = γn −
ϕ(γn )
,
ϕ ′ (γn )
n = 0, 1, . . .
(4.11)
Ejercicio 5.
A partir de derivar parcialmente respecto a γ las ecuaciones en (4.9), demostrar que obtenemos el PVI
µ′′ = fyγ (t, yγ , yγ′ )µ + fyγ′ (t, yγ , yγ′ )µ′ ,
µ(a) = 0, µ′ (a) = 1,
(4.12)
donde µ = ∂yγ /∂γ. Al resolverlo, podemos determinar µ(b) = ∂yγ (b)/∂γ =
ϕ ′ (γ), lo que nos permitirá aplicar el método de Newton para hallar una raı́z
de ϕ.
Si γ0 es una primera aproximación lo suficientemente buena, la sucesión
{γn } convergerá a la raı́z de (4.10) que buscamos. Si hacemos γ = γ0 los dos
PVIs (4.9) y (4.12) se pueden resolver por alguno de los métodos, el que más
convenga, de los estudiados en el capı́tulo anterior. Del PVI (4.9) obtenemos
yγ0 y de (4.10), ϕ(γ0 ), mientras que de la solución del PVI (4.12) obtenemos
ϕ ′ (γ0 ). De manera que, de (4.11), obtenemos un nuevo estimado γ1 , y el
proceso se repite.
Ejercicio 6.
Escribir un algoritmo para el método del disparo usando el método de Newton. Resolver numéricamente el PVF
y ′′ = −y + 2(y ′ )2 y −1 , t ∈ (−1, 1),
y(−1) = y(1) = (e + e−1 )−1 .
La solución de este problema es y(t) = (et + e−t )−1 . Plantear y resolver
numéricamente el PVI (4.9) para el método del disparo (cuya solución denotaremos por yγ∗ ) y el PVI (4.12) usando el método de Runge-Kutta de
4.1. MÉTODO DEL DISPARO
99
segundo orden, con tamaño de paso h = 2/N y valores de N = 4, 8, 16, 32 y
64. Usar como iterado inicial para el método de Newton γ0 = 0.2 y como criterio de parada la condición |γn+1 − γn | < 10−10 . Tabular los resultados con
columnas para N , γ ∗ − γ r y EN ≡ max0≤i≤N |y(ti ) − yγ∗r (ti )|, donde γ ∗ denota
la raı́z que buscamos, γ r es la raı́z de la ecuación ϕ(γ) = yγ∗ − (e + e−1 )−1 = 0,
los ti son los nodos usados en la resolución del PVI y yγ∗r es la solución del
PVI cuando γ = γ r .
El método del disparo puede ser, computacionalmente hablando, muy
costoso. Sin embargo, en el caso de que la ecuación diferencial sea lineal el
método de la secante proporciona la solución en un paso. En este caso el
PVF en dos puntos será de la forma:
y ′′ (t) = p(t)y ′ (t) + q(t)y(t) + r(t)
y(a) = α,
y(b) = β,
(4.13)
donde asumimos que las funciones p, q y r son continuas en [a, b]. Supongamos también que hemos resuelto los PVIs:
yγ′′1 (t) = p(t)yγ′ 1 (t) + q(t)yγ1 (t) + r(t),
yγ1 (a) = α,
yγ′ 1 (a) = γ1 ,
yγ′′2 (t) = p(t)yγ′ 2 (t) + q(t)yγ2 (t) + r(t),
yγ2 (a) = α,
yγ′ 2 (a) = γ2 .
y
Observemos que la combinación lineal de yγ1 y yγ2
y(t) = λyγ1 (t) + (1 − λ)yγ2 (t),
(4.14)
con λ ∈ R, es una solución de la ecuación diferencial y satisface la condición
y(a) = α. Escojamos pues λ tal que y(b) = β. Esto es,
β = λyγ1 (b) + (1 − λ)yγ2 (b).
De donde,
λ=
β − yγ2 (b)
.
yγ1 (b) − yγ2 (b)
(4.15)
Si usamos un software de cómputo cientı́fico para resolver numéricamente
el problema (4.13), podemos tomar γ1 = 0 y γ2 = 1 en los dos PVIs anteriores,
y para obtener yγ1 y yγ2 de manera simultánea, podemos transformar estos
100 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA
problemas de segundo orden en un solo sistema de primer orden. En efecto,
si definimos y0 = t, y3 = yγ′ 1 , y4 = yγ′ 2 , obtendremos el siguiente sistema de
ecuaciones de valores iniciales:
 ′
y =1
y0 (a) = a,


 0′

yγ1 (a) = α,
 yγ1 = y3
yγ′ 2 = y4
yγ2 (a) = α,

′

y
=
f
(y
,
y
,
y
)
y3 (a) = 0,
 3
0 γ1 3

 ′
y4 (a) = 1.
y4 = f (y0 , yγ2 , y4 )
A continuación, calculando λ mediante (4.15), obtenemos la solución y en
cada valor de t usando (4.14).
Ejercicio 7.
Aplicar el método del disparo para resolver numéricamente el PVF siguiente:
y ′′ = −(t + 1)y ′ + (cos t)y + et
y(0) = 1,
y(1) = 3.
Utilizar el método clásico de Runge-Kutta de cuarto orden con h = 0.01.
Notemos que la solución del problema (4.1), cuando es no lineal, no se
puede expresar como una combinación lineal de las soluciones de dos problemas con valores iniciales como lo acabamos de hacer.
Ejercicio 8.
Demostrar que si resolvemos un PVF lineal en dos puntos con el método
de Newton para ϕ, y calculamos ϕ ′ usando (4.12), el resultado debe ser el
mismo que el que obtuvimos usando las ecuaciones (4.14) y (4.15).
Los métodos de disparo se pueden aplicar a problemas más generales
que (4.1) [28]. Una importante dificultad con el método del disparo es que el
PVI asociado pueda presentar situaciones de inestabilidad, debido por ejemplo a curvas solución que divergen en parte del dominio; un hecho que crea
una dificultad adicional para dar en el blanco deseado3 . Una posible solución
a este problema está dada por la aplicación del denominado método del disparo múltiple, en el cual el intervalo [a, b] se divide en subintervalos y se
3
I.e., El PVI generado por el método del disparo es con frecuencia inestable, en el
sentido de ser muy sensible a perturbaciones en las condiciones iniciales.
4.2. MÉTODO DE LAS DIFERENCIAS FINITAS
101
aplica el método del disparo en cada uno de ellos. Se requiere además de la
continuidad de y y y ′ en los puntos internos del intervalo original, extremos
de los subintervalos, lo que nos proporciona las condiciones de frontera necesarias para los subproblemas individuales. El sistema de ecuaciones que de
ello resulta se puede resolver numéricamente usando, por ejemplo, el método
de Newton. Otra dificultad, derivada de usar el método de Newton, consiste
en que no tenemos una estrategia general para escoger una estimación inicial
γ0 para la iteración de Newton, y con una mala elección, la iteración puede
no converger.
4.2
Método de las diferencias finitas
Otra estrategia para abordar numéricamente un PVF en dos puntos consiste
en la discretización del intervalo de definición de t, para luego aplicar fórmulas
que estiman de manera aproximada las derivadas. Por ejemplo,
y ′ (t) =
y(t + h) − y(t − h) 1 2 ′′′
− h y (ξ)
2h
6
y
y ′′ (t) =
y(t + h) − 2y(t) + y(t − h)
1 2 (4)
−
h y (ζ)
h2
12
(ver §2.1).
Consideremos nuevamente el problema (4.1) y definamos una partición
del intervalo [a, b] mediante el uso de los puntos t0 , t1 , . . . , tn , tn+1 ∈ [a, b], no
necesariamente igualmente espaciados, de manera que a = t0 < t1 < . . . <
tn < tn+1 = b. Suponemos pues que ti = a + ih, i = 0, 1, . . . , n + 1, y
h = (b − a)/(n + 1). Ası́, la discretización de (4.1) es



yi+1 −2yi +yi−1
h2
(
−yi−1 )
= f ti , yi , yi+12h
, i = 1, . . . , n,
(4.16)
y0 = α,
yn+1 = β,
el cual representa un sistema de orden n con y1 , y2 , . . . , yn como incógnitas.
Si f depende de yi de una manera no lineal, entonces las ecuaciones serán
no lineales y más difı́ciles de resolver. Si f es lineal en y y y ′ , entonces f es
de la forma f (t, y, y ′ ) = p(t)y ′ (t) + q(t)y(t) + r(t). De manera que el sistema
102 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA
anterior será ahora un sistema lineal de la forma

 ai yi−1 + di yi + ci yi+1 = bi , i = 1, . . . , n,

y0 = α,
yn+1 = β,
donde ai = −1 − 12 hpi , di = 2 + h2 qi , ci = −1 + 21 hpi , bi = −h2 ri , pi = p(ti ),
qi = q(ti ) y ri = r(ti ), para i = 1, 2, . . . , n (¡verificar!). En notación matricial
tenemos el sistema tridiagonal4 siguiente:

 y   b − a α 
1
1
1
d 1 c1 0
...
0
0




b2
..
..   y2  


 a1 d2 c2
0
.
.   ..  
.

.


.
.

 
..  
..
 0 ... ... ...




.
.  .  = 

.

 . .

..

 .  
.. ... ...
 ..

.
.
0   ..  

..


 
 . . . . 0 an−2 dn−1 cn−1  
 yn−1   bn−1 
0 ... ...
0
an−1 dn
bn − cn β
yn
Observaciones:
• Si h es lo suficientemente pequeño, los qi > 0 y | 12 hpi | < 1 (1 ≤ i ≤ n),
entonces |di | > |1 + 21 hpi | + |1 − 12 hpi | = 2. Por lo que la matriz del
sistema anterior es diagonal dominante y no singular.
• Si p, q y r ∈ C[a, b] y q > 0, el PVF (4.1) con f lineal en y y y ′ , tiene
solución única ([28, Cor. Th. 1.2.2]).
Para el caso lineal, demostraremos el siguiente resultado de convergencia.
Teorema 4.2 Si y ∈ C 4 [a, b], para i = 1, 2, . . . , n, |ei | = |y(ti ) − yi | converge
a 0 cuando h → 0.
Demostración: Como para i = 1, 2, . . . , n,
y(ti−1 ) − 2y(ti ) + y(ti+1 )
1
− h2 y (4) (ζi ) = ri + qi y(ti )
2
h
12
[ y(t ) − y(t ) 1
]
i+1
i−1
− h2 y ′′′ (ξi ) .
+ pi
2h
6
4
Por lo que podemos resolver el sistema usando, por ejemplo, un algoritmo de eliminación gaussiana que aproveche la estructura particular de la matriz.
4.2. MÉTODO DE LAS DIFERENCIAS FINITAS
103
y
[y − y ]
yi−1 − 2yi + yi+1
i+1
i−1
,
=
r
+
q
y
+
p
i
i i
i
h2
2h
obtendremos, de sustraer la segunda ecuación de la primera, que
[e − e ]
ei−1 − 2ei + ei+1
i+1
i−1
=
q
e
+
p
+ h2 u i ,
i i
i
2
h
2h
donde ui =
1 2 (4)
h y (ζi )
12
− 16 h2 y ′′′ (ξi ). Agrupando términos encontramos que
ai−1 ei−1 + di ei + ci ei+1 = −h4 ui
(¡verificar!).
De esta expresión sigue que |di ||ei | ≤ |ai−1 ||ei−1 | + |ci ||ei+1 | + h4 |ui |. Sea
∥e∥∞ = maxi=1,...,n |ei |. De manera que ∥e∥∞ (|di | − |ci | − |ai−1 |) ≤ h4 ∥u∥∞ ,
donde
∥y (4) ∥∞ ∥y ′′′ ∥∞
∥u∥∞ = max |ui | ≤
+
.
i=1,...,n
12
6
De donde sigue, para h lo suficientemente pequeño, que h2 qi ∥e∥∞ ≤ h4 ∥u∥∞
(¿por qué?). Ası́,
[
]
∥u∥
∞
∥e∥∞ ≤ h2
.
inf t∈[a,b] q(t)
Por lo tanto, ∥e∥∞ es O(h2 ) cuando h → 0 como querı́amos ver. 2
Ejercicio 9.
Aplicar el método de las diferencias finitas con h = 1/2 para resolver el PVF
en dos puntos
y ′′ (t) = −2y ′ (t) − 10t
y(0) = 1,
y(1) = 2.
Calcular y1 ≈ y(1/2).
Ejercicio 10.
Escribir un algoritmo para resolver numéricamente PVFs lineales en dos puntos usando el método de las diferencias finitas. Usar el algoritmo con n = 10
y h = 0.1 para estimar la solución del PVF
y ′′ (t) = −2t−1 y ′ (t) + 2t−2 y(t) + t−2 sen(ln t), t ∈ (1, 2),
y(1) = 1, y(2) = 2.
104 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA
Comparar los resultados con los obtenidos al aplicar el método del disparo
al mismo problema, ası́ como con la solución exacta
y(t) = −(1/10) cos(ln t) − (3/10) sen(ln t) + C2 t−2 + C1 t,
donde C1 = (1/70)(−4 cos(ln 2) − 12sen(ln 2) + 8) y C1 = (11/10) − C2 .
Ejercicio 11.
Resolver numéricamente el PVF del Ejercicio 6 usando el método de las diferencias finitas (4.16). Aquı́ EN ≡ max0≤i≤N |y(ti ) − yN (ti )|, donde yN (ti ) es
la solución de (4.16) que obtenemos al resolver el sistema no lineal asociado.
Resolver este sistema no lineal usando el método de Newton, con valor inicial
(e + e−1 )−1 . En cada iteración de Newton estimar el máximo, respecto a i =
1, 2, . . . , N , de la magnitud de la diferencia entre dos iteraciones consecutivas
del método. Terminar las iteraciones de Newton cuando este valor sea menor
o igual a 10−10 . Comparar con los resultados obtenidos en el Ejercicio 6.
Referencias
[1] M. ABRAMOWITZ and I.A. STEGUN (eds). Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. National Bureau and Standards, U.S. Government Printing Office, Washington, D.C., 1964.
[2] K.E. ATKINSON. An Introduction to Numerical Analysis, Second Edition. John Wiley, N.Y., 1989.
[3] G. BIRKHOFF and G.C. ROTA. Ordinary Differential Equations, Third
Edition. John Wiley and Sons, Inc., New York, 1978.
[4] A. CALLEJO, J. GARCIA de JALON, and A.F. HIDALGO. Diferenciación automática de fuerzas en la integración implı́cita de sistemas
multicuerpo. In Actas del XVIII Congreso Nacional de Ingenierı́a
Mecánica, pages 1–10, Ciudad Real, Universidad de Castilla La Mancha,
2010. Asociación Española de Ingenierı́a Mecánica.
[5] W. CHENEY and D. KINCAID. Numerical Mathematics and Computing, Sixth Edition. Brooks/Cole Publishing Company, Pacific Grove,
2008.
[6] S.D. CONTE and C. DE BOOR. Elementary Numerical Analysis: An
Algorithmic Approach, Third Edition. McGraw-Hill, New York, 1980.
[7] J.W. COOLEY and J.W. TUKEY. An Algorithm for the Machine
Calculation of Complex Fourier Series. Math. Comput., 19(2):297–301,
1965.
[8] G. DAHLQUIST and A. BJORCK. Numerical Methods. Prentice-Hall,
Inc., Englewood Cliffs, N.J., 1974.
115
116
REFERENCIAS
[9] P. DAVIS. Interpolation and Approximation. Ginn (Blaisdell), Massachusetts, 1963.
[10] T.A. DAVIS and K. SIGMON. MATLAB Primer, Seventh Edition.
CHAPMAN & HALL/CRC, Boca Raton, 2005.
[11] J. DENNIS and R. SCHNABEL. Numerical Methods for Unconstrained
Optimization and Nonlinear Equations. Prentice-Hall, Inc., Englewood
Cliffs, New York, 1983.
[12] R. ESCALANTE. Notas sobre la Función Generalizada de Airy. Technical Report RT 04-2000, Dpto. de Computación, Universidad Central
de Venezuela, Caracas, Venezuela, 2000.
[13] R. ESCALANTE and M. RAYDAN. Dykstra’s algorithm for a constrained least-squares matrix problem. Num. Linear Algebra Appl.,
3(6):459–471, 1996.
[14] R. ESCALANTE and M. RAYDAN. Dykstra’s algorithm for constrained
least-squares rectangular matrix problems. Computers Math. Applic.,
35(6):73–79, 1998.
[15] R. ESCALANTE and M. VILLASANA. Curso introductorio de MATLAB, Segunda Edición. Editorial Equinoccio, Universidad Simón
Bolı́var, Caracas, 2012.
[16] D.E. ETTER. Engineering Problem Solving with MATLAB, Second Edition. Prentice-Hall. Inc., N.J., 1997.
[17] L.V. FAUSETT. Applied Numerical Analysis Using MATLAB, Second
Edition. Prentice-Hall. Inc., N.J., 1999.
[18] G.E. FORSYTHE, M.A. MALCOLM, and C.B. MOLER. Computer
Methods for Mathematical Computations. Prentice-Hall. Inc., N.J., 1977.
[19] W. GAUTSCHI. Numerical Analysis, Second Edition.
Boston, MA, 2012.
Birkhäuser,
[20] H.H. GOLDSTINE. A History of Numerical Analysis from the 16th
Through the 19th Century. Springer-Verlag, Berlin, Heidelberg, and
New York, 1977.
REFERENCIAS
117
[21] G.H. GOLUB and C.F. VAN LOAN. Matrix Computations, Third Edition. The Johns Hopkins University Press, Baltimore, 1996.
[22] G.H. GOLUB and J.M. ORTEGA. Scientific Computing and Differential Equations, An Introduction to Numerical Methods. Academic Press,
San Diego, California, 1992.
[23] S.I. GROSSMAN. Elementary Linear Algebra with Applications, Fifth
Edition. Saunders College Publishing, 1994.
[24] M.T. HEATH. Scientific Computing, An Introductory Survey, Second
Edition. McGraw-Hill, New York, 2002.
[25] D.J. HIGHAM and N.J. HIGHAM. MATLAB Guide, Second Edition.
Society for Industrial and Applied Mathematics, Philadelphia, 2005.
[26] THE MATHWORKS INC. Mathematics, Version 7. Disponible en
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html,
3251Kb (pdf), Natick, 2005.
[27] E. ISAACSON and H. KELLER. Analysis of Numerical Methods. Wiley,
New York, 1966.
[28] H.B. KELLER. Numerical Methods for Two-Point Boundary-Value
Problems. Blaisdel Publishing Company, Waltham, Massachusetts,
1968.
[29] D. KINCAID and W. CHENEY. Numerical Analysis: Mathematics of
Scientific Computing, Third Edition. Brooks/Cole Publishing Company,
Pacific Grove, 2002.
[30] C.F. VAN LOAN. Introduction to Scientific Computing - A MatrixVector Approach Using MATLAB, 2nd. Edition. Prentice-Hall, Inc.,
N.J., 2000.
[31] S. NAKAMURA. Numerical Analysis and Graphic Visualization with
MATLAB. Prentice-Hall, Inc., N.J., 1996.
[32] J.M. ORTEGA. Numerical Analysis, A Second Course. Academic Press,
Nueva York, 1972.
118
REFERENCIAS
[33] J.C. POLKING and D. ARNOLD. Ordinary Differential Equations using MATLAB, Second Edition. Prentice-Hall, N.J., 1999.
[34] A. QUARTERONI, R. SACCO, and F. SALERI. Numerical Mathematics, Second Edition. Springer-Verlag, Berlin Heidelberg, 2007.
[35] J. STOER and R. BULIRSCH. Introduction to Numerical Analysis,
Third Edition. Springer-Verlag, New York, 2002.
[36] E. SÜLI and D.F. MAYERS. An Introduction to Numerical Analysis.
Cambridge University Press, Cambridge, 2003.
Descargar