MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler...

25
MÉTODOS MATEMÁTICOS (Curso 2011-2012) Tercer Curso de Ingeniería Aeronáutica Departamento de Matemática Aplicada II. Universidad de Sevilla LECCIÓN 8: OTROS MÉTODOS NUMÉRICOS PARA ECUACIONES DIFERENCIALES ORDINARIAS. PROBLEMAS DE CONTORNO. Índice 1. Otros métodos: Métodos lineales multipaso 1 1.1. Métodos de Adams .................................... 1 1.2. Fórmulas de diferenciación regresiva (BDF) ...................... 3 1.3. Otros métodos ....................................... 7 2. Problemas stiff 8 3. Otras cuestiones de orden práctico 12 4. El método del disparo para problemas de contorno 13 4.1. Cuestiones de repaso ................................... 13 4.2. El método del disparo .................................. 16 5. Cuestiones y problemas 17 1. Otros métodos: Métodos lineales multipaso De los llamados métodos lineales multipaso, sólamente haremos unos breves comentarios, pues por un lado, el desarrollo en las últimas décadas de los pares encajados de métodos Runge-Kutta han hecho que este tipo de métodos pierdan mucha competitividad y, por otro, un estudio más detallado aporta poco en el orden práctico a lo que se haya podido aprender en la secciones anteriores. A su vez, estos métodos están 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 día de hoy, ningún método Runge-Kutta ha conseguido igualar. Lo particular de estas situaciones no justifica, en todo caso, que vayamos más alla de la descripción somera que haremos en esta sección. 1.1. Métodos de Adams Son anteriores a los métodos Runge-Kutta y se deben a los británicos 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

Transcript of MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler...

Page 1: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

MÉTODOS MATEMÁTICOS (Curso 2011-2012)Tercer Curso de Ingeniería Aeronáutica

Departamento de Matemática Aplicada II. Universidad de Sevilla

LECCIÓN 8: OTROS MÉTODOS NUMÉRICOS PARA

ECUACIONES DIFERENCIALES ORDINARIAS. PROBLEMAS

DE CONTORNO.

Índice

1. Otros métodos: Métodos lineales multipaso 11.1. Métodos de Adams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Fórmulas de diferenciación regresiva (BDF) . . . . . . . . . . . . . . . . . . . . . . 31.3. Otros métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Problemas stiff 8

3. Otras cuestiones de orden práctico 12

4. El método del disparo para problemas de contorno 134.1. Cuestiones de repaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2. El método del disparo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5. Cuestiones y problemas 17

1. Otros métodos: Métodos lineales multipaso

De los llamados métodos lineales multipaso, sólamente haremos unos breves comentarios, puespor un lado, el desarrollo en las últimas décadas de los pares encajados de métodos Runge-Kutta hanhecho que este tipo de métodos pierdan mucha competitividad y, por otro, un estudio más detalladoaporta poco en el orden práctico a lo que se haya podido aprender en la secciones anteriores. A suvez, estos métodos están muy bien documentados en multitud de libros de texto. Debe saber sinembargo que para algunos problemas muy determinados y concretos, presentan ventajas que, a díade hoy, ningún método Runge-Kutta ha conseguido igualar. Lo particular de estas situaciones nojustifica, en todo caso, que vayamos más alla de la descripción somera que haremos en esta sección.

1.1. Métodos de Adams

Son anteriores a los métodos Runge-Kutta y se deben a los británicos Adams, Bashforth (1883,1885) y Moulton (1926).

Recordemos que dados el PVI

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

}

, t ∈ [t0, tf ]. (1)

1

Page 2: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

y una particiónt0 < t1 < . . . < tN = tf ,

del intervalo [t0, tf ], la solución y satisface la igualdad

y(tn+1) = y(tn) +

∫ tn+1

tn

y′(t) dt =

∫ tn+1

tn

f(t, y(t)) dt. (2)

Los métodos Runge-Kutta aproximan esta última integral mediante una fórmula de cuadratura connodos en el intervalo [t0, tf ] (y aproximan los valores del integrando con las etapas ki). Los métodosde Adams aproximan dicha integral con una fórmula de cuadratura basada en los

nodos de cuadratura tn−k+1, . . . , tn o tn−k+1, . . . , tn, tn+1.

donde k es el número de pasos del método. Para ello, obviamente se requiere haber obtenido (conotro método) esas k aproximaciones anteriores. Si P ∗

n,k el polinomio de grado k − 1 que interpolaa los k valores del campo f(t, y) en las aproximaciones numéricas (tn, yn), . . . , (tn−k+1, yn−k+1), estoes,

P ∗

n,k(t) =

k−1∑

j=0

(j−1∏

l=0

(t− tn−l)

)

f [tn, . . . , tn−j],

donde f [tn, . . . , tn−j] son las diferencias divididas definidas recurrentemente como

f [tn−j ] = f(tn−j, yn−j), j = 0, . . . , k − 1,

f [tn, . . . , tn−j ] =f [tn, . . . , tn−j+1]− f [tn−1, . . . , tn−j]

tn − tn−j

, j = 1, 2, . . . .

el correspondiente método de k-pasos es entonces

yn+1 = yn +

∫ tn+1

tn

P ∗

n,k(t) dt. (3)

y se conoce como método de Adams explícito de k pasos (más conocido también como métodoAdams-Bashforth de k pasos, aunque no se deba a Bashforth).

También podemos considerar el polinomio de grado k que interpola k valores del campo f(t, y)en las aproximaciones numéricas (tn, yn), . . . , (tn−k+1, yn−k+1) anteriores, junto con el el valor de fen (tn+1, yn+1), aunque no lo conozcamos,

Pn,k(t) = P ∗

n,k +

(k−1∏

l=0

(t− tn−l)

)

f [tn+1, tn, . . . , tn−k+1].

El correspondiente método numérico será entonces

yn+1 − hnβn,kf(tn+1, yn+1) = yn +

∫ tn+1

tn

P ∗

n,k(t) dt

+ f (0)[tn+1, tn, . . . , tn−k+1]

∫ tn+1

tn

k−1∏

l=0

(t− tn−l) dt, (4)

2

Page 3: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

donde

βn,k =1

hn

∫ tn+1

tn

k−1∏

l=0

t− tn−l

tn+1 − tn−ldt,

y f (0)[tn+1, tn, . . . , tn−k+1] es la diferencia dividida que se obtiene cuando se cambia yn+1 por 0.Observe que en (4), la incógnita yn+1 aparece a la izquierda del signo igual, y que lo que hay a laderecha sólamente depende de los valores conocidos yn, . . . , yn−k+1. El correspondiente método seconoce como método de Adams implícito de k pasos, o también de Adams-Moulton de k pasos.

Observe que para obtener el valor de yn+1 hay que resolver la ecuación (o sistema de ecuaciones)dado por la igualdad en (4). En la práctica esto se hace por iteración de punto fijo, procedimientoque convergerá siempre que hn sea suficientemente pequeño.Debe saber lo siguiente.

El método de Adams explícito de un paso es el método de Euler

yn+1 − yn = hnf(tn, yn).

El método de Adams implícito de un paso se conoce como la regla de los trapecios (iqual quela fórmula de cuadratura) y es de la fomra

yn+1 − yn =hn

2

(

f(tn, yn) + f(tn+1, yn+1))

.

El método de Adams explícito de k pasos es convergente de orden k, y el implícito de k pasosde orden k + 1 (para recordarlo, puede Vd. pensar en los casos k = 1).

En la práctica se suelen emplear ambos métodos juntos, en lo que se conoce como parespredictor-corrector. Se utiliza el método explícito para obtener un valor de y∗n+1 que se tomacomo iterante inicial en la iteración de punto fijo necesaria para encontrar el el valor de yn+1

del método implícito.

Existen procedimientos en los pares predictor-corrector para estimar el error local, con lo quegeneralmente se emplean con paso variable.

De hecho, se pueden estimar los errores locales correspondientes a los métodos de k− 1 pasosy de k+1 pasos, por lo que los métodos de Adams se emplean en algortimos de paso y ordenvariables.

El comando de Matlab que utiliza los métodos de Adams con paso y orden variable esode113. Empezando con k = 1, puede llegar a utilizar fórmulas de hasta k = 12 pasos.

1.2. Fórmulas de diferenciación regresiva (BDF)

Las fórmulas de diferenciación regresiva (en inglés “backward differentiation formulae” (BDF)),son los métodos multipaso que se utilizan para problemas “stiff” que explicaremos en la secciónsiguiente. Datan de 1952, y fueron inventadas por Curtiss y Hirschfelder.

Se definen como sigue. Supongamos conocidas las k aproximaciones yn−k+1, . . . , yn. Para obtenerla aproximación yn+1 con la fórmula BDF de k pasos, se impone la condición de que el polinomio Qn,k

3

Page 4: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

de grado k que interpola a los k+1 pares (tn−k+1, yn−k+1), . . . , (tn+1, yn+1) (incluímos el desconocidoyn+1) satisfaga la ecuación diferencial en tn+1, esto es

Q′

n,k(tn+1) = f(tn+1, Qn,k(tn+1)) = f(tn+1, yn+1).

El polinomio Qn,k, escrito en forma de Newton es

Qn,k(t) =k

j=0

(j−1∏

l=0

(t− tn+1−l)

)

y[tn+1, . . . , tn+1−j ],

donde y[tn+1, . . . , tn+1−j] es la diferencia dividida basada en las aproximaciones yn+1, . . . , yn+1−j,esto es

y[tn−j] = yn−j, j = −1, 0, 1, . . . , k − 1,

y[tn+1, . . . , tn−j+1] =y[tn+1, . . . , tn−j+2]− y[tn, . . . , tn−j+1]

tn+1 − tn−j+1, j = 1, 2, . . . .

Derivando Qn,k, evaluando en tn+1, igualando a f(tn+1, yn+1) y multiplicando por hn = tn+1− tnobtenemos la expresión de la fórmula BDF de k pasos

hn

k∑

j=1

(j−1∏

l=1

(tn+1 − tn+1−l)

)

y[tn+1, . . . , tn+1−j ] = hnf(tn+1, yn+1). (5)

Si dejamos a un lado del signo igual la incógnita yn+1 y al otro el resto, tenemos que el métodose escribe como

αn,kyn+1 − hnf(tn+1, yn+1) = gn,k(yn, . . . , yn−k+1), (6)

donde, obviamente,

αn,k =

k∑

j=1

hn

tn+1 − tn+1−j

y

gn,k(yn, . . . , yn−1) = hn

k∑

j=1

(j−1∏

l=1

(tn+1 − tn+1−l)

)

y(0)[tn+1, . . . , tn+1−j],

donde, igual que en el apartado anterior, y(0)[tn+1, . . . , tn+1−j] denota la diferencia dividida que seobtiene al cambiar yn+1 por 0.

Para encontrar yn+1 se resuelve la ecuación en (6) siempre por el método de Newton. Esto es

partiendo de una aproximación incial y[0]n+1 (normalmente obtenida por extrapolación de los valores

yn, . . . , yn−k+1), se obtienen aproximaciones sucesivas y[µ]n+1,

y[µ+1]n+1 = y

[µ]n+1 + x[µ], µ = 0, 1, 2, . . . ,

donde x[µ] es la solución del sistema lineal

(

αn,kI − hnfy)

x[µ] = −(

αn,ky[µ]n+1 − hnf(tn+1, y

[µ]n+1)− gn,k(yn, . . . , yn−k+1)

)

, (7)

4

Page 5: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

siendo fy la matriz jacobiana

fy =

∂f1∂y1

. . .∂f1∂ym

......

∂fm∂y1

. . .∂fm∂ym

,

evaluada en (tn+1, y[µ]n+1).

Por tanto, para poder utilizar el software que emplea este método, no solo hay que proporcionarel segundo miembro f , sino tambien la matriz diferencial fy.Debe saber lo siguiente.

La fórmula BDF de k = 1 paso, es el método de Euler implícito

yn+1 − yn = hnf(tn+1, yn+1).

Siempre que k ≤ 6, la fórmula BDF de k pasos es convergente de orden k.

Igual que los métodos de Adams, se utilizan estrategias de orden y paso variables.

Las fórmulas BDF son en general menos eficientes que los métodos de Adams (y por supuesto,que los pares encajados modernos de métodos RK) para problemas no stiff. Por eso, sólo seemplean en problemas stiff.

El comando de Matlab que utiliza estas fórmulas es ode15s. En realidad, utiliza unas fór-mulas similares a las BDF, debidas a Klopfestein y Reiher en 1971 y 1978, denominadasNDF1 (del inglés, “numerical differentiation formulae") y supuestamente más eficientes quelas fórmulas BDF. Dado que a día de hoy esa mejor eficiencia no es manifiestamente clara, elcomando ode15s permite utilizar las fórmulas BDF siempre que inicialize la opción BDF conel valor ’on’ mediante el comando odeset.

Ejemplo 1 Retomemos el sistema del Brusselator visto al principio de la lección,

u′ = A+ u2v − (B + 1)u,v′ = Bu− u2v

(8)

con A = 1 y B = 3, en el intervalo [0, 20], y condición inicial

y0 =

[

u(0)v(0)

]

=

[

1,53

]

. (9)

Si abreviamos (8) como y′ = f(t, y) (con y = [u, v]T ) la función f del segundo miembro es obviamente

f(t, y) = f(u, v) =

[

f1(u, v),f2(u, v)

]

=

[

A+ u2v − (B + 1)u,Bu− u2v

]

, y =

[

uv

]

,

1Puede ver una descripción de las fórmulas NDF en [7]

5

Page 6: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

y la matriz jacobiana fy es

fy =

[

∂f1∂u

∂f1∂v

∂f2∂u

∂f2∂v

]

=

[

2uv − (B + 1) u2

B − 2uv −u2

]

.

Si queremos emplear el comando ode15s debemos elaborar una función que dados t e y devuelvaesta matriz jacobiana. Para los valores de A y B empleados hasta ahora, A = 1 y B = 3, dichafunción 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 fórmulas BDF, en las correspondientes opciones debemos indicar el nombre delfichero que contiene esta función (en nuestro caso brussjac.m) sin la extensión .m. Inicializamoslas 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 segundahemos indicado que ode15s debe utilizar las fórmulas BDF inicializando con ’on’ la opción ’BDF’,y hemos indicado que la función 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 sistemaslineales. Tal y como señalamos anteriormente, para dar cada paso debe resolver un sistemade ecuaciones no lineales por el método de Newton, resolviendo los sistemas lineales en (7).Vemos que en la mitad de los pasos sólo ha efectuado una iteración.

En los 901+40 pasos y rechazos, sólo ha efectuado 123 descomposiciones LU . Esto es debidoa que la matriz en el sistema (7), una vez hecha su factorización LU (que recordemos tiene uncosto que crece como el cubo de la dimensión de la matriz), aprovecha dicha descomposiciónno sólo en otras iteraciones del método de Newton, sino en otros pasos.

6

Page 7: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

La razón de los ahorros en iteraciones del método de Newton y de factorizaciones LU se debea que los iterantes iniciales y

[0]n+1 para el método de Newton obtenidos por extrapolación son

tan correctos, que una sóla iteración del método de Newton y con una matriz que no es lacorrecta es suficiente para encontrar el valor correcto de yn+1.

El número de pasos, 901, es muy superior al del par encajado DOPRI54 para las mismastolerancias, que vimos en secciones anteriores. Esto es, el método DOPRI54 puede dar pasosconsiderablemente mayores que las fórmulas BDF para una misma tolerancia.

El gráfico en la Fig. 1, donde se mide la eficiencia relativa de ambos métodos, muestra que, paraalcanzar un nivel de precisión determinado, las fórmulas BDF son un promedio de tres veces máscaras que el método DOPRI54. Aunque se trata sólamente del ejemplo que venimos tratando, esto

10−1

100

101

10−12

10−10

10−8

10−6

10−4

10−2

cputime

erro

r

BDF

DOPRI54

Figura 1: Eficiencia de los métodos DOPRI54 y fórmulas BDF en problema (8–9)

es, el problema (8–9) asociado al Brusselator, esta situación es típica y se repite en otros problemas,salvo que éstos, como veremos en la sección siguitente, sean stiff.

1.3. Otros métodos

Dado que los puede encontrar en ciertos contextos determinados así como en diversos librosde texto, comentamos aquí algunos métodos lineales multipaso que no pertenecen a las familiasdescritas en los apartados anteriores. En lo que sigue y por brevedad, denotaremos

fn = f(tn, yn), n = 0, 1, . . .N.

7

Page 8: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Para los métodos que siguen a continuación, sólo consideraremos el caso

hn = h, n = 0, 1, . . . , N − 1.

1. Regla de Simpson, Es de la forma

yn+1 − yn−1 =h

3(fn+1 + 4fn + fn−1), n = 1, 2, . . . , N − 1,

y es convergente de orden 4. Note que debido a su alto orden el valor de arranque y1 debecalcularse con un orden similar (por ejemplo con un método Runge-Kutta).

Proviene de aplicar la regla de Simpson en la igualdad

y(tn + h)− y(tn − h) =

∫ tn+h

tn−h

f(t, y(t)) dt.

2. Regla del punto medio explícita o “Leap-Frog”. Es de la forma,

yn+1 − yn−1 = 2hfn, n = 1, . . . , N − 1.

Es de orden 2. El valor de arranque y1 se suele aproximar con el método de Euler.

3. Método centrado para ecuaciones de segundo orden. Aunque la ecuación (o sistema) de segundoorden

y′′ = f(t, y),

se puede escribir como un sistema de primer orden de doble dimensión,[

y′

z′

]

=

[

zf(t, y)

]

,

y tratarlo como tal con cualquiera de los métodos vistos en las secciones anteriores, existenmétodos específicos para sistemas de segundo orden. Aunque quedan fuera del alcance de estecurso, mencionamos aquí uno que aparece frecuentemente en la aproximación numérica deecuaciones en derivadas parciales hiperbólicas.

yn+1 − 2yn + yn−1 = h2fn, n = 1, . . . , N − 1.

Es de orden 2. El valor de arranque y1 se suele aproximar como

y1 = y0 + hy′0 +h2

2f0.

2. Problemas stiff

Reciben este nombre determinados problemas de valor inicial, donde, para una precisión deter-minada, un método explícito (como los métodos RK vistos hasta ahora) necesitan para integrarlostomar pasos mucho más pequeños que lo que la regularidad de la solución demanda. A continuaciónveremos un ejemplo ilustrativo, pero antes una cuestión de nomenclatura. La palabra “stiff” significa

8

Page 9: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

rígido en inglés, pero no se ha traducido al referirnos en español a este tipo de problemas. De hecho,se toma como cursi o ignorante hablar de “problemas rígidos”.

Quizá, el ejemplo más sencillo para aclarar la diferencia entre problemas stiff y aquellos que nolo 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 ecuación (10) son de la forma

y(t) = αeλt + g(t), α ∈ R, (o α ∈ C) (12)

y la solución del problema (10–11) esy(t) = g(t).

Se supone que g tiene infinitas derivadas y que el tamaño de estas es moderado. Cuando Re(λ) < 0 y|Re(λ)| es muy grande en relación con |Im(λ)| y el tamaño de las derivadas de g, el problema (10–11)es stiff.

Ejemplo 2 Para g(t) = cos(t), que es una función cuyas derivadas son del orden de la unidad,consideramos el problema (10–11), con λ = −1 y λ = −100. La Fig. 2 muestra el error frente al

10−1

100

101

102

10−12

10−10

10−8

10−6

10−4

cputime

erro

r

BDF(λ=−1)

BDF(λ=−100)

DOPRI54(λ=−1)

DOPRI54(λ=−100)

Figura 2: Eficiencia computacional de los métodos DOPRI54 (–) y fórmulas BDF (--) para elproblema de Prothero-Robinson (10–11), con g(t) = cos(t), para λ = −1 (*), y para λ = −100 (+).

costo para diversos valores TOL = RTOL = 10−4, 10−6, . . . , 10−12 de los métodos DOPRI54 (enlínea continua) y las fórmulas BDF (en línea de trazos) para los casos λ = −1 (marcado con ∗) yλ = −100 (marcado con +). Son oportunas ciertas observaciones que resumimos a continuación.

1. Para λ = −1 (gráficas con *), los resultados son similares a los del problema (8–9) asociadoal Brusselator que vimos en la Fig. 1 de la sección anterior, esto es, que para alcanzar un niverde precisión determinado, los fórmulas BDf son tres veces más caras que el DOPRI54.

9

Page 10: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

2. Para λ = −100, aunque se trata de la misma solución y(t) = cos(t) del caso λ = −1, lasituación es diametralmente opuesta, resultando ser el método DOPRI54 unas 8 veces máscostoso que las fórmulas BDF.

3. Los resultados del DOPRI54 muestran que dada una tolerancia TOL, en ambos problemasobtiene los mismos errores, pero para λ = −100 se obtienen con 15 veces más de costo.

4. Los resultados de las fórmulas BDF muestran que dada una tolerancia TOL, en ambos pro-blemas tardan lo mismo en integrar la solución, pero para λ = −100, los errores obtenidosson unas 40 veces más pequeños.

A la vista de estas observaciones, el hecho más destacado es el deterioro tan significativo de laeficiencia del método DOPRI54 al pasar de λ = −1 a λ = −100. Este deterioro no puede ser debidoa la solución del PVI, pues en ambos casos es la misma, y(t) = cos(t). Debe ser por tanto debido alPVI (ecuación diferencial junto con su condición inicial).

La razón de este deterioro es que DOPRI54 se ve forzado a tomar pasos muy pequeños parapoder integrar el problema. Por ejemplo, para TOL = 10−8, la información proporcionada porMatlab 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 cómputo total de pasos aceptados y rechazados se multiplica por 16 alpasar de λ = −1 a λ = −100, y en igual proporción el número de evaluaciones de función.

No hay otra descripción de lo que es un problema stiff que la que ya hemos dado y repetimosa continuación. Un problema, para una precisión determinada y en un intervalo de tiempo deter-minado, es stiff cuando un método explícito debe tomar pasos mucho más pequeños que lo que laregularidad de la solución demanda. Comentamos las palabras en cursiva.

Cuando decimos la regularidad de la solución, esto quiere decir que si esa misma solución lofuese de otro problema, el método tomaría pasos considerablemente más largos manteniendoel nivel de precisión pedido. (Compare si no los pasos que ha necesitado el método DOPRI54para integrar y(t) = cos(t) según sea λ = −1 o λ = −100).

10

Page 11: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Cuando un problema es stiff, todos los métodos explícitos sufren la misma pérdida de eficiencia.Algunos métodos implícitos también (como por ejemplo los métodos de Adams implícitos)aunque no otros (como las fórmulas BDF). Por eso se utiliza como criterio para determinar siun problema es stiff el comportamiento en cualquier método explícito.

No es infrecuente que un problema sea stiff en un intervalo [t0, tf ] pero deje de serlo a partirde t0 (o caso más frecuente) no lo sea antes de t0.

El caracter stiff de un problema depende de la precisión deseada. Si demandamos muchaprecisión (por ejemplo, en un ordenador cuya unidad de redondeo sea del orden de 10−36)cualquier método se ve obligado a tomar pasos pequeños para conseguir errores muy bajos, ylos problemas dejan de ser stiff.

Por último, para hacerse una idea de cuál es la dificultad de los problemas stiff, basta consideraren la ecuación (10) la desviación con respecto a la solución particular

z(t) = y(t)− g(t).

Note que al ser Re(λ) < 0, y que tal y como vimos en (12), se tiene que

lımt→∞

z(t) = 0. (13)

Notemos que z(t) satisface la ecuaciónz′ = λz(t).

Para el método de Euler explícito (que es el único método Runge-Kutta de una etapa conver-gente), y sobre una partición uniforme (hn = h, para n = 1, 2, . . . ) se tiene que

zn+1 = zn + λhzn = (1 + λh)zn = (1 + λh)2zn−1 = . . . = (1 + λh)n+1z0.

Tenemos por tanto que con el metodo de Euler la solución numérica zn reproduce el comportamientode la solución de verdad en (13),

lımn→∞

zn = 0 ⇔ |1 + λh| < 1.

En el caso de λ ∈ R (y dado que entonces λ < 0) tenemos que

lımn→∞

zn = 0 ⇔ h <1

|λ| .

Dado que para otros métodos RK la situación es similar, esto explica las diferencias entre λ = −1y λ = −100 en el Ejemplo 2.

Por otro lado para el método de Euler implícito (que es la fórmula BDF de un paso) tenemosque

zn+1 = zn + λhzn+1, esto es, (1− λh)zn+1 = zn,

o, equivalentemente,

zn+1 = (1− λh)−1zn = (1− λh)−2zn−1 = . . . = (1− λh)−n−1z0.

11

Page 12: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Tenemos por tanto que con el metodo de Euler implícito,

lımn→∞

zn = 0 ⇔ 1

|1 + λh| < 1.

En el caso de λ ∈ R y negativo tenemos que

lımn→∞

zn = 0 ⇔ h > 0,

esto es, que para reproducir el comportamiento de la solución z(t) no hay ninguna restricción delongitud de paso, salvo la que venga impuesta por la regularidad de la misma. El caso de otrasfórmulas BDF de más pasos es similar al del método de Euler implícito, explicando esto que lasfórmulas BDF sean insensibles al tamaño de λ en la ecuación (10).

Puede encontrar más información sobre la naturaleza de los problemas stiff en [3], § 6.1–6.2, asícomo amplia documentación sobre este tipo de problemas y su tratamiento numérico en [2]

3. Otras cuestiones de orden práctico

Los comandos de Matlab para integrar EDOs o sistemas de EDOs, a través de las opciones queles demos mediante el comando odeset, pueden llevar a cabo diversas tareas como dibujar mapasde fase, ayudarnos a determinar el periodo de una solución periódica, etc.

Puede que le resulte de utilidad la posibilidad de construir mapas de fase. Mediante la opciónOuputFcn podemos indicarle a Matlab que realice determinada acción cada vez que calcula unpunto. De hecho, Matlab tiene prevista la función odephas2 que dibuja las trayectorias según lasva 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 sistemax′ = 1− yy′ = x2 − y2

}

(14)

se obtuvo con la secuencia de comandos

12

Page 13: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

% 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 función 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 método del disparo para problemas de contorno

4.1. Cuestiones de repaso

Recordemos que un problema de contorno viene dado por una ecuación diferencial de segundoorden (o de orden par, en general) para la cual se busca la solución 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 decontorno en 0 o a como en l o b. Un ejemplo puede ser el problema

−kuxx(x) = f(x), x ∈ (0, l),u(0) = α, u(l) = β,

}

(15)

13

Page 14: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Las condiciones de contorno tanto en el extremo x = a como en el extremo x = b pueden ser deuno de los tres tipos siguientes, donde entnderemos que x0 puede ser o bien a o bien b.

i) Condición de tipo Dirichlet, u(x0) = u0

ii) Condición de tipo Nuemann, βux(x0) = v0, donde β es un valor real.

iii) Condición mixta o de tipo Robbin, αu(x0) + βux(x0) = w0, 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 dirección vertical con respecto su fibra neutra.

f(x)

xw(x)

Dicho desplazamiento w(x) satisface,

EIwxxxx = −f(x), x ∈ (0, l),w(0) = w′(0) = 0,w(l) = w′′(l) = 0,

(16)

donde E es el módulo de Young e I el momento de inercia de la sección transversal con respectoal plano horizontal (Si la viga no es de sección constante, debe entonces cambiarse la ecuaciónEIwxxxx = −f(x) por (EI(x)wxx(x))xx = −f(x)). Puede obtener más información [4], § 26.6y [5], § 7.2.

Los problemas de contorno son lineales si sólo aparecen expresiones lineales de la incógnita ysus derivadas. Tal es el caso de los problemas que hemos escrito hasta ahora. Son lineales y decoeficientes constantes si aparte de ser lineales los coeficientes que multiplican a la incógnita u y susderivadas no dependen de la variable independiente x. Los problemas en los que nos centraremosserán lineales, aunque deber saber que también los hay no lineales, como por ejemplo el problemade Bratu,

uxx + λeu = 0, x ∈ (0, 1),u(0) = 0, u(1) = 0,

}

(17)

donde λ es un parámetro real, o el siguiente problema

u′′ + |u| = 0,u(0) = 0, u(l) = β,

}

, (18)

14

Page 15: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

donde l > 0.La casuística de los problemas de contorno es bastante más 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 solución si λ = λ0 y ninguna si λ > λ0. A su vez, el problema

(18) si l > π, tiene dos soluciones distintas si β < 0, una única solución si β = 0, y ninguna si β > 0;En cambio, los problemas (15) y (16) tienen una única solución, sea quien sea f en ambos casos ysean quienes sean α y β en el problema (15). Esta diferencia entre los problemas (17) y (18) porun lado, y (15) y (16) por otro, no se debe a que estos sean lineales de coeficientes constantes y losotros dos sean no lineales. Los problemas lineales y de coeficientes constantes pueden tener tambiénuna casuística variada. Así por ejemplo, el problema

y′′ + y = cos(t),y(0) = 0, y(π) = 0,

}

, (19)

tiene infinitas soluciones, pero el problema

y′′ + y = cos( t2),

y(0) = 0, y(π) = 0,

}

, (20)

no tiene ninguna, y ambos son lineales y de coeficientes constantes.Recordemos que para problemas lineales (no necesariamente de coeficientes constantes) la casuís-

tica es algo más simple y viene dada por el Teorema de la Alternativa de Fredholm que enunciaremospara un problema general de la forma

uxx + b(x)ux(x) + c(x)u(x) = f(x), x ∈ (0, l)B0(u) = a0, Bl(u) = al,

}

(PC) (21)

donde

B0(u)

Bl(u)

, puede ser cualquiera de

u(0), ux(0), o −ux(0) + α0u(0),

u(l), ux(l), o ux(l) + αlu(l),

con α0 6= 0 y αl 6= 0.Recordando que asociado a este problema tenemos el correspondiente problema homogéneo

uxx + b(x)ux(x) + c(x)u(x) = 0, x ∈ (0, l)B0(u) = 0, Bl(u) = 0,

}

(PCH). (22)

Tenemos el siguiente resultado.

Teorema 1 Teorema de la Alternativa (de Fredholm). Se verifica una de las dos opcionesexcluyentes siguientes.

i) Para toda f continua el problema (PC) tiene una única solución.

ii) El problema (PCH) tiene solución no trivial.

Además, en caso de que ii) sea cierto, si el problema (PC) tiene solución (puede no tenerla), elconjunto de soluciones estará constituido la suma de una solución cualquiera de (PC) y todas lasde (PCH).

15

Page 16: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Nota 1 El teorema anterior también es válido cuando p y q son periódicas de periodo l y se pideque la solución u sea también periódica mediante las condiciones de contorno

B0(u) = u(l)− u(0) = 0, B1(u) = ux(l)− ux(0) = 0.

Nota 2 En el caso ii) del teorema anterior, las soluciones de (PCH) son todas proporcionales a unadada, salvo en el caso de condiciones frontera periódicas que pueden ser las combinaciones linealesde dos soluciones independientes.

En el caso de darse la opción ii) del teorema anterior veremos en la próxima sección un criteriosimple para averiguar si el problema de contorno tiene solución (en cuyo caso tendrá infinitas) o,por el contrario, no posee ninguna solución.

4.2. El método del disparo

Recuerde que en el método 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 solución(en caso de haberla) como combinación líneal

y(t) = yp(t) + γy0(t), donde γ =β − yp(b)

y0(b), (24)

de las soluciones yp e y0 de dos problemas de valor inicial,

y′′p + py′p + qyp = r,yp(a) = α, y′p(a) = 0,

}

(25)

yy′′0 + py′0 + qy0 = 0,

y0(a) = 0, y′0(a) = 1

}

. (26)

Recuerde además que si al calcular la constante γ en (24) el denominador satisface que y0(b) = 0,entonces y0 es solución no trivial (pues y′0(a) = 1 6= 0) del problema homonéneo asociado a (23),y por tanto éste puede no tener solución o tener infinitas. Este segundo caso se da, obviamente,cuando el numerador de γ, β−yp(b) es nulo (pues yp ya es entonces una solución de (23)). El primercaso se da cuando, siendo y0(b) = 0, se tiene β − yp(b) 6= 0.

Recuerde así mismo que cuando se utiliza este método en el ordenador se obtienen las funcionesyp e y0 sobre una red de puntos a = t0 < t1 < . . . < tN = 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 método de disparo consiste en resolver la ecuación

g(s) = 0,

16

Page 17: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

por algún método para resolver ecuaciones no lineales como puede ser el método de bisección o elmétodo de la secante, donde

g(s) = y(b)− β,

e y la solución del PVIy′′ + f(t, y, y′) = r,

y(a) = α, y′(a) = s.

}

. (28)

Para aquél valor de s para el que g(s) = 0, la correspondiente solución de (28) es la solución delproblema de contorno (27).

Nota 3 Aparte del método del disparo, existen otros métodos para problemas de contorno quetrataremos más 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 podrán resolverse sin dificultad con el método del disparo, o con los métodos queexplicaremos en lecciones posteriores. No obstante, debe saber que Matlab dispone de un comandomuy sofisticado para problemas de contorno, bvp4c. Es más complejo de usar que los comandospara PVI. Si se ve en la necesidad de utilizarlo, encontrará muy útil leer antes [8] (accesible porInternet en la dirección ftp://ftp.mathworks.com/pub/doc/papers/bvp), donde este comandoes explicado con detalle por sus propios autores.

5. Cuestiones y problemas

CUESTIONES

Ejercicio 1 Obtener el método de Adams explícito de dos pasos, y particularizar el caso hn = h,para todo n.

Ejercicio 2 Idem con método de Adams implícito de dos pasos.

Ejercicio 3 Compruebe que efectivamente el método de Euler implícito es la fórmula BDF de unpaso.

Ejercicio 4 Obtener la fórmula BDF de dos pasos, y particularizar el caso hn = h, para todo n.

Ejercicio 5 (Junio 2005). Determinar los valores α, β y γ para que el método de dos pasos

yn+2 − 2yn+1 + yn = h2(

αf(yn+2) + βf(yn+1) + γf(yn))

, n = 0, 1, 2, . . . , N − 2,

(tn = t0 + nh, n = 0, 1, 2 . . . , N) sea consistente de orden lo más alto posible para ecuaciones desegundo orden de la forma y′′ = f(y), esto es que para una solución de y′′ = f(y) suficientementeregular

τn = y(tn+2)− 2y(tn+1) + y(tn)− h2(

αy′′(tn+2) + βy′′(tn+1) + γy′′(tn))

sea un infinitésimo en h del orden lo más alto posible. Determinar dicho orden.

17

Page 18: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Ejercicio 6 (Junio 2005). La fórmula BDF de k pasos se obtiene imponiendo que el polinomiointerpolador de yn−k+1, . . . , yn, yn+1 satisfaga la ecuación diferencial y′ = f(t, y) en tn+1. Para k = 2(y hn = h para todo n), encuentre el método que se obtiene al imponer que polinomio interpoladorde yn−1, yn e yn+1 satisfaga la ecuación diferencial y′ = f(t, y) en tn (observe que se pide en tn, yno en tn+1 como en las fórmulas BDF).

Ejercicio 7 (Septiembre 2005). Los métodos de Nyström son parecidos a los de Adams pues,aparte de tener el mismo orden, en el método de Nyström explícito de k pasos, dados los valoresyn−k+1, . . . , yn en los puntos tn−k+1, . . . , tn (con tj = t0 + jh, j = 0, 1, 2 . . . ) la aproximación yn+1 seobtiene de la relación

yn+1 − yn−1 =

∫ tn+1

tn−1

P ∗

n,k(t) dt,

donde, como en los métodos de Adams, P ∗

n,k(t) es el polinomio de grado k − 1 que en las k abcisastn−k+1, . . . , tn toma los valores f(tn−k+1, yn−k+1), . . . , f(tn, yn), respectivamente. Calcule el métodode Nyström explícito de 3 pasos.

Ejercicio 8 Resolver −y′′ + y = 0 sujeto a y(0) = 0 y y(π) = 2. Asimismo, determine los valoresde a para los que el siguiente problema de contorno tenga solución.

{

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))′ = 0y(0) = 1, y(l) = 0

Ejercicio 10 Encuentre una función u y otra v que satisfagan

u(0) = 1, u′(1) = 0, v(0) = 1, v′(1) + 2v(0) = 3.

Ejercicio 11 Basándose en el ejercicio anterior, pruebe que las solución de culquier problema decontorno lineal de segundo orden con condiciones fronteras no homegénes, se pueden encontrarresolviendo un problema con condiciones de contorno homogéneas.

Ejercicio 12 Encuentre todas las soluciones de la ecuación −u′′+u′ = 0 (ya sabe, las combinacioneslineales de las funciones eλx para λ raíz del polinomio p(x) = x2−x). Determinar entonces los valoresde α y β para los cuales el problema

−uxx + ux = 0,ux(0) = α, ux(l) = β,

}

tiene solución.

18

Page 19: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Ejercicio 13 Resuelva el problema x2uxx(x)+xux(x)−u(x) = 0, x ∈ (0, 1), sujeto a las condicionesde contorno u(1) = 1, y

lımx→0

|u(x)| < ∞.

(Encuentre primero los posibles valores de α para los cuales u = xα es solución de la ecuacióndiferencial x2uxx(x) + xux(x)− u(x) = 0, y determine dos soluciones independientes en (0, 1)).

Ejercicio 14 Verifique que para cualquier función continua h : [1, 4] → IR , el problema de contorno

{

2x2y′′(x) + 3xy′(x)− y(x) = h(x)y(1) = 0, y(4) = 1

tiene solución única. Para h(x) = x hallar la correspondiente solución

Ejercicio 15 Resolver cuando sea posible el problema de contorno

{

y′′ + 9y = t + ay(0) = 1, y(π) = 2

Ejercicio 16 Las fórmulas NDF son como las fórmulas BDF vistas en el curso a las que, paradarles mayor estabilidad, se les añade un término proporcional a la diferencia dividida de ordenk + 1 (éste término se añade a la fórmula de k pasos).

1. Para niveles de tiempos espaciados tj+1 − tj = h (j = n, n− 1, n− 2), calcule el desarrollo deTaylor en tn+1 de 6y[tn+1, tn, tn−1, tn−2] cuya expresión es

6y[tn+1, tn, tn−1, tn−2] = y(tn+1)− 3y(tn) + 3y(tn−1)− y(tn−2).

2. Determinar en función de τ el orden de la segunda fórmula NDF, esto es, el orden comoinfinitésimo en h de la expresión del error de truncación que es

τn =3

2y(tn+1)− 2y(tn) +

1

2y(tn−1)− hy′(tn+1) + 6y[tn+1, tn, tn−1, tn−2]

19

Page 20: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

PROBLEMAS

Problema 1 Consideremos el sistema autónomo no lineal{

x′ = 1− yy′ = x2 − y2

1. Determine analíticamente los puntos críticos del sistema y el tipo de su configuración.

2. Esboce el correspondiente plano de fases en el cuadrado [−2, 2] × [0, 2] utilizando la ordenode45 de Matlab. Para ello, diseñe un fichero que permita dibujar en una misma gráficalas órbitas que parten de los puntos (x, 0) con x = −2 : 0,5 : 2 y tales que el instante iniciales cero, el instante final es diez. Posteriormente, añada las órbitas que parten de los puntos(x, 2) con x = −2 : 0,25 : 2, con las mismas especificaciones.

3. Repita el apartado dos utilizando la orden ginput para seleccionar los puntos de arranque delas órbitas. Debe dibujar, al menos, treinta órbitas en el cuadrado [−2, 2]×[0, 2] y las restantesespecificaciones son las mismas que en dicho apartado.

4. Repita el apartado dos usando la opción OutputFcn de la orden odeset de Matlab.

5. Para cada uno de los equilibrios del sistema, esboce un plano de fases en un rectánguloadecuado. Describa y justifique las representaciones gráficas obtenidas en este apartado y lostres anteriores.

Problema 2 En este problema se estudia la integración numérica de dos ecuaciones diferencialesordinarias rígidas (stiff) de primer orden.

1. Considere la ecuación diferencial

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

Obtenga analíticamente la solución exacta con valor inicial y(0) = 1. ¿Cuál es el comporta-miento a largo plazo de dicha solución?

2. Utilizando la orden ode23 de Matlab, resuelva numéricamente el problema anterior en elintervalo [0, 1] y en el intervalo [0, 20]. Compruebe la exactitud de la aproximación y estime elnúmero de evaluaciones funcionales requeridas en ambos casos. Utilizando el estilo de línea ’.’,describa como ha ido cambiando el paso de integración en ambos intervalos. ¿Cambia muchola situación usando la orden ode45? ¿Y usando la orden ode113?

3. Repita el apartado dos, pero usando ahora la orden ode15s. Justifique los resultados obteni-dos.

4. Integre numéricamente el problema{

y′ = y2(1− y)y(0) = 10−4

en el intervalo [0, 2 · 104] usando la orden ode45. Como en el apartado dos, comente lasestadísticas de integración y la gráfica en estilo de línea ’.’ de la correspondiente solución.¿Qué ocurre si repetimos el proceso en el intervalo [0, 104]?.

20

Page 21: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

5. Repita el apartado cuatro usando la orden ode15s. Justifique los resultados obtenidos.

Problema 3 (Junio 2005) En el curso hemos programado el método Runge-Kutta clásico. Parecidoes el método Runge-Kutta-Nyström (RKN) que deberá programar ahora. Los métodos RKN sonmétodos de tipo Runge-Kutta para ecuaciones y sistemas de ecuaciones de segundo orden. Para elproblema

y′′ = f(y), t ∈ [t0, tf ]y(t0) = y0, y′(t0) = y′0

}

(29)

con un método RKN de s etapas se obtienen aproximaciones yn ≈ y(tn) e y′n ≈ y′(tn) (dondetn = t0 + nh), por el siguiente procedimiento,

ki = f(yn + cihy′

n + h2i−1∑

j=1

aijkj), i = 1, . . . , s,

yn+1 = yn + hy′n + h2s

i=1

biki,

y′n+1 = y′n + hs

i=1

biki

(note que hay coeficientes bi para las yn y bi para las y′n). Considere entonces el método de Nyströmde s = 4 etapas de tablero de Butcher generalizado,

c A

bT

bTdado por

01

5

1

502

3

− 1

27

7

27

121

70

− 4

70

18

70

bi14

336

100

336

54

336

bi14

336

125

336

162

336

35

336

1. Elabore una función de Matlab que implemente dicho método 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 soluci’on

% 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 aproximaci’on en tiempo T(j) de y’

21

Page 22: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

2. Pruebe su función en el problema[

y′′1y′′2

]

= −[

y1y2

]

,

[

y1(0)y2(0)

]

=

[

10

]

,

[

y′1(0)y′2(0)

]

=

[

01

]

, t ∈ [0, 5].

¿Cuál es la solución de este problema? ¿Qué error obtiene con h = 0,1 en t = 5?

3. Averigue el orden p de convergencia del método. Explique cómo lo ha hecho.

4. Escriba con 4 cifras signicativas correctas la solución en tiempo t = 5 de

[

y′′1y′′2

]

=−1

(y21 + y22)3/2

[

y1y2

]

,

[

y1(0)y2(0)

]

=

[

1/40

]

,

[

y′1(0)y′2(0)

]

=

[

0√

5/3

]

.

Problema 4 Considere el problema de contorno

(P1) ≡{

y′′ = 4y + 2ty(0) = α, y(3) = β

1. Calcule la solución exacta del problema (P1) cuando α = 1 y β = 2.

2. Para obtener una aproximación a la solución del problema del apartado anterior sobre unared de espaciado h = 0,01 utilice el método del disparo, con el comando ode45 (con AbsTol yRelTol iguales a 10−8) para integrar los correspondientes problemas de valor inicial. Esboceuna gráfica de la solución y calcule el máximo 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.

Diseñe una función en Matlab que implemente el método de disparo no lineal, utilizandola orden ode45 para abordar los correspondientes problemas de valor inicial y el método dela secante para determinar la sucesión de parámetros. Los argumentos de entrada deben serla correspondiente ecuación fun, el paso h para la red sobre la que se desea la solución, latolerancia (absoluta y relativa) de la orden ode45, el máximo número de iteraciones y los dosvalores iniciales s0 y s1 del método de la secante. Se supone que el problema de contorno seha reformulado de la siguiente manera: determinar el parámetro s tal que

{

y′′ = f(t, y, y′),y(0) = 1, y′(0) = s

; y(1) = 0.

4. Utilizando la función del apartado anterior, calcule una aproximación a la solución de (P2)para h = 0,01, tolerancia 10−7, s0 = 0, s1 = −10−8 y con un máximo de dos iteraciones(además de las asociadas a s0 y s1). Esboce una gráfica de la solución y escriba (con seis cifrassignificativas) el valor de y(1). Repita el proceso pero realizando esta vez cuatro iteraciones.

5. Proporcione el valor de la solución en x = 0,9.

22

Page 23: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

Problema 5 1. Diseñe una función en Matlab que implemente el método de disparo no lineal,utilizando la orden ode45 para la resolución de los correspondientes problemas de valor inicialy el método de la secante para determinar la sucesión de parámetros. Los argumentos deentrada deben ser la correspondiente ecuación, los puntos a y b, las condiciones de contornoα y β, la tolerancia de la órden ode45, el máximo número de iteraciones y los dos valoresiniciales s0 y s1 del método de la secante. Se supone que el problema de contorno se ha podidoformular de la siguiente manera: determinar el parámetro s tal que

{

y′′ = f(t, y, y′),y(a) = α, y′(a) = s

y y(b) = β.

2. Considere el problema de contorno

{

y′′ = y3 − yy′,

y(1) =1

2, y(2) =

1

3

.

Obtenga una gráfica de la solución de dicho problema usando la función del apartado uno.Compare dicha gráfica con la gráfica de la solución exacta

y(t) =1

t+ 1.

3. Modifique el fichero del apartado uno para que el método de disparo no lineal incluya, además,como criterio de parada la diferencia en valor absoluto entre el valor obtenido y(sn) en laiteración n-ésima y el valor deseado β.

4. Considere el siguiente problema de contorno

{

t3y′′′ − 4t2y′′ + 8ty′ − 8y = 4 log(t),y(1) = 0, y′(1) = 1, y(2) = 1

.

Obtenga gráficamente una solución del problema anterior en un mallado de paso 0.1, usandola función del apartado tres con tolerancia (para la secante) igual a 10−4. Calcule el errorcometido sabiendo que la solución general de la ecuación es del tipo

y(t) = c1t+ c2t2 + c3t

4 − 1

2log(t)− 7

8.

Problema 6 (Examan Final 2007-08) Considere el siguiente problema de contorno no lineal

(P1) ≡{

y′′ + 20y(1− y2) = 0,y(0) = α, y′(1) = β.

1. Diseñe una función en Matlab (o modifique la que hicimos en su día en las prácticasdel curso) que implemente el método de disparo no lineal para este problema, utilizando laorden ode45 para abordar los correspondientes problemas de valor inicial y el método de lasecante para determinar la sucesión de parámetros. Los argumentos de entrada deben ser lacorrespondiente ecuación fun, el paso h para la red sobre la que se desea la solución, los valores

23

Page 24: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

α y β, la tolerancia (absoluta y relativa) de la orden ode45, el máximo número de iteracionesy los dos valores iniciales s0 y s1 del método de la secante. Se supone que el problema decontorno se ha reformulado de la siguiente manera: determinar el parámetro 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 − y2).) Escriba el listado de dicho programa en su hoja derespuestas.

2. Utilizando la función del apartado anterior, calcule una aproximación a la solución de (P1)cuando α = 1 y β = −2; para h = 0,01, tolerancia 10−7, s0 = 0, s1 = −1/100, y con un máximode dos iteraciones (además de las asociadas a s0 y s1). Esboce una gráfica de la solución yescriba (con seis cifras significativas) el valor de y(1). Repita el proceso pero realizando estavez cuatro iteraciones.

3. Proporcione el valor de la solución en x = 0,9 con 10 cifras decimales correctas.

4. Considere ahora el mismo problema de contorno pero cambiando la segunda condición decontorno a y′(1) + y(1) = −2, esto es,

(P2) ≡{

y′′ + 20y(1− y2) = 0,y(0) = 1, y′(1) + y(1) = −2.

Repita el apartado 2 para el problema de contorno con esta nueva condición frontera.

Referencias

[1] E. Hairer, S. P. Nørsett & G. Wanner, Solving Ordinary Differential Equations I (2nd. Ed.)(Springer-Verlag, Berlin, 1993).

[2] E. Hairer & G. Wanner, Solving Ordinary Differential Equations II (2nd. Ed.) (Springer-Verlag,Berlin, 1997).

[3] J. D. Lambert, Numerical Methods for Ordinary Differential Systems. The initial value Pro-blem. John Wiley & Sons, Chichester, 1991.

[4] P. Puig Adam, Curso Teórico-Práctico de Cálculo Integral Aplicado a la Física y Técnica (15a

Ed.) Ed. Biblioteca Matemática, Madrid, 1976.

[5] P. Puig Adam, Curso Teórico-Práctico de Ecuaciones Difrenciales Aplicado a la Física y Téc-nica (16a Ed.) Roberto Puig Alvarez, Madrid, 1980.

[6] J. M. Sanz-Serna, Diez Lecciones de Cálculo Numérico, Universidad de Valladolid, 1998.

[7] L. F. Shampine & M. W. Reichelt, The Matlab ODE Suite, SIAM J. Sci. Comput., 18 (1997),pp. 1–22.

24

Page 25: MÉTODOS MATEMÁTICOS (Curso 2011-2012) · La fórmula BDF de k = 1 paso, es el método de Euler implícito y n+1 − y n = h nf(t n+1,y n+1). Siempre que k ≤ 6, la fórmula BDF

[8] L. F. Shampine, J. Kierzenka & M. W. Reichelt, Solving Boundary Value Problems for OrdinaryDifferential Equations in Matlab with bvp4c, manuscrito accesible electrónicamente en ladirección “ftp://ftp.mathworks.com/pub/doc/papers/bvp”, 2000.

[9] G. F. Simmons Ecuaciones Diferenciales con Aplicaciones y Notas Históricas (Segund Edición),McGraw-Hill, Madrid, 1991.

[10] G. W. Stewart, Afternotes on Numerical Analysis, SIAM, Philadelphia, 1996.

25