Anda di halaman 1dari 71

Captulo 1

Introducci on al Calculo Numerico


1. Introducci on al C aculo Numerico
a) Introducci on al estudio del error
Error absoluto
Error relativo
Notaci on decimal en coma otante (n umeros m aquina)
Propagaci on del error
_
Condicionamiento
Estabilidad
b) Condicionamiento de un problema
c) Estabilidad - algoritmo inestable.
2. Normas vectoriales y matriciales
1
2
1.1. Introducci on al Calculo Numerico
El An alisis Numerico es una herramienta fundamental en el campo de las Ciencias
Aplicadas.
Objetivo: Dise nar metodos numericos de c alculo que aproximen, de modo eciente, la
soluci on de problemas pr acticos previamente formulados matem aticamente.
Algoritmo: Secuencia nita de operaciones algebraicas y l ogicas que producen una
soluci on aproximada del problema matem atico.
AN = dise no de algoritmos y estudio de su eciencia
eciencia
_

_
- requerimientos de memoria
- tiempo de c alculo (rapidez)
- estimaci on del error (precisi on)
1.1.1. Introducci on al estudio del error
El error nos proporciona la precisi on del metodo.
errores de
entrada
(en medidas)
+
errores de
almacenamiento
+
errores de
algoritmo
. .
a analizar
=
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.
Definici on 1 Error absoluto: Sea z la soluci on exacta del problema y z la soluci on
aproximada, se dene el error absoluto como
z z
donde es una norma (se denir a m as adelante).
(Pensar en como el m odulo).
3
Desde el punto de vista de las aplicaciones, resulta mucho m as relevante el
error relativo
_
_
_
_
z z
z
_
_
_
_
Nota 1 Si z = 0 s olo se trabaja con errores absolutos.
1.1.2. Notaci on decimal en coma otante
Es una forma de representaci on de n umero que contiene la informaci on relevante com-
puesta por:
signo + fracci on + 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 signica:
618,45 10
0
61,845 10 6184

5 10
1
6,1845 10
2
De todas ellas, se llama notaci on decimal en coma otante normalizada a aquella en
la que la fracci on est a 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 m aquina
Nota 2 Los ordenadores almacenan la informaci on en posiciones de memoria (o bit
Binary Digit), que s olo toman valores 0/1, encendido/apagado, positivo/negativo . . . . . .
luego utilizan la representaci on binaria.
Progagaci on del error: Los errores anteriores se propagan a traves de los c alculos, debido
a la estructura propia del algoritmo. Para estudiar esta propagaci on, y por tanto el error
nal, atendemos dos conceptos:
_

_
- Condicionamiento
- Estabilidad
4
Condicionamiento: mide la inuencia 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: Est a relacionada con la inuencia que tienen en los resultados nales la
acumulaci on 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 est a 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 condici on de dicho problema, especco del problema, que es mejor cuanto m as cerca de
1 (el problema est a bien condicionado) y peor cuanto m as grande sea (peor condicionado).
objetivo: Denir el n umero de condici on de un problema.
La gravedad de un problema mal condicionado reside en que su resoluci on 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:
10x
1
+ 7x
2
+ 8x
3
+ 7x
4
= 32,
7x
1
+ 5x
2
+ 6x
3
+ 5x
4
= 23,
8x
1
+ 6x
2
+ 10x
3
+ 9x
4
= 33,
7x
1
+ 5x
2
+ 9x
3
+ 10x
4
= 31
_

_
=
_
_
_
_
_
_
x
1
= 1
x
2
= 1
x
3
= 1
x
4
= 1
_
_
_
_
_
_
.
Sistema 2:
10x
1
+ 7x
2
+ 8x
3
+7,2x
4
= 32,
7,08x
1
+5,04x
2
+ 6x
3
+ 5x
4
= 23,
8x
1
+5,98x
2
+9,89x
3
+ 9x
4
= 33,
6,99x
1
+4,99x
2
+ 9x
3
+9,98x
4
= 31
_

_
=
_
_
_
_
_
_
x
1
= 81
x
2
= 137
x
3
= 34
x
4
= 22
_
_
_
_
_
_
.
Sistema 3:
10x
1
+ 7x
2
+ 8x
3
+7,2x
4
= 32,
7x
1
+ 5x
2
+ 6x
3
+ 5x
4
= 22,9,
8x
1
+ 6x
2
+ 10x
3
+ 9x
4
= 32,98,
7x
1
+ 5x
2
+ 9x
3
+ 10x
4
= 31,02
_

_
=
_
_
_
_
_
_
x
1
= 7,28
x
2
= 9,36
x
3
= 3,54
x
4
= 0,5
_
_
_
_
_
_
.
5
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 aproxima-
damente 1 decima producen cambios en la soluci on de aproximadamente 13 unidades.
Lo anterior se debe a que el sistema est a mal condicionado.
La gravedad de un problema mal condicionado reside en que su resoluci on 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 nal pierde gran
parte de su ex actitud.
Un algoritmos es estable cuando no es inestable (controlado).
Condicionamiento y estabilidad =
Permiten estudiar la precisi on
de un algoritmo para
un problema concreto
1.2. Normas vectoriales y matriciales
Objetivo: Introducir herramientas de medici on de la variaci on de los resultados:
1.2.1. Normas vectoriales
Definici on 2 Una aplicaci on : R
n
R
+
{0} es una norma si:
a) v = 0 v =

0 R
n
b) v = ||v, R, v R
n
c) u +v u +v u, v R
n
(desigualdad triangular)
Ejemplo:
6
Dado v R
3
,
v
1
=
n

i=1
|v
i
|,
v
2
=

_
n

i=1
|v
i
|
2
,
y
v

= m ax
1in
|v
i
|
son normas vectoriales.
v = (1, 1, 3)
v
1
= |1| +| 1| +|3| = 5, v
2
=

1 + 1 + 9 =

11, v

= max{1, 1, 3} = 3.
Ejercicio: Comprobar que
1
,
2
y

son normas vectoriales.


Definici on 3 Dos normas vectoriales son equivalente y

si existen constantes
c
1
, c
2
> 0 tales que:
c
1
v

v c
2
v

v R
n
.
En la pr actica esto signica que cuando

est a acotada, tambien y viceversa.


1.2.2. Norma de una matriz
Definici on 4 Una norma matricial es una aplicaci on | | : M
n
R
+
{0} que
verica las siguientes propiedades:
a) |A| = 0 A = 0
b) | A| = |||A|, R, A M
n
c) |A + B| |A| +|B|, A, B M
n
.
d) |A B| |A| |B|.
Las tres primeras propiedades garantizanq ue es una normal vectorial y la ultima que
es compatible con el producto de matrices.
Un resultado que nos da una forma simple de construir una norma matricial es el
siguiente:
Definici on 5 Sea una norma en R
n
, se dene la norma | | : M
n
R
+
{0}
como
|A| = sup
v=

0
Av
v
= sup
v=1
Av
7
Cuando una norma matricial se dene 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)
|A|
1
= sup
v=0
Av
1
v
1
b)
|A|
2
= sup
v=0
Av
2
v
2
c)
|A|

= sup
v=0
Av

Nota 3 No todas las normas matriciales son normas matriciales subordinadas a normas
vectoriales.
Algunas propiedades de las normas matriciales subordinadas
1) Av |A|v, A M
n
, v R
n
2) Existe un vector v R
n
para el que se da la igualdad, es decir,
Av = |A| v
3) |I| = 1 (Por I denotamos la matriz identidad).
Veamos c omo calcular las normas matriciales subordinadas a las normas vectoriales
anteriores:
Teorema 1 Sea A = (a
i,j
)
n
i,j=1
M
n
, se tiene:
a)
|A|
1
= m ax
1jn
n

i=1
|a
i,j
|
b)
|A|
2
=
_
(A

A) =
_
(AA

) = |A

|
2
donde (A

A) es el radio espectral de A

A, que es el m aximo 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).
8
c)
|A|

= m ax
1in
n

j=1
|a
i,j
|
Nota 4 | |
1
y | |

se calculan a partir de los elementos de la matriz, | |


2
no.
Es inmediato observar que |A
T
|

= |A|
1
.
Ejemplo:
Sea
A =
_
_
_
1 0 7
0 2 2
1 1 0
_
_
_
.
Calculamos la norma uno, dos e innito:
|A|
1
= max{2, 3, 9} = 9
|A|

= max{8, 4, 2} = 8
A
T
A =
_
_
_
2 0 7
1 5 4
7 4 53
_
_
_
|A|
2
= 7,3648
Norma Frobenius:
Es una norma matricial no subordinada a ninguna norma vectorial. Viene dada por:
|A|
F
=

_
n

i,j=1
|a
i,j
|
2
Como vemos, se calcula a traves de los elementos de la matriz.
Ejemplo:
|A|
F
=

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

60
Captulo 2
Resoluci on numerica de sistemas de
ecuaciones lineales
1. Resoluci on numerica de sistemas de ecuaciones lineales
a) Condicionamiento de sistemas. Precondicionadores.
b) Metodos directos: Gauss (con pivote parcial)
c) Metodos iterativos
Jacobi
Gauss-Seidel
9
10
2.1. Condicionamiento de sistemas
Objetivo: Resolver sistemas lineales de ecuaciones mediante metodos numericos de c alculo.
La existencia de un sistema mal condicionado es una fuente de posibles errores y
dicultades a la hora de resolver un sistema lineal mediante metodos numericos.
El primer problema que se plantea es c omo denir y cuanticar el condicionamiento
de un sistema.
Supongamos que tenemos que resolver el sistema lineal Ax = b, donde A es una matriz
de coecientes, b es el termino independiente y x es la soluci on exacta del sistema,
que llamaremos u (el vector x recibir a diferentes nombres a lo largo del tema):
Ax = b x = u
Si modicamos el termino independiente mediante una perturbaci on b, entonces te-
nemos que resolver el sistema Ax = b + b, que tendr a una nueva soluci on (distinta de la
soluci on exacta) que llamaremos u + u:
Ax = b + b x = u + u
El sistema est a bien condicionado si cuando b es peque na, u tambien lo es. Ob-
servemos que:
Au + A(u) = b + b
Au = b
_

_
A(u) = b
u = A
1
(u)
Usando ahora la propiedad para normas matriciales, obtenemos que:
|u| |[A
1
[||b| (2.1)
De la soluci on exacta, |b| |[A|[|u|, lo que implica que:
1
|u|

|[A[|
|b|
(2.2)
De (2.1) y (2.2), obtenemos:
|u|
|u|
|[A[||[A
1
|[
|b|
|b|
, (2.3)
donde
|u|
|u|
representa el error relativo en los resultados, y
|b|
|b|
el error relativo en
los datos. De la relaci on (2.3), parece deducirse que el n umero |[A[||[A
1
|[ es el factor
determinante de la relaci on, ya que si es peque no tenemos el efecto deseado, y si no, ocurre
lo contrario. Si |[A[||[A
1
|[ = 1 y
|b|
|b|
= 0,01, entonces
|u|
|u|
0,01.
Parece entonces natural la siguiente denici on:
11
Definici on 6 Sea [[ [| una norma matricial subordinada y A una matriz invertible.
Llamamos n umero de condici on de la matriz A respecto de la norma |[ [| a la
expresi on:
cond(A) = |[A[||[A
1
|[.
De (2.3) deducimos entonces que:
|u|
|u|
cond(A)
|b|
|b|
.
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 soluci on aproximada del sistema:
(A + A)(u + u) = b.
Usando que Au = b, obtenemos:
(A)(u + u) + Au = 0 A(u + u) = Au,
luego
u = A
1
(A)(u + u) |u| |[A
1
[||[A[||u + u|,
y
|u|
|u + u|
|[A
1
[||[A[|
|[A[|
|[A[|
= cond(A)
|[A[|
|[A[|
(2.4)
2.1.1. Propiedades de cond(A)
Proposici on 1 Para cualquier norma subordinada [| |[, se verica:
1. cond(I) = 1.
2. cond(A) 1.
3. cond(A) = cond(A
1
),
4. cond(k A) = cond(A), k R0.
Demostraci on:
1. cond(I) = ||I| |||I

1[| = ||I| |||I|| = 1 1 = 1.


2. 1 = |[I[| = |[AA
1
[| |[A|[|[A
1
[| = cond(A),
12
3. cond(A
1
) = |[A
1
[||[(A
1
)
1
[| = |[A
1
[||[A[| = cond(A),
4. cond(kA) = |[kA[||[(kA)
1
[| = [k[|[A[|[k[
1
|[A
1
[| = cond(A).
2
Ejemplo: Estudiar el condicionamiento del sistema Ax = b con A =
_
1 1 +
1 1
_
siendo > 0 en la norma |[ [|

.
Soluci on: A
1
=
1

2
_
1 1
1 1
_
, |[A[|

= 2 + y [|A
1
|[

=
2 +

2
, luego
cond(A, ) =
(2 + )
2

2
>
4

2
. Si 0,01, entonces cond(A, ) > 40000. Esto indica que
una perturbaci on de los datos de 0,01 puede originar una perturbaci on de la soluci on del
sistema de 40000.
Ejercicio: Repetir el ejemplo anterior con la norma [| |[
1
.
Nota 5 Un sistema lineal est a bien condicionado si la matriz A est a bien condicionada.
Nota 6
Como cond(A) 1 cuanto m as cerca este su valor de 1, mejor condicionado est a el
sistema.
2.1.2. Precondicionadores
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 P invertible, de
modo que:

A = P A,
tenga cond(

A) peque no, para despues resolver el sistema:

Au =

b, donde

b = P b.
Observamos que al ser P una matriz no singular, la soluci on de Au = b y PAu = Pb
es la misma.
13
La idea que se utiliza para denir un precondicionador es muy sencilla. Ya que la
matriz mejor condicionada es la identidad (cond(I) = 1), si elegimos P = A
1
obtenemos
cond(P A) = cond(A
1
A) = cond(I) = 1.
Pero, por otro lado, no queremos calcular la matriz inversa de A, pues como veremos, es
la forma m as cara computacionalmente de resolver un sistema lineal. Es decir, la soluci on
del sistema lineal
Ax = b
siendo A una matriz no singular es
x = A
1
b.
Entre los muchos problemas de dar la soluci on del sistema de esta forma se encuentra en
que, calcular A
1
es equivalente a resolver tantos sistemas lineales como su dimensi on.
Adem as de que se pueden introducir muchos errores de redondeo (recuerda que para
calcular A
1
es necesario dividir por su determinante, por lo que si es peque no, aunque
no sea cero, introduce errores de c alculo el ordenador).
En resumen, tenemos que para mejorar el condicionamiento de P A, lo ideal es tomar
P = A
1
, pero no es posible en la pr actica. Por lo tanto, para denir P lo que hare-
mos es simplemente dar una aproximaci on de A
1
. Esta claro que cuanto mejor sea la
aproximaci on, mejor condicionada estar a la matriz P A.
Precondicionadores: Son muchos los posibles precondicionadores que se pueden denir,
y a un hoy en dia son objeto de estudio, debido a su importancia para resolver de una
forma satisfactoria sistemas lineales, los cuales vienen asociados a problemas reales: c alculo
de estructuras, dise no de alcantarillados, predicciones meteorol ogicas, dise no de aviones,
movimientos de aguas en rios y oceanos, etc.
Por ahora nos vamos a conformar con buscar precondicionadores que sean matrices
diagonales. Consideramos el siguiente precondicionador:
P
1
= diag
_
1
|e
t
1
A|
2
,
1
|e
t
i
A|
2
, . . . ,
1
|e
t
n
A|
2
_
.
Donde por e
i
denotamos el vector denido por ceros y un 1 en la componente i. En
denitiva, e
t
i
A es la la i-esima de la matriz A. Por lo que |e
t
i
A|
2
es la norma dos de la
la i de la matriz A. Por lo tanto, el precondicionador anterior se dene como una matriz
diagonal cuyos elementos son la inversa de la norma de la correspondiente la.
14
Observemos que si A es una matriz diagonal (con todos sus elementos positivos),
entonces P = A
1
.
Ejemplo:
A =
_
_
_
_
_
_
1 2 0 0
2 2 3 0
0 3 4 10
0 0 10 5
_
_
_
_
_
_
= P =
_
_
_
_
_
_
1/

5 0 0 0
0 1/

17 0 0
0 0 1/

125 0
0 0 0 1/

125
_
_
_
_
_
_
Se tiene que cond(A) = 67, mientras que cond(P A) = 31, 36. Observamos que se ha
reducido pr acticamente a la mitad el n umero de condici on para ambas deniciones del
precondicionador.
Existen muchas tecnicas para buscar precondicionadores, por ahora nos vamos a con-
formar con esta. Por supuesto, cuanto m as sosticada sea la denici on del precondiciona-
dor, mejores resultados obtendremos.
2.2. Metodos directos e iterativos
Hay dos tipos de metodos para la resoluci on de sistemas lineales:
Directos: proporcionan la soluci on exacta (salvo errores de redondeo) en un n umero
nito de pasos: Gauss.
Iterativos: proporcionan una sucesi on x
k
que aproxima, o converge, a la soluci on
exacta:
x
k
x.
El c alculo se detiene cuando se alcanza un cierto nivel de precisi on.
2.3. Metodos directos
Consideramos la resoluci on numerica de un sistema lineal Au = b, donde A es una
matriz invertible.
El principio de los metodos directos que vamos a estudiar reside en determinar una
matriz M invertible, tal que la matriz MA sea triangular superior. Tenemos que resolver
entonces el sistema lineal:
MAu = Mb,
15
por lo que llamaremos el metodo de remontada.
Este principio es la base del metodo de Gauss para la resoluci on de sistemas lineales
con matrices cualesquiera.
2.3.1. Observaciones concernientes a la resoluci on de sistemas
lineales
Contrariamente a lo que se piensa, la resoluci on de un sistema lineal no es equivalente
al c alculo de la matriz inversa del sistema A
1
y despues calcular A
1
b. El c alculo de la
matriz inversa es equivalente a la resoluci on de n sistemas lineales (donde n es el orden
de la matriz A):
Au
j
= e
j
1 j n,
donde e
j
es el n-esimo vector de la base R
n
. Pasamos as de resolver un sistema lineal a
resolver n sistemas lineales y multiplicar A
1
por el termino independiente b.
Los metodos que vamos a estudiar est an basados en el siguiente hecho: si tuviesemos
una matriz triangular superior, la resoluci on numerica de un sistema lineal Au = b es
inmediata. Tendramos, en forma matricial:
_
_
_
_
_
_
_
_
_
_
_
a
1,1
. a
1,n1
a
n
0 . . .
0 . . .
0 . . .
0 . a
n1,n1
a
n1,n
0 . . a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
u
1
.
.
.
u
n1
u
n
_
_
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
_
_
b
1
.
.
.
b
n1
b
n
_
_
_
_
_
_
_
_
_
_
_
y en forma de ecuaciones:
_

_
a
1,1
u
1
+ ... + a
1,n1
u
n1
+ a
1,n
u
n
= b
1
... .
... .
... .
a
n1,n1
u
n1
+ a
n1,n
u
n
= b
n1
a
n,n
u
n
= b
n
16
El determinante es det(A) = a
11
a
22
...a
nn
,= 0, luego el sistema se resuelve:
u
n
= a
1
nn
b
n
u
n1
= a
1
n1,n1
(b
n1
a
n1,n
u
n
)
...
...
...
u
1
= a
1
11
(b
1
a
12
u
2
...a
1,n1
u
n1
a
1n
u
n
)
De ese modo, cada componente u
i
se escribe como combinaci on lineal de las b
i
, b
i+1
, ..., b
n
,
luego estamos resolviendo un sitema lineal u = Cb donde C es una matriz triangular
superior. Este metodo se conoce como metodo de remontada. Dicho metodo necesita
un total de
_

_
1 + 2 + ... + n 1 =
n(n 1)
2
sumas
1 + 2 + ... + n 1 =
n(n 1)
2
multiplicaciones
n divisiones
2.3.2. El metodo de Gauss
El metodo de Gauss es un metodo general de resoluci on de un sistema lineal de la
forma Au = b donde A es una matriz invertible. Se compone de tres etapas:
1. procedimiento de eliminaci on, que equivale a determinar una matriz invertible M
tal que la matriz MA sea una matriz triangular superior,
2. c alculo del vector Mb,
3. resoluci on del sistema lineal MAu = Mb, por el metodo de remontada.
a) Etapa de eliminaci on:
1) Al menos uno de los elementos de la primera columna de A, a
i,j
, 1 i n es diferente
de cero ( o det(A) =0), a
i,j
, que llamaremos el primer pivote de la eliminaci on.
17
2) Intercambiamos la lnea donde est a el pivote con la primera lnea, lo que equivale a
multiplicar a izquierda por la matriz de trasposici on
T(i
0
, i
1
) =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 [ [
.
.
. [ [
0 1 i
0
[ [
1 0 i
1
[ [
.
.
.
[
..
i
0
[
..
i
1
1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
con det(T(i
0
, i
1
)) = 1.
P =
_

_
I si a
1 1
,= 0
T(1, i) si a
i 1
, i ,= 1 es el pivote, det(P) = 1
y P A = (
i j
) tal que
1 1
,= 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
situados debajo de la diagonal. Es decir, multiplicamos E P A, donde
E =
_
_
_
_
_
_
_
_
1 0 . . . 0

2 1

1 1
1
.
.
.
.
.
.

n1

1 1
0 . . . 1
_
_
_
_
_
_
_
_
det(E) = 1
Nota 7 Cuando se aplican tecnicas de eliminaci on, el coste (n umero de operaciones ar-
titmeticas requeridas) suele ser proporcional al n umero de coecientes no cero de la matriz,
puesto que se usan tecnicas especiales para evitar los c alculos asociados a los coecientes
nulos de la matriz. Adem as, el coste de calcular A
1
suele ser del orden de n
3
.
Ejemplo del metodo de Gauss
A =
_
_
_
_
_
_
0 1 2 1
1 2 1 3
1 1 1 1
0 1 8 12
_
_
_
_
_
_
b =
_
_
_
_
_
_
1
0
5
2
_
_
_
_
_
_
18

_
_
_
_
_
_
1 2 1 3 [ 0
0 1 2 1 [ 1
1 1 1 1 [ 5
0 1 8 12 [ 2
_
_
_
_
_
_

_
_
_
_
_
_
1 2 1 3 [ 0
0 1 2 1 [ 1
0 1 2 2 [ 5
0 1 8 12 [ 2
_
_
_
_
_
_
P
1
=
_
_
_
_
_
_
0 1 0 0
1 0 0 0
0 0 1 0
0 0 0 1
_
_
_
_
_
_
, E
1
=
_
_
_
_
_
_
1 0 0 0
0 1 0 0
1 0 1 0
0 0 0 1
_
_
_
_
_
_

_
_
_
_
_
_
1 2 1 3 [ 0
0 1 2 1 [ 1
0 0 0 1 [ 6
0 0 6 11 [ 1
_
_
_
_
_
_

_
_
_
_
_
_
1 2 1 3 [ 0
0 1 2 1 [ 1
0 0 6 11 [ 1
0 0 0 1 [ 6
_
_
_
_
_
_
E
2
=
_
_
_
_
_
_
1 0 0 0
0 1 0 0
0 1 1 0
0 1 0 1
_
_
_
_
_
_
, P
3
=
_
_
_
_
_
_
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
_
_
_
_
_
_
luego M = P
3
E
2
E
1
P
1
En la pr actica, la matriz de paso M no se calcula explcitamente, sino que se obtienen
directamente M A y M b.
Nota 8 La matriz M verica
det(M) =
_

_
1 si es par
1 si es impar
es el n umero de matrices de permutaci on P distintas de la identidad.
Au = b M Au = M b.
Nota 9 En el caso de que la matriz A no es invertible, el metodo sigue siendo v alido, ya
que en ese caso se considerara P = E = I.
19
Comparaci on de metodos:
Cramer
_

_
(n + 1) (n! 1) sumas
(n + 1) (n 1) n! productos
n divisiones
Cuadro operaci on operaciones totales
n Gauss Cramer
10 805 399167999
100 681500 10
162
1000 668165500 10
2573
El metodo de Gauss es el utilizado m as 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, invertible o no. Existe al menos una matriz
invertible M tal que MA es triangular superior.
2.3.3. Elecci on practica del elemento de pivote
Como vimos anteriormente, el primer paso en el metodo de Gauss es elegir un pivote
no nulo (pues vamos a dividir por este elemento), lo cual corresponde a intercambiar
ecuaciones en el sistema lineal. En la pr actica no s olo se busca un elemento no nulo, sino
que elegimos aquel que tenga mayor valor absoluto.
Ejemplo: Consideramos el sistema de matriz A =
_
2
26
1
1 1
_
, termino indepen-
diente b =
_
1
2
_
, y soluci on u =
_
u
1
u
2
_
, donde la soluci on exacta es
u
1
= 2 u
2
= 1,00000001490116
u
2
=
1 2
25
1 2
26
0,99999998509884
luego la soluci on aproxima a u
1
= u
2
= 1.
20
Resolvemos ahora con pivote de dos formas distintas:
a) Tomando 2
26
como pivote:
A =
_
2
26
1
1 1
_

_
2
26
1
0 1 2
26
_

_
2
26
1
0 2
26
_
b =
_
1
2
_

_
1
2 2
26
_

_
1
2
26
_
Luego estamos resolviendo el sistema:
_
2
26
u
2
= 2
26
u
2
= 1
2
26
u
1
+ u
2
= 1 u
1
= 0
b) Tomando 1 como pivote:
A =
_
2
26
1
1 1
_

_
1 1
2
26
1
_

_
1 1
0 1 2
26
_

_
1 1
0 1
_
b =
_
1
2
_

_
2
1
_

_
2
1 2
27
_

_
2
1
_
luego el sistema que resolvemos es:
_
u
1
+ u
2
= 2
u
2
= 1
_
u
1
= 1
Este ejemplo pone de maniesto que los errores de redondeo con efecto desastroso
provienen de la divisi on por pivotes muy peque nos.
Ejemplo: Aplicamos la estrategia de pivote (pivote parcial) a la matriz ampliada
(matriz que posee como ultima columna el termino independiente):
_
_
_
1 13 2 [ 1
2 0 1 [ 2
1 9 2 [ 0
_
_
_
Si aplicamos la estrategia de pivote parcial, obtenemos:
_
_
_
2 0 1 [ 2
1 13 2 [ 1
1 9 2 [ 0
_
_
_

_
_
_
2 0 1 [ 2
0 13 3/2 [ 2
0 9 3/2 [ 1
_
_
_

_
_
_
2 0 1 [ 2
0 13 3/2 [ 2
0 0 33/13 [ 31/13
_
_
_
luego el sistema asociado tiene como soluci on:
x =
97
66
, y =
1
22
, z =
31
33
.
21
2.4. Metodos iterativos
Comenzamos enunciando algunos problemas que pueden presentar los metodos direc-
tos, como motivaci on a la introducci on de los metodos iterativos que veremos a continua-
ci on.
Problemas de los metodos directos para la resoluci on de (SL).
1. Cuando el tama no de la matriz A es grande (n >> 100), la propagaci on 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 resoluci on
de problemas mediante Elementos Finitos). Estas matrices reciben el nombre de
matrices vacas o huecas, y se dan cuando n umero de elementos no nulos es de orden
n.
a) Si los elementos no nulos est an distribuidos alrededor de la diagonal principal,
son de aplicaci on todava los metodos directos que conservan la estructura
diagonal, como LU.
b) Si no ocurre lo anterior, la matriz se dice que es dispersa, y al aplicarle los
metodos directos se produce un fen omeno conocido como rellenado (elementos
que eran nulos en la matriz A, ahora ya no lo son). Entonces, si no se realiza una
adaptaci on de los metodos directos al caso de matrices dispersas los resultados
no van a ser, en general, buenos (No vamos a estudiar esa adaptaci on).
Los metodos iterativos no tienen esos problemas porque se basan en la resoluci on
(reiteradas veces) de sistemas diagonales o triangulares (por puntos o por bloques). Lo
que se intenta es que en cada iteraci on el n umero de operaciones sea mnimo.
2.4.1. Estudio general del Metodo Iterativo
Supongamos un (SL) Au = b, buscamos una matriz B /
n
y un vector c R
N
de
forma que la matriz I B sea inversible y que la unica soluci on del sistema lineal
u = B u + c
. .
(IB) u=c
(2.5)
22
es la soluci on Au = b.
Tenemos entonces que encontrar la soluci on de un sistema lineal se puede ver como un
problema de punto jo (Problema (2.5)). En este caso, la forma de construir un metodo
iterativo es la siguiente:
Considermos u
0
R
N
un vector arbitrario, se construye una sucesi on de vectores
u
k

k=0
dada por
u
k+1
= Bu
k
+ c, k N 0 (2.6)
y se pretende que la sucesi on u
k

k
converja a la soluci on del sistema lineal.
Definici on 7 El metodo iterativo (2.6) es convergente si existe un vector u R
N
tal
que:
lm
k+
u
k
= u
para cualquier vector inicial u
0
R
N
. En ese caso,
u = B u + c
El error en cada iteraci on se puede medir, por tanto como:
e
k
= u
k
u
Se tiene que,
e
k
= u
k
u = (Bu
k1
+ c) (Bu + c) = B(u
k1
u) = Be
k1
= . . . = B
k
e
0
e
k
= B
k
e
0
.
De ese modo, el error en las iteraciones depende de las potencias sucesivas de la matriz B,
lo que nos dar a 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 |[ |[ (que se puede tomar subordinada) tal que
|[B|[ < 1
23
Recordemos que
(B) = m ax
1in
[
i
(A)[ :
i
(A) sp(A)
es el radio espectral de B.
Teorema 4 Sea B /
n
. Si exsite una norma matricial (subordinada o no) tal que
|[B|[ < 1
entonces I + B es inversible y
|[(I + B)
1
|[
|[I|[
1 |[B|[
.
Nota 10 1) Si I + B es una matriz singular, |[B|[ 1, para toda norma matricial.
2) Si |[ |[ es una normal matricial subordinada,
|[(I + B)
1
|[
1
1 |[B|[
.
Ejemplo: La sucesi on de vectores
v
k
=
_
2
k
3
, 1
1
k
2
, e
1/k
_
T
R
3
es convergente al vector v = (0, 1, 1)
T
, v = lm
k+
v
k
.
El estudio de Metodos Iterativos reposa sobre la soluci on de los dos problemas siguien-
tes:
1) Dada la mariz del metodo iterativo B, determinar si el Metodo Iterativo es conver-
gente.
2) Dados dos metodos iterativos convergentes, compararlos: el metodo iterativo m as
r apido es aquel cuya matriz tiene menor radio espectral.
Nota 11 1. Sea B una matriz real cualquiera y |[ |[ una norma matricial (subordi-
nada o no). Entonces,
(B) |[B|[
2. Dada una matriz B y > 0, existe al menos una norma matricial subordinada tal
que
|[B|[ (B) +
24
2.4.2. Metodos de Jacobi y Gauss-Seidel
Introducimos dos metodos iterativos cl asicos para resolver el Sistema Lineal Au = b.
Todos se basan en descomponer la matriz del sistema A como suma de submatrices:
A = M N,
donde M es una matriz inversible f acil de invertir (en el sentido de que el sistema asociado
sea f acil de resolver). Se verica entonces
Au = b (M N) u = b M u = N u + b
u = B u + c con
_
B = M
1
N
c = M
1
b
Consideramos entonces el Metodo Iterativo:
_
u
0
R
N
u
k+1
= B u
k
+ 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 soluci on unica.
En la practica, en vez de resolver u
k+1
como u
k+1
= Bu
k
+ c, se resuleve el
sistema
Mu
k+1
= Nu
k
+ M c
..
b
. (2.7)
Nota 12 La construcci on de la matrices M y N parece que toma elementos de A.
Parece que cuanto m as parecida sea la matriz M a A, m as se acercar a la soluci on 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 f acil de resolver.
Introducimos la siguiente notaci on:
Dada A = (a
i,j
)
n
i,j=1
/
n
con a
i i
,= 0, consideramos la siguiente descomposici on de
la matriz
A =
_
_
_
F
D
E
_
_
_
25
A = DE F, donde
D = diag(a
1 1
, a
2 2
, . . . , a
nn
) E = (e
i j
)
n
i,j=1
F = (f
i j
)
n
i,j=1
con
e
i j
=
_
a
i j
si i > j
0 si i j
_
, f
i j
=
_
a
i j
si i < j
0 si i j
_
.
La llamamos descomposici on D E F por puntos de la matriz A.
2.4.3. Metodo de Jacobi
Consiste en tomar M = D, N = E + F.
As pues,
Au = b Du = (E + F) u + b u = D
1
(E + F) u + D
1
b
lo que conduce al metodo de Jacobi iterativo por puntos::
_

_
u
0
R
N
u
k+1
= D
1
(E + F) u
k
+ D
1
b k N 0
o equivalentemente
_

_
u
0
R
N
Du
k+1
= (E + F)u
K
+ b k N 0
La matriz de Jacobi (por puntos) es B = D
1
(E + F) = I D
1
A
Observemos que si
D =
_
_
_
_
_
_
a
1 1
a
2 2
. . .
a
nn
_
_
_
_
_
_
, entonces D
1
=
_
_
_
_
_
_
1/a
1 1
1/a
2 2
. . .
1/a
nn
_
_
_
_
_
_
,
luego,
D
1
A =
_
_
_
_
_
_
1 a
1 2
/a
1 1
. . . a
1 n
/a
1 1
a
2 1
/a
2 2
1 . . . a
2 n
/a
2 2
.
.
.
.
.
.
a
n1
/a
nn
a
n2
/a
nn
. . . 1
_
_
_
_
_
_
.
26
Por tanto, queda
_
_
_
_
_
_
x
k+1
1
x
k+1
2
.
.
.
x
k+1
n
_
_
_
_
_
_
=
_
_
_
_
_
_
0 a
1 2
/a
1 1
. . . a
1 n
/a
1 1
a
2 1
/a
2 2
0 . . . a
2 n
/a
2 2
.
.
.
.
.
.
a
n1
/a
nn
a
n 2
/a
nn
. . . 0
_
_
_
_
_
_
_
_
_
_
_
_
x
k
1
x
k
2
.
.
.
x
k
n
_
_
_
_
_
_
+
_
_
_
_
_
_
b
1
/a
1 1
b
2
/a
2 2
.
.
.
b
n
/a
nn
_
_
_
_
_
_
.
de donde:
x
k+1
j
=
b
j
a
j 1
x
k
1
a
j 2
x
k
2
. . . a
j j1
x
k
j1
a
j j+1
x
k
j1
. . . a
j n
x
k
n
a
j j
j = 1, . . . , n
Observemos que las n componentes del vector x
k+1
se calculan simult aneamente a par-
tir de las componente de x
k
. Por eso el metodo de Jacobi tambien se conoce como el
metodo de iteraciones simult aneas.
La primera cuesti on que nos planteamos es la convergencia del metodo. Observamos
que
|I D
1
A|

= m ax
1in
n

j=1,j=i

a
i j
a
i i

.
Ejemplo 1:
A =
_
_
_
2 2 0
2 3 1
0 2
_
_
_
, R.
D =
_
_
_
2 0 0
0 3 0
0 0 2
_
_
_
, E =
_
_
_
0 0 0
2 0 0
0 2
_
_
_
, F =
_
_
_
0 2 0
0 0 1
0 0 0
_
_
_
,
J = D
1
(E + F) =
_
_
_
1/2 0 0
0 1/3 0
0 0 1/2
_
_
_
_
_
_
0 2 0
2 0 1
0 0
_
_
_
=
_
_
_
0 1 0
2/3 0 1/3
/2 0 0
_
_
_
.
Definici on 8 Una matrix A = (a
i j
)
n
i,j=1
/
n
se dice que es diagonal estrictamente
dominante si
[a
i i
[ >
n

j=1 j=i
[a
i,j
[, i = 1, . . . , n.
Teorema 5 Si A /
n
es una matriz diagonal estrictamente dominante, el metodo
iterativo de Jacobi por puntos es convergente.
27
2.4.4. Metodo de Gauss-Seidel
Una estrategia adecuada para mejorar la convergencia del metodo de Jacobi sera
utilizar en el paso de c alculo de la componente
u
k+1
i
las componentes calculadas hasta el momento:
u
k+1
1
, u
k+1
2
, . . . , u
k+1
i1
en vez de u
k
1
, u
k
2
, . . . , u
k
i1

Es decir, consiste en reemplazar el sistema correspondiente al metodo de Jacobi:


a
i i
u
k+1
i
= b
i

i1

j=1
a
i j
u
k
j

n

j=i+1
a
i j
u
k
j
, (2.8)
por
a
i i
u
k+1
i
= b
i

i1

j=1
a
i j
u
k+1
j

n

j=i+1
a
i j
u
k
j
, (2.9)
Matricialmente, las ecuaciones anteriores se escriben como:
Du
k+1
= b + E u
k+1
+ F u
k
,
es decir,
(DE) u
k+1
= F u
k
+ b
Luego,
M = D E, N = F
el metodo iterativo de Gauss-Seidel por puntos se escribe:
_

_
u
0
R
n
u
k+1
= (DE)
1
F u
k
+ (D E)
1
b, k N 0
o equivalentemente
_

_
u
0
R
n
(D E) u
k+1
= F u
k
+ b k N 0
28
La matrix de Gauss-Seidel (por puntos) es entonces:
B = (DE)
1
F = I (D E)
1
A.
En este metodo, para calcular las componentes del vector u
k+1
, necesitamos tanto
las componentes de u
k+1
ya calculadas, como las restantes del vector u
k
, por lo que se
denomina metodo de las aproximaciones sucesivas. Dicho metodo ser a m as r apido ya que
la matriz M contiene m as elementos de A.
Ejemplo: Sea
A =
_
_
_
2 2 0
2 3 1
0 2
_
_
_
, R.
G
S
= (DE)
1
F =
_
_
_
2 0 0
2 3 0
0 2
_
_
_
1 _
_
_
0 2 0
0 0 1
0 0 0
_
_
_
=
_
_
_
0 1 0
0 2/3 1/3
0 /2 0
_
_
_
.
La siguiente tabla nos da los radios espectrales de las matrices de los metodos de
Jacobi y Gauss-Seidel para valores concretos del par ametro .
(G
S
) (J)
1 0,848656 0,860379
3 0,97263 1,11506
5 1,08264 1,305158
Teorema 6 Si A es diagonal estrictamente dominante, entonces el metodo de Gauss-
Seidel es convergente.
Hay muchas otras condiciones de convergencia particulares para los distintos metodos.
Entre ellas, la m as signicativa es:
Teorema 7 Si A es simetrica y denida positiva, el metodo de Gauss-Seidel es conver-
gente.
Definici on 9 Una matriz A se dice denida positiva si:
v
t
av > 0, v R
n
0
o equivalentemente si sp(A) R
+
, todos sus autovalores son positivos (no nulos).
29
Problema:
Estudiar la convergencia de los metodos de Jacobi y Gauss-Seidel por puntos para las
matrices:
A =
_
_
_
1 2 2
1 1 1
2 2 1
_
_
_

A =
_
_
_
2 1 1
2 2 2
1 1 2
_
_
_
Problema: Metodo iterativo para el c alculo de la inversa de una matriz.
Se consideran las sucesiones de matrices
A
n
= A
n1
(I + E
n
+ E
2
n
), E
n
= I AA
n1
siendo A /
n
inversible y A
0
/
n
una matriz arbitraria.
1. Demostrar que E
n
= (E
1
)
3
n1
.
2. Probar que si (E
1
) < 1, entonces
lm
n+
A
n
= A
1
3. Mostrar que si se toma A
0
= A

/tr(AA

), entonces
lm
n+
A
n
= A
1
.
2.4.5. Test de parada de las iteraciones
Cuando un metodo iterativo es convergente, la soluci on del sistema lineal Au = b
se obtiene como lmite de la sucesi on u
k

k=0
de iteraciones. Ante la impoisibilidad de
calcular todas las iteraciones, se plantea el problema de determinar un valor k N0
para el cual podemos considerar que u
k
sea una buena aproximaci on de u. Es decir, si se
desea que el error relativo sea inferior a una cierta cantidad prejada , se debe cumplir,
|u
k
u| < |u|
para alguna norma vectorial.
Sin embargo, como u es desconocido, no se puede trabajar con esa cantidad.
Si calculamos:
|u
k+1
u
k
| < |u
k+1
|
puede que u
k+1
no este pr oximo a u.
30
Una condici on de parada de las iteraciones adecuada viene dada a partir del vector
residuo
r
k
= b Au
k
= A(u u
k
), k N 0.
Entonces, si u
k
u y Au
k
b,
|r
k
|
|b|
=
|A(u
k
u)|
|Au|
<
Es decir, buscamos k N 0 tal que
|r
k
| < |b|.
Debe procurarse que la comprobaci on de los tests de parada no incremente en exceso
el n umero de operaciones necesarias para realizar una iteraci on. Reescribiendo los c alculos
de forma adecuada obtenemos:
1. Metodo de Jacobi:
Du
k+1
= b + (E + F) u
k
= b + (A + D) u
k
=
= b Au
k
+ Du
k
= r
k
+ Du
k
Por tanto,
D(u
k+1
u
k
) = r
k
.
De ese modo, el metodo de jacobi se implementa de la siguiente forma:
1) Se calcula r
k
como r
k
= b Au
k
.
2) Se resuelve el sistema Dd
k
= r
k
.
3) u
k+1
= u
k
+ d
k
De esta forma, se calcula el valor u
k+1
a partir de u
k
y se aprovechan los c alculos
intermedios, en concreto r
k
, para el test de parada. Tenemos el esquema:
_

_
r
k
i
= b
i

n
j=1
a
i j
u
k
j
d
k
i
=
r
k
i
a
i i
u
k+1
i
= u
k
i
+ d
k
i
31
2. Metodo de Gauss-Seidel An alogamente, la implementaci on del metodo de Gauss-
Seidel, se realiza en las siguiente etapas:
_

_
r
k
i
= b
i

i1
j=1
a
i j
u
k+1
j

n
j=i+1
a
i j
u
k
j
d
k
i
=
e r
k
i
a
i i
u
k+1
i
= u
k
i
+ d
k
i
Nota 13 Las normas vectoriales que suelen usarse con mas frecuencia en los test de
parada son | |
2
y | |

.
32
Captulo 3
Resoluci on numerica de ecuaciones
diferenciales ordinarias
El objetivo de este tema ser a la resoluci on numerica de ecuaciones diferenciales ordi-
narias (e.d.o.). Nuestro problema de partida ser a determinar de forma aproximada, me-
diante el uso de Metodos Numericos de C alculo, una soluci on de una e.d.o. de primer
orden, conociendo el valor de la curva soluci on en un punto.
Otros problemas que se estudiar an ser an la resoluci on numerica de ecuaciones diferen-
ciales de orden superior y problemas de valores frontera.
Interes: Las ecuaciones diferenciales se usan de forma habitual para construir modelos
matem aticos 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 unico que
somos capaces de medir: c omo los cambios de una variable afectan a otra. Cuando esta
relaci on de cambios se traducen a un modelo matem atico, el resultado es una ecuaci on
diferencial.
Ejemplo: Consideremos la temperatura de un objeto y(t) que se enfra. Podramos con-
jeturar que la velocidad del cambio de la temperatura del cuerpo est a relacionada con
la diferencia entre su temperatura y la del medio que lo rodea: los experimentos lo con-
rman 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
t
= k(y A).
donde k es una constante positiva, y el signo negativo indica que la temperatura decrece
33
34
Figura 3.1: Soluci on de la e.d.o. (3.1)
si la temperatura del cuerpo es mayor que la del medio.
Si conocemos la temperatura del cuerpo, y
0
, en el instante t = 0, que se denomina
condici on inicial, entonces inclumos esa informaci on en el enunciado del problema, de
manera que resolvemos:
y
t
= k(y A) con y(0) = y
0
. (3.1)
La soluci on se calcula a traves de la tecnica de separaci on de variables, obteniendo:
y = A + (y
0
A) e
k t
.
Cada elecci on de y
0
nos da una soluci on 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 y
0
< A el cuerpo se calienta, si y
0
> A el cuerpo
se enfra.
Definici on 10 Problemas de valor inicial
Una soluci on de un problema de valor inicial
y

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


0
) = y
0
en un intervalo [t
0
, t
1
] es una funci on derivable y = y(t) tal que
y(t
0
) = y
0
, y

(t) = f(t, y(t)), para todo t [t


0
, t
1
].
35
Campo de direcciones o pendientes
En cada punto (t, y) del rect angulo R = {(t, y); a t b, c y d }
a
b
c
d
t
y
la pendiente m de la soluci on y = y(t) (derivada) se puede calcular mediante la f ormula
implcita
m = f(t, y(t)).
Por tanto, cada valor m
i,j
= f(t
i
, y
j
), calculado para cada punto del rect angulo representa
la pendiente de la recta tangente a la soluci on que pasa por el punto (t
i
, y
j
).
Un campo de direcciones o campo de pendientes es una gr aca en la que se representan
las pendientes {m
i,j
} en una colecci on de puntos del rect angulo, y puede usarse para ver
c omo se va ajustando una soluci on a la pendiente dada: Calculamos la pendiente en el
punto inicial (t
0
, y
0
) f(t
0
, y
0
) para determinar en que direcci on debemos movernos.
Damos un paso horizontal desde t
0
, t
0
+h y nos desplazamos verticalmente una distancia
apropiada h f(t
0
, y
0
), llegando al punto (t
1
, y
1
) de manera que el desplazamiento total que
resulta tenga la inclinaci on requerida. Una vez en el punto (t
1
, y
1
) se repite el proceso
a lo largo de la soluci on. Como s olo podemos dar un n umero nito de pasos, el metodo
reproduce una aproximaci on de la soluci on.
36
3.1. El metodo de Euler
Sea [a, b] el intervalo en el que queremos hallar la soluci on de un problema de valor
inicial
_

_
y

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


y(t
0
) = y
0
con f lipschitziana.
Construimos un conjunto nito de puntos {(t
k
, y
k
)} que son aproximaciones de la soluci on
(y(t
k
) y
k
).
Problema: Construir dichos puntos vericando una ecuaci on diferencial. Para f(t, y), t
ser an 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 partici on:
t
k
= a + k h, k = 0, 1, . . . , M, h =
b a
M
.
El valor de incremento de h se llama tama no del paso.
Resoluci on aproximada: De y

(t) = f(t, y(t)) en [t


0
, t
M
] con y(t
0
) = y
0
.
Suponiendo que y(t), y

(t), y

(t) son continuas y usando el Teorema de Taylor para


desarrollar y(t) alrededor del punto t = t
0
, para cada punto t existe un punto c
1
entre t
0
y t tal que
y(t) = y(t
0
) + y

(t
0
)(t t
0
) + y

(c
1
)
(t t
0
)
2
2
.
Al sustituir y

(t
0
) = f(t
0
, y(t
0
)), h = t
1
t
0
, obtenemos una expresi on para y(t
1
):
y(t
1
) = y(t
0
) + h f(t
0
, y(t
0
)) + y

(c
1
)
h
2
2
.
Si el tama no de paso es sucientemente peque no, h
2
se puede considerar despreciable
y
y(t
1
) y
1
= y
0
+ h f(t
0
, y
0
)
que es la aproximaci on de Euler.
Repitiendo el proceso, generamos una sucesi on de puntos que se aproximan a la gr aca
de la soluci on y = y(t). El paso general del metodo de Euler es:
t
k+1
= t
k
+ h, y
k+1
= y
k
+ h f(t
k
, y
k
), k = 0, 1, . . . , M 1.
Ejemplo:
37
Usamos el metodo de Euler para hallar una soluci on aproximada del problema de valor
inicial
y

(t) = Ry(t), t [0, 1], y(0) = y


0
, R = constante.
Debemos:
1. Elegir el tama no de paso h.
2. Usar la f ormula para calcular las ordenadas y(t), que se llama ecuaci on en diferencia.
y
k+1
= y
k
+ h Ry
k
= y
k
(1 + h R) = y
k1
(1 + h R)
2
=
= . . . = y
0
(1 + h R)
k+1
, k = 0, 1, . . . , M 1.
En la mayora de los casos no se puede hallar una f ormula explcita para determinar las
aproximaciones, pero este es un caso especial. Concretamente, es la
f ormula para calcular el interes compuesto a partir de un dep osito inicial.
Ejemplo: Supongamos que se depositan 1000 euros durante 5 a nos a un interes compuesto
del 10 %. Cu al 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 e
0,1 t
y
k
= y
0
(1 + h R)
k
= 1000(1 + 0,1 h)
k
Tama no paso N umero iteraciones M y
M
y(5)
1 5 1000(1 + 0,1)
5
= 1610,51
1/12 60 1000
_
1 +
0,1
12
_
60
= 1645,31
1/360 1800 100
_
1 +
0,1
360
_
1800
= 1648,61
La soluci on exacta es y(5) = 1648,72 = 1000e
0,5
.
38
Descripci on geometrica
3.1.1. Tama no del paso frente al error
Los metodos que presentamos se llaman metodos de difererencias o metodos de varia-
ble discreta. En ellos la soluci on se aproxima en un n umero nito de puntos llamados
nodos. Son de la forma:
y
k+1
= y
k
+ h (t
k
, y
k
) (3.2)
donde se llama funci on incremental, y es de paso simple (o de un solo paso) porque en
el c alculo del nuevo punto s olo 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:
_
- discretizaci on
- redondeo
Definici on 11 Error de discretizaci on
Supongamos que {(t
k
, y
k
)}
M
k=0
es un conjunto nito de aproximaciones a la unica so-
luci on y = y(t) de un problema de valor inicial.
Se dene el error de truncamiento global o error de discretizaci on global e
k
como:
e
k
= y(t
k
) y
k
, k = 0, 1, . . . , M.
que es la diferencia entre la soluci on exacta y la calculada con el metodo en el nodo
correspondiente.
39
Se llama error de consistencia (o error de truncamiento local)
k+1
a:

k+1
= y(t
k+1
) y(t
k
) h (t
k
, y(t
k
)), k = 0, 1, . . . , M 1.
y es el error que se comete en un solo paso (el que lleva desde el nodo t
k
al t
k+1
).
En el metodo de Euler, en cada paso se desprecia un termino
y

(c
k
)
h
2
2
.
Si ese fuera el unico error que se comete en cada paso, al llegar al extremo superior del
intervalo (dar M pasos) el error acumulado sera:
M

k=1
y

(c
k
)
h
2
2
My

(c)
h
2
2
=
h M
2
y

(c)h =
=
(b a)
2
y

(c) h = O(h).
Podra haber otros errores, pero esta estimaci on es la que predomina.
Teorema 8 (Precisi on del metodo de Euler)
Sea y(t) la soluci on de
_
y

(t) = f(t, y)
y(t
0
) = y
0
Si y C
2
([t
0
, b]) y {(t
k
, y
k
)}
M
k=0
es la sucesi on de aproximaciones generada por el metodo
de Euler, entonces
|e
k
| = |y(t
k
) y
k
| = O(h)
|
k+1
| = |y(t
k+1
) y(t
k
) h f(t
k
, y(t
k
))| = O(h
2
)
El error al nal del intervalo, llamado error global nal, viene dado por
E(y(b), h) = |y(b) y
M
| = O(h).
Nota 14 El error global nal se usa para estudiar el comportamiento del error para ta-
ma 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
E(y(b),
h
2
)
c
2
h
1
2
E(y(b), h)
luego si reducimos a la mitad el tama no de paso en el metodo de Euler, el error global
nal tambien se reduce a la mitad.
40
Figura 3.2: Aproximaci on de Euler con paso h = 1 para resolver la e.d.o. (3.1)
Figura 3.3: Aproximaci on 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 dife-
rentes tama nos, para y

(t) = (t y)/2 en [0, 2] con condici on inicial y(0) = 1:


41
y
k
t
k
h = 1 h =
1
2
h =
1
4
h =
1
8
y(t
k
) exacto
0 1.0 1.0 1.0 1.0 1.0
0.125 0.9375 0.943239
0.25 0.875 0.886719 0.897491
0.325 0.846924 0.862087
0.50 0.75 0.796875 0.817429 0.836402
0.75 0.759766 0.786802 0.811868
1.00 0.5 0.6875 0.758545 0.790158 0.819592
1.50 0.765625 0.846386 0.882855 0.917100
2.00 0.75 0.949219 1.030827 1.068222 1.103638
2.5 1.211914 1.289227 1.325176 1.359514
3.00 1.375 1.533936 1.604252 1.637429 1.669390
Por ultimo, comparamos los errores globales nales para la e. d. o. con valor incial
anterior, aproximada por el metodo de Euler, usando los tama nos de paso h = 1,
1
2
, ...,
1
64
.
Tama no de
paso h
N
o
de
pasos N
Aproximaci on
y
N
a y(3)
Error global nal,
y(3) y
N
O(h
2
) C h
2
con C = 0,0432
1 3 1.375 0.294390 0.256
1
2
6 1.533936 0.135454 0.128
1
4
12 1.604252 0.065138 0.064
1
8
24 1.637429 0.031961 0.032
1
16
48 1.653557 0.015833 0.016
1
32
96 1.661510 0.007880 0.008
1
64
192 1.665459 0.003931 0.004
3.1.2. Orden de un metodo
Supongamos que al resolver un problema tenemos
e
1
error h
1
error correspondiente al uso del paso h
1
e
2
error h
2
error correspondiente al uso del paso h
2
42
Tenemos que el error que comete es e c h
p
, y queremos determinar el valor de la
pontencia p. Entonces:
e
1
= c h
p
1
e
2
= c h
p
2

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

n=0
|
n+1
| k h
p
Consistencia y estabilidad del metodo
Definici on 13 El metodo es consistente al problema
_
y

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


y(a) = y
0
si
lm
h0
M1

n=0
|y(t
n+1
) y(t
n
) h (t
n
, y(t
n
); h)| = 0,
es decir, seg un la denici on de
n+1
, el error de consistencia,
lm
h0
M1

n=0
|
n+1
| = 0
Definici on 14 Un metodo se dice estable si existe c > 0 (constante de estabilidad)
independiente de h, tal que
_
y
k+1
= y
k
+ h (t
k
, y
k
; h)
z
k+1
= z
k
+ h (t
k
, z
k
; h) +
k
0 k N, y
k
, z
k
,
k
m ax
0kM
|y
k
z
k
| c{ |y
0
z
0
|
. .
error inicial
+

0kN1
|
k
|
. .
suma de errores en cada etapa
}
43
Definici on 15 Un metodo es convergente a la soluci on del problema si
lm
h0
m ax
0kM
|y
k
y(t
k
)| = 0
Teorema 9 El metodo es consistente si y s olo 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 metodo de Heun
La siguiente tecnica introduce una nueva idea en la construcci on del algoritmo para
resolver el problema de valor inicial:
_

_
y

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


y(t
0
) = y
0
Para obtener el punto (t
1
, y
1
), usamos el Teorema fundamental del C alculo, integrando
y

(t) en [t
0
, t
1
] de manera que:
_
t
1
t
0
f(t, y(t)) dt =
_
t
1
t
0
y

(t) dt = y(t
1
) y(t
0
),
y(t
1
) = y(t
0
) +
_
t
1
t
0
f(t, y(t)) dt.
Usamos ahora un metodo de integraci on para aproximar la integral que aparece a la
derecha de la expresi on anterior. Usando la regla del trapecio con incremento h = t
1
t
0
,
el resultado es:
y(t
1
) y(t
0
) +
h
2
(f(t
0
, y(t
0
)) + f(t
1
, y(t
1
))) .
Ahora bien, como y(t
1
) (que es lo queremos aproximar) aparece tambien en la expresi on
de la aproximaci on, entonces aplicamos el metodo de Euler para aproximar la y(t
1
) que
aperece en f(t
1
, y(t
1
)):
y(t
1
) y(t
0
) + h f(t, y(t
0
)),
y obtenemos:
y(t
1
) y
0
+
h
2
(f(t
0
, y
0
) + f(t
1
, y
0
+ h f(t
0
, y
0
)))
44
Repitiendo el proceso en cada intervalo [t
k
, t
k+1
], en cada paso la aproximaci on dada
por el metodo de Euler se usa como una predicci on del valor que queremos calcular, y
luego la regla del trapecio se usa para hacer una correcci on y obtener el valor denitivo.
El paso general del metodo de Heun es entonces el siguiente:
Metodo de Heun o Metodo predictor-corrector
Para t
k+1
= t
k
+ h,
_

_
p
k+1
= y
k
+ h f(t
k
, y
k
),
y
k+1
= y
k
+
h
2
(f(t
k
, y
k
) + f(t
k+1
, p
k+1
))
La siguiente gura 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)
(c
k
)
h
3
12
.
45
Si el unico error que se cometiese en cada paso fuese el anterior, entonces despues de M
pasos del metodo de Heun el error acumulado sera:

k=1
y
(2)
(c
k
)
h
3
12
M y
(2)
(c)
b a
M
h
2
12
= y
(2)
(c) (b a)
h
2
12
= O(h
2
)
El siguiente teorema establece la relaci on entre el error nal 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 precisi on jada de antemano.
Teorema 11 (Precisi on del metodo de Heun)
Supongamos que y(t) es la soluci on de un problema de valor inicial
_
y

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


y(t
0
) = y
0
.
Si y(t) C
3
([t
0
, b]), y {(t
k
, y
k
)}
N
k=0
es la sucesi on de aproximaciones dadas por el metodo
de Heun, entonces:
|e
k
| = |y(t
k
) y
k
| = O(h
2
),
|
k
| = |y(t
k+1
) y(t
k
) h (t
k
, y(t
k
))| = O(h
3
),
donde (t
k
, y(t
k
)) =
1
2
(f(t
k
, y(t
k
)) + f(t
k+1
, y(t
k
) + h f(t
k
, y(t
k
)))). En particular, el error
global nal en el extremo derecho del intervalo verica:
E(y(b), h) = |y(b) y
M
| = O(h
2
).
Los siguientes ejemplos ilustran el Teorema de la precisi on del metodo:
Si us asemos tama nos de paso h y h/2, obtendramos:
E(y(b), h) C h
2
,
E(y(b),
h
2
) C
h
2
4
=
1
4
C h
2

1
4
E(y(b), h).
Entonces, si en el metodo de Heun el tama no de paso se reduce a la mitad, el
error global nal se reduce a su cuarta parte.
Ejemplo: Usamos el metodo de Heun para resolver el problema:
y

(t) =
t y
2
, en [0, 3], con y(0) = 1,
y comparamos las soluciones obtenidas para tama no de paso h = 1, h =
1
2
, h =
1
4
, y
h =
1
8
. La soluci on exacta es y(t) = 3 e
t/2
+ t 2.
46
Para h =
1
4
, t
0
= 0, t
1
=
1
4
, y
0
= 1, luego:
f(t
0
, y
0
) =
0 1
2
= 0,5,
p
1
= y
0
+ h f(t
0
, y
0
) = 1
1
4
1
2
= 0,875,
f(t
1
, p
1
) =
0,25 0,875
2
= 0,3125,
y
1
= y
0
+
h
2
(f(t
0
, y
0
) + f(t
1
, y
1
)) = 1 +
1
8
(0,5 0,3125) = 0,8984375.
Iterando en cada nodo, obtenemos:
y(3) y
12
= 1,672269.
La siguiente gura nos da idea de la aproximaci on obtenida con el metodo de Heun
con tama no h = 1 y h = 1/2 para y

(t) = (t y)/2 en [0, 2] con condici on inicial y(0) = 1:


La siguiente tabla compara las soluciones obtenidas con el metodo de Heun, con dife-
rentes tama nos, para y

(t) = (t y)/2 en [0, 2] con condici on inicial y(0) = 1:


47
y
k
t
k
h = 1 h =
1
2
h =
1
4
h =
1
8
y(t
k
) exacto
0 1.0 1.0 1.0 1.0 1.0
0.125 0.943359 0.943239
0.25 0.898438 0.897717 0.897491
0.325 0.862406 0.862087
0.50 0.84375 0.838074 0.836801 0.836402
0.75 0.814081 0.812395 0.811868
1.00 0.875 0.831055 0.822196 0.820213 0.819592
1.50 0.930511 0.920143 0.917825 0.917100
2.00 1.171875 1.117587 1.106800 1.104392 1.103638
2.5 1.373115 1.362593 1.360248 1.359514
3.00 1.732422 1.682121 1.672269 1.670076 1.669390
Por ultimo, comparamos los errores globales nales para la e. d. o. con valor incial
anterior, aproximada por el metodo de Heun, usando los tama nos de paso h = 1,
1
2
, ...,
1
64
.
Tama no de
paso h
N
o
de
pasos N
Aproximaci on
y
N
a y(3)
Error global nal,
y(3) y
N
O(h
2
) C h
2
con C = 0,0432
1 3 1.732422 -0.063032 -0.043200
1
2
6 1.682121 -0.012731 -0.010800
1
4
12 1.672269 -0.002879 -0.002700
1
8
24 1.670076 -0.000686 -0.000675
1
16
48 1.669558 -0.000168 -0.000169
1
32
96 1.669432 -0.000042 -0.000042
1
64
192 1.669401 -0.000011 -0.000011
Nota 15 El metodo de Heun tambien es conocido con el nombre de metodo de Euler
mejorado.
48
3.3. Metodos 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 [t
k
, t
k+1
] y en otros puntos intermedios:
y
k+1
= y
k
+ h funcion
promedio
donde funcion
promedio
= a f
k
+ b f
k
con a y b pesos a elegir de la forma:
_

_
f
k
= f(t
k
, y
k
),
f
k
= f(t
k
+ h, y
k
+ h f
k
)
donde los par ametros , especican la posici on del punto intermedio.
Runge y Kutta dise naron el algoritmo eligiendo 4 par ametros a, b, y de manera
que el resultado fuese lo m as preciso posible. Los par ametros son independientes entre s.
Las restricciones se obtienen desarrollando en serie de Taylor la funci on f en (t, y):
_
a + b = 1
b = b =
1
2
,
que es un sistema de 3 ecuaciones con 4 inc ognitas. Si elegimos a = 0, b = 1, = =
1
2
,
obtenemos:
Euler modicado
y
k+1
= y
k
+ h f(t
k
+
h
2
, y
k
+
h
2
f(t
k
, y
k
))
Si a = b =
1
2
, = = 1, se obtiene el metodo 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 m as puntos en el muestreo dentro del intervalo, el metodo b asico de
Runge-Kutta puede mejorarse para que el error de truncamiento global (nal) sea propor-
cional a h
4
(es decir, se trata de un metodo de cuarto orden). Despues de hacer desarrollos
en serie de Taylor, se obtiene:
y
k+1
= y
k
+
h
6
(f
1
+ 2 f
2
+ 2 f
3
+ f
4
) ,
49
donde
_

_
f
1
= f(t
k
, y
k
)
f
2
= f(t
k
+
h
2
, y
k
+
h
2
f
1
)
f
3
= f(t
k
+
h
2
, y
k
+
h
2
f
2
)
f
4
= f(t
k
+ h, y
k
+ h f
3
)
Nota 16 En general, los metodos de Runge-Kutta son de la forma:
_

_
y
0
dado
y
k+1
= y
k
+ h
_
r

i=1

i
k
i
_
,
donde k
i
= f(t
k
+ c
i
h, y
k
+ h
_
i1

j=1
a
ij
k
j
_
), con c
1
= 0, c
i
[0, 1],
i
R, a
ij
R.
Tama no de paso frente al error
El termino del error de la regla de Simpson con incremento h/2 es:
y
(4)
(c
1
)
h
5
2880
.
Si el unico error que apareciese en cada paso fuera el anterior, entonces en N pasos el
error acumulado al llevar a cabo el metodo sera:

k=1
y
(4)
(c
k
)
h
5
2880

b a
5760
y
(4)
(c) h
4
O(h
4
).
Teorema 12 (Precisi on del metodo de Runge-Kutta)
Supongamos que y(t) es la soluci on del problema de valor inicial
_
y

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


y(0) = y
0
.
Si y(t) C
5
([t
0
, b]) y {(t
k
, y
k
)}
N
k=0
es la sucesi on de aproximaciones generada por el meto-
do de Runge-Kutta de cuarto orden, entonces:
|e
k
| = |y(t
k
) y
k
| = O(h
4
),
|
k
| = |y(t
k+1
) y
k
h T
r
(t
k
, y
k
)| = O(h
5
),
donde T
r
(t
k
, y
k
) es la funci on promedio del metodo. En particular, el error global nal
verica:
E(y(b), h) = |y(b) y
M
| = O(h
4
).
50
Es f acil decucir que E(y(b),
h
2
)
1
64
E(y(b), h).
Las siguientes tablas ilustran las soluciones que aparecen al resolver el problema y

(t) =
(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 nal cometido:
y
k
t
k
h = 1 h =
1
2
h =
1
4
h =
1
8
y(t
k
) exacto
0 1.0 1.0 1.0 1.0 1.0
0.125 0.9432392 0.9432392
0.25 0.8974915 0.9874908 0.8974917
0.325 0.8620874 0.8620874
0.50 0.8364258 0.8364037 0.8364024 0.8364023
0.75 0.8118696 0.8118679 0.8118678
1.00 0.8203125 0.3196285 0.8195940 0.9195921 0.8195920
1.50 0.9171423 0.3171021 0.9170998 0.9170997
2.00 1.1045125 1.1036826 1.1036408 1.1036385 1.1036383
2.5 1.3595575 1.3595168 1.3595145 1.3595144
3.00 1.6701860 1.6694308 1.6693928 1.6693906 1.6693905
Tama no de
paso h
N
o
de
pasos N
Aproximaci on
y
N
a y(3)
Error global nal,
y(3) y
N
O(h
4
) C h
4
con C = 0,000614
1 3 1.6701860 -0.0007955 -0.0006140
1
2
6 1.6694308 -0.0000403 -0.0000384
1
4
12 1.6693928 -0.0000023 -0.0000024
1
8
24 1.6693906 -0.0000001 -0.0000001
Captulo 3
Parte II (e. d. o. s): Resoluci on
numerica de ecuaciones diferenciales
ordinarias
3.4. Sistemas de Ecuaciones Diferenciales
Consideramos el problema de valor inicial:
(S)
_

_
dx
dt
(t) = f(t, x(t), y(t))
dy
dt
(t) = g(t, x(t), y(t))
con
_

_
x(t
0
) = x
0
y(t
0
) = y
0
Definici on 16 Una soluci on de (S) es un par de funciones derivables x(t), y(t), tales
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 x

(t), y

(t) respectivamente, es decir:


_

_
x

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


y

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


con
_

_
x(t
0
) = x
0
y(t
0
) = y
0
Ejemplo: Consideramos el sistema
_

_
dx
dt
(t) = x + 2y
dy
dt
(t) = 3x + 2y
con
_

_
x(0) = 6
y(0) = 4
51
52
La soluci on exacta es:
_

_
x(t) = 6e
4t
+ 2e
t
y(t) = 6e
4t
2e
t
3.4.1. Resoluci on numerica
Podemos encontrar una soluci on numerica del sistema (S) en un intervalo [a, b] consi-
derando los diferenciales:
d x = f(t, x, y) dt, dy = g(t, x, y) dt
Reescribiendo los incrementos dt = t
k+1
t
k
, dx = x
k+1
x
k
, dy = y
k+1
y
k
, es f acil
implementar el metodo de Euler:
_

_
x
k+1
x
k
f(t
k
, x
k
, y
k
) (t
k+1
t
k
)
y
k+1
y
k
g(t
k
, x
k
, y
k
) (t
k+1
t
k
)
Dividiendo el intervalo [a, b] en N subintervalos de anchura h =
b a
N
, y tomando los
nodos t
k+1
= t
k
+ h, obtenemos las f ormulas correspondientes al metodo de Euler:
Metodo de Euler
t
k+1
= t
k
+ h
x
k+1
= x
k
+ h f(t
k
, x
k
, y
k
)
y
k+1
= y
k
+ h g(t
k
, x
k
, y
k
)), para k = 0, 1, ..., N 1.
Sin embargo, para obtener un grado de precisi on razonable, es necesario utilizar un
metodo de orden mayor. Por ejemplo, las f ormulas para el metodode Runge-Kutta de
orden 4 son:
53
Metodo de Runge-Kutta de orden 4
x
k+1
= x
k
+
h
6
(f
1
+ 2 f
2
+ 2 f
3
+ f
4
),
y
k+1
= y
k
+
h
6
(g
1
+ 2 g
2
+ 2 g
3
+ g
4
) ,
donde
_

_
f
1
= f(t
k
, x
k
, y
k
), g
1
= g(t
k
, x
k
, y
k
),
f
2
= f(t
k
+
h
2
, x
k
+
h
2
f
1
, y
k
+
h
2
g
1
), g
2
= g(t
k
+
h
2
, x
k
+
h
2
f
1
, y
k
+
h
2
g
1
),
f
3
= f(t
k
+
h
2
, x
k
+
h
2
f
2
, y
k
+
h
2
g
2
), g
3
= g(t
k
+
h
2
, x
k
+
h
2
f
2
, y
k
+
h
2
g
2
),
f
4
= f(t
k
+ h, x
k
+ h f
3
, y
k
+ h g
3
), g
4
= g(t
k
+ h, x
k
+ h f
3
, y
k
+ h g
3
).
Ejemplo: Aplicamos al sistema
_
x

= x + 2y,
y

= 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
paso h =
0,2
10
= 0,02.
Para obtener el primer punto t
1
= 0,02, las operaciones intermedias necesarias para
obtener x
1
e y
1
son:
f
1
= f(t
0
, x
0
, y
0
) = f(0, 6, 4) = 14, g
1
= g(t
0
, x
0
, y
0
) = g(0, 6, 4) = 26
x
0
+
h
2
f
1
= 6,14 y
0
+
h
2
= 4,26
f
2
= f(0,01, 6,14, 4,26) = 14,66, g
2
= g(0,01, 6,14, 4,26) = 26,94
x
0
+
h
2
f
2
= 6,1466 y
0
+
h
2
g
2
= 4,2694
f
3
= f(0,01, 6,1466, 4,2694) = 14,68,54, g
3
= g(0,01, 6,1466, 4,2694) = 26,9786
x
0
+ h f
3
= 6,293708 y
0
+ h g
3
= 4,539572
f
4
= f(0,02, 6,293708, 4,539572) = 15,372852 g
4
= g(0,02, 6,293708, 4,539572) = 27,960268
54
Luego
x
1
= x
0
+
h
6
(f
1
+ 2 f
2
+ 2 f
3
+ f
4
)
= 6 +
0,02
6
(14 + 2(14,66) + 2(14,6854) + 15,372852) = 6,29354551
y
1
= y
0
+
h
6
(g
1
+ 2 g
2
+ 2 g
3
+ g
4
)
= 4 +
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 x
k
e y
k
.
k t
k
x
k
y
k
0 0.00 6.00000000 4.00000000
1 0.02 6.29654551 4.53932490
2 0.04 6.61562213 5.11948599
3 0.06 6.96852528 5.74396525
4 0.08 7.35474319 6.41653305
5 0.10 7.77697287 7.14127221
6 0.12 8.23813750 7.92260406
7 0.14 8.74140523 8.76531667
8 0.16 9.29020955 9.67459538
9 0.18 9.88827138 10.6560560
10 0.2 10.5396230 11.7157807
Las soluciones as calculadas presentan errores que se acumulan en cada paso. En el
extremo derecho del intervalo:
x(0,2) x
10
= 0,0000022
y(0,2) y
10
= 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,
x

(t), x

(t),... Este tipo de ecuaciones aparecen en modelos matem aticos de problemas


de la fsica y la ingeniera. Por ejemplo,
mx

(t) + c x

(t) + k x(t) = g(t)


55
representa un sistema mec anico en el que un muelle, cuya constante de recuperaci on es
k, atado a una masa m, que ha sido separado de su posici on de equilibrio a la que
tiende a volver. Se supone que la amortiguaci on debida al rozamiento es proporcional a
la velocidad, que g(t) es una fuerza externa, y que se conocen la posici on inicial x(t
0
) y
la velocidad inicial x

(t
0
). Despejando la derivada segunda, el problema de valor inicial se
puede escribir como:
(E)
_

_
x

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

(t))
x(t
0
) = x
0
,
x

(t
0
) = y
0
Si llamamos y(t) = x

(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:
(S)
_

_
dx
dt
(t) = y(t),
dy
dt
(t) = f(t, x(t), y(t)),
x(t
0
) = x
0
,
y(t
0
) = y
0
Al resolver el sistema (S) con un metodo numerico de Runge-Kutta de orden 4, se generan
dos sucesiones {x
k
}, {y
k
}, siendo {x
k
} la sucesi on de (E).
Ejemplo 1: Movimiento arm onico amortiguado.
x

(t) + 4 x

(t) + 5 x(t) = 0, x(0) = 3, x

(0) = 5.
a) Reescritura como sistema equivalente:
x

(t) = 4 x

(t) 5 x(t),
_
x

(t) = y(t)
y

(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 comparaci on con la soluci on exacta x(t) = 3 e
2t
cos(t) + e
2t
sen(t):
56
k t
k
x
k
x(t
k
)
0 0.0 3.00000000 3.00000000
1 0.1 2.52564583 2.52565822
2 0.2 2.10402783 2.10404686
3 0.3 1.73506269 1.73508427
4 0.4 1.41653369 1.41655509
5 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: Deexi on de un m astil de un velero.
Consideramos un velero azotado por una fuerza f uniformemente distribuida a lo
largo del m astil. Los cables que soportan el m astil se han quitado, pero el m astil se monta
rmemente en el casco del velero. La fuerza del viento causa que el m astil se desve. Las
siguientes guras representan dicha deexi on:
57
La desviaci on es similar a la de una viga en voladizo. Se puede usar la siguiente
ecuaci on diferencial, basada en las leyes de la mec anica, para calcular la deexi on:
d
2
dz
2
y(z) =
f
2 E I
(L z)
2
(3.1)
donde E es el m odulo de elasticidad, L es la altura del m astil e I es el momento de inercia.
En z = 0,
dy
dz
= 0. Calcular la deexi on en el tope del m astil en donde z = L usando
metodos analticos y numericos. Sup ongase que el casco no gira.
Soluci on: La soluci on exacta es y(z) =
f
24 E I
(L z)
4
+ C
1
z + C
2
. Su derivada es:
y

(z) =
f
6 E I
(L z)
3
+ C
1
y

(0) =
f
6 E I
L
3
+ C
1
= 0 C
1
=
f L
3
6 E I
58
Para calcular la constante C
2
, usamos la hip otesis l ogica de que y(0) = 0, es decir, el
m astil no se mueve en el sitio de uni on con el casco del barco, lo que hace que:
C
2
=
f L
4
24 E I
,
de manera que la soluci on es:
y(z) =
f
6 E I
_
1
4
(L z)
4
+ z L
3

L
4
4
_
,
y entonces,
y(L) =
f L
4
8 E I
.
El modelo anterior es v alido siempre que el intervalo de integraci on [0, L] sea peque no,
y la desviaci on del m astil (que acabamos de calcular) tambien. Los valores de f y E se
basan en datos experimentales variables y difciles de medir exactamente.
Reescribimos la ecuaci on (3.1) como un sistema de e. d. o. de primer orden que resol-
vemos usando el metodo de Euler:
_

_
dy
dz
= u,
du
dz
=
f
2 E I
(L z)
2
Usamos f = 50 libras/pie, L = 30 pies, E = 1,5 10
8
libras/pie, I = 0,06 pies
4
, y
obtenemos que la desviaci on el el extremo superior del m astil 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 prop ositos de dise no. Esto es valioso en el caso en que
la fuerza no es constante sino que vara de forma complicada en funci on de la altura sobre
la cubierta del velero.
59
3.5. Problemas de contorno
Otro tipo de ecuaciones diferenciales son de la forma:
x

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

(t)) para a t b,
con condiciones de contorno (o frontera)
_
x(a) = ,
x(b) =
Observemos que hemos sustituido las condiciones iniciales para x(t
0
) = x
0
, x

(t
0
) = y
0
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 pro-
blema de contorno posee soluci on. Para ello, usamos el siguiente resultado:
Teorema 13 (Problema de contorno) Supongamos que f(t, x, y) es una funci on con-
tinua en la regi on:
R = {(t, x, y) : a t b, < x < , < y < },
con derivadas parciales
f
x
,
f
y
continuas en R.
Si f
x
(t, x, y) > 0 para todo (t, x, y) R y existe una constante M > 0 tal que
|f
y
(t, x, y)| M para todo (t, x, y) R, entonces el problema de contorno
_
x

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

(t))
x(a) = , x(b) =
tiene soluci on unica x = x(t) en a t b.
Nota 17 Observemos que se ha usado que y = x

(t) para la notaci on del teorema anterior.


3.5.1. Caso lineal
Corolario 1 (Problemas de contorno lineales) Supongamos que la funci on 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)
y que sus derivadas parciales
f
x
= q(t),
f
y
= p(t) son continuas en R (lo que garantiza
que |p(t)| = |f
y
| M = m ax [a, b]{|p(t)|}). Si q(t) > 0 para todo t [a, b], entonces el
problema de contorno lineal:
_
x

(t) = p(t) x

(t) + q(t) x(t) + r(t),


x(a) = , x(b) =
tiene soluci on unica en a t b.
Captulo 4
El metodo 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 denido el sistema lineal se estudiar a 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 ecuaci on lineal:
x

(t) = p(t) x

(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) est a acotada,
bajo estas condiciones el problema de contorno tiene soluci on.
Hagamos una partici on de [a, b], donde:
a = t
0
< t
1
< . . . < t
N
= b,
h =
b a
N
t
j
= a + j h j = 0, 1, . . . , N
Usando las f ormulas de diferencias centradas para aproximar las derivadas tenemos (En
el Apendice de este tema se explica como se deduce la siguiente igualdad):
x

(t
j
) =
x(t
j+1
) x(t
j1
)
2 h
+O(h
2
) (4.2)
65
66
x

(t
j
) =
x(t
j+1
) 2x(t
j
) + x(t
j1
)
h
2
+O(h
2
) (4.3)
Reemplazando (4.2) y (4.3) en (4.1), aproximando x
j
x(t
j
) j, obtenemos:
x
j+1
2 x
j
+ x
j1
h
2
+O(h
2
) = p(t
j
)
_
x
j+1
x
j1
2 h
+O(h
2
)
_
+ q(t
j
)x
j
+ r(t
j
) (4.4)
Eliminando los terminos de orden O(h
2
) en (4.4) e introduciendo la notaci on p
j
= p(t
j
),
q
j
= q(t
j
), r
j
= r(t
j
), obtenemos la ecuaci on en diferencias:
x
j1
2 x
j
+ x
j1
h
2
= p
j
x
j+1
x
j1
2 h
+ q
j
x
j
+ r
j
(4.5)
que se usa para calcular aproximaciones numericas a la soluci on de la ecuaci on diferencial
(4.1).
Reagrupando, teniendo en cuenta que las inc ognitas son x
j
j = 1, . . . , N, tenemos el
sistemas lineal de ecuaciones:
_

_
_
h
2
p
j
1
_
x
j1
+
_
2 + h
2
q
j
_
x
j
+
_
h
2
p
j
1
_
x
j+1
= h
2
r
j
j = 1, 2, . . . , N 1
x
0
=
x
N
=
(4.6)
El sistema (4.6) es un sistema tridiagonal de N 1 ecuaciones y N 1 inc ognitas,
x
1
, . . . , x
N1
(pues x
0
y x
N
son datos, las condiciones de contorno del problema). En
notaci on matricial podemos escribirlo como
Ax = b,
donde x =
_
_
_
_
x
1
.
.
.
x
N1
_
_
_
_
,
A =
_
_
_
_
_
_
_
_
_
_
_
_
2 + h
2
q
1
p
1
h/2 1 0 . . . . . . 0
p
2
h/2 1 2 + h
2
q
2
p
2
h/2 1 . . . . . . 0
.
.
.
p
j
h/2 1 2 + h
2
q
j
p
j
h/2 1
.
.
.
p
N1
h/2 1 2 + h
2
q
N1
_
_
_
_
_
_
_
_
_
_
_
_
67
Adem as, si denotamos e
0
= (p
1
h/2 + 1), e
N
= (p
N1
h/2 + 1), tenemos
b =
_
_
_
_
_
_
_
_
_
_
_
_
h
2
r
1
+ e
0
h
2
r
2
.
.
.
h
2
r
j
.
.
.
h
2
r
N1
+ e
N
_
_
_
_
_
_
_
_
_
_
_
_
Aplicamos ahora algunos de los resultados que hemos estudiado para resoluci on numeri-
ca 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 + h
2
q
j
| > |1 + p
j
h/2| +|1 p
j
h/2|, j = 1, . . . , N 1.
Por un lado tenemos que h es el tama no de paso en la discretizaci on, por lo que lo podemos
tomar sucientemente peque no, de forma que
1 p
j
h/2 0, 1 + p
j
h/2 0 j
Como adem as, tenemos que q > 0, por hip otesis (lo suponamos al principio del tema,
para poder asegurar que el problema de contorno tiene soluci on), llegamos a que
|1 + p
j
h/2| +|1 p
j
h/2| = 1 + p
j
h/2 + 1 p
j
h/2 = 2
y
|2 + h
2
q
j
| > 2 (pues q
j
> 0).
Por lo tanto, la matriz del sistema es estrictamente diagonal dominante. Entonces, pode-
mos aplicar los metodos iterativos de Jacobi y Gaus-Seidel para resolver el sistema lineal
(no os parece apasionante, como justo la hip otesis que se necesita para asegurar la exis-
tencia de soluci on 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 denitiva, de esta forma, resolviendo el problema lineal, con tama no de paso h,
conseguimos una aproximaci on numerica: un conjunto nito de puntos {(t
j
, x
j
)}
N1
j=1
.
Si se conoce la soluci on exacta x(t
j
), entonces podemos comparar x
j
con x(t
j
).
68
Ejemplo: Vamos a resolver el problema de contorno
_

_
x

(t) =
2t
1 + t
2
x

(t) +
2
1 + t
2
x(t) + 1 t [0, 4]
x(0) = 1,25 x(4) = 0,95
Soluci on: Aplicando el metodo de diferencias nitas y aproximando x
j
x(t
j
)
{x
j,1
}
N
j=0
, {x
j,2
}
N
j=0
, {x
j,3
}
N
j=0
, {x
j,4
}
N
j=0
representan las aproximaciones correspondientes a los tama nos de paso h al elegir
h
1
= 0,2 N = 20, h
2
= 0,1 N = 40,
h
3
= 0,05 N = 80, h
4
= 0,025 N = 160.
Veamos, seg un los distintos pasos considerados, la siguiente tabla de errores:
t
j
x(t
j
) x
j,1
h
1
= 0,2
x(t
j
) x
j,2
h
2
= 0,1
x(t
j
) x
j,3
h
3
= 0,05
x(t
j
) x
j,4
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
69
Se puede probar que las soluciones numericas tienen un error de O(h
2
): 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)/2
p
):
Vamos a jarnos en la tabla anterior, por ejemplo en t = 2, vemos que el error que
cometemos en este punto, para h
1
= 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 soluci on del problema de contorno es sucientemente regular, x
C
4
([a, b]), entonces el error e para el metodo de diferencias nitas satisface:
e

C h
2
,
es decir, es un metodo de segundo orden.
Realmente habr a ocasiones en las que nos interesa conseguir metodos de mayor orden.
Con esta nalidad estudiamos el esquema de mejora de Richardson.
4.1. Esquema de mejora de Richardson
Vamos a mejorar la precisi on de las aproximaciones numericas anteriormente obtenidas
usando el esquema de mejora de Richardson para extrapolar los valores {x
j,1
}
N
j=0
, {x
j,2
}
N
j=0
,
{x
j,3
}
N
j=0
{x
j,4
}
N
j=0
, correspondiente a los pasos h
1
, h
2
, h
3
y h
4
, donde
h
2
=
h
1
2
, h
3
=
h
2
2
, h
4
=
h
3
2
,
con la nalidad de obtener 6 cifras de precisi on.
Para ello, primero eliminamos los terminos de orden O(h
2
) de {x
j,1
}
N
j=0
y O((
h
2
)
2
) de
{x
j,2
}
N
j=0
, generando los valores
{z
j,1
} =
_
4x
j,2
x
j,1
3
_
70
Despues, se eliminan los terminos de orden O((
h
2
)
2
) y O((
h
4
)
2
) de {x
j,2
}
N
j=0
y {x
j,3
}
N
j=0
,
generando
{z
j,2
} =
_
4x
j,3
x
j,2
3
_
Se puede aplicar un segundo nivel de mejora a las sucesiones {z
j,1
} y {z
j,2
}, generando
una tercera mejora:
{z
j,3
} =
_
16z
j,2
z
j,1
15
_
Los valores correspondientes a {z
j,3
} ya tienen 6 cifras de precisi on. Como ejemplo, vease
la siguiente tabla
t
j
(4x
j,2
x
j,1
)/3
= z
j,1
(4x
j,3
x
j,2
)/3
= z
j,2
(16z
j,2
z
j,1
)/3
x(t
j
)
Sol. exacta
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
71
4.2. Otras condiciones de frontera.
Las condiciones de frontera pueden ser distintas. Concretamente, en lugar de tomar
x(a) = , podemos tener x

(a) y x

(b) en lugar de x(b).


Supongamos por ejemplo que:
_
x

(a) =
x

(b) =
o
_
x

(a) =
x(b) =
o
_
x(a) =
x

(b) =
Ahora x
0
y x
N
son tambien inc ognitas, luego debemos tener 2 ecuaciones m as en el sistema
resultante.
Supongamos que tenemos la condici on x

(a) = , podemos aproximar esta condici on


mediante:
x
1
x
1
2h
= (4.7)
donde x
1
es un punto cticio de la b usqueda de x
0
. Entonces, escribiendo la ecuaci on
aproximada por diferencias nitas para el nodo x
0
:
x
1
2x
0
+ x
1
h
2
= r
0
+ q
0
x
0
+ p
0
x
1
x
1
2h
que reordenamos como:
(1
1
2
hq
0
)x
1
+ (2 + h
2
p
0
)x
0
+ (1 +
1
2
hq
0
)x
1
= h
2
r
0
,
de donde, teniendo en cuenta que por (4.7)
x
1
= x
1
2h
La ecuaci on queda
(2 + h
2
p
0
)x
0
2x
1
= (2 + h q
0
)h h
2
r
0
. (4.8)
Razonando asimismo en el extremo b, tenemos que si imponemos x

(b) = la ecuaci on
resultante es
2x
N1
+ (2 + h
2
q
N
)x
N
= h
2
r
N
+ (2 h p
N
)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) inc ognitas con (N + 1) ecuaciones.
72
Apendice: Aproximaci on de la derivada de una funci on
a partir del desarrollo de Taylor
En esta secci on vamos a introducir aproximaciones de y

(x) e y

(x), a partir del desa-


rrollo de Taylor. Estas aproximaciones es la base de los metodos de diferencias nitas.
Consideramos en primer lugar el desarrollo de Taylor de tercer orden, para una funci on
y(x). Entonces,
y(t) = y(t
0
) + y

(t
0
)(t t
0
) + y

(t
0
)
(t t
0
)
2
2
+ y

(c)
(t t
0
)
3
6
de donde tomando t
0
= x y t = x + h, tenemos
y(x + h) = y(x) + y

(x)h + y

(x)
h
2
2
+ y

(c
1
)
h
3
6
Tomando ahora, t
0
= x, t = x h, obtenemos:
y(x h) = y(x) hy

(x) + y

(x)
h
2
2
y

(c
2
)
h
3
6
.
Restando ambas expresiones tenemos:
y(x + h) y(x h) = 2 h y

(x) +
h
3
6
(y

(c
1
) + y

(c
2
))
De esta ultima aproximaci on deducimos
y

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

(c
1
) + y

(c
2
))
Por lo tanto, tenemos una aproximaci on de segundo orden a la derivada a la funci on en
un punto:
y

(x)
y(x + h) y(x h)
2 h
Aproximaci on de y

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

(t
0
)(t t
0
) + y

(t
0
)
(t t
0
)
2
2
+ y

(t
0
)
(t t
0
)
3
6
+ y
iv
(c)
(t t
0
)
4
4!
Si t = x + h, t
0
= x
y(x + h) = y(x) + y

(x)h + y

(x)
h
2
2
+ y

(x)
h
3
6
+ y
iv
(c
1
)
h
4
4!
73
Si t = x h, t
0
= x
y(x + h) = y(x) y

(x)h + y

(x)
h
2
2
y

(x)
h
3
6
+ y
iv
(c
2
)
h
4
4!
Sumando ambas expresiones y despejando el valor de y

(x) tenemos:
y

(x) =
y(x + h) 2y(x) + y(x h)
h
2
+
h
2
4!
(y
iv
(c
1
) + y
iv
(c
2
))
Luego usamos la aproximaci on de segundo orden de y

(x):
y

(x)
y(x + h) 2y(x) + y(x h)
h
2
.
Metodos Numericos de Calculo.
Resumen Metodo de Elementos Finitos
En este texto se aplica el metodo de elementos nitos al problema de contorno con
una sola variable
_
y

(x) + q(x)y(x) = f(x), x [a, b]


y(a) = 0, y(b) = 0.
(1)
El metodo de los Elementos Finitos se basa en sustituir en la formulacion variacional
del problema la funcion incognita por una funcion interpolada y tomar como funciones
test las funciones base del espacio de interpolacion. A continuacion desarrollamos cada
uno de estos pasos. En la Etapa 1, se deduce la formulacion variacional del problema.
En la Etapa 2, se dene el espacio de interpolacion, las funciones base y la funcion
interpolada. En la Etapa 3 se aplica el metodo de los Elementos Finitos para deducir
un sistema lineal. Finalmente en la Etapa 4 reescribimos el sistema en forma matricial.
ETAPA 1 Formulacion variacional del problema.
Sea v(x) una funcion regular denida en [a, b] y que verica las condiciones de
contorno del problema, es decir,
v(a) = 0, v(b) = 0.
para buscar la formulacion variacional del problema basta multiplicar la ecuacion (1)
por v(x), integrar en [a, b] e integrar por partes. Tenemos entonces

_
b
a
y

(x)v

(x)dx +
_
b
a
q(x)y(x)v(x)dx =
_
b
a
f(x)v(x)dx. (2)
Donde hemos aplicado integracion por partes y las condiciones de contorno que verica
la funcion test (v(a) = v(b) = 0). Es decir,
_
b
a
y

(x)v(x)dx = y

(x)v(x)

b
a

_
b
a
y

(x)v

(x)dx =
_
b
a
y

(x)v

(x)dx
ETAPA 2 Interpolacion.
Fijamos un espacio de interpolacion. Consideramos en este resumen el espacio de
funciones lineales a trozos. A continuacion construimos una funcion lineal a trozos g(x)
que verique
g(x
k
) = y
k
para ciertos puntos x
k
del intervalo [a, b].
1
Paso 1 : Construimos una particion del intervalo [a, b]. Consideramos una particion
regular de paso h = (b a)/M, siendo M el n umero de subintervalos. Entonces,
x
k
= a + k h k = 0, . . . , M
Observamos que x
0
= a y x
M
= b.
Paso 2 : Denimos las funciones base g
k
(x): funciones lineales a trozo que valen 1 sobre
el nodo x
k
y cero en cualquier otro nodo. Entonces, la funcion viene denida por
g
k
(x) =
_

_
0 si x x
k1
(x x
k1
)/h si x
k1
x x
k
(x
k+1
x)/h si x
k
x x
k+1
0 si x x
k+1
(3)
Comprueba que efectivamente g
k
(x) verica que
g
k
(x
j
) =
_
1 si j = k
0 si j = k
Paso 3 : Denimos la funcion g(x) tal que g(x
k
) = y
k
k = 1, . . . , M 1. Basandonos en
las funciones base g
k
(x) es sencillo construir g(x) ya que g
k
(x) vale 1 en x = x
k
y 0 en cualquier otro nodo de la particion. Tenemos entonces
g(x) =
M1

k=1
y
k
g
k
(x). (4)
Observamos que el sumatorio es desde k = 1 hasta k = M 1, no se incluyen
los valores k = 0 y k = M. Esto es debido a las condiciones de contorno. El
problema sera aproximar los valores de la funcion incognica y(x) sobre los puntos
de la particion x
k
k = 0, . . . , M. A la aproximacion de y(x
k
) la denotamos por
y
k
. Pero observamos que x
0
= a y como y(a) es un dato entonces y
0
= y(a) = 0.
Analogamente x
M
= b, por lo que y
m
= y(b) = 0.
ETAPA 3 Reduccion a un sistema lineal de ecuaciones.
El metodo de los Elementos Finitos se basa en sustituir en la formulacion variacional
del problema (2) la funcion y(x) por una funcion que la aproxime en un espacio de
interpolacion g(x). Ademas, como funciones test v(x) se tomaran las funciones base
del espacio de interpolacion g
k
(x).
Es decir, en primer lugar sustituimos en la formulacion variacional (2) y(x) por
g(x):

_
b
a
g

(x)v

(x)dx +
_
b
a
q(x)g(x)v(x)dx =
_
b
a
f(x)v(x)dx. (5)
teniendo en cuenta la denicion de g(x) (4) tenemos

M1

k=1
y
k
_
b
a
g

k
(x)v

(x)dx +
M1

k=1
y
k
_
b
a
q(x)g
k
(x)v(x)dx =
_
b
a
f(x)v(x)dx. (6)
En segundo lugar, como funciones test tomamos v(x) = g
j
(x) para j = 1, . . . , M 1.
Tenemos entonces

M1

k=1
y
k
_
b
a
g

k
(x)g

j
(x)dx+
M1

k=1
y
k
_
b
a
q(x)g
k
(x)g
j
(x)dx =
_
b
a
f(x)g
j
(x)dx, j = 1, . . . , M1.
(7)
Observamos que (7) es un sistema lineal de M1 incognitas (y
1
, . . . , y
M1
) con M1
ecuaciones (j = 1, . . . , M 1).
ETAPA 4 Sistema lineal.
Comenzamos sacando factor com un en la incognita y
k
. Tenemos
M1

k=1
_

_
b
a
g

k
(x)g

j
(x)dx+
_
b
a
q(x)g
k
(x)g
j
(x)dx
_
y
k
=
_
b
a
f(x)g
j
(x)dx, j = 1, . . . , M1.
(8)
Por lo tanto, los elementos que denen la matriz del sistema son:

_
b
a
g

k
(x)g

j
(x)dx y
_
b
a
q(x)g
k
(x)g
j
(x)dx
Observamos que el producto g
k
g
j
o g

k
g

j
es casi siempre cero. En concreto es distinto
de cero solo para j = k 1, j = k y j = k + 1, debido a la denicion de g
k
(3). Por
lo tanto, en el sumatorio que aparece en (8) solo tres terminos son no nulos, los que
involucran a y
k1
, y
k
y y
k+1
. Por lo tanto, obtenemos que la matriz del sistema es
tridiagonal.
Denotemos
p
jk
=
_
b
a
g

j
(x)g

k
(x)dx, q
jk
=
_
b
a
q(x)g
j
(x)g
k
(x)dx, f
j
=
_
b
a
f(x)g
j
(x)dx.
Entonces tenemos el sistema lineal
Ay =

b,
donde el vector de incognitas es
y =
_
_
_
_
_
y
1
.
.
y
M1
_
_
_
_
_
La matriz del sistema es
A =
_
_
_
_
_
p
11
+ q
11
p
12
+ q
12
p
21
+ q
21
p
22
+ q
22
p
23
+ q
23
. . . . . . . . .
p
M1,M2
+ q
M1,M2
p
M1,M1
+ q
M1,M1
_
_
_
_
_
y el termino independiente es

b =
_
_
_
_
_
b
1
.
.
b
M1
_
_
_
_
_

Anda mungkin juga menyukai