Sie sind auf Seite 1von 25

MTODOS MATEMTICOS (Curso 2011-2012)

Tercer Curso de Ingeniera Aeronutica


Departamento de Matemtica Aplicada II. Universidad de Sevilla
LECCIN 8: OTROS MTODOS NUMRICOS PARA
ECUACIONES DIFERENCIALES ORDINARIAS. PROBLEMAS
DE CONTORNO.
ndice
1. Otros mtodos: Mtodos lineales multipaso 1
1.1. Mtodos de Adams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Frmulas de diferenciacin regresiva (BDF) . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Otros mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Problemas sti 8
3. Otras cuestiones de orden prctico 12
4. El mtodo del disparo para problemas de contorno 13
4.1. Cuestiones de repaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. El mtodo del disparo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5. Cuestiones y problemas 17
1. Otros mtodos: Mtodos lineales multipaso
De los llamados mtodos lineales multipaso, slamente haremos unos breves comentarios, pues
por un lado, el desarrollo en las ltimas dcadas de los pares encajados de mtodos Runge-Kutta han
hecho que este tipo de mtodos pierdan mucha competitividad y, por otro, un estudio ms detallado
aporta poco en el orden prctico a lo que se haya podido aprender en la secciones anteriores. A su
vez, estos mtodos estn muy bien documentados en multitud de libros de texto. Debe saber sin
embargo que para algunos problemas muy determinados y concretos, presentan ventajas que, a da
de hoy, ningn mtodo Runge-Kutta ha conseguido igualar. Lo particular de estas situaciones no
justica, en todo caso, que vayamos ms alla de la descripcin somera que haremos en esta seccin.
1.1. Mtodos de Adams
Son anteriores a los mtodos Runge-Kutta y se deben a los britnicos Adams, Bashforth (1883,
1885) y Moulton (1926).
Recordemos que dados el PVI
y

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


y(t
0
) = y
0
,
_
, t [t
0
, t
f
]. (1)
1
y una particin
t
0
< t
1
< . . . < t
N
= t
f
,
del intervalo [t
0
, t
f
], la solucin y satisface la igualdad
y(t
n+1
) = y(t
n
) +
_
t
n+1
tn
y

(t) dt =
_
t
n+1
tn
f(t, y(t)) dt. (2)
Los mtodos Runge-Kutta aproximan esta ltima integral mediante una frmula de cuadratura con
nodos en el intervalo [t
0
, t
f
] (y aproximan los valores del integrando con las etapas k
i
). Los mtodos
de Adams aproximan dicha integral con una frmula de cuadratura basada en los
nodos de cuadratura t
nk+1
, . . . , t
n
o t
nk+1
, . . . , t
n
, t
n+1
.
donde k es el nmero de pasos del mtodo. Para ello, obviamente se requiere haber obtenido (con
otro mtodo) esas k aproximaciones anteriores. Si P

n,k
el polinomio de grado k 1 que interpola
a los k valores del campo f(t, y) en las aproximaciones numricas (t
n
, y
n
), . . . , (t
nk+1
, y
nk+1
), esto
es,
P

n,k
(t) =
k1

j=0
_
j1

l=0
(t t
nl
)
_
f[t
n
, . . . , t
nj
],
donde f[t
n
, . . . , t
nj
] son las diferencias divididas denidas recurrentemente como
f[t
nj
] = f(t
nj
, y
nj
), j = 0, . . . , k 1,
f[t
n
, . . . , t
nj
] =
f[t
n
, . . . , t
nj+1
] f[t
n1
, . . . , t
nj
]
t
n
t
nj
, j = 1, 2, . . . .
el correspondiente mtodo de k-pasos es entonces
y
n+1
= y
n
+
_
t
n+1
tn
P

n,k
(t) dt. (3)
y se conoce como mtodo de Adams explcito de k pasos (ms conocido tambin como mtodo
Adams-Bashforth de k pasos, aunque no se deba a Bashforth).
Tambin podemos considerar el polinomio de grado k que interpola k valores del campo f(t, y)
en las aproximaciones numricas (t
n
, y
n
), . . . , (t
nk+1
, y
nk+1
) anteriores, junto con el el valor de f
en (t
n+1
, y
n+1
), aunque no lo conozcamos,
P
n,k
(t) = P

n,k
+
_
k1

l=0
(t t
nl
)
_
f[t
n+1
, t
n
, . . . , t
nk+1
].
El correspondiente mtodo numrico ser entonces
y
n+1
h
n

n,k
f(t
n+1
, y
n+1
) = y
n
+
_
t
n+1
tn
P

n,k
(t) dt
+ f
(0)
[t
n+1
, t
n
, . . . , t
nk+1
]
_
t
n+1
tn
k1

l=0
(t t
nl
) dt, (4)
2
donde

n,k
=
1
h
n
_
t
n+1
tn
k1

l=0
t t
nl
t
n+1
t
nl
dt,
y f
(0)
[t
n+1
, t
n
, . . . , t
nk+1
] es la diferencia dividida que se obtiene cuando se cambia y
n+1
por 0.
Observe que en (4), la incgnita y
n+1
aparece a la izquierda del signo igual, y que lo que hay a la
derecha slamente depende de los valores conocidos y
n
, . . . , y
nk+1
. El correspondiente mtodo se
conoce como mtodo de Adams implcito de k pasos, o tambin de Adams-Moulton de k pasos.
Observe que para obtener el valor de y
n+1
hay que resolver la ecuacin (o sistema de ecuaciones)
dado por la igualdad en (4). En la prctica esto se hace por iteracin de punto jo, procedimiento
que converger siempre que h
n
sea sucientemente pequeo.
Debe saber lo siguiente.
El mtodo de Adams explcito de un paso es el mtodo de Euler
y
n+1
y
n
= h
n
f(t
n
, y
n
).
El mtodo de Adams implcito de un paso se conoce como la regla de los trapecios (iqual que
la frmula de cuadratura) y es de la fomra
y
n+1
y
n
=
h
n
2
_
f(t
n
, y
n
) + f(t
n+1
, y
n+1
)
_
.
El mtodo de Adams explcito de k pasos es convergente de orden k, y el implcito de k pasos
de orden k + 1 (para recordarlo, puede Vd. pensar en los casos k = 1).
En la prctica se suelen emplear ambos mtodos juntos, en lo que se conoce como pares
predictor-corrector. Se utiliza el mtodo explcito para obtener un valor de y

n+1
que se toma
como iterante inicial en la iteracin de punto jo necesaria para encontrar el el valor de y
n+1
del mtodo implcito.
Existen procedimientos en los pares predictor-corrector para estimar el error local, con lo que
generalmente se emplean con paso variable.
De hecho, se pueden estimar los errores locales correspondientes a los mtodos de k 1 pasos
y de k +1 pasos, por lo que los mtodos de Adams se emplean en algortimos de paso y orden
variables.
El comando de Matlab que utiliza los mtodos de Adams con paso y orden variable es
ode113. Empezando con k = 1, puede llegar a utilizar frmulas de hasta k = 12 pasos.
1.2. Frmulas de diferenciacin regresiva (BDF)
Las frmulas de diferenciacin regresiva (en ingls backward dierentiation formulae (BDF)),
son los mtodos multipaso que se utilizan para problemas sti que explicaremos en la seccin
siguiente. Datan de 1952, y fueron inventadas por Curtiss y Hirschfelder.
Se denen como sigue. Supongamos conocidas las k aproximaciones y
nk+1
, . . . , y
n
. Para obtener
la aproximacin y
n+1
con la frmula BDF de k pasos, se impone la condicin de que el polinomio Q
n,k
3
de grado k que interpola a los k+1 pares (t
nk+1
, y
nk+1
), . . . , (t
n+1
, y
n+1
) (inclumos el desconocido
y
n+1
) satisfaga la ecuacin diferencial en t
n+1
, esto es
Q

n,k
(t
n+1
) = f(t
n+1
, Q
n,k
(t
n+1
)) = f(t
n+1
, y
n+1
).
El polinomio Q
n,k
, escrito en forma de Newton es
Q
n,k
(t) =
k

j=0
_
j1

l=0
(t t
n+1l
)
_
y[t
n+1
, . . . , t
n+1j
],
donde y[t
n+1
, . . . , t
n+1j
] es la diferencia dividida basada en las aproximaciones y
n+1
, . . . , y
n+1j
,
esto es
y[t
nj
] = y
nj
, j = 1, 0, 1, . . . , k 1,
y[t
n+1
, . . . , t
nj+1
] =
y[t
n+1
, . . . , t
nj+2
] y[t
n
, . . . , t
nj+1
]
t
n+1
t
nj+1
, j = 1, 2, . . . .
Derivando Q
n,k
, evaluando en t
n+1
, igualando a f(t
n+1
, y
n+1
) y multiplicando por h
n
= t
n+1
t
n
obtenemos la expresin de la frmula BDF de k pasos
h
n
k

j=1
_
j1

l=1
(t
n+1
t
n+1l
)
_
y[t
n+1
, . . . , t
n+1j
] = h
n
f(t
n+1
, y
n+1
). (5)
Si dejamos a un lado del signo igual la incgnita y
n+1
y al otro el resto, tenemos que el mtodo
se escribe como

n,k
y
n+1
h
n
f(t
n+1
, y
n+1
) = g
n,k
(y
n
, . . . , y
nk+1
), (6)
donde, obviamente,

n,k
=
k

j=1
h
n
t
n+1
t
n+1j
y
g
n,k
(y
n
, . . . , y
n1
) = h
n
k

j=1
_
j1

l=1
(t
n+1
t
n+1l
)
_
y
(0)
[t
n+1
, . . . , t
n+1j
],
donde, igual que en el apartado anterior, y
(0)
[t
n+1
, . . . , t
n+1j
] denota la diferencia dividida que se
obtiene al cambiar y
n+1
por 0.
Para encontrar y
n+1
se resuelve la ecuacin en (6) siempre por el mtodo de Newton. Esto es
partiendo de una aproximacin incial y
[0]
n+1
(normalmente obtenida por extrapolacin de los valores
y
n
, . . . , y
nk+1
), se obtienen aproximaciones sucesivas y
[]
n+1
,
y
[+1]
n+1
= y
[]
n+1
+ x
[]
, = 0, 1, 2, . . . ,
donde x
[]
es la solucin del sistema lineal
_

n,k
I h
n
f
y
_
x
[]
=
_

n,k
y
[]
n+1
h
n
f(t
n+1
, y
[]
n+1
) g
n,k
(y
n
, . . . , y
nk+1
)
_
, (7)
4
siendo f
y
la matriz jacobiana
f
y
=
_

_
f
1
y
1
. . .
f
1
y
m
.
.
.
.
.
.
f
m
y
1
. . .
f
m
y
m
_

_
,
evaluada en (t
n+1
, y
[]
n+1
).
Por tanto, para poder utilizar el software que emplea este mtodo, no solo hay que proporcionar
el segundo miembro f, sino tambien la matriz diferencial f
y
.
Debe saber lo siguiente.
La frmula BDF de k = 1 paso, es el mtodo de Euler implcito
y
n+1
y
n
= h
n
f(t
n+1
, y
n+1
).
Siempre que k 6, la frmula BDF de k pasos es convergente de orden k.
Igual que los mtodos de Adams, se utilizan estrategias de orden y paso variables.
Las frmulas BDF son en general menos ecientes que los mtodos de Adams (y por supuesto,
que los pares encajados modernos de mtodos RK) para problemas no sti. Por eso, slo se
emplean en problemas sti.
El comando de Matlab que utiliza estas frmulas es ode15s. En realidad, utiliza unas fr-
mulas similares a las BDF, debidas a Klopfestein y Reiher en 1971 y 1978, denominadas
NDF
1
(del ingls, numerical dierentiation formulae") y supuestamente ms ecientes que
las frmulas BDF. Dado que a da de hoy esa mejor eciencia no es maniestamente clara, el
comando ode15s permite utilizar las frmulas BDF siempre que inicialize la opcin BDF con
el valor on mediante el comando odeset.
Ejemplo 1 Retomemos el sistema del Brusselator visto al principio de la leccin,
u

= A + u
2
v (B + 1)u,
v

= Bu u
2
v
(8)
con A = 1 y B = 3, en el intervalo [0, 20], y condicin inicial
y
0
=
_
u(0)
v(0)
_
=
_
1,5
3
_
. (9)
Si abreviamos (8) como y

= f(t, y) (con y = [u, v]


T
) la funcin f del segundo miembro es obviamente
f(t, y) = f(u, v) =
_
f
1
(u, v),
f
2
(u, v)
_
=
_
A + u
2
v (B + 1)u,
Bu u
2
v
_
, y =
_
u
v
_
,
1
Puede ver una descripcin de las frmulas NDF en [7]
5
y la matriz jacobiana f
y
es
f
y
=
_
f
1
u
f
1
v
f
2
u
f
2
v
_
=
_
2uv (B + 1) u
2
B 2uv u
2
_
.
Si queremos emplear el comando ode15s debemos elaborar una funcin que dados t e y devuelva
esta matriz jacobiana. Para los valores de A y B empleados hasta ahora, A = 1 y B = 3, dicha
funcin es
function J=brussjac(t,y)
% Matriz jacobiana del segundo miembro del Brusselator
p=2*y(2)*y(1);q=y(1)*y(1);
J=[p-4, q; 3-p, -q];
Para utilizar las frmulas BDF, en las correspondientes opciones debemos indicar el nombre del
chero que contiene esta funcin (en nuestro caso brussjac.m) sin la extensin .m. Inicializamos
las opciones para utilizar ode15s,
opbdf=odeset(AbsTol,1e-8,RelTol,1e-8,Stats,on)
opbdf=odeset(opbdf,BDF,on,Jacobian,@brussjac)
En la primera llamada al comando odeset hemos inicializado opciones ya conocidas, y en la segunda
hemos indicado que ode15s debe utilizar las frmulas BDF inicializando con on la opcin BDF,
y hemos indicado que la funcin que calcula la matriz jacobiana lleva por nombre brussjac.m.
Ejecutamos
[Tb8,Yb8]=ode15s(@bruss,tiempos,[1.5 3],opbdf)
y nos responde
901 successful steps
40 failed attempts
1508 function evaluations
1 partial derivatives
123 LU decompositions
1506 solutions of linear systems
Podemos observar lo siguiente.
En los 901+40 pasos que ha dado y ha aceptado o rechazado, ha resuelto 1506 sistemas
lineales. Tal y como sealamos anteriormente, para dar cada paso debe resolver un sistema
de ecuaciones no lineales por el mtodo de Newton, resolviendo los sistemas lineales en (7).
Vemos que en la mitad de los pasos slo ha efectuado una iteracin.
En los 901+40 pasos y rechazos, slo ha efectuado 123 descomposiciones LU. Esto es debido
a que la matriz en el sistema (7), una vez hecha su factorizacin LU (que recordemos tiene un
costo que crece como el cubo de la dimensin de la matriz), aprovecha dicha descomposicin
no slo en otras iteraciones del mtodo de Newton, sino en otros pasos.
6
La razn de los ahorros en iteraciones del mtodo de Newton y de factorizaciones LU se debe
a que los iterantes iniciales y
[0]
n+1
para el mtodo de Newton obtenidos por extrapolacin son
tan correctos, que una sla iteracin del mtodo de Newton y con una matriz que no es la
correcta es suciente para encontrar el valor correcto de y
n+1
.
El nmero de pasos, 901, es muy superior al del par encajado DOPRI54 para las mismas
tolerancias, que vimos en secciones anteriores. Esto es, el mtodo DOPRI54 puede dar pasos
considerablemente mayores que las frmulas BDF para una misma tolerancia.
El grco en la Fig. 1, donde se mide la eciencia relativa de ambos mtodos, muestra que, para
alcanzar un nivel de precisin determinado, las frmulas BDF son un promedio de tres veces ms
caras que el mtodo DOPRI54. Aunque se trata slamente del ejemplo que venimos tratando, esto
10
1
10
0
10
1
10
12
10
10
10
8
10
6
10
4
10
2
cputime
e
r
r
o
r
BDF
DOPRI54
Figura 1: Eciencia de los mtodos DOPRI54 y frmulas BDF en problema (89)
es, el problema (89) asociado al Brusselator, esta situacin es tpica y se repite en otros problemas,
salvo que stos, como veremos en la seccin siguitente, sean sti.
1.3. Otros mtodos
Dado que los puede encontrar en ciertos contextos determinados as como en diversos libros
de texto, comentamos aqu algunos mtodos lineales multipaso que no pertenecen a las familias
descritas en los apartados anteriores. En lo que sigue y por brevedad, denotaremos
f
n
= f(t
n
, y
n
), n = 0, 1, . . . N.
7
Para los mtodos que siguen a continuacin, slo consideraremos el caso
h
n
= h, n = 0, 1, . . . , N 1.
1. Regla de Simpson, Es de la forma
y
n+1
y
n1
=
h
3
(f
n+1
+ 4f
n
+ f
n1
), n = 1, 2, . . . , N 1,
y es convergente de orden 4. Note que debido a su alto orden el valor de arranque y
1
debe
calcularse con un orden similar (por ejemplo con un mtodo Runge-Kutta).
Proviene de aplicar la regla de Simpson en la igualdad
y(t
n
+ h) y(t
n
h) =
_
tn+h
tnh
f(t, y(t)) dt.
2. Regla del punto medio explcita o Leap-Frog. Es de la forma,
y
n+1
y
n1
= 2hf
n
, n = 1, . . . , N 1.
Es de orden 2. El valor de arranque y
1
se suele aproximar con el mtodo de Euler.
3. Mtodo centrado para ecuaciones de segundo orden. Aunque la ecuacin (o sistema) de segundo
orden
y

= f(t, y),
se puede escribir como un sistema de primer orden de doble dimensin,
_
y

_
=
_
z
f(t, y)
_
,
y tratarlo como tal con cualquiera de los mtodos vistos en las secciones anteriores, existen
mtodos especcos para sistemas de segundo orden. Aunque quedan fuera del alcance de este
curso, mencionamos aqu uno que aparece frecuentemente en la aproximacin numrica de
ecuaciones en derivadas parciales hiperblicas.
y
n+1
2y
n
+ y
n1
= h
2
f
n
, n = 1, . . . , N 1.
Es de orden 2. El valor de arranque y
1
se suele aproximar como
y
1
= y
0
+ hy

0
+
h
2
2
f
0
.
2. Problemas sti
Reciben este nombre determinados problemas de valor inicial, donde, para una precisin deter-
minada, un mtodo explcito (como los mtodos RK vistos hasta ahora) necesitan para integrarlos
tomar pasos mucho ms pequeos que lo que la regularidad de la solucin demanda. A continuacin
veremos un ejemplo ilustrativo, pero antes una cuestin de nomenclatura. La palabra sti signica
8
rgido en ingls, pero no se ha traducido al referirnos en espaol a este tipo de problemas. De hecho,
se toma como cursi o ignorante hablar de problemas rgidos.
Quiz, el ejemplo ms sencillo para aclarar la diferencia entre problemas sti y aquellos que no
lo son sea el original de Prothero y Robinson, de 1974.
y

(t) = (y(t) g(t)) + g

(t), (10)
y(0) = g(0). (11)
Las soluciones de la ecuacin (10) son de la forma
y(t) = e
t
+ g(t), R, (o C) (12)
y la solucin del problema (1011) es
y(t) = g(t).
Se supone que g tiene innitas derivadas y que el tamao de estas es moderado. Cuando Re() < 0 y
|Re()| es muy grande en relacin con |Im()| y el tamao de las derivadas de g, el problema (1011)
es sti.
Ejemplo 2 Para g(t) = cos(t), que es una funcin cuyas derivadas son del orden de la unidad,
consideramos el problema (1011), con = 1 y = 100. La Fig. 2 muestra el error frente al
10
1
10
0
10
1
10
2
10
12
10
10
10
8
10
6
10
4
cputime
e
r
r
o
r
BDF
(=1)
BDF
(=100)
DOPRI54
(=1)
DOPRI54
(=100)
Figura 2: Eciencia computacional de los mtodos DOPRI54 () y frmulas BDF (--) para el
problema de Prothero-Robinson (1011), con g(t) = cos(t), para = 1 (*), y para = 100 (+).
costo para diversos valores TOL = RTOL = 10
4
, 10
6
, . . . , 10
12
de los mtodos DOPRI54 (en
lnea continua) y las frmulas BDF (en lnea de trazos) para los casos = 1 (marcado con ) y
= 100 (marcado con +). Son oportunas ciertas observaciones que resumimos a continuacin.
1. Para = 1 (grcas con *), los resultados son similares a los del problema (89) asociado
al Brusselator que vimos en la Fig. 1 de la seccin anterior, esto es, que para alcanzar un niver
de precisin determinado, los frmulas BDf son tres veces ms caras que el DOPRI54.
9
2. Para = 100, aunque se trata de la misma solucin y(t) = cos(t) del caso = 1, la
situacin es diametralmente opuesta, resultando ser el mtodo DOPRI54 unas 8 veces ms
costoso que las frmulas BDF.
3. Los resultados del DOPRI54 muestran que dada una tolerancia TOL, en ambos problemas
obtiene los mismos errores, pero para = 100 se obtienen con 15 veces ms de costo.
4. Los resultados de las frmulas BDF muestran que dada una tolerancia TOL, en ambos pro-
blemas tardan lo mismo en integrar la solucin, pero para = 100, los errores obtenidos
son unas 40 veces ms pequeos.
A la vista de estas observaciones, el hecho ms destacado es el deterioro tan signicativo de la
eciencia del mtodo DOPRI54 al pasar de = 1 a = 100. Este deterioro no puede ser debido
a la solucin del PVI, pues en ambos casos es la misma, y(t) = cos(t). Debe ser por tanto debido al
PVI (ecuacin diferencial junto con su condicin inicial).
La razn de este deterioro es que DOPRI54 se ve forzado a tomar pasos muy pequeos para
poder integrar el problema. Por ejemplo, para TOL = 10
8
, la informacin proporcionada por
Matlab es la siguiente. Para = 1,
203 successful steps
7 failed attempts
1261 function evaluations
0 partial derivatives
0 LU decompositions
0 solutions of linear systems
y para = 100,
3457 successful steps
11 failed attempts
20809 function evaluations
0 partial derivatives
0 LU decompositions
0 solutions of linear systems
Vemos que efectivamente el cmputo total de pasos aceptados y rechazados se multiplica por 16 al
pasar de = 1 a = 100, y en igual proporcin el nmero de evaluaciones de funcin.
No hay otra descripcin de lo que es un problema sti que la que ya hemos dado y repetimos
a continuacin. Un problema, para una precisin determinada y en un intervalo de tiempo deter-
minado, es sti cuando un mtodo explcito debe tomar pasos mucho ms pequeos que lo que la
regularidad de la solucin demanda. Comentamos las palabras en cursiva.
Cuando decimos la regularidad de la solucin, esto quiere decir que si esa misma solucin lo
fuese de otro problema, el mtodo tomara pasos considerablemente ms largos manteniendo
el nivel de precisin pedido. (Compare si no los pasos que ha necesitado el mtodo DOPRI54
para integrar y(t) = cos(t) segn sea = 1 o = 100).
10
Cuando un problema es sti, todos los mtodos explcitos sufren la misma prdida de eciencia.
Algunos mtodos implcitos tambin (como por ejemplo los mtodos de Adams implcitos)
aunque no otros (como las frmulas BDF). Por eso se utiliza como criterio para determinar si
un problema es sti el comportamiento en cualquier mtodo explcito.
No es infrecuente que un problema sea sti en un intervalo [t
0
, t
f
] pero deje de serlo a partir
de t
0
(o caso ms frecuente) no lo sea antes de t
0
.
El caracter sti de un problema depende de la precisin deseada. Si demandamos mucha
precisin (por ejemplo, en un ordenador cuya unidad de redondeo sea del orden de 10
36
)
cualquier mtodo se ve obligado a tomar pasos pequeos para conseguir errores muy bajos, y
los problemas dejan de ser sti.
Por ltimo, para hacerse una idea de cul es la dicultad de los problemas sti, basta considerar
en la ecuacin (10) la desviacin con respecto a la solucin particular
z(t) = y(t) g(t).
Note que al ser Re() < 0, y que tal y como vimos en (12), se tiene que
lm
t
z(t) = 0. (13)
Notemos que z(t) satisface la ecuacin
z

= z(t).
Para el mtodo de Euler explcito (que es el nico mtodo Runge-Kutta de una etapa conver-
gente), y sobre una particin uniforme (h
n
= h, para n = 1, 2, . . . ) se tiene que
z
n+1
= z
n
+ hz
n
= (1 + h)z
n
= (1 + h)
2
z
n1
= . . . = (1 + h)
n+1
z
0
.
Tenemos por tanto que con el metodo de Euler la solucin numrica z
n
reproduce el comportamiento
de la solucin de verdad en (13),
lm
n
z
n
= 0 |1 + h| < 1.
En el caso de R (y dado que entonces < 0) tenemos que
lm
n
z
n
= 0 h <
1
||
.
Dado que para otros mtodos RK la situacin es similar, esto explica las diferencias entre = 1
y = 100 en el Ejemplo 2.
Por otro lado para el mtodo de Euler implcito (que es la frmula BDF de un paso) tenemos
que
z
n+1
= z
n
+ hz
n+1
, esto es, (1 h)z
n+1
= z
n
,
o, equivalentemente,
z
n+1
= (1 h)
1
z
n
= (1 h)
2
z
n1
= . . . = (1 h)
n1
z
0
.
11
Tenemos por tanto que con el metodo de Euler implcito,
lm
n
z
n
= 0
1
|1 + h|
< 1.
En el caso de R y negativo tenemos que
lm
n
z
n
= 0 h > 0,
esto es, que para reproducir el comportamiento de la solucin z(t) no hay ninguna restriccin de
longitud de paso, salvo la que venga impuesta por la regularidad de la misma. El caso de otras
frmulas BDF de ms pasos es similar al del mtodo de Euler implcito, explicando esto que las
frmulas BDF sean insensibles al tamao de en la ecuacin (10).
Puede encontrar ms informacin sobre la naturaleza de los problemas sti en [3], 6.16.2, as
como amplia documentacin sobre este tipo de problemas y su tratamiento numrico en [2]
3. Otras cuestiones de orden prctico
Los comandos de Matlab para integrar EDOs o sistemas de EDOs, a travs de las opciones que
les demos mediante el comando odeset, pueden llevar a cabo diversas tareas como dibujar mapas
de fase, ayudarnos a determinar el periodo de una solucin peridica, etc.
Puede que le resulte de utilidad la posibilidad de construir mapas de fase. Mediante la opcin
OuputFcn podemos indicarle a Matlab que realice determinada accin cada vez que calcula un
punto. De hecho, Matlab tiene prevista la funcin odephas2 que dibuja las trayectorias segn las
va calculado. El siguiente mapa de fase
2 1.5 1 0.5 0 0.5 1 1.5 2
1.5
1
0.5
0
0.5
1
1.5
del sistema
x

= 1 y
y

= x
2
y
2
_
(14)
se obtuvo con la secuencia de comandos
12
% en la opci\on para la funci\on de output, damos odephas2 para
% que dibuje la curva param\etrica t -> [x(t),y(t)];
opciones=odeset(AbsTol,1e-6,RelTol,1e-6,OutputFcn,@odephas2);
figure(1);clf
% dibujamos los ejes en rojo
plot([-2,2],[0,0],r:)
hold
plot([0,0],[-1.5 1.5],r:);
% fijamos los extremos del dibujo
axis([-2 2 -1.5 1.5])
% por cada condici\on inicial, que avance 5 unidades de tiempo
% y que retroceda cinco unidades de tiempo.
tiempos=[0 5];
tiempos2=[0 -5];
for j=1:25
% seleccionamos las condiciones inciales con el rat\on
g=ginput(1)
% marcamos la condici\on incial en rojo y con un circulito.
plot(g(1),g(2),ro)
% integramos el sistema (dado que la opci\on OutputFcn tiene
% el valor @odephas2, se dibujar\an las trayectorias seg\un se
% calculan
[T,Y]=ode45(@sistema,tiempos,g,opciones);
[T,Y]=ode45(@sistema,tiempos2,g,opciones);
end
donde la funcin sistema proporciona el segundo miembro del sistema (14):
function f=sistema(t,y)
f=[1-y(2);-sum(y)*diff(y)];
Claramente se aprecian dos equilibrios, uno de ellos un punto de silla, y el otro un punto espiral.
Puede continuar el estudio de este ejemplo en el Problema ??.
4. El mtodo del disparo para problemas de contorno
4.1. Cuestiones de repaso
Recordemos que un problema de contorno viene dado por una ecuacin diferencial de segundo
orden (o de orden par, en general) para la cual se busca la solucin u en un intervalo [0, l] o [a, b],
en la que en vez de imponer condiciones iniciales en 0 o en a, se imponen tantas condiciones de
contorno en 0 o a como en l o b. Un ejemplo puede ser el problema
ku
xx
(x) = f(x), x (0, l),
u(0) = , u(l) = ,
_
(15)
13
Las condiciones de contorno tanto en el extremo x = a como en el extremo x = b pueden ser de
uno de los tres tipos siguientes, donde entnderemos que x
0
puede ser o bien a o bien b.
i) Condicin de tipo Dirichlet, u(x
0
) = u
0
ii) Condicin de tipo Nuemann, u
x
(x
0
) = v
0
, donde es un valor real.
iii) Condicin mixta o de tipo Robbin, u(x
0
) + u
x
(x
0
) = w
0
, donde y son valores reales.
Ejemplo 3 Una viga colocada horizontalmente y con una densidad de carga lateral f(x),
empotrada en un extremo y apoyada en el otro,
f(x)
x
sufre desplazamiento transversal w(x) en la direccin vertical con respecto su bra neutra.
f(x)
x
w(x)
Dicho desplazamiento w(x) satisface,
EIw
xxxx
= f(x), x (0, l),
w(0) = w

(0) = 0,
w(l) = w

(l) = 0,
_
_
_
(16)
donde E es el mdulo de Young e I el momento de inercia de la seccin transversal con respecto
al plano horizontal (Si la viga no es de seccin constante, debe entonces cambiarse la ecuacin
EIw
xxxx
= f(x) por (EI(x)w
xx
(x))
xx
= f(x)). Puede obtener ms informacin [4], 26.6
y [5], 7.2.
Los problemas de contorno son lineales si slo aparecen expresiones lineales de la incgnita y
sus derivadas. Tal es el caso de los problemas que hemos escrito hasta ahora. Son lineales y de
coecientes constantes si aparte de ser lineales los coecientes que multiplican a la incgnita u y sus
derivadas no dependen de la variable independiente x. Los problemas en los que nos centraremos
sern lineales, aunque deber saber que tambin los hay no lineales, como por ejemplo el problema
de Bratu,
u
xx
+ e
u
= 0, x (0, 1),
u(0) = 0, u(1) = 0,
_
(17)
donde es un parmetro real, o el siguiente problema
u

+|u| = 0,
u(0) = 0, u(l) = ,
_
, (18)
14
donde l > 0.
La casustica de los problemas de contorno es bastante ms compleja que las de los sistemas
de ecuaciones ordinarias. As por ejemplo, el problema (17) tiene dos soluciones distintas para
(,
0
) donde
0

2, una nica solucin si =


0
y ninguna si >
0
. A su vez, el problema
(18) si l > , tiene dos soluciones distintas si < 0, una nica solucin si = 0, y ninguna si > 0;
En cambio, los problemas (15) y (16) tienen una nica solucin, sea quien sea f en ambos casos y
sean quienes sean y en el problema (15). Esta diferencia entre los problemas (17) y (18) por
un lado, y (15) y (16) por otro, no se debe a que estos sean lineales de coecientes constantes y los
otros dos sean no lineales. Los problemas lineales y de coecientes constantes pueden tener tambin
una casustica variada. As por ejemplo, el problema
y

+ y = cos(t),
y(0) = 0, y() = 0,
_
, (19)
tiene innitas soluciones, pero el problema
y

+ y = cos(
t
2
),
y(0) = 0, y() = 0,
_
, (20)
no tiene ninguna, y ambos son lineales y de coecientes constantes.
Recordemos que para problemas lineales (no necesariamente de coecientes constantes) la casus-
tica es algo ms simple y viene dada por el Teorema de la Alternativa de Fredholm que enunciaremos
para un problema general de la forma
u
xx
+ b(x)u
x
(x) + c(x)u(x) = f(x), x (0, l)
B
0
(u) = a
0
, B
l
(u) = a
l
,
_
(PC) (21)
donde
_
_
_
B
0
(u)
B
l
(u)
_
_
_
, puede ser cualquiera de
_
_
_
u(0), u
x
(0), o u
x
(0) +
0
u(0),
u(l), u
x
(l), o u
x
(l) +
l
u(l),
_
_
_
con
0
= 0 y
l
= 0.
Recordando que asociado a este problema tenemos el correspondiente problema homogneo
u
xx
+ b(x)u
x
(x) + c(x)u(x) = 0, x (0, l)
B
0
(u) = 0, B
l
(u) = 0,
_
(PCH). (22)
Tenemos el siguiente resultado.
Teorema 1 Teorema de la Alternativa (de Fredholm). Se verica una de las dos opciones
excluyentes siguientes.
i) Para toda f continua el problema (PC) tiene una nica solucin.
ii) El problema (PCH) tiene solucin no trivial.
Adems, en caso de que ii) sea cierto, si el problema (PC) tiene solucin (puede no tenerla), el
conjunto de soluciones estar constituido la suma de una solucin cualquiera de (PC) y todas las
de (PCH).
15
Nota 1 El teorema anterior tambin es vlido cuando p y q son peridicas de periodo l y se pide
que la solucin u sea tambin peridica mediante las condiciones de contorno
B
0
(u) = u(l) u(0) = 0, B
1
(u) = u
x
(l) u
x
(0) = 0.
Nota 2 En el caso ii) del teorema anterior, las soluciones de (PCH) son todas proporcionales a una
dada, salvo en el caso de condiciones frontera peridicas que pueden ser las combinaciones lineales
de dos soluciones independientes.
En el caso de darse la opcin ii) del teorema anterior veremos en la prxima seccin un criterio
simple para averiguar si el problema de contorno tiene solucin (en cuyo caso tendr innitas) o,
por el contrario, no posee ninguna solucin.
4.2. El mtodo del disparo
Recuerde que en el mtodo del disparo para un problema de contorno lineal de la forma
y

+ py

+ qy = r,
y(a) = , y(b) = ,
_
(PC), (23)
donde p = p(t), q = q(t) y r = r(t) son funciones continuas en todo [a, b], expresamos la solucin
(en caso de haberla) como combinacin lneal
y(t) = y
p
(t) + y
0
(t), donde =
y
p
(b)
y
0
(b)
, (24)
de las soluciones y
p
e y
0
de dos problemas de valor inicial,
y

p
+ py

p
+ qy
p
= r,
y
p
(a) = , y

p
(a) = 0,
_
(25)
y
y

0
+ py

0
+ qy
0
= 0,
y
0
(a) = 0, y

0
(a) = 1
_
. (26)
Recuerde adems que si al calcular la constante en (24) el denominador satisface que y
0
(b) = 0,
entonces y
0
es solucin no trivial (pues y

0
(a) = 1 = 0) del problema homonneo asociado a (23),
y por tanto ste puede no tener solucin o tener innitas. Este segundo caso se da, obviamente,
cuando el numerador de , y
p
(b) es nulo (pues y
p
ya es entonces una solucin de (23)). El primer
caso se da cuando, siendo y
0
(b) = 0, se tiene y
p
(b) = 0.
Recuerde as mismo que cuando se utiliza este mtodo en el ordenador se obtienen las funciones
y
p
e y
0
sobre una red de puntos a = t
0
< t
1
< . . . < t
N
= b.
En el caso de problemas no lineales, que de forma general se escriben como
y

+ f(t, y, y

) = r(t),
y(a) = , y(b) = ,
_
. (27)
el mtodo de disparo consiste en resolver la ecuacin
g(s) = 0,
16
por algn mtodo para resolver ecuaciones no lineales como puede ser el mtodo de biseccin o el
mtodo de la secante, donde
g(s) = y(b) ,
e y la solucin del PVI
y

+ f(t, y, y

) = r,
y(a) = , y

(a) = s.
_
. (28)
Para aqul valor de s para el que g(s) = 0, la correspondiente solucin de (28) es la solucin del
problema de contorno (27).
Nota 3 Aparte del mtodo del disparo, existen otros mtodos para problemas de contorno que
trataremos ms adelante en el curso.
Nota 4 La mayor parte de los problemas de contorno que Vd. se pueda encontrar antes de aban-
donar esta escuela podrn resolverse sin dicultad con el mtodo del disparo, o con los mtodos que
explicaremos en lecciones posteriores. No obstante, debe saber que Matlab dispone de un comando
muy sosticado para problemas de contorno, bvp4c. Es ms complejo de usar que los comandos
para PVI. Si se ve en la necesidad de utilizarlo, encontrar muy til leer antes [8] (accesible por
Internet en la direccin ftp://ftp.mathworks.com/pub/doc/papers/bvp), donde este comando
es explicado con detalle por sus propios autores.
5. Cuestiones y problemas
CUESTIONES
Ejercicio 1 Obtener el mtodo de Adams explcito de dos pasos, y particularizar el caso h
n
= h,
para todo n.
Ejercicio 2 Idem con mtodo de Adams implcito de dos pasos.
Ejercicio 3 Compruebe que efectivamente el mtodo de Euler implcito es la frmula BDF de un
paso.
Ejercicio 4 Obtener la frmula BDF de dos pasos, y particularizar el caso h
n
= h, para todo n.
Ejercicio 5 (Junio 2005). Determinar los valores , y para que el mtodo de dos pasos
y
n+2
2y
n+1
+ y
n
= h
2
_
f(y
n+2
) + f(y
n+1
) + f(y
n
)
_
, n = 0, 1, 2, . . . , N 2,
(t
n
= t
0
+ nh, n = 0, 1, 2 . . . , N) sea consistente de orden lo ms alto posible para ecuaciones de
segundo orden de la forma y

= f(y), esto es que para una solucin de y

= f(y) sucientemente
regular

n
= y(t
n+2
) 2y(t
n+1
) + y(t
n
) h
2
_
y

(t
n+2
) + y

(t
n+1
) + y

(t
n
)
_
sea un innitsimo en h del orden lo ms alto posible. Determinar dicho orden.
17
Ejercicio 6 (Junio 2005). La frmula BDF de k pasos se obtiene imponiendo que el polinomio
interpolador de y
nk+1
, . . . , y
n
, y
n+1
satisfaga la ecuacin diferencial y

= f(t, y) en t
n+1
. Para k = 2
(y h
n
= h para todo n), encuentre el mtodo que se obtiene al imponer que polinomio interpolador
de y
n1
, y
n
e y
n+1
satisfaga la ecuacin diferencial y

= f(t, y) en t
n
(observe que se pide en t
n
, y
no en t
n+1
como en las frmulas BDF).
Ejercicio 7 (Septiembre 2005). Los mtodos de Nystrm son parecidos a los de Adams pues,
aparte de tener el mismo orden, en el mtodo de Nystrm explcito de k pasos, dados los valores
y
nk+1
, . . . , y
n
en los puntos t
nk+1
, . . . , t
n
(con t
j
= t
0
+jh, j = 0, 1, 2 . . . ) la aproximacin y
n+1
se
obtiene de la relacin
y
n+1
y
n1
=
_
t
n+1
t
n1
P

n,k
(t) dt,
donde, como en los mtodos de Adams, P

n,k
(t) es el polinomio de grado k 1 que en las k abcisas
t
nk+1
, . . . , t
n
toma los valores f(t
nk+1
, y
nk+1
), . . . , f(t
n
, y
n
), respectivamente. Calcule el mtodo
de Nystrm explcito de 3 pasos.
Ejercicio 8 Resolver y

+ y = 0 sujeto a y(0) = 0 y y() = 2. Asimismo, determine los valores


de a para los que el siguiente problema de contorno tenga solucin.
_
y

+ y = t + asen(t)
y(0) = y() = 0
Ejercicio 9 Si k(x) es continua y no nula en [0, l], encontrar dos soluciones independientes de
(k(x)y

(x))

= 0.
Resuelva el problema de contorno
_
(k(x)y

(x))

= 0
y(0) = 1, y(l) = 0
Ejercicio 10 Encuentre una funcin u y otra v que satisfagan
u(0) = 1, u

(1) = 0, v(0) = 1, v

(1) + 2v(0) = 3.
Ejercicio 11 Basndose en el ejercicio anterior, pruebe que las solucin de culquier problema de
contorno lineal de segundo orden con condiciones fronteras no homegnes, se pueden encontrar
resolviendo un problema con condiciones de contorno homogneas.
Ejercicio 12 Encuentre todas las soluciones de la ecuacin u

+u

= 0 (ya sabe, las combinaciones


lineales de las funciones e
x
para raz del polinomio p(x) = x
2
x). Determinar entonces los valores
de y para los cuales el problema
u
xx
+ u
x
= 0,
u
x
(0) = , u
x
(l) = ,
_
tiene solucin.
18
Ejercicio 13 Resuelva el problema x
2
u
xx
(x)+xu
x
(x)u(x) = 0, x (0, 1), sujeto a las condiciones
de contorno u(1) = 1, y
lm
x0
|u(x)| < .
(Encuentre primero los posibles valores de para los cuales u = x

es solucin de la ecuacin
diferencial x
2
u
xx
(x) + xu
x
(x) u(x) = 0, y determine dos soluciones independientes en (0, 1)).
Ejercicio 14 Verique que para cualquier funcin continua h : [1, 4] IR , el problema de contorno
_
2x
2
y

(x) + 3xy

(x) y(x) = h(x)


y(1) = 0, y(4) = 1
tiene solucin nica. Para h(x) = x hallar la correspondiente solucin
Ejercicio 15 Resolver cuando sea posible el problema de contorno
_
y

+ 9y = t + a
y(0) = 1, y() = 2
Ejercicio 16 Las frmulas NDF son como las frmulas BDF vistas en el curso a las que, para
darles mayor estabilidad, se les aade un trmino proporcional a la diferencia dividida de orden
k + 1 (ste trmino se aade a la frmula de k pasos).
1. Para niveles de tiempos espaciados t
j+1
t
j
= h (j = n, n 1, n 2), calcule el desarrollo de
Taylor en t
n+1
de 6y[t
n+1
, t
n
, t
n1
, t
n2
] cuya expresin es
6y[t
n+1
, t
n
, t
n1
, t
n2
] = y(t
n+1
) 3y(t
n
) + 3y(t
n1
) y(t
n2
).
2. Determinar en funcin de el orden de la segunda frmula NDF, esto es, el orden como
innitsimo en h de la expresin del error de truncacin que es

n
=
3
2
y(t
n+1
) 2y(t
n
) +
1
2
y(t
n1
) hy

(t
n+1
) + 6y[t
n+1
, t
n
, t
n1
, t
n2
]
19
PROBLEMAS
Problema 1 Consideremos el sistema autnomo no lineal
_
x

= 1 y
y

= x
2
y
2
1. Determine analticamente los puntos crticos del sistema y el tipo de su conguracin.
2. Esboce el correspondiente plano de fases en el cuadrado [2, 2] [0, 2] utilizando la orden
ode45 de Matlab. Para ello, disee un chero que permita dibujar en una misma grca
las rbitas que parten de los puntos (x, 0) con x = 2 : 0,5 : 2 y tales que el instante inicial
es cero, el instante nal es diez. Posteriormente, aada las rbitas que parten de los puntos
(x, 2) con x = 2 : 0,25 : 2, con las mismas especicaciones.
3. Repita el apartado dos utilizando la orden ginput para seleccionar los puntos de arranque de
las rbitas. Debe dibujar, al menos, treinta rbitas en el cuadrado [2, 2][0, 2] y las restantes
especicaciones son las mismas que en dicho apartado.
4. Repita el apartado dos usando la opcin OutputFcn de la orden odeset de Matlab.
5. Para cada uno de los equilibrios del sistema, esboce un plano de fases en un rectngulo
adecuado. Describa y justique las representaciones grcas obtenidas en este apartado y los
tres anteriores.
Problema 2 En este problema se estudia la integracin numrica de dos ecuaciones diferenciales
ordinarias rgidas (sti) de primer orden.
1. Considere la ecuacin diferencial
y

= 1000(y sen(t)) + cos(t).


Obtenga analticamente la solucin exacta con valor inicial y(0) = 1. Cul es el comporta-
miento a largo plazo de dicha solucin?
2. Utilizando la orden ode23 de Matlab, resuelva numricamente el problema anterior en el
intervalo [0, 1] y en el intervalo [0, 20]. Compruebe la exactitud de la aproximacin y estime el
nmero de evaluaciones funcionales requeridas en ambos casos. Utilizando el estilo de lnea .,
describa como ha ido cambiando el paso de integracin en ambos intervalos. Cambia mucho
la situacin usando la orden ode45? Y usando la orden ode113?
3. Repita el apartado dos, pero usando ahora la orden ode15s. Justique los resultados obteni-
dos.
4. Integre numricamente el problema
_
y

= y
2
(1 y)
y(0) = 10
4
en el intervalo [0, 2 10
4
] usando la orden ode45. Como en el apartado dos, comente las
estadsticas de integracin y la grca en estilo de lnea . de la correspondiente solucin.
Qu ocurre si repetimos el proceso en el intervalo [0, 10
4
]?.
20
5. Repita el apartado cuatro usando la orden ode15s. Justique los resultados obtenidos.
Problema 3 (Junio 2005) En el curso hemos programado el mtodo Runge-Kutta clsico. Parecido
es el mtodo Runge-Kutta-Nystrm (RKN) que deber programar ahora. Los mtodos RKN son
mtodos de tipo Runge-Kutta para ecuaciones y sistemas de ecuaciones de segundo orden. Para el
problema
y

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

(t
0
) = y

0
_
(29)
con un mtodo RKN de s etapas se obtienen aproximaciones y
n
y(t
n
) e y

n
y

(t
n
) (donde
t
n
= t
0
+ nh), por el siguiente procedimiento,
k
i
= f(y
n
+ c
i
hy

n
+ h
2
i1

j=1
a
ij
k
j
), i = 1, . . . , s,
y
n+1
= y
n
+ hy

n
+ h
2
s

i=1
b
i
k
i
,
y

n+1
= y

n
+ h
s

i=1
b
i
k
i
(note que hay coecientes b
i
para las y
n
y b
i
para las y

n
). Considere entonces el mtodo de Nystrm
de s = 4 etapas de tablero de Butcher generalizado,
c A
b
T
b
T
dado por
0
1
5
1
50
2
3
1
27
7
27
1
21
70
4
70
18
70
b
i
14
336
100
336
54
336
b
i
14
336
125
336
162
336
35
336
1. Elabore una funcin de Matlab que implemente dicho mtodo de encabezamiento
function [T,Y,Yp]=elrkn(laf,t0,tf,y0,yp0,h)
% devuelve en T los los tiempos T(j)=t0+j*h y en cada fila de Y la
% traspuesta de la aproximaci\on en tiempo T(j) a la solucion
% del problema y=laf(t,y), y(t0)=y0, y(t0)=yp0 obtenida con el
% m\etodo Runge-Kutta-Nystrom de s=5 etapas con paso h, y en cada fila
% de Yp la traspuesta de la aproximacion en tiempo T(j) de y
21
2. Pruebe su funcin en el problema
_
y

1
y

2
_
=
_
y
1
y
2
_
,
_
y
1
(0)
y
2
(0)
_
=
_
1
0
_
,
_
y

1
(0)
y

2
(0)
_
=
_
0
1
_
, t [0, 5].
Cul es la solucin de este problema? Qu error obtiene con h = 0,1 en t = 5?
3. Averigue el orden p de convergencia del mtodo. Explique cmo lo ha hecho.
4. Escriba con 4 cifras signicativas correctas la solucin en tiempo t = 5 de
_
y

1
y

2
_
=
1
(y
2
1
+ y
2
2
)
3/2
_
y
1
y
2
_
,
_
y
1
(0)
y
2
(0)
_
=
_
1/4
0
_
,
_
y

1
(0)
y

2
(0)
_
=
_
0
_
5/3
_
.
Problema 4 Considere el problema de contorno
(P1)
_
y

= 4y + 2t
y(0) = , y(3) =
1. Calcule la solucin exacta del problema (P1) cuando = 1 y = 2.
2. Para obtener una aproximacin a la solucin del problema del apartado anterior sobre una
red de espaciado h = 0,01 utilice el mtodo del disparo, con el comando ode45 (con AbsTol y
RelTol iguales a 10
8
) para integrar los correspondientes problemas de valor inicial. Esboce
una grca de la solucin y calcule el mximo error (absoluto) cometido sobre los puntos 0,
0.01, 0.02, . . . , 1.99, 2.
3. Considere ahora el siguiente problema de contorno no lineal
(P2)
_
y

20yy

= 0,
y(0) = 1, y(1) = 0.
Disee una funcin en Matlab que implemente el mtodo de disparo no lineal, utilizando
la orden ode45 para abordar los correspondientes problemas de valor inicial y el mtodo de
la secante para determinar la sucesin de parmetros. Los argumentos de entrada deben ser
la correspondiente ecuacin fun, el paso h para la red sobre la que se desea la solucin, la
tolerancia (absoluta y relativa) de la orden ode45, el mximo nmero de iteraciones y los dos
valores iniciales s
0
y s
1
del mtodo de la secante. Se supone que el problema de contorno se
ha reformulado de la siguiente manera: determinar el parmetro s tal que
_
y

= f(t, y, y

),
y(0) = 1, y

(0) = s
; y(1) = 0.
4. Utilizando la funcin del apartado anterior, calcule una aproximacin a la solucin de (P2)
para h = 0,01, tolerancia 10
7
, s
0
= 0, s
1
= 10
8
y con un mximo de dos iteraciones
(adems de las asociadas a s
0
y s
1
). Esboce una grca de la solucin y escriba (con seis cifras
signicativas) el valor de y(1). Repita el proceso pero realizando esta vez cuatro iteraciones.
5. Proporcione el valor de la solucin en x = 0,9.
22
Problema 5 1. Disee una funcin en Matlab que implemente el mtodo de disparo no lineal,
utilizando la orden ode45 para la resolucin de los correspondientes problemas de valor inicial
y el mtodo de la secante para determinar la sucesin de parmetros. Los argumentos de
entrada deben ser la correspondiente ecuacin, los puntos a y b, las condiciones de contorno
y , la tolerancia de la rden ode45, el mximo nmero de iteraciones y los dos valores
iniciales s
0
y s
1
del mtodo de la secante. Se supone que el problema de contorno se ha podido
formular de la siguiente manera: determinar el parmetro s tal que
_
y

= f(t, y, y

),
y(a) = , y

(a) = s
y y(b) = .
2. Considere el problema de contorno
_
y

= y
3
yy

,
y(1) =
1
2
, y(2) =
1
3
.
Obtenga una grca de la solucin de dicho problema usando la funcin del apartado uno.
Compare dicha grca con la grca de la solucin exacta
y(t) =
1
t + 1
.
3. Modique el chero del apartado uno para que el mtodo de disparo no lineal incluya, adems,
como criterio de parada la diferencia en valor absoluto entre el valor obtenido y(s
n
) en la
iteracin n-sima y el valor deseado .
4. Considere el siguiente problema de contorno
_
t
3
y

4t
2
y

+ 8ty

8y = 4 log(t),
y(1) = 0, y

(1) = 1, y(2) = 1
.
Obtenga grcamente una solucin del problema anterior en un mallado de paso 0.1, usando
la funcin del apartado tres con tolerancia (para la secante) igual a 10
4
. Calcule el error
cometido sabiendo que la solucin general de la ecuacin es del tipo
y(t) = c
1
t + c
2
t
2
+ c
3
t
4

1
2
log(t)
7
8
.
Problema 6 (Examan Final 2007-08) Considere el siguiente problema de contorno no lineal
(P1)
_
y

+ 20y(1 y
2
) = 0,
y(0) = , y

(1) = .
1. Disee una funcin en Matlab (o modique la que hicimos en su da en las prcticas
del curso) que implemente el mtodo de disparo no lineal para este problema, utilizando la
orden ode45 para abordar los correspondientes problemas de valor inicial y el mtodo de la
secante para determinar la sucesin de parmetros. Los argumentos de entrada deben ser la
correspondiente ecuacin fun, el paso h para la red sobre la que se desea la solucin, los valores
23
y , la tolerancia (absoluta y relativa) de la orden ode45, el mximo nmero de iteraciones
y los dos valores iniciales s
0
y s
1
del mtodo de la secante. Se supone que el problema de
contorno se ha reformulado de la siguiente manera: determinar el parmetro s tal que
_
_
_
y

= v,
v

= f(t, y, v),
y(0) = 1, v(0) = s,
; v(1) = 0.
(Obviamente, f(t, y, v) = 20y(1 y
2
).) Escriba el listado de dicho programa en su hoja de
respuestas.
2. Utilizando la funcin del apartado anterior, calcule una aproximacin a la solucin de (P1)
cuando = 1 y = 2; para h = 0,01, tolerancia 10
7
, s
0
= 0, s
1
= 1/100, y con un mximo
de dos iteraciones (adems de las asociadas a s
0
y s
1
). Esboce una grca de la solucin y
escriba (con seis cifras signicativas) el valor de y(1). Repita el proceso pero realizando esta
vez cuatro iteraciones.
3. Proporcione el valor de la solucin en x = 0,9 con 10 cifras decimales correctas.
4. Considere ahora el mismo problema de contorno pero cambiando la segunda condicin de
contorno a y

(1) + y(1) = 2, esto es,


(P2)
_
y

+ 20y(1 y
2
) = 0,
y(0) = 1, y

(1) + y(1) = 2.
Repita el apartado 2 para el problema de contorno con esta nueva condicin frontera.
Referencias
[1] E. Hairer, S. P. Nrsett & G. Wanner, Solving Ordinary Dierential Equations I (2nd. Ed.)
(Springer-Verlag, Berlin, 1993).
[2] E. Hairer & G. Wanner, Solving Ordinary Dierential Equations II (2nd. Ed.) (Springer-Verlag,
Berlin, 1997).
[3] J. D. Lambert, Numerical Methods for Ordinary Dierential Systems. The initial value Pro-
blem. John Wiley & Sons, Chichester, 1991.
[4] P. Puig Adam, Curso Terico-Prctico de Clculo Integral Aplicado a la Fsica y Tcnica (15
a
Ed.) Ed. Biblioteca Matemtica, Madrid, 1976.
[5] P. Puig Adam, Curso Terico-Prctico de Ecuaciones Difrenciales Aplicado a la Fsica y Tc-
nica (16
a
Ed.) Roberto Puig Alvarez, Madrid, 1980.
[6] J. M. Sanz-Serna, Diez Lecciones de Clculo Numrico, Universidad de Valladolid, 1998.
[7] L. F. Shampine & M. W. Reichelt, The Matlab ODE Suite, SIAM J. Sci. Comput., 18 (1997),
pp. 122.
24
[8] L. F. Shampine, J. Kierzenka & M. W. Reichelt, Solving Boundary Value Problems for Ordinary
Dierential Equations in Matlab with bvp4c, manuscrito accesible electrnicamente en la
direccin ftp://ftp.mathworks.com/pub/doc/papers/bvp, 2000.
[9] G. F. Simmons Ecuaciones Diferenciales con Aplicaciones y Notas Histricas (Segund Edicin),
McGraw-Hill, Madrid, 1991.
[10] G. W. Stewart, Afternotes on Numerical Analysis, SIAM, Philadelphia, 1996.
25

Das könnte Ihnen auch gefallen