You are on page 1of 86

UNIVERSIDAD DE SEVILLA

Dpto. de Matematica Aplicada I

Apuntes de la asignatura

METODOS
NUMERICOS
DE CALCULO
Tercer curso de Arquitectura.

Profesores: Mara Angeles Rodrguez Bellido


y Enrique Domingo Fern
andez Nieto

Indice General
1 Introducci
on al C
alculo Num
erico
1.1

1.2

Introduccion al Calculo Numerico . . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Introduccion al estudio del error . . . . . . . . . . . . . . . . . . . .

1.1.2

Notacion decimal en coma flotante . . . . . . . . . . . . . . . . . .

1.1.3

Condicionamiento de un problema: . . . . . . . . . . . . . . . . . .

1.1.4

Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Normas vectoriales y matriciales . . . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2

Norma de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Resoluci
on num
erica de sistemas de ecuaciones lineales
2.1

11

Condicionamiento de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1

Propiedades de cond(A) . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1.2

Observaciones finales . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2

Metodos directos e iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3

Metodos directos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4

2.3.1

Observaciones concernientes a la resolucion de sistemas lineales

. . 15

2.3.2

El metodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3.3

El metodo de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . 22

Metodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1

Estudio general del Metodo Iterativo . . . . . . . . . . . . . . . . . 24

2.4.2

Metodos de Jacobi, Gauss-Seidel y relajacion . . . . . . . . . . . . . 26

2.4.3

Metodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.4.4

Metodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . 29

2.4.5

Test de parada de las iteraciones . . . . . . . . . . . . . . . . . . . 32


1

2
3 Resoluci
on num
erica de ecuaciones diferenciales ordinarias
3.1

35

El metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.1

Tama
no del paso frente al error . . . . . . . . . . . . . . . . . . . . 40

3.1.2

Orden de un metodo . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.2

El metodo de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.3

Metodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.1

Algoritmos de Runge-Kutta de cuarto orden . . . . . . . . . . . . . 50

3 Parte II (e. d. o. s): Resoluci


on num
erica de ecuaciones diferenciales
ordinarias
3.4

3.5

53

Sistemas de Ecuaciones Diferenciales . . . . . . . . . . . . . . . . . . . . . 53


3.4.1

Resolucion numerica . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.4.2

Ecuaciones diferenciales de orden superior . . . . . . . . . . . . . . 56

Problemas de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5.1

Caso lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 El m
etodo de Diferencias Finitas

67

4.1

Esquema de mejora de Richardson . . . . . . . . . . . . . . . . . . . . . . . 71

4.2

Otras condiciones de frontera. . . . . . . . . . . . . . . . . . . . . . . . . . 73

Apendice: Aproximacion de la derivada de una funcion a partir del desarrollo


de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5 Ecuaciones en derivadas parciales

77

5.1

Ecuaciones elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2

Diferencias Finitas para EDPs . . . . . . . . . . . . . . . . . . . . . . . . 80


5.2.1

Tratamiento de la condicion de contorno de tipo Neumann . . . . . 82

Tema 1
Introducci
on al C
alculo Num
erico
1. Introduccion al Caculo Numerico
(a) Introduccion al estudio del error
Error absoluto
Error relativo
Notacion decimal en coma flotante (n
umeros maquina)
(
Condicionamiento
Propagacion del error
Estabilidad
(b) Condicionamiento de un problema
(c) Estabilidad - algoritmo inestable.
2. Normas vectoriales y matriciales

1.1

Introducci
on al C
alculo Num
erico

El Analisis Numerico es una herramienta fundamental en el campo de las Ciencias


Aplicadas.
Objetivo: Dise
nar metodos numericos de calculo que aproximen, de modo eficiente, la
solucion de problemas practicos previamente formulados matematicamente.
Algoritmo: Secuencia finita de operaciones algebraicas y logicas que producen una
solucion aproximada del problema matematico.
AN = dise
no de algoritmos y estudio de su eficiencia

- requerimientos de memoria
eficiencia
- tiempo de calculo (rapidez)

- estimacion del error (precision)

1.1.1

Introducci
on al estudio del error

El error nos proporciona la precision del metodo.

errores de
entrada

(en medidas)

errores de

+
almacenamiento
{z
|
a analizar

errores de
algoritmo

errores
=

de
salida

Sobre los errores de entrada nada podemos decir.


Antes de comenzar recordemos algunso conceptos que en la terminologa estandar de
los errores se suelen usar.
n 1 Error absoluto: Sea z la solucion exacta del problema y ze la solucion
Definicio
aproximada, se define el error absoluto como
kz zek
donde k k es una norma (se definira mas adelante).
(Pensar en k k como el modulo).

5
Desde el punto de vista de las aplicaciones, resulta mucho mas relevante el
error relativo

z ze

Nota 1 Si z = 0 solo se trabaja con errores absolutos.

1.1.2

Notaci
on decimal en coma flotante

Es una forma de representacion de n


umero que contiene la informacion relevante compuesta por:
signo

fraccion

signo para el exponente

exponente.

Por ejemplo, -618.45 se puede expresar como:


618.45 + 0

61.845 + 1

6184.5 1

6.1823 + 2

que significa:
618.45 100

61.845 10

61840 5 101

6.1845 102

De todas ellas, se llama notacion decimal en coma flotante normalizada a aquella en


la que la fraccion esta comprendida entre 0 y 10.
m E

1 m < 10,

E N {0}

Los n
umeros representables de forma exacta en el ordenador se llaman n
umeros maquina
Nota 2 Los ordenadores almacenan la informacion en posiciones de memoria (o bit
Binary Digit), que solo toman valores 0/1, encendido/apagado, positivo/negativo . . . . . .
luego utilizan la representaci
on binaria.
Progagacion del error: Los errores anteriores se propagan a traves de los calculos, debido
a la estructura propia del algoritmo. Para estudiar esta propagacion, y por tanto el error
final, atendemos dos conceptos:

- Condicionamiento

- Estabilidad

6
Condicionamiento: mide la influencia que tendran los errores en los datos en el caso en que
se puede trabajar con aritmetica exacta ( no depende del algoritmo, sino del problema
en si).
Estabilidad: Esta relacionada con la influencia que tienen en los resultados finales la
acumulacion de errores que se producen al realizar las diferentes operaciones elementales
que constituyen el algoritmo.

1.1.3

Condicionamiento de un problema:

Diremos que un problema esta mal condicionado cuando peque


nos cambios en los
datos dan lugar a grandes cambios en las respuestas.
Para estudiar el condicionamiento de un problema se introduce el llamado n
umero
de condicion de dicho problema, especfico del problema, que es mejor cuanto mas cerca de
1 (el problema esta bien condicionado) y peor cuanto mas grande sea (peor condicionado).
objetivo: Definir el n
umero de condicion de un problema.
La gravedad de un problema mal condicionado reside en que su resolucion puede
producir soluciones muy dispares en cuanto los datos cambien un poco (algo muy frecuente
en las aplicaciones).
Ejemplo: Tenemos el siguiente sistema lineal:
Sistema 1:

10x1 + 7x2 + 8x3 + 7x4 = 32,

7x + 5x + 6x + 5x = 23,
1

8x1 + 6x2 + 10x3 + 9x4 = 33,

7x + 5x + 9x + 10x = 31
1

x2 = 1
=
x =1
3
x4 = 1

Sistema 2:

7.08x1 + 5.04x2 + 6x3 + 5x4 = 23,


8x1 + 5.98x2 + 9.89x3 + 9x4 = 33,

6.99x + 4.99x + 9x + 9.98x = 31


10x1 + 7x2 + 8x3 + 7.2x4 = 32,

Sistema 3:

10x1 + 7x2 + 8x3 + 7.2x4 = 32,

7x + 5x + 6x + 5x = 22.9,
1

8x1 + 6x2 + 10x3 + 9x4 = 32.98,

7x + 5x + 9x + 10x = 31.02
1

x1 = 1

x1 = 81

x2 = 137
=
x = 34
3
x4 = 22

x1 = 7.28

x2 = 9.36
=
x = 3.54
3
x4 = 0.5

7
Como se ve, peque
nos cambios en los datos (del orden de 2 centesimas) en algunos
elementos, producen grandes cambios en las soluciones: 136 unidades del sistema 1 al
sistema 2.
Lo mismo ocurre al perturbar el segundo miembro del sistema: cambios de aproximadamente 1 decima producen cambios en la solucion de aproximadamente 13 unidades.
Lo anterior se debe a que el sistema esta mal condicionado.
La gravedad de un problema mal condicionado reside en que su resolucion puede
producir soluciones muy dispares en cuanto los datos cambien un poco, cosa muy frecuente
en las aplicaciones.

1.1.4

Estabilidad

Todo algoritmo que resuelve un problema numericamente produce en cada paso un


error numerico.
Un algoritmo se dice inestable cuando los errores que se cometen en cada etapa del
mismo van aumentado de forma progresiva, de manera que el resultado final pierde gran
parte de su exactitud.
Un algoritmos es estable cuando no es inestable (controlado).

Permiten estudiar la precisi


on
Condicionamiento y estabilidad

de un algoritmo para
un problema concreto

1.2

Normas vectoriales y matriciales

Objetivo: Introducir herramientas de medicion de la variacion de los resultados:

1.2.1

Normas vectoriales

n 2 Una aplicaci
Definicio
on k k : Rn R+ {0} es una norma si:
a) k~v k = 0 ~v = ~0 Rn
b) k ~v k = ||k~v k, R, ~v Rn
c) k~u + ~v k k~uk + k~v k ~u, ~v Rn (desigualdad triangular)
Ejemplo:

8
Dado ~v R3 ,
k~v k1 =

n
X

|vi |,

i=1

v
u n
uX
|vi |2 ,
k~v k2 = t
i=1

y
k~v k = max |vi |
1in

son normas vectoriales.


~v = (1, 1, 3)
k~v k1 = |1| + | 1| + |3| = 5,

k~v k2 =

1+1+9=

11,

k~v k = max{1, 1, 3} = 3.

Ejercicio: Comprobar que k k1 , k k2 y k k son normas vectoriales.


n 3 Dos normas vectoriales son equivalente k k y k k0 si existen constantes
Definicio
c1 , c2 > 0 tales que:
c1 k~v k0 k~v k c2 k~v k0

~v Rn .

En la practica esto significa que cuando k k0 esta acotada, tambien k k y viceversa.

1.2.2

Norma de una matriz

n 4 Una norma matricial es una aplicaci


Definicio
on k| k| : Mn R+ {0} que
verifica las siguientes propiedades:
a) k|Ak| = 0 A = 0
b) k| Ak| = ||k|Ak|,

R,

c) k|A + Bk| k|Ak| + k|Bk|,

A Mn
A, B Mn .

d) k|A Bk| k|Ak| k|Bk|.


Las tres primeras propiedades garantizanq ue es una normal vectorial y la u
ltima que
es compatible con el producto de matrices.
Un resultado que nos da una forma simple de construir una norma matricial es el
siguiente:
n 5 Sea k k una norma en Rn , se define la norma k| k| : Mn R+ {0}
Definicio
como
k|Ak| = sup
~v 6=~0

kA~v k
= sup kA~v k
k~v k
k~v k=1

9
Cuando una norma matricial se define de la forma anterior (a traves de una norma
vectorial), se dice que es una norma matricial subordinada a la norma vectorial.
Tenemos las siguiente normas matriciales subordinadas a las vectoriales:
a)
k|Ak|1 = sup

kA~v k1
k~v k1

k|Ak|2 = sup

kA~v k2
k~v k2

k|Ak| = sup

kA~v k
k~v k

~v 6=0

b)
~v 6=0

c)
~v 6=0

Nota 3 No todas las normas matriciales son normas matriciales subordinadas a normas
vectoriales.

Algunas propiedades de las normas matriciales subordinadas


1) kA~v k k|Ak|k~v k, A Mn , ~v Rn
2) Existe un vector ~v Rn para el que se da la igualdad, es decir,
kA~v k = k|Ak| k~v k
3) k|Ik| = 1 (Por I denotamos la matriz identidad).
Veamos como calcular las normas matriciales subordinadas a las normas vectoriales
anteriores:
Teorema 1 Sea A = (ai,j )ni,j=1 Mn , se tiene:
a)
k|Ak|1 = max

1jn

b)
k|Ak|2 =

n
X

|ai,j |

i=1

p
p
(A A) = (A A ) = k|A k|2

donde (A A) es el radio espectral de A A, que es el maximo de los valores absolutos


de A A. (Por A denotamos a la matriz adjunta de A, la cual coincide con la matriz
transpuesta cuando todos sus elementos son reales).

10
c)
k|Ak| = max

1in

n
X

|ai,j |

j=1

Nota 4 k| k|1 y k| k| se calculan a partir de los elementos de la matriz, k| k|2 no.


Es inmediato observar que k|AT k| = k|Ak|1 .
Ejemplo:
Sea

A= 0

0
2

1 1

2 .
0

Calculamos la norma uno, dos e infinito:


k|Ak|1 = max{2, 3, 9} = 9
k|Ak| = max{8, 4, 2} = 8

2 0 7

AT A = 1 5 4
7 4 53
k|Ak|2 = 7.3648
Norma Frobenius:
Es una norma matricial no subordinada a ninguna norma vectorial. Viene dada por:
v
uX
u n
k|Ak|F = t
|ai,j |2
i,j=1

Como vemos, se calcula a traves de los elementos de la matriz.


Ejemplo:
k|Ak|F =

1 + 49 + 4 + 4 + 1 + 1 =

60

Tema 2
Resoluci
on num
erica de sistemas de
ecuaciones lineales
1. Resolucion numerica de sistemas de ecuaciones lineales
(a) Condicionamiento de sistemas
(b) Metodos directos:
Gauss
Gauss pivote parcial
Gauss pivote total
Cholesky
(c) Metodos iterativos
Jacobi
Gauss-Seidel
Relajacion

11

12

2.1

Condicionamiento de sistemas

Objetivo: Resolver sistemas lineales de ecuaciones mediante metodos numericos de calculo.


La existencia de un sistema mal condicionado es una fuente de posibles errores y
dificultades a la hora de resolver un sistema lineal mediante metodos numericos.
El primer problema que se plantea es como definir y cuantificar el condicionamiento
de un sistema.
Supongamos que tenemos que resolver el sistema lineal Ax = b, donde A es una matriz
de coeficientes, b es el termino independiente y x es la soluci
on exacta del sistema,
que llamaremos u (el vector x recibira diferentes nombres a lo largo del tema):
Ax = b

x=u

Si modificamos el termino independiente mediante una perturbacion b, entonces tenemos que resolver el sistema Ax = b + b, que tendra una nueva solucion (distinta de la
solucion exacta) que llamaremos u + u:
A x = b + b

x = u + u

El sistema esta bien condicionado si cuando b es peque


na, u tambien lo es. Observemos que:
Au + A(u) = b + b
Au = b

A(u) = b
1

u = A (u)

Usando ahora la propiedad para normas matriciales, obtenemos que:


kuk k|A1 |kkbk

(2.1)

De la solucion exacta, kbk k|Ak|kuk, lo que implica que:


1
k|A|k

kuk
kbk

(2.2)

kbk
kuk
k|A|kk|A1 k|
,
kuk
kbk

(2.3)

De (2.1) y (2.2), obtenemos:

kuk
kbk
representa el error relativo en los resultados, y
el error relativo en los
kuk
kbk
datos. De la relacion (2.3), parece deducirse que el n
umero k|A|kk|A1 k| es el factor

donde

determinante de la relacion, ya que si es peque


no tenemos el efecto deseado, y si no,
kbk
kuk
ocurre lo contrario. Si k|A|kk|A1 k| = 1 y
= 0.01, entonces
0.01.
kbk
kuk
Parece entonces natural la siguiente definicion:

13
n 6 Sea || |k una norma matricial subordinada y A una matriz invertible.
Definicio
Llamamos n
umero de condici
on de la matriz A respecto de la norma k| |k a la
expresi
on:
cond(A) = k|A|kk|A1 k|.
De (2.3) deducimos entonces que:
kuk
kbk
cond(A)
.
kuk
kbk
En el caso en el que las perturbaciones se produzcan en la matriz del sistema A, la
matriz se transforma en A+A, llamaremos u+u a la solucion aproximada del sistema:
(A + A)(u + u) = b.
Usando que Au = b, obtenemos:
(A)(u + u) + Au = 0

A(u + u) = Au,

luego
u = A1 (A)(u + u)
y

kuk k|A1 |kk|A|kku + uk,

kuk
k|A|k
k|A|k
k|A1 |kk|A|k
= cond(A)
ku + uk
k|A|k
k|A|k

2.1.1

Propiedades de cond(A)

n 1 Para cualquier norma subordinada |k k|, se verifica:


Proposicio
1. cond(A) 1.
2. cond(A) = cond(A1 ),
3. cond(k A) = cond(A),

k R\{0}.

Demostraci
on:
1. 1 = k|I|k = k|AA1 |k k|Ak|k|A1 |k = cond(A),
2. cond(A1 ) = k|A1 |kk|(A1 )1 |k = k|A1 |kk|A|k = cond(A),
3. cond(kA) = k|kA|kk|(kA)1 |k = |k|k|A|k|k|1 k|A1 |k = cond(A).

(2.4)

14

Ejemplo: Estudiar el condicionamiento del sistema Ax = b con A =

1+

2
!

siendo > 0 en la normak| |k .


!
1

1
1
2+
Soluci
on: A1 = 2
, k|A|k = 2 + y |kA1 k| =
, luego

2
1
1
(2 + )2
4
cond(A, ) =
> 2 . Si 0.01, entonces cond(A, ) > 40000. Esto indica que
2

una perturbacion de los datos de 0.01 puede originar una perturbacion de la solucion del
sistema de 40000.
Ejercicio: Repetir el ejemplo anterior con la norma |k k|1 .

2.1.2

Observaciones finales

Un sistema lineal esta bien condicionado si la matriz A esta bien condicionada.


Como cond(A) 1 cuanto mas cerca este su valor de 1, mejor condicionado esta el
sistema.
En los casos en los que tenemos que resolver el sistema Au = b y cond(A) sea muy
grande, podemos intentar alterar el sistema mediante un precondicionador que
rebaje cond(A). Como cond(kA) = cond(A), no vale multiplicar el sistema por un
escalar k. Normalmente, lo que se hace es multiplicar a izquierda por una matriz
M invertible, de modo que:
e = M A,
A
e peque
tenga cond(A)
no, para despues resolver el sistema:
e = eb,
Au

2.2

donde eb = M b.

M
etodos directos e iterativos

Hay dos tipos de metodos para la resolucion de sistemas lineales:


Directos: proporcionan la solucion exacta (salvo errores de redondeo) en un n
umero
finito de pasos: Gauss, Cholesky, etc.

15
Iterativos: proporcionan una sucesion {xk } que aproxima, o converge, a la solucion
exacta:
{xk } x.
El calculo se detiene cuando se alcanza un cierto nivel de precision.

2.3

M
etodos directos

Consideramos la resolucion numerica de un sistema lineal Au = b, donde A es una


matriz inversible.
El principio de los metodos directos que vamos a estudiar reside en determinra una
matriz M inversible, tal que la matriz M A sea triangular superior. Tenemos que resolver
entonces el sistema lineal:
M Au = M b,
por lo que llamaremos el metodo de remontada.
Este principio es la base del m
etodo de Gauss para la resolucion de sistemas lineales
con matrices cualesquiera, y del metodo de Cholesky para sistemas lineales para matrices
simetricas definidas positivas.
Notemos la inutilidad del calculo de la inversa de una matriz para la resolucion de un
sistema lineal (ver parrafo 2.3.1)
Por u
ltimo, la interpretacion matricial del metodo de Gauss es la factorizacion LU de
una matriz, que en el caso de aplicarse a matrices simetricas y definida positivas no es
sino la factorizacion de Cholesky.

2.3.1

Observaciones concernientes a la resoluci


on de sistemas
lineales

Contrariamente a lo que se piensa, la resolucion de un sistema lineal no es equivalente


al calculo de la matriz inversa del sistema A1 y despues calcular A1 b. El calculo de la
matriz inversa es equivalente a la resolucion de n sistemas lineales (donde n es el orden
de la matriz A):
Auj = ej

1 j n,

donde ej es el n-esimo vector de la base Rn . Pasamos as de resolver un sistema lineal a


resolver n sistemas lineales y multiplicar A1 por el termino independiente b.

16
Los metodos que vamos a estudiar estan basados en el siguiente hecho: si tuviesemos
una matriz triangular superior, la resolucion numerica de un sistema lineal Au = b es
inmediata. Tendramos, en forma matricial:

a1,1 .

a1,n1

an

. an1,n1 an1,n

an,n

u1

u
n1
un

b1


.

.

=
.

b
n1
bn

y en forma de ecuaciones:

a1,1 u1 + ... + a1,n1 un1 + a1,n un = b1

...
.

...
.

...
.

an1,n1 un1 + an1,n un = bn1

a u = b
n,n n

El determinante es det(A) = a11 a22 ...ann 6= 0, luego el sistema se resuelve:


un = a1
nn bn
un1 = a1
n1,n1 (bn1 an1,n un )
...
...
...
u1 = a1
11 (b1 a12 u2 ...a1,n1 un1 a1n un )
De ese modo, cada componente ui se escribe como combinacion lineal de las bi , bi+1 , ..., bn ,
luego estamos resolviendo un sitema lineal u = Cb donde C es una matriz triangular
superior. Este metodo se conoce como m
etodo de remontada. Dicho metodo necesita
un total de

n(n 1)

1 + 2 + ... + n 1 =

2
n(n 1)
1 + 2 + ... + n 1 =

n divisiones

sumas
multiplicaciones

17

2.3.2

El m
etodo de Gauss

El m
etodo de Gauss es un metodo general de resolucion de un sistema lineal de la
forma Au = b donde A es una matriz inversible. Se compone de tres etapas:
1. procedimiento de eliminacion, que equivale a determinar una matriz inversible M
tal que la matriz M A sea una matriz triangular superior,
2. calculo del vector M b,
3. resolucion del sistema lineal M Au = M b, por el m
etodo de remontada.
a) Etapa de eliminaci
on:
1) Al menos uno de los elementos de la primera columna de A, ai,j , 1 i n es diferente
de cero (o det(A) =0), ai,j , que llamaremos el primer pivote de la eliminacion.
2) Intercambiamos la lnea donde esta el pivote con la primera lnea, lo que equivale a
multiplicar a izquierda por la matriz de trasposicion

..

.
|
|

0 1 } i0

|
|

T (i0 , i1 ) =
1 0 } i1

..

.
|
|

|
|
1

|{z}
|{z}
i0
i1

con det(T (i0 , i1 )) = 1.

I
P =

si a1 1 6= 0

T (1, i) si ai 1 , i 6= 1 es el pivote, det(P ) = 1

y P A = (i j ) tal que 1 1 6= 0.
Multiplicamos por combinaciones lineales adecuadas de la primera lnea de P A con
las otras lneas de P A, de forma que se anulan todos los elementos de la primera columna

18
situados debajo de la diagonal. Es decir,

1
0
2 1

1 1 1
E=
..

1 1

0
1 1

multiplicamos E P A, donde

...
0

det(E) = 1
..

...
1

Nota 5 Cuando se aplican tecnicas de eliminacion, el coste (n


umero de operaciones artitmeticas requeridas) suele ser proporcional al n
umero de coeficientes no cero de la matriz,
puesto que se usan tecnicas especiales para evitar los calculos asociados a los coeficientes
nulos de la matriz. Adem
as, el coste de calcular A1 suele ser del orden de n3 .
Ejemplo del m
etodo de Gauss

0 1

1 2 1 3
A=
1 1 1 1

0 1 8 12

1 2

| 0

b=
5

2

0 1 2 1 | 1

2
1
0 1

1 1 1 1 | 5
0 1 2 2

0 1 8 12 | 2
0 1
8 12

0 1 0 0
1 0 0 0

1 0 0 0
0 1 0 0

P1 =
0 0 1 0 , E1 = 1 0 1 0

0 0 0 1
0 0 0 1

1 2 1 3 |
1 2 1 3 | 0

0 1 2 1 | 1
0 1 2 1 |

0 0 6 11 |
0 0 0 1 | 6

0 0 0 1 |
0 0 6 11 | 1

1 0 0 0
1 0 0 0

0 1 0 0
0 1 0 0

E2 =
0 1 1 0 , P3 = 0 0 0 1

0 0 1 0
0 1 0 1

| 0

| 1

| 5

| 2

19
luego M = P3 E2 E1 P1
En la practica, la matriz de paso M no se calcula explcitamente, sino que se obtienen
directamente M A y M b.
Nota 6 La matriz M verifica

1
det(M ) =

si es par

1 si es impar

es el n
umero de matrices de permutaci
on P distintas de la identidad.
Au = b

M A u = M b.

Nota 7 En el caso de que la matriz A no es inversible, el metodo sigue siendo valido, ya


que en ese caso se considerara P = E = I.
Comparaci
on de m
etodos:

Cramer

(n + 1) (n! 1) sumas

(n + 1) (n 1) n! productos

n divisiones

Cuadro operaci
on operaciones totales
n

Gauss

Cramer

Cholesky

10

805

399167999

393333

100

681500

1000 668165500

' 10

162

' 102573

338433,3
33383433,3

El metodo de Gauss es el utilizado mas com


unmente para resolver sistemas lineales
cuyas matrices no poseen propiedades particulares (sobre todo llenas).
Todo lo anterior nos permite enunciar el siguiente resultado (que no demostraremos):
Teorema 2 Sea A una matriz cuadrada, inversible o no. Existe al menos una matriz
inversible M tal que M A es triangular superior.

20
Nota 8 Para evitar divisiones por cero en la resoluci
on de sistemas de ecuaciones, es
conveniente intercambiar ecuaciones. El siguiente ejemplo es una muestra de la ventaja
que este intercambio supone.

226 1

Ejemplo: Consideramos el sistema de matriz A =


, termino indepen1 1
!
!

1
u1
, donde la solucion exacta es
diente b =
, y solucion u =
u2
2
u1 = 2 u2 = 1.00000001490116
1 225
0.99999998509884
1 226
luego la solucion aproxima a u1 = u2 = 1.
u2 =

Resolvemos ahora con pivote de dos formas distintas:


a) Tomando 226 como pivote:

!
226 1
226
1
226
1
A=

1 1
0 1 226
0 226
!

!
1
1
1
b=

2
2 226
226
Luego estamos resolviendo el sistema:
(
226 u2 = 226

u2 = 1

226 u1 + u2 = 1 u1 = 0
b) Tomando 1 como pivote:

!
226 1
1 1
1
1
1 1
A=

1 1
226 1
0 1 226
0 1
!
!

!
!
2
2
2
1

b=
27
1
12
1
2
luego el sistema que resolvemos es:
)
(
u1 + u2 = 2
u2 = 1

u1 = 1

Este ejemplo pone de manifiesto que los errores de redondeo con efecto desastroso
provienen de la division por pivotes muy peque
nos. En la practica, se utiliza una de
las dos estrategias siguientes en cada etapa k:

21
a) estrategia del pivote parcial: se toma como pivote el elemento de mayor modulo
de entre los n k u
ltimos elementos de la columna k-esima.
b) estrategia del pivote total: se toma como pivote el elemento de mayor modulo
de la submatriz correspondiente. Si el pivote elegido esta en la k-esima columna hay
que efectuar un cambio de columnas. Esto cambia el orden de las incognitas, lo que
introduce una dificultad adicional que hace que se use normalmente la estrategia a).
Ejemplo: Aplicamos las dos estrategias anteriores a la matriz ampliada (matriz que
posee como u
ltima columna el termino

2
1

independiente):

13 2 | 1

0 1 | 2
9 2 | 0

Si aplicamos la estrategia de pivote parcial, obtenemos:

2 0 1 | 2
2 0
1 | 2

1 13 2 | 1 0 13 3/2 | 2
1 9 2 | 0
0 9 3/2 | 1

3/2
|
2
0 13

0 0 33/13 | 31/13

luego el sistema asociado tiene como solucion:


x=
Si aplicamos la estrategia de

13 1 2 | 1

0 2 1 | 2

0
0

13

0
0

1
,
22

0
1

44/13 22/13 | 9/13


1

31
.
33

13

0
0

44/13 22/13 | 9/13


0
3/2 | 97/44
x=

1
2

22/13 44/13 | 9/13

z=

pivote total, obtenemos:

13 1
2
|

2
1
|
0

2 | 0
13

97
,y =
66

97
,y =
66

1
,
22

z=

31
.
33

44/13 22/13 | 9/13


1
2
|
2

22

2.3.3

El m
etodo de Cholesky

n 7 Una matriz A se dice definida positiva si v ? A v > 0 para todo vector


Definicio
v distinto de 0. Si ademas A es simetrica, entonces es definida positiva si todos los
autovalores son reales y estrictamente positivos.
Si A es una matriz simetrica y definida positiva, entonces se puede obtener una factorizacion de la forma:
A = B C,
donde B es una matriz triangular inferior y C = B T . Los elementos de la matriz B son
de la forma:

b =

ii

v
u
i1
X
u
taii
|bik |2
k=1

i1

bik bjk ,
aij
bji = b
ii
k=1

j = i + 1, i + 2, ..., n.

Como A = BB t , se resuelve realmente el sistema lineal Au = b en dos pasos:


(
Bw = b
Btu = w

Ejemplo: Usando las formulas anteriores para el sistema de matriz

1 2 1 2

A=

1
1
5
2

0
2
2 6,
obtenemos que B es de la forma

0 0 0

1 1 0 0

B=

1
0
2
0

0 2 1 1
En este caso, se realizan:

23

2.4

n3
6

sumas

n3
6

multiplicaciones

n2
2

divisiones

races cuadradas

n3 n2
+
+n
3
2

operaciones totales

M
etodos iterativos

Comenzamos enunciando algunos problemas que pueden presentar los metodos directos, como motivacion a la introduccion de los metodos iterativos que veremos a continuacion.
Problemas de los metodos directos para la resolucion de (SL).
1. Cuando el tama
no de la matriz A es grande (n >> 100), la propagacion del error
de redondeo es tambien grande, y los resultados obtenidos pueden diferir bastante
de los exactos.
2. Muchas de las matrices que aparecen en (SL) son de gran tama
no ( ' 100 000) pero
la mayora de sus elementos son nulos (Esto ocurre, por ejemplo, en la resolucion
de problemas mediante Elementos Finitos). Estas matrices reciben el nombre de
matrices vacas o huecas, y se dan cuando n
umero de elemtnos no nulos es de orden
n.
(a) Si los elementos no nulos estan distribuidos alrededor de la diagonal principal,
son de aplicacion todava los metodos directos que conservan la estructura
diagonal, como LU o Cholebsky.
(b) Si no ocurre lo anterior, la matriz se dice que es dispersa, y al aplicarle los
metodos directos se produce un fenomeno conocido como rellenado (elementos
que eran nulos en la matriz A, ahora ya no lo son). Entonces, si no se realiza una

24
adaptacion de los metodos directos al caso de matrices dispersas los resultados
no van a ser, en general, buenos (No vamos a estudiar esa adaptacion).

Los m
etodos iterativos no tienen esos problemas porque se basan en la resolucion
(reiteradas veces) de sistemas diagonales o triangulares (por puntos o por bloques). Lo
que se intenta es que en cada iteracion el n
umero de operaciones sea mnimo.

2.4.1

Estudio general del M


etodo Iterativo

Supongamos un (SL) A u = b, buscamos una matriz B Mn y un vector c RN de


forma que la matriz I B sea inversible y que la u
nica solucion del sistema lineal
|u = B
{zu + }c
(IB) u=c

es la solucion A u = b.
Sea A una matriz, dad una matriz Q inversible, podemos descomponer
A = AQ+Q

Q = (Q A) + A

Q Q1 : I = Q1 (Q A) + Q1 A

I = (I Q1 A) + Q1 A.
Por lo tanto, multiplicando la u
ltima expresion por u y teniendo en cuenta que A u = b,
tenemos
u = (I Q1 A)u + Q1 b.
Si definimos
B = (I Q1 A) y c = Q1 b
tenemos que: u es solucion del sistema lineal A u = b, s y solo s u es solucion de
u = Bu + c.

(2.5)

Tenemos entonces que encontrar la solucion de un sistema lineal se puede ver como un
problema de punto fijo (Problema (2.5)). En este caso, la forma de construir un metodo
iterativo es la siguiente:
Considermos u0 RN un vector arbitrario, se construye una sucesion de vectores
{uk }
k=0 dada por
uk+1 = Buk + c,

k N {0}

y se pretende que la sucesion {uk }k converja a la solucion del sistema lineal.

(2.6)

25
n 8 El metodo iterativo (2.6) es convergente si existe un vector u RN tal
Definicio
que:
lim uk = u

k+

para cualquier vector inicial u0 RN . En ese caso,


u=Bu+c
El error en cada iteracion se puede medir, por tanto como:
ek = uk u
Se tiene que,
ek = uk u = (Buk1 + c) (Bu + c) = B(uk1 u) = Bek1 = . . . = B k e0
eK = B K e0 .
De ese modo, el error en las iteraciones depende de las potencias sucesivas de la matriz B,
lo que nos dara el criterior para la convergencia del Metodo Iterativo.
Supondremos que A es no singular en el sistema.
Teorema 3 Sea B la matriz del Metodo Iterativo. Son equivalente:
1. El metodo iterativo es convergente.
2. (B) < 1.
3. Existe una norma matricial k| k| (que se puede tomar subordinada) tal que
k|Bk| < 1
Recordemos que
(B) = max {|i (A) : i (A) sp(A)}
1in

es el radio espectral de B.
Teorema 4 Sea B Mn . Si exsite una norma matricial (subordinada o no) tal que
k|Bk| < 1
entonces I + B es inversible y
k|(I + B)1 k|

k|Ik|
.
1 k|Bk|

26
Nota 9 1) Si I + B es una matriz singular, k|Bk| 1, para toda norma matricial.
2) Si k| k| es una normal matricial subordinada,
k|(I + B)1 k|

1
.
1 k|Bk|

Ejemplo: La sucesion de vectores

v =

1
2
, 1 2 , e1/k
3
k
k

T
R3

es convergente al vector v = (0, 1, 1)T , v = limk+ v k .


Vskip 0.7 cm
El estudio de Metodos Iterativos reposa sobre la solucion de los dos problemas siguientes:
1) Dada la mariz del metodo iterativo B, determinar si el Metodo Iterativo es convergente.
2) Dados dos metodos iterativos convergentes, compararlos: el metodo iterativo mas
rapido es aquel cuya matriz tiene menor radio espectral.
Nota 10

1. Sea B una matriz real cualquiera y k| k| una norma matricial (subordi-

nada o no). Entonces,


(B) k|Bk|
2. Dada una matriz B y > 0, existe al menos una norma matricial subordinada tal
que
k|Bk| (B) +

2.4.2

M
etodos de Jacobi, Gauss-Seidel y relajaci
on

Introducimos tres metods iteraivos clasicos para resolver el Sistema Lineal A u = b.


Todos se basan en descomponer la matriz del sistema A como suma de submatrices:
A = M N,
donde M es una matriz inversible facil de invertir (en el sentido de que el sistema asociado
sea facil de resolver). Se verifica entonces
Au = b

(M N ) u = b

Mu=Nu+b

27
(
u = B u + c con

B = M 1 N
c = M 1 b

Consideramos entonces el Metodo Iterativo:


(
u0 R N
uk+1 = B uk + c,

k N {0}

Como N = M A, entonces B = M 1 N = M 1 (M A) = I M 1 A. Luego,


I B = M 1 A
que es inversible, y por lo tanto el sistema (I B) u = c tiene solucion u
nica.
En la pr
actica, en vez de resolver uk+1 como uk+1 = Buk + c, se resuleve el
sistema
M uk+1 = N uk + |{z}
Mc.

(2.7)

on de la matrices M y N parece que toma elementos de A.


Nota 11 La construcci
Parece que cuanto mas parecida sea la matriz M a A, mas se acercar
a la solucion a la
exacta (si N = 0 entonces M = A). Pero esto va en contra de que el sistema asociado a
la matriz M (2.7) sea facil de resolver.

Introducimos la siguiente notacion:


Dada A = (ai,j )ni,j=1 Mn con ai i 6= 0, consideramos la siguiente descomposicion de
la matriz

A=

E
A = D E F , donde
D = diag(a1 1 , a2 2 , . . . , an n ) E = (ei j )ni,j=1
con

(
ei j =

ai j si i > j
0

si i j

)
,

fi j =

F = (fi j )ni,j=1

ai j si i < j
0

si i j

La llamamos descomposicion D E F por puntos de la matriz A.

)
.

28

2.4.3

M
etodo de Jacobi

Consiste en tomar M = D, N = E + F .
As pues,
A u = b D u = (E + F ) u + b u = D1 (E + F ) u + D1 b
lo que conduce al metodo de Jacobi iterativo por puntos::

N
0

u R

uk+1 = D1 (E + F ) uk + D1 b k N {0}

o equivalentemente

N
0

u R

Duk+1 = (E + F )uK + b k N {0}

La matriz de Jacobi (por puntos) es B = D1 (E + F ) = I D1 A


Observemos que si

a1 1

a2 2
D=

...

entoncesD

1/a1 1

1/a2 2
...

an n
luego,

1/an n
1

a1 2 /a1 1 . . . a1 n /a1 1

a2 1 /a2 2
1
. . . a2 n /a2 2
D A=
.
..

..
.

an 1 /an n an 2 /an n . . .
1
1

Por tanto,
k+1
x1
k+1
x2
.
.
.
xk+1
n

queda

a1 2 /a1 1 . . . a1 n /a1 1


a2 1 /a2 2
0
. . . a2 n /a2 2
=
.
..

..
.

an 1 /an n an 2 /an n . . .
0

xk1

b1 /a1 1


b2 /a2 2
+
..

.

bn /an n
xkn
xk2
..
.

de donde:
xk+1
j

bj aj 1 xk1 aj 2 xk2 . . . aj j1 xkj1 aj j+1 xkj1 . . . aj n xkn


=
aj j

j = 1, . . . , n

29
Observemos que las n componentes del vector xk+1 se calculan simultaneamente a partir de las componente de xk . Por eso el metodo de Jacobi tambien se conoce como el
metodo de iteraciones simultaneas.
La primera cuestion que nos planteamos es la convergencia del metodo. Observamos
que
1

kI D Ak
Ejemplo 1:

2 2

A= 2

2 0 0

D = 0 3 0 , E =
0 0 2

1/2 0
0

1
J = D (E + F ) = 0 1/3 0
0

n
X
ai j
.
= max
ai i
1in
j=1,j6=i

1 ,
2
0

0 0

R.

0 2 0

2 0 0 , F = 0 0 1
0 2
0 0 0


0 2 0
0


2 0 1 = 2/3
1/2
0 0
/2

0 1/3 .
0 0

n 9 Una matrix A = (ai j )ni,j=1 Mn se dice que es diagonal estrictamente


Definicio
dominante si
|ai i | >

n
X

|ai,j |,

i = 1, . . . , n.

j=1 j6=i

Teorema 5 Si A Mn es una matriz diagonal estrictamente dominante, el metodo


iterativo de Jacobi por puntos es convergente.

2.4.4

M
etodo de Gauss-Seidel

Una estrategia adecuada para mejorar la convergencia del metodo de Jacobi sera
utilizar en el paso de calculo de la componente
uk+1
i
las componentes calculadas hasta el momento:
k+1
k+1
k
k
k
{uk+1
1 , u2 , . . . , ui1 } en vez de {u1 , u2 , . . . , ui1 }

30
Es decir, consiste en reemplazar el sistema correspondiente al metodo de Jacobi:
ai i uk+1
i

= bi

i1
X

ai j ukj

j=1

n
X

ai j ukj ,

(2.8)

j=i+1

por
ai i uk+1
= bi
i

i1
X

ai j uk+1

j=1

n
X

ai j ukj ,

(2.9)

j=i+1

Matricialmente, las ecuaciones anteriores se escriben como:


D uk+1 = b + E uk+1 + F uk ,
es decir,
(D E) uk+1 = F uk + b
Luego,
M = D E,

N =F

el metodo iterativo de Gauss-Seidel por puntos se escribe:

n
0

u R

uk+1 = (D E)1 F uk + (D E)1 b,

k N {0}

o equivalentemente

n
0

u R

(D E) uk+1 = F uk + b k N {0}

La matrix de Gauss-Seidel (por puntos) es entonces:


B = (D E)1 F = I (D E)1 A.

En este metodo, para calcular las componentes del vector uk+1 , necesitamos tanto
las componentes de uk+1 ya calculadas, como las restantes del vector uk , por lo que se
denomina metodo de las aproximaciones sucesivas. Dicho metodo sera mas rapido ya que
la matriz M contiene mas elementos de A.

31
Ejemplo: Sea

2 2

A= 2

1 , R.
0
2

2 0 0
0 2 0
0
1
0

GS = (D E)1 F = 2 3 0 0 0 1 = 0 2/3 1/3 .


0 2
0 0 0
0 /2 0
3

La siguiente tabla nos da los radios espectrales de las matrices de los metodos de
Jacobi y Gauss-Seidel para valores concretos del parametro .

(GS )

(J)

1 0.848656 0.860379
3

0.97263

1.11506

1.08264

1.305158

Teorema 6 Si A es diagonal estrictamente dominante, entonces el metodo de GaussSeidel es convergente.


Hay muchas otras condiciones de convergencia particulares para los distintos metodos.
Entre ellas, la mas significativa es:
Teorema 7 Si A es simetrica y definida positiva, el metodo de Gauss-Seidel es convergente.
n 10 Una matriz A se dice definida positiva si:
Definicio
v t av > 0,

v Rn {0}

o equivalentemente si sp(A) R+ , todos sus autovalores son positivos (no nulos).


Problema:
Estudiar la convergencia de los metodos de Jacobi y Gauss-Seidel por puntos para las
matrices:

1 2 2

A= 1 1
2 2

1
1

1 1

2
1 1 2

e=
A
2

Problema: Metodo iterativo para el calculo de la inversa de una matriz.

32
Se consideran las sucesiones de matrices
An = An1 (I + En + En2 ),

En = I A An1

siendo A Mn inversible y A0 Mn una matriz arbitraria.


1. Demostrar que En = (E1 )3

n1

2. Probar que si (E1 ) < 1, entonces


lim An = A1

n+

3. Mostrar que si se toma A0 = A /tr(A A ), entonces


lim An = A1 .

n+

2.4.5

Test de parada de las iteraciones

Cuando un metodo iterativo es convergente, la solucion del sistema lineal A u = b


se obtiene como lmite de la sucesion {uk }
k=0 de iteraciones. Ante la impoisibilidad de
calcular todas las iteraciones, se plantea el problema de determinar un valor k N {0}
para el cual podemos considerar que uk sea una buena aproximacion de u. Es decir, si se
desea que el error relativo sea inferior a una cierta cantidad prefijada , se debe cumplir,
kuk uk < kuk
para alguna norma vectorial.
Sin embargo, como u es desconocido, no se puede trabajar con esa cantidad.
Si calculamos:
kuk+1 uk k < kuk+1 k
puede que uk+1 no este proximo a u.
Una condicion de parada de las iteraciones adecuada viene dada a partir del vector
residuo
rk = b A uk = A(u uk ),

k N {0}.

Entonces, si uk ' u y Auk ' b,


kA(uk u)k
krk k
=
<
kbk
kAuk

33
Es decir, buscamos k N {0} tal que
krk k < kbk.
Debe procurarse que la comprobacion de los tests de parada no incremente en exceso
el n
umero de operaciones necesarias para realizar una iteracion. Reescribiendo los calculos
de forma adecuada obtenemos:
1. M
etodo de Jacobi:
D uk+1 = b + (E + F ) uk = b + (A + D) uk =
= b A u k + D uk = r k + D uk
Por tanto,
D (uk+1 uk ) = rk .
De ese modo, el metodo de jacobi se implementa de la siguiente forma:
1) Se calcula rk como rk = b A uk .
2) Se resuelve el sistema D dk = rk .
3) uk+1 = uk + dk
De esta forma, se calcula el valor uk+1 a partir de uk y se aprovechan los calculos
intermedios, en concreto rk , para el test de parada. Tenemos el esquema:
k
Pn
k
r
=
b

i
i
j=1 ai j uj

dki =

rik
ai i

uk+1
= uki + dki
i

2. M
etodo de Gauss-Seidel Analogamente, la implementacion del metodo de GaussSeidel, se realiza en las siguiente etapas:
k
Pn
Pi1
k+1
k
a
u

=
b

r
e

i
j
i
i
j
j=i+1 ai j uj
j=1

dki =

reik
ai i

uk+1
= uki + dki
i

Nota 12 Las normas vectoriales que suelen usarse con mas frecuencia en los test de
parada son k k2 y k k .

34

Tema 3
Resoluci
on num
erica de ecuaciones
diferenciales ordinarias
El objetivo de este tema sera la resolucion numerica de ecuaciones diferenciales ordinarias (e.d.o.). Nuestro problema de partida sera determinar de forma aproximada,
mediante el uso de Metodos Numericos de Calculo, una solucion de una e.d.o. de primer
orden, conociendo el valor de la curva solucion en un punto.
Otros problemas que se estudiaran seran la resolucion numerica de ecuaciones diferenciales de orden superior y problemas de valores frontera.
Interes: Las ecuaciones diferenciales se usan de forma habitual para construir modelos
matematicos en una amplia variedad de problemas de la ciencia y la ingeniera. En dichos
problemas se buscan los valores de ciertas funciones desconocidas a traves de lo u
nico que
somos capaces de medir: como los cambios de una variable afectan a otra. Cuando esta
relacion de cambios se traducen a un modelo matematico, el resultado es una ecuacion
diferencial.
Ejemplo: Consideremos la temperatura de un objeto y(t) que se enfra. Podramos conjeturar que la velocidad del cambio de la temperatura del cuerpo esta relacionada con
la diferencia entre su temperatura y la del medio que lo rodea: los experimentos lo confirman y la ley del enfriamento de Newton establece que dicha velocidad de cambio es
directamente proporcional a la diferencia de estas temperaturas. Si denotamos por y(t)
la temperatura del cuerpo en el instante t, y A la temperatura del medio que lo rodea,
y
= k(y A).
t
donde k es una constante positiva, y el signo negativo indica que la temperatura decrece
35

36

Figura 3.1: Solucion de la e.d.o. (3.1)


si la temperatura del cuerpo es mayor que la del medio.
Si conocemos la temperatura del cuerpo, y0 , en el instante t = 0, que se denomina
condicion inicial, entonces inclumos esa informacion en el enunciado del problema, de
manera que resolvemos:
y
= k(y A) con y(0) = y0 .
t

(3.1)

La solucion se calcula a traves de la tecnica de separacion de variables, obteniendo:


y = A + (y0 A) ek t .
Cada eleccion de y0 nos da una solucion distinta. En la Figura 3.1 se muestran varias
soluciones del problema. Se observa que, cuando t crece, la temperatura del cuerpo se
aproxima a la temperatura ambiente. Si y0 < A el cuerpo se calienta, si y0 > A el cuerpo
se enfra.
n 11 Problemas de valor inicial
Definicio
Una solucion de un problema de valor inicial
y 0 (t) = f (t, y),

con y(t0 ) = y0

en un intervalo [t0 , t1 ] es una funcion derivable y = y(t) tal que


y(t0 ) = y0 ,

y 0 (t) = f (t, y(t)),

para todo t [t0 , t1 ].

37
Campo de direcciones o pendientes
En cada punto (t, y) del rectangulo R = {(t, y); a t b, c y d }

y
d

c
t
b

la pendiente m de la solucion y = y(t) (derivada) se puede calcular mediante la formula


implcita
m = f (t, y(t)).

Por tanto, cada valor mi,j = f (ti , yj ), calculado para cada punto del rectangulo representa
la pendiente de la recta tangente a la solucion que pasa por el punto (ti , yj ).
Un campo de direcciones o campo de pendientes es una grafica en la que se representan
las pendientes {mi,j } en una coleccion de puntos del rectangulo, y puede usarse para ver
como se va ajustando una solucion a la pendiente dada: Calculamos la pendiente en el
punto inicial (t0 , y0 ) f (t0 , y0 ) para determinar en que direccion debemos movernos.
Damos un paso horizontal desde t0 , t0 + h y nos desplazamos verticalmente una distancia
apropiada h f (t0 , y0 ), llegando al punto (t1 , y1 ) de manera que el desplazamiento total que
resulta tenga la inclinacion requerida. Una vez en el punto (t1 , y1 ) se repite el proceso
a lo largo de la solucion. Como solo podemos dar un n
umero finito de pasos, el metodo
reproduce una aproximacion de la solucion.

38

3.1

El m
etodo de Euler

Sea [a, b] el intervalo en el que queremos hallar la solucion de un problema de valor


inicial

y (t) = f (t, y(t))

con f lipschitziana.
y(t0 ) = y0

Construimos un conjunto finito de puntos {(tk , yk )} que son aproximaciones de la solucion


(y(tk ) yk ).
Problema: Construir dichos puntos verificando una ecuacion diferencial. Para f (t, y), t
seran las abcisas, y las ordenadas de los puntos (t, y). Dividimos el intervalo [a, b] en M
subintervalos (de igual tama
no) en la siguiente particion:
tk = a + k h,

k = 0, 1, . . . , M,

h=

ba
.
M

El valor de incremento de h se llama tama


no del paso.
Resolucion aproximada: De y 0 (t) = f (t, y(t)) en [t0 , tM ] con y(t0 ) = y0 .
Suponiendo que y(t), y 0 (t), y 00 (t) son continuas y usando el Teorema de Taylor para
desarrollar y(t) alrededor del punto t = t0 , para cada punto t existe un punto c1 entre t0
y t tal que

(t t0 )2
.
2
Al sustituir y 0 (t0 ) = f (t0 , y(t0 )), h = t1 t0 , obtenemos una expresion para y(t1 ):
y(t) = y(t0 ) + y 0 (t0 )(t t0 ) + y 00 (c1 )

h2
y(t1 ) = y(t0 ) + h f (t0 , y(t0 )) + y (c1 ) .
2
00

Si el tama
no de paso es suficientemente peque
no, h2 se puede considerar despreciable
y
y(t1 ) y1 = y0 + h f (t0 , y0 )
que es la aproximacion de Euler.
Repitiendo el proceso, generamos una sucesion de puntos que se aproximan a la grafica
de la solucion y = y(t). El paso general del metodo de Euler es:
tk+1 = tk + h,
Ejemplo:

yk+1 = yk + h f (tk , yk ), k = 0, 1, . . . , M 1.

39
Usamos el metodo de Euler para hallar una solucion aproximada del problema de valor
inicial
y 0 (t) = R y(t),

t [0, 1],

y(0) = y0 ,

R = constante.

Debemos:
1. Elegir el tama
no de paso h.
2. Usar la formula para calcular las ordenadas y(t), que se llama ecuacion en diferencia.

yk+1 = yk + h R yk = yk (1 + h R) = yk1 (1 + h R)2 =


= . . . = y0 (1 + h R)k+1 ,

k = 0, 1, . . . , M 1.

En la mayora de los casos no se puede hallar una formula explcita para determinar las
aproximaciones, pero este es un caso especial. Concretamente, es la
formula para calcular el interes compuesto a partir de un deposito inicial.
nos a un interes compuesto
Ejemplo: Supongamos que se depositan 1000 euros durante 5 a
del 10 %. Cual es el capital acumulado al cabo de esos 5 a
nos?.

y (t) = 0.1 y

en [0, 5]

y(0) = 1000
y(t) = 1000 e0.1 t

yk = y0 (1 + h R)k = 1000(1 + 0.1 h)k


Tama
no paso

N
umero iteraciones M

yM y(5)

1/12

60

1/360

1800

1000(1 + 0.1)5 = 1610.51

60
= 1645.31
1000 1 + 0.1
12

0.1 1800
= 1648.61
100 1 + 360

La solucion exacta es y(5) = 1648.72 = 1000e0.5 .

40
Descripci
on geom
etrica

3.1.1

Tama
no del paso frente al error

Los metodos que presentamos se llaman metodos de difererencias o metodos de variable discreta. En ellos la solucion se aproxima en un n
umero finito de puntos llamados
nodos. Son de la forma:
yk+1 = yk + h (tk , yk )

(3.2)

donde se llama funcion incremental, y es de paso simple (o de un solo paso) porque en


el calculo del nuevo punto solo interviene el punto inmediatamente anterior.
Cuando usamos metodos de variable discreta para resolver de manera aproximada un
metodo de valor inicial, existen 2 fuentes de error:
(
- discretizacion
- redondeo
n 12 Error de discretizaci
on
Definicio
Supongamos que {(tk , yk )}M
nica sok=0 es un conjunto finito de aproximaciones a la u
luci
on y = y(t) de un problema de valor inicial.
Se define el error de truncamiento global o error de discretizaci
on global ek como:
ek = y(tk ) yk ,

k = 0, 1, . . . , M.

que es la diferencia entre la solucion exacta y la calculada con el metodo en el nodo


correspondiente.

41
Se llama error de consistencia (o error de truncamiento local) k+1 a:
k+1 = y(tk+1 ) y(tk ) h (tk , y(tk )),

k = 0, 1, . . . , M 1.

y es el error que se comete en un solo paso (el que lleva desde el nodo tk al tk+1 ).
En el metodo de Euler, en cada paso se desprecia un termino
y 00 (ck )

h2
.
2

Si ese fuera el u
nico error que se comete en cada paso, al llegar al extremo superior del
intervalo (dar M pasos) el error acumulado sera:
M
X
k=1

y 00 (ck )

h2
h2
h M 00
M y 00 (c) =
y (c)h =
2
2
2

(b a) 00
y (c) h = O(h).
2
Podra haber otros errores, pero esta estimacion es la que predomina.
=

Teorema 8 (Precisi
on del m
etodo de Euler)
Sea y(t) la solucion de

y 0 (t) = f (t, y)
y(t0 ) = y0

Si y C 2 ([t0 , b]) y {(tk , yk )}M


on de aproximaciones generada por el metodo
k=0 es la sucesi
de Euler, entonces
|ek | = |y(tk ) yk | = O(h)
|k+1 | = |y(tk+1 ) y(tk ) h f (tk , y(tk ))| = O(h2 )
El error al final del intervalo, llamado error global final, viene dado por
E(y(b), h) = |y(b) yM | = O(h).
Nota 13 El error global final se usa para estudiar el comportamiento del error para tama
nos de paso diferentes, luego nos da una idea del esfuerzo computacional a realizar
para obtener las aproximaciones deseadas
E(y(b), h) c h
h
c
1
E(y(b), ) h E(y(b), h)
2
2
2
luego si reducimos a la mitad el tama
no de paso en el metodo de Euler, el error global
final tambien se reduce a la mitad.

42

Figura 3.2: Aproximacion de Euler con paso h = 1 para resolver la e.d.o. (3.1)

Figura 3.3: Aproximacion de Euler con tama


nos de paso diferentes para resolver la e.d.o.
(3.1)

La siguiente tabla compara las soluciones obtenidas con el metodo de Euler, con diferentes tama
nos, para y 0 (t) = (t y)/2 en [0, 2] con condicion inicial y(0) = 1:

43
yk
tk

h=1

1.0

h=

1
2

h=

1.0

1
4

1.0

0.9375

0.943239

0.886719

0.897491

0.846924

0.862087

0.796875

0.817429

0.836402

0.759766

0.786802

0.811868

0.6875

0.758545

0.790158

0.819592

0.765625

0.846386

0.882855

0.917100

0.949219

1.030827

1.068222

1.103638

1.211914

1.289227

1.325176

1.359514

1.533936

1.604252

1.637429

1.669390

0.875

0.325
0.75

0.75
0.5

1.50
2.00

0.75

2.5
3.00

1.375

y(tk ) exacto
1.0

0.25

1.00

1
8

1.0

0.125

0.50

h=

Por u
ltimo, comparamos los errores globales finales para la e. d. o. con valor incial
1
anterior, aproximada por el metodo de Euler, usando los tama
nos de paso h = 1, 12 , ..., 64
.

Tama
no de

No de

Aproximacion

Error global final,

O(h2 ) C h2

paso h

pasos N

yN a y(3)

y(3) yN

con C = 0.0432

1.375

0.294390

0.256

1
2
1
4
1
8
1
16
1
32
1
64

1.533936

0.135454

0.128

12

1.604252

0.065138

0.064

24

1.637429

0.031961

0.032

48

1.653557

0.015833

0.016

96

1.661510

0.007880

0.008

192

1.665459

0.003931

0.004

3.1.2

Orden de un m
etodo

Supongamos que al resolver un problema tenemos


e1

error h1 error correspondiente al uso del paso h1

e2

error h2 error correspondiente al uso del paso h2

44
Tenemos que el error que comete es e ' c hp , y queremos determinar el valor de la
pontencia p. Entonces:
e1 = c hp1
e2 = c hp2

e1
hp
= 1p
e2
h2

ln

e1
e2

= p ln

h1
h2

ln(e1 /e2 )
.
ln(h1 /h2 )

p=

Estimaci
on de la precisi
on:
Si yh e yh/2 coinciden en n dgitos, se puede suponer que esos n dgitos son exactos.
n 13 Se dice que un metodo es de orden mayor o igual a p (p > 0) si para toda
Definicio
soluci
on y(t) del problema en [a, b], si y C p+1 ([a, b]) y existe k > 0 (que solo depende
de y, , pero es independiente de h) tal que:
M
1
X

|n+1 | k hp

n=0

Consistencia y estabilidad del m


etodo
n 14 El metodo es consistente al problema
Definicio
(
y 0 (t) = f (t, y) en [a, b]
y(a) = y0
si
lim

h0

M
1
X

|y(tn+1 ) y(tn ) h (tn , y(tn ); h)| = 0,

n=0

es decir, seg
un la definicion de n+1 , el error de consistencia,
lim

h0

M
1
X

|n+1 | = 0

n=0

n 15 Un metodo se dice estable si existe c > 0 (constante de estabilidad)


Definicio
independiente de h, tal que
(
yk+1 = yk + h (tk , yk ; h)
zk+1 = zk + h (tk , zk ; h) + k
max |yk zk | c{ |y0 z0 | +
| {z }
0kM
error inicial

0 k N,
X
0kN 1

yk , zk , k
|k |

|
{z
}
suma de errores en cada etapa

45
n 16 Un metodo es convergente a la solucion del problema si
Definicio
lim max |yk y(tk )| = 0

h0 0kM

Teorema 9 El metodo es consistente si y solo si (t, y; 0) = f (t, y) t [a, b], y R.


Teorema 10 Si el metodo es estable y consistente, entonces es convergente.

3.2

El m
etodo de Heun

La siguiente tecnica introduce una nueva idea en la construccion del algoritmo para
resolver el problema de valor inicial:

y 0 (t) = f (t, y(t)) en [a, b],

y(t ) = y
0
0
Para obtener el punto (t1 , y1 ), usamos el Teorema fundamental del Calculo, integrando
y 0 (t) en [t0 , t1 ] de manera que:
Z t1
Z
f (t, y(t)) dt =
t0

t1

y 0 (t) dt = y(t1 ) y(t0 ),

t0

t1

y(t1 ) = y(t0 ) +

f (t, y(t)) dt.


t0

Usamos ahora un metodo de integracion para aproximar la integral que aparece a la


derecha de la expresion anterior. Usando la regla del trapecio con incremento h = t1 t0 ,
el resultado es:

h
(f (t0 , y(t0 )) + f (t1 , y(t1 ))) .
2
Ahora bien, como y(t1 ) (que es lo queremos aproximar) aparece tambien en la expresion
y(t1 ) y(t0 ) +

de la aproximacion, entonces aplicamos el metodo de Euler para aproximar la y(t1 ) que


aperece en f (t1 , y(t1 )):
y(t1 ) y(t0 ) + h f (t, y(t0 )),
y obtenemos:

y(t1 ) y0 +

h
(f (t0 , y0 ) + f (t1 , y0 + h f (t0 , y0 )))
2

46
Repitiendo el proceso en cada intervalo [tk , tk+1 ], en cada paso la aproximacion dada
por el metodo de Euler se usa como una prediccion del valor que queremos calcular, y
luego la regla del trapecio se usa para hacer una correccion y obtener el valor definitivo.
El paso general del m
etodo de Heun es entonces el siguiente:
M
etodo de Heun o M
etodo predictor-corrector
Para tk+1 = tk + h,

pk+1 = yk + h f (tk , yk ),

yk+1 = yk + (f (tk , yk ) + f (tk+1 , pk+1 ))


2

La siguiente figura sintetiza el efecto del metodo anterior:

Tama
no de paso frente al error
El termino del error de la regla del trapecio usada es:
y (2) (ck )

h3
.
12

47
Si el u
nico error que se cometiese en cada paso fuese el anterior, entonces despues de M
pasos del metodo de Heun el error acumulado sera:

M
X

y (2) (ck )

k=1

b a h2
h2
h3
M y (2) (c)
= y (2) (c) (b a)
= O(h2 )
12
M 12
12

El siguiente teorema establece la relacion entre el error final y el tama


no de paso, y se
puede usar para dar una idea del esfuerzo computacional requerido para el metodo si
queremos obtener una precision fijada de antemano.
Teorema 11 (Precisi
on del m
etodo de Heun)

Supongamos que y(t) es la solucion de un problema de valor inicial


3

Si y(t) C ([t0 , b]), y

{(tk , yk )}N
k=0

y 0 (t) = f (t, y(t)),

y(t0 ) = y0 .
es la sucesi
on de aproximaciones dadas por el metodo

de Heun, entonces:
|ek | = |y(tk ) yk | = O(h2 ),
|k | = |y(tk+1 ) y(tk ) h (tk , y(tk ))| = O(h3 ),
1
(f (tk , y(tk )) + f (tk+1 , y(tk ) + h f (tk , y(tk )))). En particular, el
2
error global final en el extremo derecho del intervalo verifica:

donde (tk , y(tk )) =

E(y(b), h) = |y(b) yM | = O(h2 ).


Los siguientes ejemplos ilustran el Teorema de la precision del metodo:
Si usasemos tama
nos de paso h y h/2, obtendramos:
E(y(b), h) C h2 ,
E(y(b), h2 ) C

1
1
h2
= C h2 E(y(b), h).
4
4
4

Entonces, si en el m
etodo de Heun el tama
no de paso se reduce a la mitad, el
error global final se reduce a su cuarta parte.
Ejemplo: Usamos el metodo de Heun para resolver el problema:
y 0 (t) =

ty
,
2

en [0, 3], con y(0) = 1,

y comparamos las soluciones obtenidas para tama


no de paso h = 1, h = 21 , h = 41 , y
h = 81 . La solucion exacta es y(t) = 3 et/2 + t 2.

48
Para h = 14 , t0 = 0, t1 = 14 , y0 = 1, luego:
f (t0 , y0 ) =

01
= 0.5,
2

p1 = y0 + h f (t0 , y0 ) = 1
f (t1 , p1 ) =

11
= 0.875,
42

0.25 0.875
= 0.3125,
2

y1 = y0 +

h
1
(f (t0 , y0 ) + f (t1 , y1 )) = 1 + (0.5 0.3125) = 0.8984375.
2
8

Iterando en cada nodo, obtenemos:


y(3) y12 = 1.672269.

La siguiente figura nos da idea de la aproximacion obtenida con el metodo de Heun


con tama
no h = 1 y h = 1/2 para y 0 (t) = (t y)/2 en [0, 2] con condicion inicial y(0) = 1:

La siguiente tabla compara las soluciones obtenidas con el metodo de Heun, con diferentes tama
nos, para y 0 (t) = (t y)/2 en [0, 2] con condicion inicial y(0) = 1:

49
yk
tk

h=1

1.0

h=

1
2

h=

1.0

1
4

h=

1.0

1.0

0.943359

0.943239

0.897717

0.897491

0.862406

0.862087

0.838074

0.836801

0.836402

0.814081

0.812395

0.811868

0.831055

0.822196

0.820213

0.819592

0.930511

0.920143

0.917825

0.917100

1.117587

1.106800

1.104392

1.103638

1.373115

1.362593

1.360248

1.359514

1.682121

1.672269

1.670076

1.669390

0.25

0.898438

0.325
0.84375

0.75
1.00

0.875

1.50
2.00

1.171875

2.5
3.00

1.732422

y(tk ) exacto

1.0

0.125

0.50

1
8

Por u
ltimo, comparamos los errores globales finales para la e. d. o. con valor incial
1
anterior, aproximada por el metodo de Heun, usando los tama
nos de paso h = 1, 21 , ..., 64
.

Tama
no de

No de

Aproximacion

Error global final,

O(h2 ) C h2

paso h

pasos N

yN a y(3)

y(3) yN

con C = 0.0432

1.732422

-0.063032

-0.043200

1
2
1
4
1
8
1
16
1
32
1
64

1.682121

-0.012731

-0.010800

12

1.672269

-0.002879

-0.002700

24

1.670076

-0.000686

-0.000675

48

1.669558

-0.000168

-0.000169

96

1.669432

-0.000042

-0.000042

192

1.669401

-0.000011

-0.000011

Nota 14 El metodo de Heun tambien es conocido con el nombre de m


etodo de Euler
mejorado.

50

3.3

M
etodos de Runge-Kutta

Para dise
nar estos metodos, la pendiente usada es un promedio entre los valores de la
pendiente en el lmite izquierdo del intervalo [tk , tk+1 ] y en otros puntos intermedios:
yk+1 = yk + h f uncionpromedio
donde f uncionpromedio = a fk + b fk0 con a y b pesos a elegir de la forma:

fk = f (tk , yk ),

f 0 = f (t + h, y + h f )
k
k
k
k
donde los parametros , especifican la posicion del punto intermedio.
Runge y Kutta dise
naron el algoritmo eligiendo 4 parametros a, b, y de manera
que el resultado fuese lo mas preciso posible. Los parametros son independientes entre s.
Las restricciones se obtienen desarrollando en serie de Taylor la funcion f en (t, y):
(
a+b = 1
b = b =

1
,
2

que es un sistema de 3 ecuaciones con 4 incognitas. Si elegimos a = 0, b = 1, = = 12 ,


obtenemos:
Euler modificado
h
h
yk+1 = yk + h f (tk + , yk + f (tk , yk ))
2
2

Si a = b = 12 , = = 1, se obtiene el m
etodo de Heun o Euler mejorado. Dicho
metodo y el anterior son metodos de segundo orden.

3.3.1

Algoritmos de Runge-Kutta de cuarto orden

Si incluimos mas puntos en el muestreo dentro del intervalo, el metodo basico de


Runge-Kutta puede mejorarse para que el error de truncamiento global (final) sea proporcional a h4 (es decir, se trata de un metodo de cuarto orden). Despues de hacer
desarrollos en serie de Taylor, se obtiene:
yk+1 = yk +

h
(f1 + 2 f2 + 2 f3 + f4 ) ,
6

51
donde

f1

f
2

f3

f
4

= f (tk , yk )
= f (tk + h2 , yk + h2 f1 )
= f (tk + h2 , yk + h2 f2 )
= f (tk + h, yk + h f3 )

Nota 15 En general, los metodos de Runge-Kutta son de la forma:

y0

dado

yk+1 = yk + h

r
X

!
i ki ,

i=1

donde ki = f (tk + ci h, yk + h

i1
X

!
aij kj ), con c1 = 0, ci [0, 1], i R, aij R.

j=1

Tama
no de paso frente al error
El termino del error de la regla de Simpson con incremento h/2 es:
y (4) (c1 )

h5
.
2880

Si el u
nico error que apareciese en cada paso fuera el anterior, entonces en N pasos el
error acumulado al llevar a cabo el metodo sera:
N
X

b a (4)
h5

y (c) h4 O(h4 ).

y (ck )
2880
5760
k=1
(4)

Teorema 12 (Precisi
on del m
etodo de Runge-Kutta)

Supongamos que y(t) es la solucion del problema de valor inicial


Si y(t) C 5 ([t0 , b]) y {(tk , yk )}N
k=0

y 0 (t) = f (t, y(t)),

y(0) = y0
es la sucesi
on de aproximaciones generada por el

metodo de Runge-Kutta de cuarto orden, entonces:


|ek | = |y(tk ) yk | = O(h4 ),
|k | = |y(tk+1 ) yk h Tr (tk , yk )| = O(h5 ),
donde Tr (tk , yk ) es la funcion promedio del metodo. En particular, el error global final
verifica:
E(y(b), h) = |y(b) yM | = O(h4 ).

52
1
E(y(b), h).
64
Las siguientes tablas ilustran las soluciones que aparecen al resolver el problema y 0 (t) =
Es facil decucir que E(y(b), h2 )

(t y)/2 en [0, 3] con y(0) = 1 por el metodo de Runge-Kutta de cuarto orden con
diferentes tama
nos de paso, y el error final cometido:
yk
tk

h=1

1.0

h=

1
2

h=

1.0

1
4

1.0

0.9432392

0.9432392

0.9874908

0.8974917

0.8620874

0.8620874

0.8364037

0.8364024

0.8364023

0.8118696

0.8118679

0.8118678

0.3196285

0.8195940

0.9195921

0.8195920

0.9171423

0.3171021

0.9170998

0.9170997

1.1036826

1.1036408

1.1036385

1.1036383

1.3595575

1.3595168

1.3595145

1.3595144

1.6694308

1.6693928

1.6693906

1.6693905

0.8974915

0.325
0.8364258

0.75
0.8203125

1.50
2.00

1.1045125

2.5
3.00

1.6701860

y(tk ) exacto
1.0

0.25

1.00

1
8

1.0

0.125

0.50

h=

Tama
no de

No de

Aproximacion

Error global final,

O(h4 ) C h4

paso h

pasos N

yN a y(3)

y(3) yN

con C = 0.000614

1.6701860

-0.0007955

-0.0006140

1
2
1
4
1
8

1.6694308

-0.0000403

-0.0000384

12

1.6693928

-0.0000023

-0.0000024

24

1.6693906

-0.0000001

-0.0000001

Tema 3
Parte II (e. d. o. s): Resoluci
on
num
erica de ecuaciones diferenciales
ordinarias
3.4

Sistemas de Ecuaciones Diferenciales

Consideramos el problema de valor inicial:


dx

dt (t) = f (t, x(t), y(t))


(S)

dy (t) = g(t, x(t), y(t))


dt

x(t0 ) = x0
con

y(t ) = y
0
0

n 17 Una solucion de (S) es un par de funciones derivables x(t), y(t), tales


Definicio
que cuando t, x(t), y(t) se sustituyen en f (t, x(t), y(t)), g(t, x(t), y(t)) el resultado es igual
a las derivadas x0 (t), y 0 (t) respectivamente, es decir:

x0 (t) = f (t, x(t), y(t))


con

y 0 (t) = g(t, x(t), y(t))


Ejemplo: Consideramos el sistema
dx

dt (t) = x + 2y

dy (t) = 3x + 2y
dt

x(t0 ) = x0

y(t ) = y
0
0

x(0) = 6
con

53

y(0) = 4

54
La solucion exacta es:

x(t) = 6e4t + 2et

y(t) = 6e4t 2et

3.4.1

Resoluci
on num
erica

Podemos encontrar una solucion numerica del sistema (S) en un intervalo [a, b] considerando los diferenciales:
d x = f (t, x, y) dt,

dy = g(t, x, y) dt

Reescribiendo los incrementos dt = tk+1 tk , dx = xk+1 xk , dy = yk+1 yk , es facil


implementar el metodo de Euler:

xk+1 xk f (tk , xk , yk ) (tk+1 tk )

y
k+1 yk g(tk , xk , yk ) (tk+1 tk )
ba
, y tomando los
N
= tk + h, obtenemos las formulas correspondientes al metodo de Euler:

Dividiendo el intervalo [a, b] en N subintervalos de anchura h =


nodos tk+1

M
etodo de Euler
tk+1 = tk + h
xk+1 = xk + h f (tk , xk , yk )
yk+1 = yk + h g(tk , xk , yk )), para k = 0, 1, ..., N 1.

Sin embargo, para obtener un grado de precision razonable, es necesario utilizar un


metodo de orden mayor. Por ejemplo, las formulas para el metodode Runge-Kutta de
orden 4 son:

55

M
etodo de Runge-Kutta de orden 4
xk+1 = xk +

h
(f1 + 2 f2 + 2 f3 + f4 ),
6

yk+1 = yk +

h
(g1 + 2 g2 + 2 g3 + g4 ) ,
6

donde

f1 = f (tk , xk , yk ),

f2 = f (tk + h2 , xk + h2 f1 , yk + h2 g1 ),

g1 = g(tk , xk , yk ),
g2 = g(tk + h2 , xk + h2 f1 , yk + h2 g1 ),

f3 = f (tk + h2 , xk + h2 f2 , yk + h2 g2 ), g3 = g(tk + h2 , xk + h2 f2 , yk + h2 g2 ),

f4 = f (tk + h, xk + h f3 , yk + h g3 ), g4 = g(tk + h, xk + h f3 , yk + h g3 ).
Ejemplo: Aplicamos al sistema
(
x0 = x + 2y,
y 0 = 3x + 2y

(
con

x(0) = 6,
y(0) = 4

el metodo de Runge-Kutta de orden 4 en el intervalo [0, 0.2] tomando 10 subintervalos de


0.2
paso h =
= 0.02.
10
Para obtener el primer punto t1 = 0.02, las operaciones intermedias necesarias para
obtener x1 e y1 son:
f1 = f (t0 , x0 , y0 ) = f (0, 6, 4) = 14,
x0 + h2 f1 = 6.14

g1 = g(t0 , x0 , y0 ) = g(0, 6, 4) = 26
y0 +

h
2

= 4.26

f2 = f (0.01, 6.14, 4.26) = 14.66,

g2 = g(0.01, 6.14, 4.26) = 26.94

x0 + h2 f2 = 6.1466

y0 + h2 g2 = 4.2694

f3 = f (0.01, 6.1466, 4.2694) = 14.68.54,

g3 = g(0.01, 6.1466, 4.2694) = 26.9786

x0 + h f3 = 6.293708

y0 + h g3 = 4.539572

f4 = f (0.02, 6.293708, 4.539572) = 15.372852 g4 = g(0.02, 6.293708, 4.539572) = 27.960268

56
Luego
x1 = x0 +
= 6+

0.02
6

y1 = y0 +
= 4+

h
(f1 + 2 f2 + 2 f3 + f4 )
6
(14 + 2(14.66) + 2(14.6854) + 15.372852) = 6.29354551

h
(g1 + 2 g2 + 2 g3 + g4 )
6

0.02
6

(26 + 2(26.94) + 2(26.9786) + 27.960868) = 4.53932490

En la siguiente tabla se recogen los valores en cada nodo para xk e yk .


k

tk

xk

yk

0.00 6.00000000

4.00000000

0.02 6.29654551

4.53932490

0.04 6.61562213

5.11948599

0.06 6.96852528

5.74396525

0.08 7.35474319

6.41653305

0.10 7.77697287

7.14127221

0.12 8.23813750

7.92260406

0.14 8.74140523

8.76531667

0.16 9.29020955

9.67459538

0.18 9.88827138

10.6560560

10

0.2

11.7157807

10.5396230

Las soluciones as calculadas presentan errores que se acumulan en cada paso. En el


extremo derecho del intervalo:
x(0.2) x10 = 0.0000022
y(0.2) y10 = 0.0000034

3.4.2

Ecuaciones diferenciales de orden superior

Las edo de orden superior son las que involucran derivadas de x(t) de orden superior,
00

x (t), x000 (t),... Este tipo de ecuaciones aparecen en modelos matematicos de problemas
de la fsica y la ingeniera. Por ejemplo,
m x00 (t) + c x0 (t) + k x(t) = g(t)

57
representa un sistema mecanico en el que un muelle, cuya constante de recuperacion es
k, atado a una masa m, que ha sido separado de su posicion de equilibrio a la que tiende
a volver. Se supone que la amortiguacion debida al rozamiento es proporcional a la
velocidad, que g(t) es una fuerza externa, y que se conocen la posicion inicial x(t0 ) y la
velocidad inicial x0 (t0 ). Despejando la derivada segunda, el problema de valor inicial se
puede escribir como:

00
0

x (t) = f (t, x(t), x (t))


(E)
x(t0 ) = x0 ,

0
x (t0 ) = y0
Si llamamos y(t) = x0 (t), la e. d. o. de segundo orden se puede reescribir como un
problema de valor inicial para sistemas de primer orden con 2 ecuaciones:

dx

(t)

dt

dy
(t)
(S)
dt

x(t0 )

y(t )
0

= y(t),
= f (t, x(t), y(t)),
= x0 ,
= y0

Al resolver el sistema (S) con un metodo numerico de Runge-Kutta de orden 4, se generan


dos sucesiones {xk }, {yk }, siendo {xk } la sucesion de (E).
Ejemplo 1: Movimiento armonico amortiguado.
x00 (t) + 4 x0 (t) + 5 x(t) = 0,

x(0) = 3,

x0 (0) = 5.

a) Reescritura como sistema equivalente:


x00 (t) = 4 x0 (t) 5 x(t),
(

x0 (t) = y(t)
y 0 (t) = 5 x(t) 4 y(t)

(
con

x(0) = 3
y(0) = 5

b)En la tabla siguiente mostramos los resultados de RK4 en el intervalo [0, 5], con N = 50
y h = 0.1, y la comparacion con la solucion exacta x(t) = 3 e2t cos(t) + e2t sen(t):

58
k

tk

xk

x(tk )

0.0

3.00000000

3.00000000

0.1

2.52564583

2.52565822

0.2

2.10402783

2.10404686

0.3

1.73506269

1.73508427

0.4

1.41653369

1.41655509

0.5

1.14488509

1.14490455

10 1.0

0.33324302

0.33324661

20 2.0

-0.00620684

-0.00621162

30 3.0

-0.00701079

-0.00701204

40 4.0

-0.00091163

-0.00091170

48 4.8

-0.00004972

-0.00004969

49 4.9

-0.00002348

-0.00002345

50 5.0

-0.00000493

-0.00000490

Ejemplo 2: Deflexion de un mastil de un velero.


Consideramos un velero azotado por una fuerza f uniformemente distribuida a lo
largo del mastil. Los cables que soportan el mastil se han quitado, pero el mastil se
monta firmemente en el casco del velero. La fuerza del viento causa que el mastil se
desve. Las siguientes figuras representan dicha deflexion:

59

La desviacion es similar a la de una viga en voladizo. Se puede usar la siguiente


ecuacion diferencial, basada en las leyes de la mecanica, para calcular la deflexion:
d2
f
y(z) =
(L z)2
(3.1)
2
dz
2E I
donde E es el modulo de elasticidad, L es la altura del mastil e I es el momento de inercia.
dy
= 0. Calcular la deflexion en el tope del mastil en donde z = L usando
En z = 0,
dz
metodos analticos y numericos. Supongase que el casco no gira.
f
Soluci
on: La solucion exacta es y(z) =
(L z)4 + C1 z + C2 . Su derivada es:
24 E I
f
f 3
f L3
y 0 (z) =
(L z)3 + C1 y 0 (0) =
L + C1 = 0
C1 =
6E I
6E I
6E I

60
Para calcular la constante C2 , usamos la hipotesis logica de que y(0) = 0, es decir, el
mastil no se mueve en el sitio de union con el casco del barco, lo que hace que:
C2 =

f L4
,
24 E I

de manera que la solucion es:

1
f
L4
4
3
,
y(z) =
(L z) + z L
6E I 4
4
y entonces,
f L4
y(L) =
.
8E I
El modelo anterior es valido siempre que el intervalo de integracion [0, L] sea peque
no,
y la desviacion del mastil (que acabamos de calcular) tambien. Los valores de f y E se
basan en datos experimentales variables y difciles de medir exactamente.
Reescribimos la ecuacion (3.1) como un sistema de e. d. o. de primer orden que
resolvemos usando el metodo de Euler:
dy

dz = u,

f
du =
(L z)2
dz
2E I
Usamos f = 50 libras/pie, L = 30 pies, E = 1.5 108 libras/pie, I = 0.06 pies4 , y
obtenemos que la desviacion el el extremo superior del mastil es y(30) = 0.5625 pies.
Concretamente, para distintos valores de h:
Tama
no de paso de Euler

y(30)

1.0

0.5744

0.1

0.5637

0.05

0.5631

Los resultados se pueden usar para propositos de dise


no. Esto es valioso en el caso en
que la fuerza no es constante sino que vara de forma complicada en funcion de la altura
sobre la cubierta del velero.

61

3.5

Problemas de contorno

Otro tipo de ecuaciones diferenciales son de la forma:


x00 (t) = f (t, x(t), x0 (t)) para a t b,
(
x(a) = ,
con condiciones de contorno (o frontera)
x(b) =
Observemos que hemos sustituido las condiciones iniciales para x(t0 ) = x0 , x0 (t0 ) = y0
por dos condiciones para x(t). Esto se conoce como problema de contorno o problema de valores frontera.
En este caso, antes de implementar el metodo numerico es necesario garantizar que el problema de contorno posee solucion. Para ello, usamos el siguiente resultado:
Teorema 13 (Problema de contorno) Supongamos que f (t, x, y) es una funcion continua en la regi
on:
R = {(t, x, y) : a t b, < x < , < y < },
f f
,
continuas en R.
x y
Si fx (t, x, y) > 0 para todo (t, x, y) R y existe una constante (
M > 0 tal que
x00 (t) = f (t, x(t), x0 (t))
|fy (t, x, y)| M para todo (t, x, y) R, entonces el problema de contorno
x(a) = , x(b) =
tiene solucion u
nica x = x(t) en a t b.

con derivadas parciales

Nota 16 Observemos que se ha usado que y = x0 (t) para la notacion del teorema anterior.

3.5.1

Caso lineal

Corolario 1 (Problemas de contorno lineales) Supongamos que la funcion f del


Teorema anterior es lineal y se puede escribir de la forma:
f (t, x, y) = p(t) y + q(t) x + r(t)
f
f
= q(t),
= p(t) son continuas en R (lo que garantiza
x
y
que |p(t)| = |fy | M = max [a, b]{|p(t)|}). Si q(t) > 0 para todo t [a, b], entonces el

y que sus derivadas parciales

problema de contorno lineal:


(
x00 (t) = p(t) x0 (t) + q(t) x(t) + r(t),
x(a) = ,
tiene solucion u
nica en a t b.

x(b) =

62
M
etodo del disparo lineal
Pemite resolver un problema de contorno lineal descomponiendolo como dos problemas
de valor inicial especiales:
(
(P b1)

u00 (t) = p(t) u0 (t) + q(t) u(t) + r(t)


u(a) = ,
(

(P b2)

u0 (a) = 0

v 00 (t) = p(t) v 0 (t) + q(t) v(t)


v(a) = 0,

v 0 (a) = 1.

Entonces, la combinacion lineal x(t) = u(t) + C v(t) es solucion de x00 (t) = p(t) x0 (t) +
q(t) x(t) + r(t). En efecto,
x00 (t) = u00 (t) + c v 00 (t) = p(t) (u0 (t) + c v 0 (t)) + q(t)(u)t) + c v(t)) + r(t)
= p(t) x0 (t) + q(t) x(t) + r(t)
La solucion x(t) toma los siguientes valores en la frontera del intervalo [a, b]:
x(a) = u(a) + c v(a) = ,

x(b) = u(b) + c v(b).

Si imponemos la condicion x(b) = , entonces debemos calcular la constante anterior de


u(b)
manera que C =
. En consecuencia, si v 0 (b) 6= 0, entonces la solucion u
nica del
v(b)
problema de contorno inicial es:
x(t) = u(t) +

u(b)
v(t).
v(b)

Nota 17 La hipotesis q(t) > 0 evita el caso v(t) = 0.


Ejemplo: Resolvemos el problema de contorno:

2
2t 0

x
(t)

x(t) + 1
x00 (t) =
1 + t2
1 + t2

x(0) = 1.25, x(4) = 0.95

(3.2)

en el intervalo [0, 4]. Siguiendo los pasos del metodo del disparo lineal, descomponemos
el problema en:

u00 (t) =
(P b1)

2
2t 0
u
(t)

u(t) + 1
1 + t2
1 + t2

x(0) = 1.25,

x0 (0) = 0

63

Figura 3.1: Funciones u(t), v(t) y x(t) asociadas a (3.2)

Figura 3.2: Grafica de la solucion numerica de (3.2) con h = 0.2

64

v 00 (t) =
(P b2)

2t 0
2
v (t)
v(t)
2
1+t
1 + t2

x(0) = 0,

x0 (0) = 1

Usando el metodo de Runge-Kutta de orden 4 con h = 0.2, calculamos las soluciones


numericas {uj }, {vj } asociadas a los problemas 1 y 2.
Por otro lado, tomando u(4) u20 = 2.893535, v(4) v20 = 4, entonces consideramos la sucesion {wj } definida por:

wj =

b u(4)
= 0.485884 vj .
v(4)

Entonces, la sucesion numerica del problema de contorno viene dada por {uj + wj }. La
solucion exacta del problema es:

1
x(t) = 1.25 + 0.4860896526 t 2.25 t2 + 2t arctg(t) + (t2 1) ln(1 + t2 ).
2

Las siguientes tablas reflejan las aproximaciones numericas obtenidas de las funciones uj ,
wj y uj + wj :

65
tj

uj

wj

x j = uj + w j

0.0

1.250000

0.000000

1.250000

0.2

1.220131

0.097177

1.317308

0.4

1.132073

0.194353

1.326426

0.6

0.990122

0.291530

1.281652

0.8

0.800569

0.388707

1.189276

1.0

0.570844

0.485884

1.056728

1.2

0.308850

0.583061

0.891911

1.4

0.022522

0.680237

0.702759

1.6

-0.280424

0.777413

0.496989

1.8

-0.592609

0.874591

0.281982

2.0

-0.907039

0.971767

0.064728

2.2

-1.217121

1.068944

-0.148177

2.4

-0.516639

1.166121

-0.350518

2.6

-1.799740

1.263297

-0.536443

2.8

-2.060904

1.360474

-0.700430

3.0

-2.294916

1.457651

-0.837265

3.2

-2.496842

1.554828

-0.942014

3.4

-2.662004

1.652004

-1.010000

3.6

-2.785960

1.749181

-1.036779

3.8

-2.864481

1.846358

-1.018123

4.0

-2.893535

1.943535

-0.950000

Tabla 3.1: Soluciones numericas

66
tj
0.0
0.2
0.4

xj

x(tj )

x(tj ) xj

h = 0.2

exacto

error

1.250000

1.250000

0.000000

1.317308
1.326426

1.317350
1.326505

0.000042
0.000079

xj

x(tj )

x(tj ) xj

h = 0.1

exacto

error

0.0

1.250000

1.250000

0.000000

0.1

1.291116

1.291117

0.000001

0.2

1.317348

1.317350

0.000002

0.3

1.328986

1.328990

0.000004

0.4

1.326500

1.326505

0.000005

0.5

1.310508

1.310514

0.000006

tj

0.6

1.281652

1.281762

0.000110

0.6

1.281756

1.281762

0.000006

0.8

1.189276

1.189412

1.000136

0.8

1.189404

1.189412

0.000008

1.0

1.056728

1.056886

0.000158

1.0

1.056876

1.056886

0.000010

1.2

0.891911

0.892086

0.000175

1.2

0.892076

0.892086

0.000010

1.6

0.496989

0.497187

0.000198

1.6

0.497175

0.497187

0.000012

2.0

0.064728

0.064931

0.000203

2.0

0.064919

0.064931

0.000012

2.4

-0.350518

-0.350325

0.000193

2.4

-0.350337

-0.350325

0.000012

2.8

-0.700430

-0.700262

0.000168

2.8

-0.700273

-0.700262

0.000011

3.2

-0.942014

-0.941888

0.000126

3.2

-0.941895

-0.941888

0.000007

3.6

-1.036779

-1.036708

0.000071

3.6

-1.036713

-1.036708

0.000005

4.0

-0.950000

-0.950000

0.000000

4.0

-0.950000

-0.950000

0.000000

Tabla 3.2: Soluciones numericas y error

Tema 4
El m
etodo de Diferencias Finitas
La idea del metodo de Diferencias Finitas consiste en aproximar las derivadas que
aparecen en el problema de ecuaciones diferenciales ordinarias (e.d.o.) de forma que
se reduzca a resolver un sistema lineal. Una vez definido el sistema lineal se estudiara
teniendo en cuenta los resultados de los Temas 1 y 2.
Comenzamos viendo el metodo de Diferencias Finitas para un problema de contorno
de segundo orden lineal. En concreto, consideramos la ecuacion lineal:
x00 (t) = p(t) x0 (t) + q(t)x(t) + r(t) t [a, b]

(4.1)

con
x(a) = ,

x(b) = .

Recordamos que, seg


un vimos en el tema anterior, suponemos que
q(t) > 0 y que p(t) esta acotada,
bajo estas condiciones el problema de contorno tiene solucion.
Hagamos una particion de [a, b], donde:
a = t0 < t1 < . . . < tN = b,
ba
tj = a + j h j = 0, 1, . . . , N
N
Usando las formulas de diferencias centradas para aproximar las derivadas tenemos (En
h=

el Apendice de este tema se explica como se deduce la siguiente igualdad):


x0 (tj ) =

x(tj+1 ) x(tj1 )
+ O(h2 )
2h
67

(4.2)

68
x(tj+1 ) 2x(tj ) + x(tj1 )
+ O(h2 )
h2
Reemplazando (4.2) y (4.3) en (4.1), aproximando xj x(tj ) j, obtenemos:

xj+1 2 xj + xj1
xj+1 xj1
2
2
+ O(h ) = p(tj )
+ O(h ) + q(tj )xj + r(tj )
h2
2h
x00 (tj ) =

(4.3)

(4.4)

Eliminando los terminos de orden O(h2 ) en (4.4) e introduciendo la notacion pj = p(tj ),


qj = q(tj ), rj = r(tj ), obtenemos la ecuacion en diferencias:
xj1 2 xj + xj1
xj+1 xj1
= pj
+ qj xj + rj
2
h
2h

(4.5)

que se usa para calcular aproximaciones numericas a la solucion de la ecuacion diferencial


(4.1).
Reagrupando, teniendo en cuenta que las incognitas son xj j = 1, . . . , N , tenemos el
sistemas lineal de ecuaciones:

h
h
2

pj 1 xj1 + 2 + h qj xj +
pj 1 xj+1 = h2 rj

2
2

j = 1, 2, . . . , N 1

x0 =

xN =
(4.6)
El sistema (4.6) es un sistema tridiagonal de N 1 ecuaciones y N 1 incognitas,
x1 , . . . , xN 1 (pues x0 y xN son datos, las condiciones de contorno del problema). En
notacion matricial podemos escribirlo como
A x = b,

donde x =

x1
..
.

xN 1

2 + h2 q1

p2 h/2 1

A=

p1 h/2 1

...

...

2 + h2 q2

p2 h/2 1
..
.

...

...

pj h/2 1 2 + h2 qj

pj h/2 1
..
.
pN 1 h/2 1 2 + h2 qN 1

69
Ademas, si denotamos e0 = (p1 h/2 + 1), eN = (pN 1 h/2 + 1), tenemos

h2 r1 + e0

h
r
2

..

b=

2
h rj

..

2
h rN 1 + eN
Aplicamos ahora algunos de los resultados que hemos estudiado para resolucion numerica
de sistemas lineales. Por ejemplo, veamos si podemos utilizar los metodos iterativos de
Jacobi y Gaus-Seidel. Uno de los criterios para ver si ambos metodos son convergentes
es probar que la matriz es estrictamente diagonal dominante. Para ello, tenemos que ver
que
|2 + h2 qj | > |1 + pj h/2| + |1 pj h/2|,

j = 1, . . . , N 1.

Por un lado tenemos que h es el tama


no de paso en la discretizacion, por lo que lo podemos
tomar suficientemente peque
no, de forma que
1 pj h/2 0,

1 + pj h/2 0 j

Como ademas, tenemos que q > 0, por hipotesis (lo suponamos al principio del tema,
para poder asegurar que el problema de contorno tiene solucion), llegamos a que
|1 + pj h/2| + |1 pj h/2| = 1 + pj h/2 + 1 pj h/2 = 2
y
|2 + h2 qj | > 2 (pues qj > 0).
Por lo tanto, la matriz del sistema es estrictamente diagonal dominante. Entonces, podemos aplicar los metodos iterativos de Jacobi y Gaus-Seidel para resolver el sistema lineal
(no os parece apasionante, como justo la hipotesis que se necesita para asegurar la existencia de solucion en el problema de contorno (q > 0) es la que asegure que el sistema es
estrictamente diagonal dominante?, acabamos de relacionar dos problemas en apariencia
distintos).
En definitiva, de esta forma, resolviendo el problema lineal, con tama
no de paso h,
N 1
conseguimos una aproximacion numerica: un conjunto finito de puntos {(tj , xj )}j=1
.

Si se conoce la solucion exacta x(tj ), entonces podemos comparar xj con x(tj ).

70
Ejemplo: Vamos a resolver el problema de contorno

2
2t 0
00

x (t) = 1 + t2 x (t) + 1 + t2 x(t) + 1 t [0, 4]

x(0) = 1.25 x(4) = 0.95


Solucion: Aplicando el metodo de diferencias finitas y aproximando xj x(tj )
{xj,1 }N
j=0 ,

{xj,2 }N
j=0 ,

{xj,3 }N
j=0 ,

{xj,4 }N
j=0

representan las aproximaciones correspondientes a los tama


nos de paso h al elegir
h1 = 0.2
h3 = 0.05

N = 20,
N = 80,

h2 = 0.1

N = 40,

h4 = 0.025

N = 160.

Veamos, seg
un los distintos pasos considerados, la siguiente tabla de errores:
x(tj ) xj,1

x(tj ) xj,2

x(tj ) xj,3

x(tj ) xj,4

h1 = 0.2

h2 = 0.1

h3 = 0.05

h = 0.025

0.0

0.0

0.0

0.0

0.0

0.2

0.002847

0.000704

0.000176

0.000044

0.4

0.005898

0.001460

0.000364

0.000091

0.6

0.009007

0.002229

0.000556

0.000139

0.8

0.012013

0.002974

0.000742

0.000185

1.0

0.014780

0.003660

0.000913

0.000228

1.2

0.017208

0.004263

0.001063

0.000265

1.4

0.019235

0.004766

0.001189

0.000297

1.6

0.020815

0.005160

0.001287

0.000322

1.8

0.021920

0.005435

0.001356

0.000338

2.0

0.022533

0.005588

0.001394

0.000348

2.2

0.022693

0.005615

0.001401

0.000350

2.4

0.022232

0.005516

0.001377

0.000344

2.6

0.021304

0.005285

0.001319

0.000329

2.8

0.019852

0.004926

0.001230

0.000308

3.0

0.017872

0.004435

0.001107

0.000277

3.2

0.015362

0.003812

0.000951

0.000237

3.4

0.012322

0.003059

0.000763

0.000191

3.6

0.008749

0.002171

0.000541

0.000135

3.8

0.004641

0.001152

0.000287

0.000072

4.0

0.0

0.0

0.0

0.0

tj

71
Se puede probar que las soluciones numericas tienen un error de O(h2 ): Veamos que si
reducimos el tama
no del paso a la mitad, el error disminuye una cuarta parte (Recordamos
que si un metodo es de orden p, entonces e(h/2) = e(h)/2p ):
Vamos a fijarnos en la tabla anterior, por ejemplo en t = 2, vemos que el error que
cometemos en este punto, para h1 = 0.2 es 0.022533. Dividiendo esta cantidad por cuatro
y as sucesivamente tenemos
0.022533 0.00563325 0.0014083125 0.0035207
mientras que los valores de la tabla son
0.022533 0.005588 0.001394 0.000348
Es un peque
no ejemplo, comprobando que el esquema es de orden dos.
Teorema 14 Si la solucion del problema de contorno es suficientemente regular, x
C 4 ([a, b]), entonces el error e para el metodo de diferencias finitas satisface:
kek C h2 ,
es decir, es un metodo de segundo orden.
Realmente habra ocasiones en las que nos interesa conseguir metodos de mayor orden.
Con esta finalidad estudiamos el esquema de mejora de Richardson.

4.1

Esquema de mejora de Richardson

Vamos a mejorar la precision de las aproximaciones numericas anteriormente obtenidas usando el esquema de mejora de Richardson para extrapolar los valores {xj,1 }N
j=0 ,
N
N
{xj,2 }N
j=0 , {xj,3 }j=0 {xj,4 }j=0 , correspondiente a los pasos h1 , h2 , h3 y h4 , donde

h2 =

h1
,
2

h3 =

h2
,
2

h4 =

h3
,
2

con la finalidad de obtener 6 cifras de precision.


h 2
Para ello, primero eliminamos los terminos de orden O(h2 ) de {xj,1 }N
j=0 y O(( 2 ) ) de

{xj,2 }N
j=0 , generando los valores

{zj,1 } =

4xj,2 xj,1
3

72
N
Despues, se eliminan los terminos de orden O(( h2 )2 ) y O(( h4 )2 ) de {xj,2 }N
j=0 y {xj,3 }j=0 ,

generando

{zj,2 } =

4xj,3 xj,2
3

Se puede aplicar un segundo nivel de mejora a las sucesiones {zj,1 } y {zj,2 }, generando
una tercera mejora:

{zj,3 } =

16zj,2 zj,1
15

Los valores correspondientes a {zj,3 } ya tienen 6 cifras de precision. Como ejemplo, vease
la siguiente tabla

(4xj,2 xj,1 )/3

(4xj,3 xj,2 )/3

= zj,1

= zj,2

0.0

1.250000

1.250000

1.250000

1.250000

0.2

1.317360

1.317351

1.317350

1.317350

0.4

1.326524

1.326506

1.326504

1.326505

0.6

1.281792

1.281764

1.281762

1.281762

0.8

1.189451

1.189414

1.189412

1.189412

1.0

1.056932

1.056889

1.056886

1.056886

1.2

0.892138

0.892090

0.892086

0.892086

1.4

0.703003

0.702951

0.702947

0.702948

1.6

0.497246

0.497191

0.497187

0.497187

1.8

0.282244

0.282188

0.282184

0.282184

2.0

0.064991

0.064935

0.064931

0.064931

2.2

-0.147918

-0.147973

-0.147977

-0.147977

2.4

-0.350268

-0.350322

-0.350325

-0.350325

2.6

-0.536207

-0.536258

-0.536261

-0.536261

2.8

-0.700213

-0.700259

-0.700263

-0.700262

3.0

-0.837072

-0.837119

-0.837116

-0.837116

3.2

-0.941850

-0.941885

-0.941888

-0.941888

3.4

-1.009870

-1.009898

-1.009899

-1.009899

3.6

-1.036688

-1.096707

-1.036708

-1.036708

3.8

-1.018075

-1.018085

-1.018086

-1.018086

4.0

-0.950000

-0.950000

-0.950000

-0.950000

tj

(16zj,2 zj,1 )/3

x(tj )
Sol. exacta

73

4.2

Otras condiciones de frontera.

Las condiciones de frontera pueden ser distintas. Concretamente, en lugar de tomar


x(a) = , podemos tener x0 (a) y x0 (b) en lugar de x(b).
Supongamos por ejemplo que:
(

x0 (a) =
0

x (b) =

(
o

x0 (a) =
x(b) =

(
o

x(a) =
x0 (b) =

Ahora x0 y xN son tambien incognitas, luego debemos tener 2 ecuaciones mas en el sistema
resultante.
Supongamos que tenemos la condicion x0 (a) = , podemos aproximar esta condicion
mediante:
x1 x1
=
2h

(4.7)

donde x1 es un punto ficticio de la b


usqueda de x0 . Entonces, escribiendo la ecuacion
aproximada por diferencias finitas para el nodo x0 :
x1 2x0 + x1
x1 x1
= r0 + q0 x0 + p0
2
h
2h
que reordenamos como:
1
1
(1 hq0 )x1 + (2 + h2 p0 )x0 + (1 + hq0 )x1 = h2 r0 ,
2
2
de donde, teniendo en cuenta que por (4.7)
x1 = x1 2h
La ecuacion queda
(2 + h2 p0 )x0 2x1 = (2 + h q0 )h h2 r0 .

(4.8)

Razonando asimismo en el extremo b, tenemos que si imponemos x0 (b) = la ecuacion


resultante es
2xN 1 + (2 + h2 qN )xN = h2 rN + (2 h pN )h .

(4.9)

De esta forma, las ecuaciones (4.8) y (4.9) se a


nadirian al sistema (4.6), obteniendo un
problema de (N + 1) incognitas con (N + 1) ecuaciones.

74

Ap
endice: Aproximaci
on de la derivada de una funci
on a partir del desarrollo de Taylor
En esta seccion vamos a introducir aproximaciones de y 0 (x) e y 00 (x), a partir del desarrollo de Taylor. Estas aproximaciones es la base de los metodos de diferencias finitas.
Consideramos en primer lugar el desarrollo de Taylor de tercer orden, para una funcion
y(x). Entonces,
y(t) = y(t0 ) + y 0 (t0 )(t t0 ) + y 00 (t0 )

(t t0 )2
(t t0 )3
+ y 000 (c)
2
6

de donde tomando t0 = x y t = x + h, tenemos


h3
h2
000
y(x + h) = y(x) + y (x)h + y (x) + y (c1 )
2
6
0

00

Tomando ahora, t0 = x, t = x h, obtenemos:


y(x h) = y(x) hy 0 (x) + y 00 (x)

h2
h3
y 000 (c2 ) .
2
6

Restando ambas expresiones tenemos:


y(x + h) y(x h) = 2 h y 0 (x) +

h3 000
(y (c1 ) + y 000 (c2 ))
6

De esta u
ltima aproximacion deducimos
y(x + h) y(x h) h2 000
y (x) =
+ (y (c1 ) + y 000 (c2 ))
2h
12
0

Por lo tanto, tenemos una aproximacion de segundo orden a la derivada a la funcion en


un punto:
y 0 (x)

y(x + h) y(x h)
2h

Aproximaci
on de y 00 (x)
Usando el desarrollo de Taylor de cuarto orden, llegamos a que
y(t) = y(t0 ) + y 0 (t0 )(t t0 ) + y 00 (t0 )

(t t0 )3
(t t0 )4
(t t0 )2
+ y 000 (t0 )
+ y iv (c)
2
6
4!

Si t = x + h, t0 = x
y(x + h) = y(x) + y 0 (x)h + y 00 (x)

h3
h4
h2
+ y 000 (x) + y iv (c1 )
2
6
4!

75
Si t = x h, t0 = x
y(x + h) = y(x) y 0 (x)h + y 00 (x)

h2
h3
h4
y 000 (x) + y iv (c2 )
2
6
4!

Sumando ambas expresiones y despejando el valor de y 00 (x) tenemos:


y 00 (x) =

y(x + h) 2y(x) + y(x h) h2 iv


+ (y (c1 ) + y iv (c2 ))
h2
4!

Luego usamos la aproximacion de segundo orden de y 00 (x):


y 00 (x)

y(x + h) 2y(x) + y(x h)


.
h2

76

Tema 5
Ecuaciones en derivadas parciales
Muchos problemas en ciencia aplicada, fsica e ingeniera se modelan mediante EDPs.
Una EDP es una ecuacion diferencial en la que aparecen dos o mas variables independientes. El orden de la EDP es (igual que en las edo) el de la mayor derivada parcial
que aparezca en dicha ecuacion. Nosotros nos restringiremos al caso de EDPs de segundo orden. Empezaremos clasificando los tres tipos de ecuaciones que vamos a estudiar,
introduciendo un problema fsico tpico de cada clase.
Estudiamos EDPs de la forma
Axx + Bxy + Cyy = f (x, y, , x , y )
donde A, B, C son constantes. Dichas ecuaciones reciben el nombres de quasi-lineales y
son de 3 tipos:
1. Si B 2 4AC < 0, la ecuacion se llama elptica.
2. Si B 2 4AC = 0, la ecuacion se llama parabolica.
3. Si B 2 4AC > 0, la ecuacion se llama hiperbolica.
Como ejemplo de una ecuacion hiperbolica podemos considerar el modelo unidimensional
de la cuerda vibrante. El desplazamiento de la cuerda u(x, t) viene gobernado por la
llamada ecuacion de ondas
utt (x, t) = T uxx (x, t) 0 < x < L 0 < t <
(por denotamos la masa de la cuerda por unidad de longitud y por T la tension de la
77

78
cuerda) con posicion y velocidad iniciales dadas por

u(x, 0) = f (x) para t = 0, 0 x L

ut (x, 0) = g(x) para t = 0, 0 x L

y siendo los valores en los extremos de la cuerda


u(0, t) = 0 y(L, t) = 0 0 t <

Como ejemplo de una ecuacion parabolica consideramos el modelo unidimensional del


flujo de calor en un alambra aislado de longitud L.

La ecuacion del calor que nos da la temperatura u(x, t) en la posicion x del alambre y en
el instante t, es
K ux x (x, t) = ut (x, t) 0 < x < L 0 < t <
donde u(x, 0) = f (x) para t = 0, 0 x L y la condicion de contorno en los extremos es
u(0, t) = c1

u(L, t) = c2

Por K denotamos el coeficiente de conductividad termica. es el calor especfico del


material. es la densidad del material.

79

Figura 5.1: Curvas de nivel de la funcion potencial


Como ejemplo de ecuacion elptica consideramos la funcion potencial u(x, t), que podra representar el regimen permante de un potencial electrostatico o el regimen permanente de la distribucion de temperatura en una region rectangular del plano. Estas
situaciones se modelan mediante la llamada ecuacion de Laplace en un rectangulo
ux x (x, y) + uy y (x, y) = 0 0 < x < 1 0 < y < 1
con condiciones de contorno especficadas sobre cada uno de los lados del rectangulo
anteriorment mencionado:
u(x, 0) = f1 (x),

u(x, 1) = f2 (x) 0 x 1

u(0, y) = f3 (y),

u(1, y) = f4 (y) 0 y 1

En la figura 5.1 se muestran las curvas de nivel u(x, y) = c cuando f1 (x) = 0,


f2 (x) = sen( x), f3 (y) = f4 (y) = 0.
Nota 18 Las condiciones de contorno tambien se podran haber elegido para derivadas
normales de u, aunque no estudiaremos este caso.

5.1

Ecuaciones elpticas

Llamamos laplaciano de la funcion u(x, y) a


u = 2 u = uxx + uyy .
A partir de este operador, se pueden escribir las siguientes ecuaciones que surgen en
muchos problemas fsicos:

80
1. u = 0

Ecuacion de Laplace.

2. u = g(x, y)

Ecuacion de Poisson.

3. u + f (x, y) u = g(x, y)

Ecuacion de Helmholtz.

Si se conocen los valores que toma u en la frontera de la region donde esta definida (que
nosotros consideraremos un rectangulo) (problema de Dirichlet) o su derivada normal
u/(x, y) = 0 (problema de Newmann), entonces cada uno de esos problema se
pueden resolver. Vamos a verlos mediante la tecnica de diferencias finitas.

5.2

Diferencias Finitas para EDPs

Queremos resolver el siguiente problema de EDP con condicion de contorno de tipo


Dirichlet,

uxx + uyy = 0 en

(5.1)

u(x, y) = g(x, y) en

u continua en

Si suponemos g continua y algunas condiciones de regularidad (poco exigentes) sobre ,


el problema tiene solucion u
nica.
Para introducir el metodo, supondremos que es un cuadrado:
= {(x, y) R2 ; 0 < x < 1, 0 < y < 1}

Discretizacion: Introducimos una malla o red de puntos sobre :


y
yN

y1

y0

x0

1x

81
Es decir, realizamos una particion del intervalo [0, 1] sobre el eje OX que viene dada por
0 = x0 < x1 < x2 < . . . < xN 1 < xN = 1
y otra particion sobre el eje OY:
0 = y0 < y1 < y2 < . . . < yN 1 < yN = 1
donde supondremos iguales los tama
nos de paso:
xi1 xi = h,

yi+1 yi = h

(aunque en general se podran tomar distintos).


Entonces, un punto cualquiera de la malla anteriormente descrita viene dado por:
(xi , yj ) = (i h, j h) 0 i, j N

h=

1
N

Entonces, la EDP (5.1) la sustituimos para cada punto (xi , yj ) por la ecuacion que se
obtiene sustituyendo las derivadas segunda por una aproximacion del tipo:
f 00 (x) =

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

(Ver Apendice del tema anterior).


Entonces tenemos:
uxx (x, y) =

u(x + h, y) 2u(x, y) + u(x h, y)


+ O(h2 )
2
h

uyy (x, y) =

u(x, y + h) 2u(x, y) + u(x, y h)


+ O(h2 )
h2

82

Llamamos ui,j a la aproximacion del valor exacto u(xi , yj ). Al sustituir la derivada exacta en (5.1) por las aproximaciones anteriormente mencionadas, la ecuacion (5.1) queda
descrita para cada punto de la malla (xi , yj ) como:
ui+1,j 2ui,j + ui1,j ui,j+1 2ui,j + ui,j1
+
= 0,
h2
h2
que reordenando se convierte en:
(4ui,j ui1,j ui+1,j ui,j1 ui,j+1 ) = 0 0 i, j N

(5.2)

Con lo que tenemos un sistema de ecuaciones lineales, con incognitas ui,j , que son 2(N +1)
incognitas, y un n
umero equivalente de ecuaciones.
Sin embargo, conocemos los valores frontera u = g sobre . Luego tenemos que
u0,j = g0,j = g(0, yj ),

uN,j = gN +1,j = g(1, yj ) j = 0, . . . , N

ui,0 = gi,0 = g(xi , 0),

ui,N = gi,N = g(xi , 1) i = 0, . . . , N

De esta forma, las incognitas solo son


ui,j

1 i, j N 1

y el sistema (5.2) solo se considera para 1 1, j N 1, con lo que tenemos el mismo


n
umero de ecuaciones que incognicas.
Nota 19 El sistema lineal que se obtiene es hueco, pues a lo sumo hay 5 terminos no
nulos en cada ecuaci
on. Adem
as, es diagonal dominante, luego los metodos iterativos de
Jacobi y Gaus-Seidel se pueden aplicar.

5.2.1

Tratamiento de la condici
on de contorno de tipo Neumann

Vamos a suponer el caso mas simple:


u
(x, y) = 0.

83

En el contexto de los problemas de distribucion de temperaturas, esto significa que el


contorno esta aislado y que no hay flujo de calor a traves de el.
Supongamos que solo consideramos la condicion de contorno Neumann sobre uno de
los lados de la region, en concreto sobre el lado x = 1. La condicion de contorno sobre
ese lado es:
u
u u
(x, y) = ( , ) = 0.

x y
En este caso, x = 1, el vector normal es = (1, 0), por lo que la condicion queda reducida
a
u
(1, y) = 0.
x
La ecuacion de diferencias finitas correspondiente a los puntos de x = 1, es decir, (1, yj )
es:
uN +1,j + uN 1,j + uN,j+1 + uN,j1 4uN,j = 0,

(5.3)

donde el valor de uN +1,j es desconocido, al estar fuera de la region. Usamos entonces la


formula de derivacion numerica
u
uN +1,j uN 1,j

(xN , yj ) = 0
2h
x
Por lo tanto, tenemos que
uN +1,j = uN 1,j
Luego sustituyendo en la expresion (5.3) queda:
2uN 1,j + uN,j+1 + uN,j1 4uN,j = 0

84
Esta nueva formula sigue el esquema