Sie sind auf Seite 1von 12

10.

Resolucion numerica de problemas de


contorno
Eduardo Sainz de la Maza
7 de abril de 2011

Indice general
10.Problemas de contorno

10.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.2. El metodo de tiro simple . . . . . . . . . . . . . . . . . . . . .

10.3. Dificultades del metodo de tiro simple . . . . . . . . . . . . . .

10.4. El metodo de tiro m


ultiple . . . . . . . . . . . . . . . . . . . .

Captulo 10
Resoluci
on num
erica de
problemas de contorno
10.1.

Introducci
on

En este captulo estudiaremos el metodo de tiro para problemas de contorno. Se trata de aprovechar los metodos para aproximar problemas de valores iniciales, estudiados en este curso, para resolver problemas de contorno.
Transformaremos por tanto la resolucion de un problema de contorno en una
sucesion de resoluciones de problemas de valores iniciales, a los que podremos aplicar los metodos estudiados. Consideremos el sistema de m ecuaciones
diferenciales ordinarias
y 0 (x) = f (x, y(x))
(10.1)
donde f : D = [a, b] Rm 7 Rm . Es decir, y(x) y f (x, y(x)) tienen m
componentes que denotaremos con superndices cuando sea necesario
y = (y 1 , y 2 , . . . , y m )T ,

f = (f 1 , f 2 , . . . , f m )T ,

satisfaciendo unas condiciones de contorno de la forma


Ay(a) + By(b) = c

(10.2)

donde A y B son matrices m m y c Rm .


En la practica muchas veces estas condiciones de contorno aparecen separadas
A1 y(a) = c1 ,

B2 y(b) = c2

(10.3)

o tambien como una relacion no lineal de la forma


r(y(a), y(b)) = 0
2

(10.4)

donde r es una funcion vectorial de 2m variables

r1 (u1 , . . . , um , v1 . . . , vm )

..
r(u, v) =

(10.5)

rm (u1 , . . . , um , v1 . . . , vm ).
No disponemos de una teora general de resultados de existencia y unicidad,
pudiendo tener varias soluciones o ninguna en un problema de contorno.
Ejemplo 10.1. La ecuacion diferencial de segundo orden
w00 + w = 0

(10.6)

podemos escribirla como un sistema de dos ecuaciones de primer orden, tomando y1 (x) = w(x), y2 (x) = w0 (x)

 0 
y2
y1
=
.
(10.7)
y1
y2
Tiene la solucion general
w(x) = c1 sin x + c2 cos x ,

c1 , c2 arbitrarias.

Si imponemos las condiciones de contorno

w( ) = 1
2

w(0) = 0 ,
existe una u
nica solucion w(x) = sin x.

Cuando ponemos las condiciones de contorno


w(0) = 0 ,

w() = 0

existen infinitas soluciones w(x) = c sin x.


Cuando ponemos las condiciones de contorno
w(0) = 0 ,

w() = 1

entonces no existe solucion.

(10.8)

10.2.

El m
etodo de tiro simple

Analizaremos el metodo de tiro simple con un ejemplo. Consideremos el problema de contorno dado por la siguiente ecuacion de segundo orden que
sabemos escribir como un sistema de dos ecuaciones de primer orden
00
w (x) = f (x, w, w0 )
w(a) =
(10.9)

w(b) =
Le podemos asociar el problema de valores iniciales
00
w (x) = f (x, w, w0 )
w(a) =
0
w (a) = s

(10.10)

que tiene una u


nica solucion w(x) w(x; s) que depende de la condicion
inicial s para w0 (a). Este problema sabemos resolverlo con los metodos estudiados en este curso. Pero para un valor dado de s la solucion del problema
de valores iniciales 10.10 no tiene por que satisfacer la condicion de contorno
w(b) = del problema de contorno 10.9. Buscamos por tanto, el valor adecuado del parametro s = s para el problema 10.10 de manera que su solucion
cumpla la condicion de contorno w(b; s) = . En otras palabras tenemos que
encontrar un cero s de la ecuacion F (s) := w(b; s) . Para cada valor de
s podemos evaluar F (s) resolviendo el problema de valores iniciales 10.10 y
evaluando su solucion en x = b.
Para encontrar un cero s de F (s) podemos usar cualquier metodo de resolucion de ecuaciones no lineales. Si pensamos por ejemplo en el metodo de
biseccion, elegimos dos valures s(0) y s(1) tales que
F (s(0) ) > 0 ,

F (s(1) ) < 0)

y tomamos s(2) como el punto medio de s(0) y s(1) , quedandonos con el intervalo de la izquierda o de la derecha de manera que F (s) cambie de signo
en los extremos del nuevo intervalo. Repitiendo este proceso hasta que tengamos una buena aproximacion de la raz. Aqu solo se usan evaluaciones de
F (s) lo que significa resolver un problema de valores iniciales 10.10 en cada
iteracion.
Si queremos usar un metodo de Newton para resolver la ecuacion F (s) = 0,
entonces empezando de una aproximacion inicial s(0) calculamos los valores
s(i+1) = s(i)
4

F (s(i) )
.
F 0 (s(i) )

(10.11)

Figura 10.1: Metodo de tiro simple

Obtenemos w(b; s(i) ) y por tanto F (s(i) ) resolviendo el problema de valores


iniciales
00
w (x) = f (x, w, w0 )
w(a) =
(10.12)
0
w (a) = s(i)
El valor de la derivada de F
F 0 (s) =

w(b; s) ,
s

para s = s(i) puede obtenerse resolviendo un segundo problema de valores


iniciales como mostramos a continuacion. Denotemos por v(x) la funcion

w(x; s) ,
s
que satisface el problema de valores iniciales
00
v (x) = fw (x, w, w0 )v(x) + fw0 (x, w, w0 )v 0 (x)
v(a) = 0
0
v (a) = 1
v(x; s) =

(10.13)

que tambien sabemos resolver.


Si no queremos resolver este segundo problema de valores iniciales porque
puede ser costoso evaluar las derivadas parciales fw y fw0 , podemos aproximar
F 0 (s(i) ) por diferencias
F (s(i) + s(i) ) F (s(i) )
F (s ) :=
,
s(i)
(i)

(10.14)

eligiendo adecuadamente
el incremento s(i) . Puede servir de referencia to (i)
(i)
mar s = s , donde es la precision de la maquina.
En el caso de condiciones de contorno generales 10.4, es decir para el problema
de contorno general

y 0 (x) = f (x, y)
(10.15)
r(y(a), y(b)) = 0
definidos como en 10.1 y 10.4, le asociamos el problema de valores iniciales
 0
y (x) = f (x, y)
(10.16)
y(a) = s
y buscamos el valor del parametro s para que su solucion y(x) y(x; s)
satisfaga la condicion de contorno
r(y(a; s), y(b; s)) r(s, y(b; s)) = 0 .

(10.17)

Tenemos pues que encontrar una solucion s = [1 , 2 , . . . , m ]T de la ecuacion


F (s) = 0, donde
F (s) := r(s, y(b; s)) .
En el caso de emplear el metodo de Newton
s(i+1) = s(i) DF (s(i) )1 F (s(i) ).

(10.18)

En cada iteracion hay que calcular F (s(i) ), la matriz Jacobiana




Fj
(i)
DF (s ) =
,
k s=s(i)
y la solucion d(i) := s(i) s(i+1) del sistema lineal DF (s(i) )d(i) = F (s(i) ).
Para el calculo de F (s(i) ) = r(s(i) , y(b; s(i) )) hay que resolver el problema de
valores iniciales 10.16 para s = s(i) y evaluar en x = b, es decir y(b; s(i) ).
Para el calculo de DF (s(i) ) observamos que
DF (s) = Du r(s, y(b; s)) + Dv r(s, y(b; s)) Z(b; s) ,
con las matrices

ri (u, v)
,
Du r(u, v) =
uj


ri (u, v)
Dv r(u, v) =
,
vj


yi (b; s)
Z(b; s) = Ds y(b; s) =
.
j


Tambien en este caso se puede evitar el calculo de derivadas aproximandolas


por diferencias, con lo que solo hay que evaluar F (s) = r(s, y(b; s)), resolviendo el correspondiente problema de valores iniciales.
6

10.3.

Dificultades del m
etodo de tiro simple

En el metodo de tiro simple transformamos el problema de contorno


y 0 (x) = f (x, y) ,

r(y(a), y(b)) = 0

en un problema de valores iniciales


y 0 (x) = f (x, y) ,

y(a) = s .

Aqu solo obtenemos el valor de la solucion en un punto x = x0 = a. En la


practica cuando queremos emplear esta solucion y(x) = y(x; s) para evaluar
la solucion en otros puntos puede ocurrir que esta solucion depende muy
sensiblemente del valor del parametro s. Veamos esto con un ejemplo.
Ejemplo 10.2. Sea el sistema lineal de ecuaciones diferenciales
 
 0 
0 1 y1
y1
=
110 1 y2
y2

(10.19)

que tiene la solucion general






 
y1 (x)
1
10x
11x 1
y(x) =
= c1 e
+ c2 e
,
y2 (x)
10
11
con c1 y c2 arbitrarias.
Sea y(x; s) la solucion de 10.19 satisfaciendo las condiciones iniciales
 
s
y(0) = s = 1 .
s2
Se verifica que


 
11s1 s2 10x 1
10s1 + s2 11x 1
e
+
e
.
y(x; s) =
10
11
21
21

(10.20)

Si queremos ahora obtener la solucion del problema de contorno consistente


en el sistema 10.19 con las condiciones de contorno
y1 (0) = 1 ,

y1 (10) = 1 ,

que tiene como solucion exacta




 
e110 1 10x 1
1 e100 11x 1
y(x) = 110
e
+ 110
e
.
10
11
e e100
e e100
7

El valor inicial s = y(0) que se corresponde con esta solucion exacta es

1
s =
21(1 e100 ) .
10 + 110
e e100
Si calculamos s en un ordenador con 10 dgitos significativos obtenemos una
aproximacion s de s de la forma


1(1 + 1 )
s =
,
10(1 + 2 )
con |i | = 1010 . Por ejemplo tomando 1 = 0 y 2 = 1010 podramos
haber obtenido la aproximacion


1
s =
,
10 + 109
pero por 10.20 tenemos que
y1 (10; s)

109 110
e 2.8 1037 ,
21

en vez de tener y1 (10) = 1. Este ejemplo muestra como la dependencia de


la solucion de las condiciones iniciales puede aumentar los errores de forma
desmesurada. En efecto sabemos que en general se verifica
ky(x; s1 ) y(x; s2 )k ks1 s2 keL|xa| .
Cuando L|b a| es grande, como ocurre en el caso anterior, como L no
podemos cambiarlo, la u
nica forma de reducir el exponente de la exponencial
es reducir el intervalo de trabajo [a, b] en el que resolvemos el problema de
valores iniciales para que |x a| sea peque
no. Esto motiva el metodo de tiro
m
ultiple que estudiamos a continuacion.

10.4.

El m
etodo de tiro m
ultiple

En el metodo de tiro m
ultiple los valores de
sk = y(xk ) ,

k = 1, 2, . . . , n

de la solucion del problema de contorno


y 0 (x) = f (x, y(x)) ,
8

r(y(a), y(b)) = 0

( xn , sn )
(xn1, sn1)

( x3 , s3 )

( x1 , s1 )

a = x1

( x2 , s 2 )

x2

x3

x n 1

b = xn

Figura 10.2: Metodo de tiro m


ultiple

en varios puntos
a = x1 < x2 < < xn = b
se calculan simultaneamente de forma iterativa. Para ello denotemos por
y(x; xk , sk ) la solucion del problema de valores iniciales
y 0 = f (x, y) ,

y(xk ) = sk .

El problema reside ahora en determinar el valor adecuado de los vectores


sk , k = 1, 2, . . . , n de manera que la funcion definida a trozos por
y(x) := y(x; xk , sk ) para x [xk , xk+1 ) ,
y(b) := sn

k = 1, 2, . . . , n 1

sea continua en todo [a, b], solucion de la ecuacion y 0 = f (x, y) y que ademas
satisfaga las condiciones de contorno r(y(a), y(b)) = 0.
Tenemos por tanto que cumplir m n condiciones
y(xk+1 ; xk , sk ) = sk+1 ,
r(s1 , sn ) = 0
9

k = 1, 2, . . . , n 1

en las m n incognitas kj , j = 1, 2, . . . , m, k = 1, 2, . . . , n, es decir en las


componentes de los sk
sk = [k1 , k2 , . . . , km ]T .
Todas juntas representan un sistema de ecuaciones de la forma

F1 (s1 , s2 )
y(x2 ; x1 , s1 ) s2
F2 (s2 , s3 )
y(x3 ; x2 , s2 ) s3

.
.
..
..
F (s) :=
:=
=0

Fn1 (sn1 , sn )
y(xn ; xn1 , sn1 ) sn
Fn (s1 , sn )
r(s1 , sn )

(10.21)

en las incognitas

s1
..
s=..
sn
Podemos resolverlo iterativamente con el metodo de Newton
s(i+1) = s(i) [DF (s(i) )]1 F (s(i) ) ,

i = 0, 1, . . .

(10.22)

o bien por alguna de sus variantes de metodos de Newton modificados.


Cada evaluacion de F (s(i) ) para s = s(i) supone evaluar y(xk+1 ; xk , sk ) para
k = 1, . . . , n 1 resolviendo los problemas de valores iniciales
y 0 = f (x, y) ,

y(xk ) = sk

y calcular F (s) con la expresion 10.21. La matriz Jacobiana


DF (s) = [Dsk Fi (s)]i,k=1,...,n
tiene, debido a la estructura especial de los Fi en 10.21, una estructura por
bloques

G1 I 0
0
0
0 G2 I
0
0

0
G

0
0
3

DF (s) = ..
..
.. . .
..
..
.
.
.
.
.
.

0
0
0 Gn1 I
A 0
0
0
B

10

donde las matrices m m A, B, Gk , k = 1, . . . , n 1 son las respectivas


matrices Jacobianas
Gk : Dsk Fk (s) Dsk y(xk+1 ; xk , sk ) ,
B : Dsn Fn (s) Dsn r(s1 , sn )
A : Ds1 Fn (s) Ds1 r(s1 , sn ) .

k = 1, . . . , n 1

Al igual que en metodo de tipo simple se pueden reemplazar las derivadas


de estas matrices por cocientes incrementales, lo que supondra resolver adicionalmente (n 1) m problemas de valores iniciales.

11

Das könnte Ihnen auch gefallen