Professional Documents
Culture Documents
Apuntes de la asignatura
METODOS
NUMERICOS
DE CALCULO
Tercer curso de Arquitectura.
Indice General
1 Introducci
on al C
alculo Num
erico
1.1
1.2
1.1.1
1.1.2
1.1.3
Condicionamiento de un problema: . . . . . . . . . . . . . . . . . .
1.1.4
Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1
Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2
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
2.3
Metodos directos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4
2.3.1
. . 15
2.3.2
El metodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3
El metodo de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . 22
Metodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1
2.4.2
2.4.3
Metodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.4
Metodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.5
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
3.5
53
Resolucion numerica . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.2
Problemas de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5.1
Caso lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4 El m
etodo de Diferencias Finitas
67
4.1
4.2
77
5.1
Ecuaciones elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2
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
- requerimientos de memoria
eficiencia
- tiempo de calculo (rapidez)
1.1.1
Introducci
on al estudio del error
errores de
entrada
(en medidas)
errores de
+
almacenamiento
{z
|
a analizar
errores de
algoritmo
errores
=
de
salida
5
Desde el punto de vista de las aplicaciones, resulta mucho mas relevante el
error relativo
z ze
1.1.2
Notaci
on decimal en coma flotante
fraccion
exponente.
61.845 + 1
6184.5 1
6.1823 + 2
que significa:
618.45 100
61.845 10
61840 5 101
6.1845 102
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:
7x + 5x + 6x + 5x = 23,
1
7x + 5x + 9x + 10x = 31
1
x2 = 1
=
x =1
3
x4 = 1
Sistema 2:
Sistema 3:
7x + 5x + 6x + 5x = 22.9,
1
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
de un algoritmo para
un problema concreto
1.2
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
k~v k2 =
1+1+9=
11,
k~v k = max{1, 1, 3} = 3.
~v Rn .
1.2.2
R,
A Mn
A, B Mn .
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.
1jn
b)
k|Ak|2 =
n
X
|ai,j |
i=1
p
p
(A A) = (A A ) = k|A k|2
10
c)
k|Ak| = max
1in
n
X
|ai,j |
j=1
A= 0
0
2
1 1
2 .
0
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
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
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
A(u) = b
1
u = A (u)
(2.1)
kuk
kbk
(2.2)
kbk
kuk
k|A|kk|A1 k|
,
kuk
kbk
(2.3)
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
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|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)
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
1+
2
!
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
2.2
donde eb = M b.
M
etodos directos e iterativos
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
2.3.1
1 j n,
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:
...
.
...
.
...
.
a u = b
n,n n
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
I
P =
si a1 1 6= 0
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
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.
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
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
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 =
!
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
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
13 1 2 | 1
0 2 1 | 2
0
0
13
0
0
1
,
22
0
1
31
.
33
13
0
0
1
2
z=
13 1
2
|
2
1
|
0
2 | 0
13
97
,y =
66
97
,y =
66
1
,
22
z=
31
.
33
22
2.3.3
El m
etodo de Cholesky
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.
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
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}
(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+
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|
v =
1
2
, 1 2 , e1/k
3
k
k
T
R3
2.4.2
M
etodos de Jacobi, Gauss-Seidel y relajaci
on
(M N ) u = b
Mu=Nu+b
27
(
u = B u + c con
B = M 1 N
c = M 1 b
k N {0}
(2.7)
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
)
.
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
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
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
X
|ai,j |,
i = 1, . . . , n.
j=1 j6=i
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
N =F
n
0
u R
k N {0}
o equivalentemente
n
0
u R
(D E) uk+1 = F uk + b k N {0}
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
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
v Rn {0}
1 2 2
A= 1 1
2 2
1
1
1 1
2
1 1 2
e=
A
2
32
Se consideran las sucesiones de matrices
An = An1 (I + En + En2 ),
En = I A An1
n1
n+
n+
2.4.5
k N {0}.
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
(3.1)
con y(t0 ) = y0
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
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
con f lipschitziana.
y(t0 ) = y0
k = 0, 1, . . . , M,
h=
ba
.
M
(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.
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
N
umero iteraciones M
yM y(5)
1/12
60
1/360
1800
60
= 1645.31
1000 1 + 0.1
12
0.1 1800
= 1648.61
100 1 + 360
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)
k = 0, 1, . . . , M.
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
42
Figura 3.2: Aproximacion de Euler con paso h = 1 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
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
e2
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
h0
M
1
X
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
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
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(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
t0
t1
y(t1 ) = y(t0 ) +
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 ) +
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 ),
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
{(tk , yk )}N
k=0
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:
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
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
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
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
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
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
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 )
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)
y(0) = y0
es la sucesi
on de aproximaciones generada por el
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
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
x(t0 ) = x0
con
y(t ) = y
0
0
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:
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
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:
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.
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
g1 = g(t0 , x0 , y0 ) = g(0, 6, 4) = 26
y0 +
h
2
= 4.26
x0 + h2 f2 = 6.1466
y0 + h2 g2 = 4.2694
x0 + h f3 = 6.293708
y0 + h g3 = 4.539572
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
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
3.4.2
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
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
x(0) = 3,
x0 (0) = 5.
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
59
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
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
61
3.5
Problemas de contorno
Nota 16 Observemos que se ha usado que y = x0 (t) para la notacion del teorema anterior.
3.5.1
Caso lineal
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)
(P b2)
u0 (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) = ,
u(b)
v(t).
v(b)
2
2t 0
x
(t)
x(t) + 1
x00 (t) =
1 + t2
1 + t2
(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
64
v 00 (t) =
(P b2)
2t 0
2
v (t)
v(t)
2
1+t
1 + t2
x(0) = 0,
x0 (0) = 1
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
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
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) = .
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)
(4.5)
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.
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
.
70
Ejemplo: Vamos a resolver el problema de contorno
2
2t 0
00
{xj,2 }N
j=0 ,
{xj,3 }N
j=0 ,
{xj,4 }N
j=0
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
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
{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
= 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
x(tj )
Sol. exacta
73
4.2
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)
(4.8)
(4.9)
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
00
h2
h3
y 000 (c2 ) .
2
6
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
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!
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
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
79
u(x, 1) = f2 (x) 0 x 1
u(0, y) = f3 (y),
u(1, y) = f4 (y) 0 y 1
5.1
Ecuaciones elpticas
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
uxx + uyy = 0 en
(5.1)
u(x, y) = g(x, y) en
u continua en
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
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
uyy (x, y) =
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 ),
1 i, j N 1
5.2.1
Tratamiento de la condici
on de contorno de tipo Neumann
83
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)
(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