ecuaciones-diferenciales-13ii

29
V Soluci´on de Ecuaciones Diferenciales Ordinarias V.1 Introducci´on V.1.1 Problema Una ecuaci´on diferencial es una ecuaci´on que involucra una funci´on indeterminada y(t) y sus derivadas y 0 (t),y 00 (t),... junto con condiciones iniciales o de frontera. Una soluci´ on para la ecuaci´on diferencial es una funci´ on que satisface la ecuaci´ on y las condiciones iniciales. Estas ecuaciones aparecen en el modelamiento matem´ atico de todo tipo de sistemas. Por ejemplo, el ´angulo θ que un p´ endulo forma con la vertical satisface la ecuaci´on diferencial d 2 θ dt 2 + g L sin θ =0 con las condiciones iniciales θ(0) = θ 0 , θ 0 (0) = θ 0 0 . Aunque para algunas clases particulares de ecuaciones existen m´ etodos para determinar soluciones, este no es el caso en general. Por lo tanto es importante la posibilidad de obtener soluciones num´ ericas. El objetivo aqu´ ı es estudiar algunos m´ etodos para la soluci´ on num´ erica de algunas clases importantes de ecuaciones diferenciales. Aqu´ ı inicialmente, y la mayor parte del tiempo, nos restringimos al problema de valor inicial (PVI), de primer orden, de la forma y 0 (t)= dy(t) dt = f (t, y(t)) con y(t 0 )= y 0 (*) donde f es una funci´ on definida sobre un subcojunto apropiado de R × R y con valor en R. Una soluci´ on para (*) en el intervalo [t 0 ,t 0 +T ] es una funci´ on y :[t 0 ,t 0 +T ] R tal que y 0 (t)= f (t, y(t)) para t [t 0 ,t 0 + T ]y y(t 0 )= y 0 . Geom´ etricamente, f (t, y) especifica para cada (t, y) en el plano t-y la pendiente que debe tener una soluci´ on que pasa por ese punto. Ejemplo. Consideremos la ecuaci´on dy dt =1 - e -t con y(0) = y 0 . V.1

description

ecuaciones diferenciales

Transcript of ecuaciones-diferenciales-13ii

Page 1: ecuaciones-diferenciales-13ii

V

Solucion de EcuacionesDiferenciales Ordinarias

V.1 Introduccion

V.1.1 Problema

Una ecuacion diferencial es una ecuacion que involucra una funcion indeterminada y(t) y susderivadas y′(t), y′′(t), . . . junto con condiciones iniciales o de frontera. Una solucion para la ecuaciondiferencial es una funcion que satisface la ecuacion y las condiciones iniciales. Estas ecuacionesaparecen en el modelamiento matematico de todo tipo de sistemas. Por ejemplo, el angulo θ queun pendulo forma con la vertical satisface la ecuacion diferencial

d2θ

dt2+g

Lsin θ = 0

con las condiciones inicialesθ(0) = θ0, θ′(0) = θ′0.

Aunque para algunas clases particulares de ecuaciones existen metodos para determinar soluciones,este no es el caso en general. Por lo tanto es importante la posibilidad de obtener solucionesnumericas. El objetivo aquı es estudiar algunos metodos para la solucion numerica de algunasclases importantes de ecuaciones diferenciales.

Aquı inicialmente, y la mayor parte del tiempo, nos restringimos al problema de valor inicial(PVI), de primer orden, de la forma

y′(t) =dy(t)

dt= f(t, y(t)) con y(t0) = y0 (∗)

donde f es una funcion definida sobre un subcojunto apropiado de R × R y con valor en R. Unasolucion para (∗) en el intervalo [t0, t0+T ] es una funcion y : [t0, t0+T ]→ R tal que y′(t) = f(t, y(t))para t ∈ [t0, t0 + T ] y y(t0) = y0. Geometricamente, f(t, y) especifica para cada (t, y) en el planot-y la pendiente que debe tener una solucion que pasa por ese punto.

Ejemplo. Consideremos la ecuacion

dy

dt= 1− e−t con y(0) = y0.

V.1

Page 2: ecuaciones-diferenciales-13ii

V.2 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Como la parte derecha de la ecuacion depende solo de t, se puede integrar y se obtiene y(t) =t + e−t + C donde C es una constante a determinar. Reemplazando t = 0, la condicion inicialimplica que 1 + C = y0 y entonces la solucion es

y(t) = t+ e−t + y0 − 1.

La siguiente figura, producida por el segmento de Matlab a continuacion, muestra la curvasolucion y(t) para diferentes valores de la condicion inicial y0. Bajo ciertas condiciones a serdiscutidas mas adelante, para cada punto (t0, y0) existe una curva solucion unica que pasa por este.Dos de estas curvas solucion son disyuntas o la misma.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

f=@(t,y0) t+exp(-t)+y0-1;figure;hold on;for i=0:5

fplot(@(t) f(t,.1*i),[0,1]);end

Note que la instruccion f=@(t,y0) t+exp(-t)+y0-1 define la funcion f de dos variables t yy0 como se desea. Por otra parte, el primer parametro de fplot, es la funcion @(t) f(t,.1*i) deuna sola variable t, la cual es la funcion f con la segunda variable igual a .1*i. Alternativamente,se podrıa haber empleado la instruccion inline.

V.1.2 Solucion Numerica

Los metodos que consideramos producen una aproximacion discreta de la solucion: pares (ti, wi)donde t0, t1, t2, . . . , tM con tM = t0 + T , es una discretizacion del intervalo de tiempo [t0, t0 + T ]y w0, w1, . . . , wM es una aproximacion de y0 = y(t0), y1 = y(t1), . . . , yM = y(tM). Usualmentetodos los subintervalos [tk, tk+1] tienen la misma longitud. Mas precisamente, tk = t0 + kh parak = 0, . . . ,M y donde h = T/M . En general estudiaremos metodos de diferencia de primer ordenen que wk+1 esta dado explıcitamente en terminos de wk, k = 1, 2, . . . ,M , de la siguiente forma(metodos explıcitos de un paso)

wk+1 = wk + hΦ(tk, wk) (∗)

con condicion inicial w0 = C0. La ecuacion (∗) es llamada ecuacion de diferencias o tambienformula de avance. La funcion Φ es llamada la funcion incremental.

Page 3: ecuaciones-diferenciales-13ii

V.2. EXISTENCIA DE SOLUCIONES V.3

V.2 Existencia de Soluciones

Definicion. Sea f(t, y) una funcion definida en el rectangulo

R = {(t, y) | a ≤ t ≤ b, c ≤ y ≤ d}.

Se dice que f satisface una condicion de Lipschitz con respecto a la segunda variable si existe L > 0,llamada la constante de Lipschitz, tal que para todo (t, y1), (t, y2) ∈ R se tiene que

|f(t, y1)− f(t, y2)| ≤ L · |y1 − y2|.

Si f satisface una condicion de Lipschitz en R con respecto a la segunda variable con constantede Lipschitz L, entonces f es continua en la segunda variable: dado ε > 0, si tomamos δ = ε/L,entonces para todo (t, y1), (t, y2) ∈ R con |y1−y2| ≤ δ se tiene que |f(t, y1)−f(t, y2)| ≤ L|y1−y2| ≤Lδ ≤ ε. En lo que sigue, fy(t, y) denota la derivada parcial de f con respecto a y.

Teorema V.1 Sea f(t, y) definida en un rectangulo R como antes. Si existe L > 0 tal que paratodo (t, y) ∈ R se tiene

|fy(t, y)| ≤ L,

entonces f satisface la condicion de Lipschitz en la variable y con constante L en R.

Para verificar este teorema, note que utilizando el teorema del valor medio podemos escribir,para y1, y2 con c ≤ y1 < y2 ≤ d y algun ξ ∈ [y1, y2],

f(t, y1)− f(t, y2) = fy(t, ξ)(y1 − y2)

y de aquı

|f(t, y1)− f(t, y2)| = |f(t, ξ)(y1 − y2)| ≤ |fy(t, ξ)| · |y1 − y2|.

Puesto que |fy(t, ξ)| ≤ L entonces

|f(t, y1)− f(t, y2)| ≤ L · |y1 − y2|,

lo cual es la condicion de Lipschitz.

Ejemplo. Verifiquemos que

f(t, y) =2

ty + t2et

satisface la condicion de Lipschitz con respecto a la segunda variable para t ∈ [1, 2]. Primerodirectamente, usando 2/t ≤ 2 para t ≥ 1,

|f(t, y1)− f(t, y2)| =∣∣∣∣2t y1 + t2et − 2

ty2 − t2et

∣∣∣∣ =2

t|y1 − y2| ≤ 2|y1 − y2|

Alterativamente fy(t, y) = 2/t y entonces |fy(t, y)| ≤ 2 para t ≥ [1, 2]. Ası, por el teorema anterior,f(t, y) es Lipschitz con respecto a la segunda variable.

Page 4: ecuaciones-diferenciales-13ii

V.4 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Ejemplo. Consideremos f(t, y) = |y|2/3. Esta funcion no satisface la condicion de Lipschitz conrespecto a y en regiones que contengan puntos con y = 0 porque, con y2 = 0 y y1 > 0 tenemos que

|f(t, y1)− f(t, y2)| = |y1|2/3, |y1 − y2| = |y1|

y entonces no existe constante C > 0 tal que

|y1|2/3 = |f(t, y1)− f(t, y2)| ≤ C|y1 − y2| = C|y1|,

porque esta desigualdad implicarıa C ≥ 1/|y1|1/3 y 1/|y1|1/3 tiende a infinito cuando y1 tiende a 0(recuerde que C debe ser idependiente de la seleccion de y1, y2).

La importancia de la condicion de Lipschitz condicion radica en el siguiente teorema (y tambiense usa en el analisis del error de los metodos numericos).

Teorema V.2 Sea f(t, y) continua en un rectangulo R (como antes), que satisface la condicion deLipschitz con respecto a la segunda variable en R, y sea (t0, y0) ∈ R. Entonces el PVI y′ = f(t, y),y(t0) = y0, tiene una solucion unica en un subintervalo [t0, t0 + δ] para algun δ > 0.

Ejemplo. Si la condicion de Lipschitz no se satisface, es posible que la solucion al PVI no seaunica. Considere por ejemplo

y′(t) = y2/3, y(0) = 0.

Este PVI tiene las soluciones y(t) = 0 y y(t) = (t/3)3 lo cual se puede verificar facilmente. Otroejemplo en que ninguna solucion es trivial (zero) es

y′(t) =1

2

{√t2 + 4y − t

}, y(2) = −1,

con soluciones y(t) = −(t/2)2 y y(t) = 1− t.

V.3 Metodo de Euler

Consideramos un PVI de la forma

y′ = f(t, y) en [t0, t0 + T ] con y(t0) = C0

y para su solucion numerica usamos la discretizacion del tiempo: tk = t0+kh para k = 0, 1, 2, . . . ,Mdonde h = T/M . Ası que tM = t0 + T (se ha dividido el intervalo de tiempo de longitud T en Msubintervalos de longitud h).

La aproximacion de Euler se obtiene del desarrollo de Taylor

y(t) = y(tk) + y′(tk)(t− tk) +y′′(ck)(t− tk)2

2,

donde ck ∈ [tk, t], tomando t = tk+1, usando y′(tk) = f(tk, y(tk)), y despreciando el termino de desegundo orden; resulta entonces la aproximacion

y(tk+1) ≈ y(tk) + hf(tk, y(tk)).

Page 5: ecuaciones-diferenciales-13ii

V.3. METODO DE EULER V.5

Excepto en t0, en realidad no se conoce y(tk) sino la aproximacion previa, ası que esta aproximacionse traduce en la siguiente regla para calcular la aproximacion wk+1 de y(tk) en terminos de laaproximacion wk de y(tk):

wk+1 = wk + hf(tk, wk)

par k = 0, 1, 2, . . . ,M − 1, con la condicion inicial w0 = C0. Geometricamente, la solucion entretk y tk+1 es aproximada por la lınea con pendiente f(tk, wk), es decir, tangente a la curva solucionque pasa por (tk, wk).

tk k+1t

yykk+1

y

t0

0

t

y1

1

V.1: El segmento que conecta (tk, wk) con (tk+1, wk+1) es tangente a la curva solucion que pasapor (tk, wk).

A continuacion se tiene la funcion Matlab euler que implementa el metodo de Euler. Noteque regresa una matriz con dos columnas que contienen los tk y wk respectivamente.

function E = euler (f, a, b, ya, M)

% Entrada - f es la funcion introducida como una cadena de caracteres ’f’% - a y b son los extremos izquierdo y derecho% - ya es la condicion inicial y(a)% - M es el numero de pasos% Salida - E = [T’, Y’] donde T es el vector de abscisas y% Y es el vector de ordenadash = (b - a) / M;T = zeros(1, M+1);Y = zeros(1, M+1);T = a:h:b;Y(1) = ya;for j = 1:M

Y(j+1) = Y(j) + h * feval(f, T(j), Y(j));endE = [T’, Y’];

Ejemplos

Ejemplo 0 Considere el PVIy′ = Ry, y(0) = y0.

La solucion exacta es y(t) = y0eRt y nos interesa conocer la aproximacion que resulta de aplicar el

metodo de Euler. Este da la recurrencia

wk+1 = wk + hRwk = (1 + hR)wk,

Page 6: ecuaciones-diferenciales-13ii

V.6 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

que tiene la solucion

wk = (1 + hR)ky0.

Esto es una buena aproximacion si hR es suficientemente pequeno: Note que 1 + hR es la aproxi-macion de primer orden de ehR y entonces (1 + hR)k es una aproximacion de ehRk = eRt.

Ejemplo 1 Usamos el metodo de Euler para obtener una aproximacion para la solucion del PVI:

dy

dt= y − t2 + 1; y(0) = 0.5.

en [0, 2], con M = 10. Note que aquı f(t, y) = y − t2 + 1. Para la discretizacion del tiempo, lossubintervalos son de longitud h = 2/10. Entonces el metodo de Euler resulta en la ecuacion derecurrencia

wk+1 = wk + h(wk − t2k + 1)

= (1 + h)wk − ht2k + 0.2

= 1.2wk − 0.2t2k + 0.2

De aquı obtenemos los valores:

w0 = 0.5

w1 = 1.2w0 − 0.2t20 + 0.2 = 1.2× 0.5− 0.2× 02 + 0.2 = 0.6 + 0.2 = 0.8

w2 = 1.2w1 − 0.2t21 + 0.2 = 1.2× 0.8− 0.2× 0.22 + 0.2 = 0.96− 0.008 + 0.2 = 1.1520

w3 = 1.2w2 − 0.2t22 + 0.2 = 1.2× 1.1520− 0.2× 0.42 + 0.2 = 1.3824− 0.032 + 0.2 = 1.5504...

y ası sucesivamente. A continuacion completamos el ejercicio con MATLAB para M = 10 yM = 20. Las columnas del resultado muestran ti, wi, yi = y(ti) y |wi − yi|.

>> f=inline(’y-t^2+1’,’t’,’y’);>> g=inline(’(t+1).^2-0.5*exp(t)’);>> A10=euler(f,0,2,0.5,10);>> E10=g(A10(:,1));>> ERR10=abs(E10-A10(:,2));>> [A10 E10 ERR10]ans =

0 0.5000 0.5000 00.2000 0.8000 0.8293 0.02930.4000 1.1520 1.2141 0.06210.6000 1.5504 1.6489 0.09850.8000 1.9885 2.1272 0.13871.0000 2.4582 2.6409 0.18271.2000 2.9498 3.1799 0.23011.4000 3.4518 3.7324 0.28061.6000 3.9501 4.2835 0.33341.8000 4.4282 4.8152 0.38702.0000 4.8658 5.3055 0.4397

Page 7: ecuaciones-diferenciales-13ii

V.4. ANALISIS DEL ERROR V.7

>> A20=euler(f,0,2,0.5,20);>> E20=g(A20(:,1));>> ERR20=abs(E20-A20(:,2));>> [A20 E20 ERR20]ans =

0 0.5000 0.5000 00.1000 0.6500 0.6574 0.00740.2000 0.8140 0.8293 0.01530.3000 0.9914 1.0151 0.02370.4000 1.1815 1.2141 0.03250.5000 1.3837 1.4256 0.04190.6000 1.5971 1.6489 0.05190.7000 1.8208 1.8831 0.06240.8000 2.0538 2.1272 0.07340.9000 2.2952 2.3802 0.08501.0000 2.5438 2.6409 0.09711.1000 2.7981 2.9079 0.10981.2000 3.0569 3.1799 0.12301.3000 3.3186 3.4554 0.13671.4000 3.5815 3.7324 0.15091.5000 3.8437 4.0092 0.16551.6000 4.1030 4.2835 0.18051.7000 4.3573 4.5530 0.19571.8000 4.6040 4.8152 0.21111.9000 4.8405 5.0671 0.22662.0000 5.0635 5.3055 0.2420

La figura a continuacion muestra el (valor absoluto del) error para M = 5, 10, 20, 40, 80. Noteque, como se puede esperar, el error aumenta con el tiempo (se acumula) y disminuye con M(aproximadamente se reduce a la mitad al doblar M).

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

510204080

V.2: Error de la solucion para M = 5, 10, 20, 40, 80.

V.4 Analisis del Error

Se espera que el valor yk sea una buena aproximacion de la solucion exacta y(tk), ası que nosinteresa acotar la diferencia y(tk) − yk. Dado esto, se define el error global de truncamiento o

Page 8: ecuaciones-diferenciales-13ii

V.8 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

discretizacion ek en tk (acumulado en los pasos 1 a k) como

ek = yk − wk

(recuerde que yk = y(tk)). Para el analisis resulta conveniente definir el error local de truncacionen el paso k + 1 como

εk+1 =yk+1 − (yk + hΦ(tk, yk))

h,

es decir, la diferencia entre la solucion exacta en tk+1 y el valor predecido por el metodo utilizandola solucion exacta en tk como punto de partida, dividida por h.

En general es posible probar una cota de la forma

|εk| ≤ ChN ,

donde C > 0 es una constante, y se escribe entonces |εk| = O(hN). El error total acumuladoE(h) = eM en las aproximaciones de t0 a tM es en general una funcion de f , h y el metodo.

En el caso del metodo de Euler, con Φ(t, y) = f(t, y), tenemos de la ecuacion al comienzo de laseccion que

εk+1 =yk+1 − (yk + hf(tk, yk))

h=y′′(ck)

2h.

Ası que |εk+1| ≤ Ch donde C = maxk y′′(ck)/2. Es decir, para el metodo de Euler tenemos N = 1.

A continuacion hacemos un analisis mas detallado del error total bajo ciertas condiciones.

Teorema V.3 Supongamos que se tiene una cota |εk| ≤ ChN para el error local de truncacion, yque la funcion incremental Φ(t, y) satisface la condicion de Lipschitz con constante L con respectoa y. Entonces existe una constante C ′ que depende de C y L tal que

|eM | ≤ C ′hN

Prueba. Para acotar el error global en terminos de los errores locales, tenemos la siguiente derivacion:

ek+1 = yk+1 − wk+1

= yk+1 − (wk + hΦ(tk, wk))= (yk+1 − (yk + hΦ(tk, yk)) + (yk − wk) + h (Φ(tk, yk)− Φ(tk, wk))= hεk+1 + ek + h (Φ(tk, yk)− Φ(tk, wk)).

Tomando valor absoluto, entonces,

|ek+1| ≤ h|εk+1|+ |ek|+ h |Φ(tk, yk)− Φ(tk, wk)|.

Suponiendo que Φ(t, y) es Lipschitz en la segunda variable con constante L, es decir

|Φ(t, y)− Φ(t, y′)| ≤ L |y − y′|,

obtenemos

|ek+1| ≤ h|εk+1|+ |ek|+ hL |yk − wk| = h|εk+1|+ |ek| (1 + hL).

Expandiendo esta relacion de recurrencia, obtenemos

|ek+1| ≤ h

k∑j=0

|εk+1−j |(1 + hL)j + |e0|(1 + hL)k+1.

Page 9: ecuaciones-diferenciales-13ii

V.5. METODO DE TAYLOR V.9

Ahora usando |εk+1−j | ≤ ChN , la suma 1+x+x2 + · · ·+xk = (xk+1−1)/(x−1) para x 6= 1, e0 = 0 y la desigualdad1 + x ≤ ex, valida para x > 0 (se obtiene truncando la serie de Taylor ex = 1 + x + x2 + · · ·+ xn + · · · ), obtenemos

|ek+1| ≤ ChN+1(1 + (1 + hL) + (1 + hL)2 + · · ·+ (1 + hL)k

)= ChN+1 (1 + hL)k+1 − 1

(1 + hL)− 1=

C

LhN ((1 + hL)k+1 − 1)

≤ C

LhN (1 + hL)k+1 ≤ C

LhNehL(k+1).

En particular, para el error final |EM | en tM se tiene

|eM | ≤C

LeLT hN

donde T = tM − t0 = Mh es el tiempo total de la solucion. Entonces

|eM | ≤ C ′ hN

donde C ′ = (C/L)eLT .

Como ejemplo, en el metodo de Euler, si f(t, y) es Lipschitz en la segunda varible entonces elerror total es O(h). Esto se observo en el ejemplo de la seccion anterior (el error se reduce a lamitad al doblar M).

V.5 Metodo de Taylor

El metodo de Euler usa la aproximacion de Taylor de primer orden. En general, es posible obtenermejores aproximaciones con aproximaciones de Taylor de ordenes mas altos. La expansion deTaylor de orden N alrededor de t = tk se puede escribir como

y(tk + h) = y(tk) +N∑

j=1

y(j)(tk)

j!hj +

y(j)(tk)

j!hN+1

Las derivadas y(j)(t) que aparecen en la expansion se pueden expresar en terminos de f(t, y) y susderivadas parciales partiendo de la ecuacion del PVI

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

y en general

y(j)(t) =dj−1

dtj−1f(t, y(t)).

Por ejemplo,

y′′(t) =d2

dt2y′(t) =

d

dtf(t, y(t)) =

∂f

∂t+∂f

∂y

dy

dt= ft + ffy

donde ft = ∂f/∂t y fy = ∂f/∂y,

y(3)(t) =d

dt(ft + ffy)

=d

dt

∂t(ft + ffy) + f

∂f

∂y(ft + fyf)

= ftt + ftfy + ffty + ffyt + ffyyf + ffyfy

= ftt + ftfy + 2ffty + f 2fyy + ff 2y

Page 10: ecuaciones-diferenciales-13ii

V.10 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Y ası sucesivamente. Es posible escribir una ecuacion general, pero no lo hacemos porque el calculoes mas facil directamente para una funcion f(t, y) concreta, como se vera en los ejemplos. Entoncespodemos escribir

y(tk + h) ≈ y(tk) + hTN(tk, yk)

donde

TN(t, y) =N∑

j=1

y(j)(t)

j!hj−1 =

N∑j=1

f (j−1)(t, y)

j!hj−1

Con esto, podemos escribir la ecuacion de diferencias del metodo de Taylor para las aproximacioneswk como

wk+1 = wk + hTN(tk, wk)

Ejemplo. Consideremos de nuevo el PVI y′ = Ry con y(0) = C0. Entonces

y′(t) = Ry(t)

y′′(t) = Ry′(t) = R2y(t)

y′′′(t) = Ry′′(t) = R3y(t)...

y(j)(t) = Ry(j−1)(t) = Rjy(t)...

Entonces el metodo de Taylor de orden N aplicado a este PVI resulta en la formula

wk+1 = wk + hN∑

j=1

Rjwk

j!hj−1

= wk

N∑j=0

(Rh)j

j!

= w0

(N∑

j=0

(Rh)j

j!

)k+1

La suma entre parentesis es la aproximacion de Taylor de orden N para eRh y (eRh)k+1 = eRtk+1

mientras que la solucion exacta del PVI da y(tk+1) = y0eRtk+1 .

Ejemplo. Consideremos de nuevo el PVI

dy

dt= y − t2 + 1; y(0) = 0.5

Page 11: ecuaciones-diferenciales-13ii

V.5. METODO DE TAYLOR V.11

con t ∈ [0, 2] y M = 10. Como antes h = 0.2 y tk = 0.2k. Obtenemos las derivadas

y′(t) = y − t2 + 1

y′′(t) = y′ − 2t = y − t2 + 1− 2t = y − t2 − 2t+ 1

y′′′(t) = y′ − 2t− 2 = y − t2 + 1− 2t− 2 = y − t2 − 2t− 1

y(4)(t) = y′ − 2t− 2 = y − t2 − 2t− 1...

y(j)(t) = y − (t+ 1)2 para j ≥ 3

El metodo de Taylor de segundo, tercero y cuarto orden resulta en las formulas

wk+1 = wk + h(wk − t2k + 1) +h2

2(wk − t2k − 2tk + 1)

wk+1 = wk + h(wk − t2k + 1) +h2

2(wk − t2k − 2tk + 1) +

h3

6(wk − (tk + 1)2)

wk+1 = wk + h(wk − t2k + 1) +h2

2(wk − t2k − 2tk + 1) +

h3

6((wk − (tk + 1)2)(1 +

h

4)

respectivamente. Por ejemplo, usando el metodo de cuarto orden obtenemos

w1 = w0 + h(w0 − t20 + 1) +h2

2(w0 − t20 − 2t0 + 1) +

h3

6((w0 − (t0 + 1)2)(1 +

h

4)

= 0.5 + 0.2(0.5− 0 + 1) +0.22

2(0.5− 0 + 1) +

0.23

6(0.5− (0 + 1)2)(1 +

0.2

4)

= 0.5 + 0.2(1.5) + 0.02(1.5) +0.004

3(−0.5)(1.05)

= 0.8293

w2 = w1 + h(w1 − t21 + 1) +h2

2(w1 − t21 − 2t1 + 1) +

h3

6((w1 − (t1 + 1)2)(1 +

h

4)

= 0.8293 + 0.2(0.8293− 0.04 + 1) +0.22

2(0.8293− 0.04− 0.4 + 1) +

0.23

6(0.8293− (0.2 + 1)2)(1 +

0.2

4)

= 0.8293 + 0.2(1.7893) +0.22

2(1.3893) +

0.23

6(−0.6107)(1.05)

= 1.214091,

etc. Usando Matlab tenemos, comparando con la solucion exacta

y(t) = (t+ 1)2 − 0.5et

Page 12: ecuaciones-diferenciales-13ii

V.12 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

>> df = @(t,y) [y-t^2+1,y-t^2-2*t+1,y-t^2-2*t-1,y-t^2-2*t-1];>> T4=taylor(df,0,2,0.5,10);>> y=@(t) (t+1).^2 -0.5*exp(t);>> yy=y(T4(:,1));>> [T4, abs(T4(:,2)-yy)]ans =

0 0.500000000000000 00.200000000000000 0.829300000000000 0.0000013790800850.400000000000000 1.214091020000000 0.0000033688206360.600000000000000 1.648946771828000 0.0000061720232540.800000000000000 2.127239587110719 0.0000100513569531.000000000000000 2.640874431697033 0.0000153459265561.200000000000000 3.179964030874756 0.0000224922430291.400000000000000 3.732432067310427 0.0000320507327651.600000000000000 4.283528527012956 0.0000447392105121.800000000000000 4.815237742893624 0.0000614751000982.000000000000000 5.305555379170272 0.000083428635597

Comparamos los errores de los cuatro ordenes:

>> df1 = @(t,y) [y-t^2+1,0,0,0];>> df2 = @(t,y) [y-t^2+1,y-t^2-2*t+1,0,0];>> df3 = @(t,y) [y-t^2+1,y-t^2-2*t+1,y-t^2-2*t-1,0];>> T1=taylor(df1,0,2,0.5,10);>> T2=taylor(df2,0,2,0.5,10);>> T3=taylor(df3,0,2,0.5,10);>> err1=abs(T1(:,2)-yy);>> err2=abs(T2(:,2)-yy);>> err3=abs(T3(:,2)-yy);>> err4=abs(T4(:,2)-yy);>> [err1 err2 err3 err4]ans =

0 0 0 00.029298620919915 0.000701379080085 0.000034712413418 0.0000013790800850.062087651179364 0.001712348820636 0.000084793265080 0.0000033688206360.098540599804746 0.003135400195254 0.000155345676735 0.0000061720232540.138749535753766 0.005103184246233 0.000252978994283 0.0000100513569530.182683085770477 0.007786832629523 0.000386225575140 0.0000153459265560.230130338631727 0.011406481816273 0.000566068291720 0.0000224922430290.280626576577662 0.016244568368897 0.000806607344841 0.0000320507327650.333355659802442 0.022662605832360 0.001125902214908 0.0000447392105120.387022514193524 0.031122332440934 0.001547033614333 0.0000614751000980.439687446214673 0.042212341751366 0.002099441584789 0.000083428635597

Implementacion Matlab. Note que la funcion fija la longitud de df en 4; pero se puede modi-ficar facilmente para permitir mas altos ordenes.

function T4 = taylor (df, a, b, ya, M)

% Entrada - df = [y’, y’’, y’’’, y’’’’] como cadena de caracteres ’df’% donde y’ = f(t, y)% - a y b son los extremos izquierdo y derecho% - ya es la condicion inicial y(a)% - M es el numero de pasos% Salida - T4 = [T’, Y’] donde T es el vector de abscisas y% Y es el vector de ordenadash = (b - a) / M;T = zeros(1, M+1);Y = zeros(1, M+1);T = a:h:b;Y(1) = ya;for j = 1:M

D = feval(df, T(j), Y(j));

Page 13: ecuaciones-diferenciales-13ii

V.6. METODO DE EULER MODIFICADO V.13

Y(j+1)=Y(j)+h*(D(1)+h*(D(2)/2+h*(D(3)/6+h*D(4)/24)));endT4 = [T’, Y’];

V.6 Metodo de Euler Modificado

Continuamos considerando el mismo PVI de primer orden

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

para t ∈ [t0, t0 + T ]. El metodo se basa en eliminar la derivada mediante integracion en amboslados de la ecuacion en el intervalo [tk, tk+1]∫ tk+1

tk

y′(t)dt =

∫ tk+1

tk

f(t, y(t))dt

y entonces

y(tk+1) = y(tk) +

∫ tk+1

tk

f(t, y(t))dt.

Como no es posible evaluar la integral en la derecha, la idea aquı es reemplazarla por una aprox-imacion. La aproximacion mas directamente obtenible es simplemente hf(tk, y(tk)), lo cual nosllevarıa de nuevo a la recurrencia del metodo de Euler. El metodo de Euler modificado emplea laregla del trapecio y entonces se obtiene

y(tk+1) ≈ y(tk) +h

2(f(tk, y(tk)) + f(tk+1, y(tk+1))).

Esto conduce a la ecuacion

wk+1 = wk +h

2(f(tk, wk) + f(tk+1, wk+1)). (∗)

Esta ecuacion no da en forma explıcita wk+1 en terminos de wk porque wk+1 aparece a la izquierdade tal forma que puede no ser facil despejar y obtener una ecuacion explıcita para wk+1. Paracorregir esto se emplea en la derecha la prediccion wk+1 obtenida por el metodo de Euler

wk+1 = wk + hf(tk, wk).

Entonces se obtiene

wk+1 = wk +h

2(f(tk, wk) + f(tk+1, wk + hf(tk, wk))).

Analisis del Error. Para el metodo del trapecio el (valor absoluto del) error esta acotado por

|y(2)(ck)|12

h3

donde ck ∈ [tk, tk+1]. La otra fuente de error (prediccion) es menor y por lo tanto se tiene que|εk| = O(h2) (mas adelante cuando veamos los metodos de Runge-Kutta confirmaremos esto). Siel teorema sobre el error acumulado aplica, se tiene que el error total es

E(h) = O(h2).

Ası que podemos esperar que doblar M tiene el efecto de reducir por un factor de 4 el error.

Page 14: ecuaciones-diferenciales-13ii

V.14 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Implementacion Matlab. A continuacion esta la funcion Matlab que implementa el metodode Euler modificado.

function H = eulerMod (f, a, b, ya, M)% Entrada - f es la funcion introducida como una cadena de caracteres ’f’% - a y b son los extremos izquierdo y derecho% - ya es la condicion inicial y(a)% - M es el numero de pasos% Salida - H = [T’, Y’] donde T es el vector de abscisas y% Y es el vector de ordenadash = (b - a) / M;T = zeros(1, M+1);Y = zeros(1, M+1);T = a:h:b;Y(1) = ya;for j = 1:M

k1 = feval(f, T(j), Y(j));k2 = feval(f, T(j+1), Y(j)+h*k1);Y(j+1) = Y(j) + (h / 2) * (k1 + k2);

endH = [T’, Y’];

Ejemplos

Ejemplo 0 Consideremos de nuevo el PVI

y′ = Ry, y(0) = y0.

El metodo de Euler modificado resulta en la ecuacion de recurrencia

wk+1 = wk +h

2(Rwk +R(wk + hRwk))

=

(1 + hR +

1

2(hR)2

)wk

que tiene solucion

wk =

(1 + hR +

1

2(hR)2

)k

w0.

Note que en este caso 1 + hR + 12(hR)2 es una aproximacion de segundo orden de ehR. Ası, es de

esperar que en general el error del metodo de Euler modificado sea menor que el error del metodode Euler.

Ejemplo 1 Consideremos de nuevo el PVI

dy

dt= y − t2 + 1; y(0) = 0.5

con t ∈ [0, 2] y M = 10. El metodo de Euler modificado resulta en las ecuaciones siguientes deprediccion y correccion

wk+1 = wk + h(wk − t2k + 1)

wk+1 = wk +h

2((wk − t2k + 1) + (wk+1 − t2k+1 + 1))

Page 15: ecuaciones-diferenciales-13ii

V.6. METODO DE EULER MODIFICADO V.15

Reemplazando h = 2/10 = 0.2 y tk = hk = 0.2h, se obtiene

wk+1 = wk + 0.2(wk − 0.04k2 + 1)

wk+1 = wk +h

2((wk − 0.04k2 + 1) + (wk+1 − 0.04(k + 1)2 + 1))

Entonces, comenzando con y0 = 0.5, obtenemos los valores numericos

w1 = w0 + 0.2(w0 − 0.04× 02 + 1) = 0.5 + 0.2(0.5 + 1) = 0.8

w1 = w0 + 0.1((w0 − 0.04× 02 + 1) + (w1 − 0.04× 12 + 1))

= 0.5 + 0.1((0.5− 0.04× 02 + 1) + (0.8− 0.04× 12 + 1)) = 0.826

w2 = w1 + 0.2(w1 − 0.04× 12 + 1) = 0.826 + 0.2(0.826− 0.04 + 1) = 1.1832

w2 = w1 + 0.1((w1 − 0.04× 12 + 1) + (w2 − 0.04× 22 + 1))

= 0.826 + 0.1((0.826− 0.04× 12 + 1) + (1.1832− 0.04× 22 + 1)) = 1.20692...

Ahora completamos el ejercicio con Matlab; la tabla compara el error del metodo de Eulermodificado con el metodo de Euler. Y tambien para M = 20.

>> H10=eulerMod(f,0,2,0.5,10);>> ERRH10=abs(E10-H10(:,2));>> [H10 E10 ERRH10 ERR10]ans =

0 0.5000 0.5000 0 00.2000 0.8260 0.8293 0.0033 0.02930.4000 1.2069 1.2141 0.0072 0.06210.6000 1.6372 1.6489 0.0117 0.09850.8000 2.1102 2.1272 0.0170 0.13871.0000 2.6177 2.6409 0.0232 0.18271.2000 3.1496 3.1799 0.0304 0.23011.4000 3.6937 3.7324 0.0387 0.28061.6000 4.2351 4.2835 0.0484 0.33341.8000 4.7556 4.8152 0.0596 0.38702.0000 5.2331 5.3055 0.0724 0.4397

>> H20=eulerMod(f,0,2,0.5,20);>> ERRH20=abs(E20-H20(:,2));>> [H20 E20 ERRH20 ERR20]ans =

0 0.5000 0.5000 0 00.1000 0.6570 0.6574 0.0004 0.00740.2000 0.8284 0.8293 0.0009 0.01530.3000 1.0137 1.0151 0.0013 0.02370.4000 1.2122 1.2141 0.0019 0.03250.5000 1.4232 1.4256 0.0024 0.04190.6000 1.6459 1.6489 0.0031 0.05190.7000 1.8794 1.8831 0.0037 0.06240.8000 2.1228 2.1272 0.0044 0.07340.9000 2.3750 2.3802 0.0052 0.08501.0000 2.6348 2.6409 0.0061 0.09711.1000 2.9010 2.9079 0.0070 0.10981.2000 3.1720 3.1799 0.0079 0.12301.3000 3.4464 3.4554 0.0090 0.13671.4000 3.7223 3.7324 0.0101 0.15091.5000 3.9978 4.0092 0.0113 0.16551.6000 4.2708 4.2835 0.0126 0.1805

Page 16: ecuaciones-diferenciales-13ii

V.16 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

1.7000 4.5390 4.5530 0.0140 0.19571.8000 4.7996 4.8152 0.0156 0.21111.9000 5.0499 5.0671 0.0172 0.22662.0000 5.2866 5.3055 0.0189 0.2420

Ejemplo: Solucion de la forma implıcita. Regresemos a la ecuacion (∗), obtenida antes dereemplazar la prediccion yk+1:

wk+1 = wk +h

2(f(tk, wk) + f(tk+1, wk+1)).

Esta es una relacion implıcita para wk+1, la cual es posible en principio resolver para obtener wk+1.Dependiendo de la funcion f , es posible que esto se pueda hacer analıticamente en forma facil ono. En el caso negativo, se podrıa usar un metodo numerico para determinar la solucion wk+1.Consideremos por ejemplo el PVI del Ejemplo 0 arriba. En este caso f(t, y) = Ry y obtenemos

wk+1 = wk +h

2(Rwk +Rwk+1)

de donde

wk+1 =

(1 + hR/2

1− hR/2

)wk

y por lo tanto

wk =

(1 + hR/2

1− hR/2

)k

w0

Al igual que 1 + hR + (hR)2/2, el factor que se obtiene cuando se aplica el metodo explıcito deEuler modificado, el termino que aparece aquı

1 + hR/2

1− hR/2

tambien es una aproximacion de segundo orden para ehR, cuando hR es suficientemente pequeno:Se puede probar que para hR ≤ 1,

1 + hR +1

2(hR)2 +

1

8(hR)3 ≤ 1 + hR/2

1− hR/2≤ 1 + hR +

1

2(hR)2 +

1

2(hR)3.

V.7 Metodo de Runge-Kutta

Ahora estudiamos un metodo que permite obtener aproximaciones de ordenes mas altos, al igualque el metodo de Taylor, pero evitando calcular derivadas. El metodo de Euler modificado ilustraque esto es posible en el caso de orden 2: tiene el mismo orden de aproximacion que el metodo deTaylor de segundo orden pero sin usar y′′(t) = df(t, y)/dt. Integrando la ecuacion del PVI, comoen la derivacion del metodo de Euler modificado, podemos utilizar otras formulas de cuadratura,por ejemplo usando la regla del punto medio,

y(tk+1) ≈ y(tk) + hf

(tk +

h

2, y

(tk +

h

2

)).

Page 17: ecuaciones-diferenciales-13ii

V.7. METODO DE RUNGE-KUTTA V.17

Para obtener una formula explıcita, empleamos una prediccion pk+1 para y(tk + h

2

)de la siguiente

manera

wk+1 = wk + hf

(tk +

h

2, pk+1

)con pk+1 = wk +

h

2f(tk, wk),

o simplemente

wk+1 = wk + hf

(tk +

h

2, wk +

h

2f(tk, wk)

)Este se denomina el metodo del punto medio. Al igual que el metodo de Euler modificado, el errorde aproximacion local es O(h2).

V.7.1 Runge-Kutta de orden 2

La forma general de los metodos de Heun y del punto medio es

y(tk+1) ≈ y(tk) + Ahf0 +Bhf1

donde

f0 = f(tk, y(tk)), f1 = f(tk + Ph, y(tk) +Qhf0)

Las constantes A, b y P,Q se determinan de tal forma que esta aproximacion coincide con laaproximacion de Taylor de segundo orden. Usando la expansion de Taylor de primer orden en dosvariables para f1 alrededor de (tk, y(tk)), obtenemos

f1 = f(tk, y(tk)) + Phft(tk, y(tk)) +Qhf0fy(tk, y(tk)) + C1h2

para alguna constante C1. Ası que

y(tk) + Ahf0 +Bhf1

= y(tk) + Ahf(tk, y(tk)) +Bh(f(tk, y(tk)) + Phft(tk, y(tk)) +Qhf0fy(tk, y(tk))) +O(h3)

= y(tk) + (A+B)hf(tk, y(tk)) +BPh2ft(tk, y(tk)) +BQh2f0fy(tk, y(tk)) +O(h3).

En comparacion, la aproximacion de Taylor de primer orden de y(tk + h) es

y(tk + h) = y(tk) + hy′(tk) +h2

2y′′(tk) +O(h3)

= y(tk) + hf(tk, y(tk)) +h2

2(ft(tk, y(tk)) + f(tk, y(tk))fy(tk, y(tk))) +O(h3)

= y(tk) + hf(tk, y(tk)) +h2

2ft(tk, y(tk) +

h2

2f0fy(tk, y(tk))) +O(h3)

Comparando con el resultado anterior, se observa que ambos son iguales hasta orden 2 si

A+B = 1, BP = 1/2, BQ = 1/2.

Page 18: ecuaciones-diferenciales-13ii

V.18 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Dos posibles soluciones son (i) A = B = 1/2, P = Q = 1, (ii) A = 0, B = 1, P = Q = 1/2,que corresponde a los dos metodos ya discutidos. Otra posibilidad es (iii) A = 1/4, B = 3/4,P = Q = 2/3 que corresponde a

y(tk + h) ≈ y(tk) +h

4

(f(tk, y(tk)) + 3f

(tk +

2

3h, y(tk) +

2

3hf(tk, y(tk)

)).

La formula de diferencias correspondiente es

wk+1 = wk +h

4

(f(tk, wk) + 3f

(tk +

2

3h,wk +

2

3hf(tk, wk

))y su error local es tambien O(h2).

V.7.2 Runge-Kutta de orden 4

En forma similar se pueden derivar metodos de cuarto orden:

yk+1 ≈ yk + w1k1 + w2k2 + w3k3 + w4k4 (∗)

donde w1, w2, w3, w4 son constantes y

k1 = hf(tk, yk)

k2 = hf(tk + A1h, yk + P1k1)

k3 = hf(tk + A2h, yk +Q1k1 +Q2k2)

k4 = hf(tk + A3h, yk +R1k1 +R2k2 +R3k3)

donde A1, A2, A3, P1, Q1, Q2, R1, R2, R3 son constantes. Comparando la aproximacion de Taylor decuarto orden con la formula (∗) reemplazando los fi con aproximaciones de Taylor de orden tres endos variables se encuentran condiciones para las constantes. La solucion que usualmente se conocecomo el metodo de Runge-Kutta de orden 4 es

yk+1 ≈ yk +1

6(k1 + 2k2 + 2k3 + k4)

donde

k1 = hf(tk, y(tk))

k2 = hf

(tk +

h

2, yk +

1

2k1

)k3 = hf

(tk +

h

2, yk +

1

2k2

)k4 = hf(tk + h, yk + k3)

Finalmente, reemplazando yk con la aproximacion wk, la ecuacion de diferencias del metodo deRunge-Kutta, es

wk+1 = wk +1

6(K1 + 2K2 + 2K3 +K4)

Page 19: ecuaciones-diferenciales-13ii

V.7. METODO DE RUNGE-KUTTA V.19

donde

K1 = h · f(tk, wk)

K2 = h · f(tk +

h

2, wk +

1

2K1

)K3 = h · f

(tk +

h

2, wk +

1

2K2

)K4 = h · f(tk + h,wk +K3)

Una forma alternativa de interpretar esta formula es como una aplicacion de la regla de Simpsonen la integracion del PVI:

y(tk+1)− y(tk) =

∫ tk+1

tk

f(t, y(t))dt

=h

6

(f(tk, y(tk)) + 4f

(tk +

h

2, y

(tk +

h

2

))+ f(tk+1, y(tk+1))

)+O(h5)

El termino con coeficiente 4 se divide en dos mitades con coeficiente 2, y luego se usan prediccionesadecuadas para y(tk + h

2) y y(tk+1).

Ejemplo. Consideremos de nuevo el PVI y′ = y − t2 + 1 en [0, 2] con y0 = 0.5 y h = 0.2. Laformula de diferencias de Runge-Kutta para este PVI es

wk+1 = wk +1

6(K1 + 2K2 + 2K3 +K4)

dondeK1 = 0.2 · f(tk, wk) = 0.2 (wk − t2k + 1)

K2 = 0.2 · f(tk + 0.2

2, wk + 1

2K1

)= 0.2

((wk + 1

2K1

)−(tk + 0.2

2

)2+ 1)

K3 = 0.2 · f(tk + 0.2

2, wk + 1

2K2

)= 0.2

((wk + 1

2K2

)−(tk + 0.2

2

)2+ 1)

K4 = 0.2 · f(tk + 0.2, wk +K3) = 0.2 ((wk +K3)− (tk + 0.2)2 + 1)

Calculemos el primer valor como ejemplo:

w1 = w0 +1

6(K1 + 2K2 + 2K3 +K4)

donde

K1 = 0.2(w0 − t20 + 1

)= 0.2 (0.5 + 1) = 0.2 · 1.5

K2 = 0.2((

w0 + 12K1

)−(t0 + 0.2

2

)2 + 1)

= 0.2((0.5 + 0.1 · 1.5)− (0.1)2 + 1

)= 0.2 · 1.64

K3 = 0.2((

w0 + 12K2

)−(t0 + 0.2

2

)2 + 1)

= 0.2((0.5 + 0.1 · 1.64)− (0.1)2 + 1

)= 0.2 · 1.654

K4 = 0.2((w0 + K3)− (t0 + 0.2)2 + 1

)= 0.2

((0.5 + 0.2 · 1.654)− (0.02)2 + 1

)= 0.2 · 1.7908

y entonces

w1 = 0.5 +0.2

6(1.5 + 2 · 1.64 + 2 · 1.654 + 1.7908) = 0.8292933

Usando Matlab se obtiene lo siguiente (en las columnas 3 y 4 aparecen los errores para losmetodos de Runge-Kutta y Taylor de orden 4)

Page 20: ecuaciones-diferenciales-13ii

V.20 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

>> f=@(t,y) y-t^2+1;>> R=rk4(f,0,2,0.5,10);>> erk=abs(R(:,2)-yy);>> [R erk err4]ans =

0 0.500000000000000 0 00.200000000000000 0.829293333333333 0.000005287586582 0.0000013790800850.400000000000000 1.214076210666667 0.000011440512698 0.0000033688206360.600000000000000 1.648922017041600 0.000018582763146 0.0000061720232540.800000000000000 2.127202684947944 0.000026850805823 0.0000100513569531.000000000000000 2.640822692728752 0.000036393041726 0.0000153459265561.200000000000000 3.179894170232231 0.000047368399497 0.0000224922430291.400000000000000 3.732340072854980 0.000059943722683 0.0000320507327651.600000000000000 4.283409498318406 0.000074289484037 0.0000447392105121.800000000000000 4.815085694579434 0.000090573214091 0.0000614751000982.000000000000000 5.305363000692654 0.000108949842021 0.000083428635597

Implementacion Matlab. La siguiente es la implementacion Matlab del metodo de Runge-Kutta de orden 4.

function R = rk4 (f, a, b, ya, M)% Entrada - f es la funcion como cadena de caracteres ’f’% - a y b son los extremos izquierdo y derecho% - ya es la condicion inicial y(a)% - M es el numero de pasos% Salida - R = [T’, Y’] donde T es el vector de abscisas% y Y es el vector de ordenadash = (b - a) / M;T = zeros(1, M+1);Y = zeros(1, M+1);T = a:h:b;Y(1) = ya;for j = 1:M

k1 = h * feval(f, T(j), Y(j));k2 = h * feval(f, T(j) + h/2, Y(j) + k1/2);k3 = h * feval(f, T(j) + h/2, Y(j) + k2/2);k4 = h * feval(f, T(j) + h, Y(j) + k3);Y(j+1) = Y(j) + (k1 + 2 * k2 + 2 * k3 + k4) / 6;

endR = [T’, Y’];

V.8 Sistemas de Ecuaciones

Los metodos desarrollados para el PVI de primer orden pueden ser extendidos a otras ecuacionesdiferenciales. Por ejemplo, sistemas de ecuaciones donde y y f se reemplazan por vectores

y =

y1

y2...yn

y f(t,y) =

f1

f2...fn

: R× Rn → Rn

y el PVI y′ = f(t, y) por el PVI vectorial

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

Page 21: ecuaciones-diferenciales-13ii

V.8. SISTEMAS DE ECUACIONES V.21

el cual es equivalente al sistema de ecuaciones

y′1(t) = f1(t; y1(t), y2(t), . . . , yn(t))

y′2(t) = f2(t; y1(t), y2(t), . . . , yn(t))...

y′n(t) = fn(t; y1(t), y2(t), . . . , yn(t))

con

yk(t0) = y0,k i = 1, . . . , n.

Solucion Numerica

Los metodos de solucion para un PVI simple se pueden extender al caso de sistemas. Como antesse discretiza el tiempo [t0, t0 + T ] en una secuencia de tiempos tk = t0 + kh con h = T/M dondeM es el numero de subintervalos y se determinan aproximaciones wi,k para yi,k = yi(tk):

y1,k

y2,k...yn,k

= yk ≈ wk =

w1,k

w2,k...

wn,k

En general, los wk se determinan por medio de una formula de diferencias para, k ≥ 0,

wk+1 = wk + hΦ(tk,wk).

A continuacion describimos algunas de las extensiones para sistemas.

Euler. El metodo de Euler es

wk+1 = wk + hf(tk,wk)

Euler modificado. El metodo del punto medio es

wk+1 = wk +h

2f

(tk +

h

2, wk +

h

2f(tk,wk)

)

Taylor. El metodo de Taylor, de segundo orden como ejemplo, es

wk+1 = wk + hf(tk,wk) +h2

2f ′(tk,wk)

Runge-Kutta. El metodo de Runge-Kutta de cuarto orden es (escribimos las ecuaciones conKi’s en lugar de fi’s para evitar confusion con las funciones componentes fi cuando se escriben lasecuaciones escalares):

wk+1 = wk +1

6(K1 + 2K2 + 2K3 + K4)

Page 22: ecuaciones-diferenciales-13ii

V.22 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

donde cada Kj es un vector (columna) con n componentes Kj = [Kj,1 Kj,2 · · · Kj,n]T , definidospor las ecuaciones vectoriales

K1 = hf(tk,wk)

K2 = hf

(tk +

h

2, wk +

1

2K1

)K3 = hf

(tk +

h

2, wk +

1

2K2

)K4 = hf (tk + h, wk + K3)

Estas son ecuaciones vectoriales con n componentes. Para clarificacion escribimos la formaescalar de las ecuaciones: con i = 1, 2, . . . , n,

wi,k+1 = wi,k +1

6(K1,i + 2K2,i + 2K3,i +K4,i)

donde

K1,i = hfi(tk;w1,k, w2,k, . . . , wn,k)

K2,i = hfi

(tk +

h

2;w1,k +

1

2k1,1, w2,k +

1

2K1,2, . . . , wn,k +

1

2K1,n

)K3,i = hfi

(tk +

h

2;w1,k +

1

2K2,1, w2,k +

1

2K2,2, . . . , wn,k +

1

2K2,n

)K4,i = hfi (tk + h;w1,k +K3,1, w2,k +K3,2, . . . , wn,k +K3,n)

Ejemplo. En la proxima seccion.

Implementacion Matlab. La siguiente funcion Matlab implementa el metodo de Runge-Kuttapara sistemas.

function [T, Z] = rks4 (F, a, b, Za, M)% Entrada - F es el sistema introducido como cadena de caracteres ’F’% - a y b los extremos del intervalo% - Za = [x(a), y(a)] las condiciones iniciales% - M es el numero de pasos% Salida - T es el vector de pasos% - Z = [x1(t), . . ., xn(t)] donde xk(t) es la aproximacion a la% k-esima variable dependienteh = (b - a) / M;T = zeros(1, M+1);Z = zeros(M+1, length(Za));T = a:h:b;Z(1, :) = Za;for j = 1:M

k1 = h * feval(F, T(j), Z(j, :));k2 = h * feval(F, T(j) + h/2, Z(j, :) + k1/2);k3 = h * feval(F, T(j) + h/2, Z(j, :) + k2/2);k4 = h * feval(F, T(j) + h, Z(j, :) + k3);Z(j+1, :) = Z(j, :) + (k1 + 2 * k2 + 2 * k3 + k4) / 6;

end

Page 23: ecuaciones-diferenciales-13ii

V.9. ECUACIONES DE ORDEN SUPERIOR V.23

V.9 Ecuaciones de Orden Superior

Una ecuacion diferencial de orden superior de la forma

y(m)(t) = f(t, y, y′(t), y′′(t), . . . , y(m−1)(t)),

con condiciones iniciales

y(t0) = C0, y′(t0) = C1, . . . , y

(m−1)(t0) = Cm−1

se puede resolver introduciendo funciones yk(t), k = 1, . . . ,m tal que

yk(t) = y(k−1)(t).

En particular

y1(t) = y(0)(t) = y(t).

Con esto se obtiene un sistema de ecuaciones diferenciales de primer orden

y′1(t) = y2(t)

y′2(t) = y3(t)...

y′m−1(t) = ym(t)

y′m(t) = f(t, y1(t), y2(t), . . . , ym(t))

con condiciones iniciales

y1(t0) = C0, y2(t0) = C1, . . . , ym(t0) = Cm−1.

Ejemplo. Para la ecuacion del pendulo

d2θ

dt2+g

Lsin θ = 0 con θ(0) = θ0, θ

′(0) = θ′0

definimos

y1(t) = θ(t) y2(t) = θ′(t)

y se obtienen las ecuaciones

y′1 = y2, y1(0) = θ0

y′2 = − gL

sin y1, y2(0) = θ′0

En forma vectorial, esto es

y′ = f(t; y), y(0) = y0

donde

y =

(y1

y2

), f(t,y) =

(y2

− gL

sin y1

), y0 =

(θ0

θ′0

)

Page 24: ecuaciones-diferenciales-13ii

V.24 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Ejemplo. Consideramos la ecuacion diferencial de segundo orden

y′′ − 2y′ + y = tet − t, 0 ≤ t ≤ 1y(0) = 0, y′(0) = 1

Se desea una aproximacion de y(0.1) con h = 0.1 usando diferentes metodos. Para comparacion,la solucion exacta es

y(t) =1

6t3et − tet + 2et − 2

de donde y(0.1) = 0.10000894

Sistema de primer orden equivalente: Introducimos y1, y2 con

y1(t) = y(t), y2(t) = y′(t).

Con esto tenemos el sistema, para t ∈ [0, 1],

y′1 = y2, y1(0) = 0y′2 = 2y2(t)− y1(t) + tet − t, y2(0) = 1

Forma vectorial: Cony : R → R2

t 7→ y(t) =

(y1(t)y2(t)

)y

f : R× R2 → R2

(t,y) 7→ f(t,y) =

(y2(t)

2y2(t)− y1(t) + tet − t

)se tiene la ecuacion vectorial

y′(t) = f(t,y(t)), y(0) = y0 ≡(

01

)Solucion – Euler: La formula de diferencias es

wk+1 = wk + hf(tk,wk), con w0 =

(w1,0

w2,0

)=

(01

)donde

f(tk,wk) =

(w2,k

2w2,k − w1,k + tketk − tk

).

Para k = 0

w1 = w0 + 0.1 f(t0,w0)

=

(01

)+ 0.1

(w2,0

2w2,0 − w1,0 + 0e0 − 0

)=

(01

)+ 0.1

(12

)=

(01

)+

(0.10.2

)=

(0.11.2

)

Page 25: ecuaciones-diferenciales-13ii

V.9. ECUACIONES DE ORDEN SUPERIOR V.25

Entonces (y(0.1)y′(0.1)

)=

(y1(0.1)y2(0.1)

)≈ y1 =

(0.11.2

)y

y(0.1) ≈ 0.1.

Solucion – Punto medio: La formula de diferencias es

wk+1 = wk +h

2f

(tk +

h

2, wk +

h

2f(tk,wk)

), con w0 =

(w1,0

w2,0

)=

(01

)Para k = 0,

w1 = w0 +0.1

2f

(t0 +

0.1

2, w0 +

0.1

2f(t0,w0)

)=

(01

)+ 0.05 f

(0.05,

(01

)+ 0.05

(12

))=

(01

)+ 0.05 f

(0.05,

(0.051.1

))=

(01

)+ 0.05

(1.1

2(1.1)− 0.05 + 0.05e0.05 − 0.05

)=

(01

)+ 0.05

(1.1

2.1526

)=

(01

)+

(0.0550.1076

)=

(0.0551.1076

)≈

(y(0.1)y′(0.1)

)Solucion – Taylor 2do. orden: La formula de diferencias es

wk+1 = wk + h f(tk,wk) +h2

2f ′(tk,wk), con w0 =

(w1,0

w2,0

)=

(01

)Calculando la derivada

f ′(t,y(t)) =d

dt

(y2(t)

2y2(t)− y1(t) + tet − t

)=

(y′2(t)

2y′2(t)− y′1(t) + et + tet − 1

)=

(2y2(t)− y1(t) + tet − t

2(2y2(t)− y1(t) + tet − t)− y2(t) + et + tet − 1

)=

(2y2(t)− y1(t) + tet − t

3y2(t)− 2y1(t) + 3tet + et − 2t− 1

)obtenemos la formula de diferencias

f ′(tk,wk) =

(2w2,k − wk,1 + tke

tk − tk3w2,k − 2w1,k + 3tke

tk + etk − 2tk − 1

)

Page 26: ecuaciones-diferenciales-13ii

V.26 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

Entonces w1 =

=

(01

)+ 0.1 f(t0,w0) +

0.12

2f ′(t0,w0)

=

(01

)+ 0.1

(w2,0

2w2,0 − w1,0 + 0e0 − 0

)+ 0.005

(2w2,0 − w1,0 + t0e

t0 − t03w2,0 − 2w1,0 + 3t0e

t0 + et0 − 2t0 − 1

)=

(0.11.2

)+ 0.005

(23

)=

(0.111.215

)≈(y(0.1)y′(0.1)

)Solucion – Runge-Kutta. La formula para w1 es (usando la notacion con fi’s en lugar de Ki’s)

w1 = w0 +1

6(K1 + 2K2 + 2K3 + K4), con w0 =

(w1,0

w2,0

)=

(01

)donde

K1 = 0.1 · f(t0,w0) = 0.1 ·(

12

)K2 = 0.1 · f

(t0 +

0.1

2, w0 +

1

2K1

)= 0.1 · f

(0.05,

(01

)+ 0.05

(12

))= 0.1 ·

(1.1

2.1526

)K3 = 0.1 · f

(t0 +

0.1

2, w0 +

1

2K2

)= 0.1 · f

(0.05,

(01

)+ 0.05

(1.1

2.1526

))= 0.1 · f

(0.05,

(0.0551.1076

))= 0.1 ·

(1.1076

2(1.1076)− 0.055 + 0.05e0.05 − 0.05

)= 0.1 ·

(1.10762.1628

)K4 = 0.1 · f (t0 + 0.1, w0 + 1K3)

= 0.1 · f(

0.1,

(01

)+ 0.1

(1.10762.1628

))= 0.1 · f

(0.1,

(0.11081.2163

))= 0.1 ·

(1.2163

2(1.2163)− 0.1108 + 0.1e0.1 − 0.1

)= 0.1 ·

(1.21632.3323

)

Page 27: ecuaciones-diferenciales-13ii

V.10. PROBLEMAS DE CONTORNO V.27

Entonces

w1 =

(01

)+

0.1

6

((12

)+ 2

(1.1

2.1526

)+ 2

(1.10762.1628

)+

(1.21632.3323

))=

(0.11051.2161

)≈(y(0.1)y′(0.1)

)

V.10 Problemas de Contorno

Consideramos problemas de contorno o con valores en la frontera (PVF) de la forma

(∗) y′′ = f(x, y, y′), a ≤ x ≤ b

y(a) = α, y(b) = β condiciones de frontera

Una solucion del PVF (∗) es una funcion y(x) que satisface la ecuacion diferencial en [a, b] y lascondiciones de frontera. El siguiente teorema establece condiciones de existencia y unicidad parala solucion del PVF (∗).

Teorema V.4 Sea R = {(x, y, y′) : a ≤ x ≤ b,−∞ < y, y′ < ∞} y f(x, y, y′) una funcioncontinua en R y con derivadas fy y fy′ continuas en R. Si

fy(x, y, y′) > 0 para todo (x, y, y′) ∈ R

y existe M > 0 tal que

|fy′(x, y, y′)| ≤M para todo (x, y, y′) ∈ R,

entonces el PVF (∗) tiene una solucion unica y(x) en [a, b].

Ejemplo.

Ejemplo.

PVF Lienal. Se dice que el PVF (∗) es lineal si existen funciones p(x), q(x), r(x) tal que

(∗∗) f(x, y, y′) = p(x)y′ + q(x)y + r(x).

En este caso, el enunciado del teorema se simplifica de la siguiente manera: si p(x), q(x), r(x) soncontinuas en [a, b] y q(x) > 0 en [a, b], entonces el PVF tiene una solucion unica en [a, b] (noteque la continuidad de p(x) en [a, b] implica que existe M > 0 tal que |p(x)| ≤ M y por lo tanto|fy′(x, y, y′)| ≤M en [a, b]).

V.10.1 Metodo del Disparo para un PVF Lineal

Dado el PVF lineal con f(x, y, y′) como en (∗∗), consideramos los siguientes PVIs

(PVI I) u′′(x) = p(x)u′(x) + q(x)u(x) + r(x), a ≤ t ≤ b

u(a) = α, u′(a) = 0 condiciones iniciales

Page 28: ecuaciones-diferenciales-13ii

V.28 V. SOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS

y

(PVI II) v′′(x) = p(x)v′(t) + q(x)v(x), a ≤ t ≤ b

v(a) = 0, v′(a) = 1 condiciones de frontera

Veamos que si u(x) y v(x) son soluciones de (PVI I) y (PVI II) respectivamente entonces paracualquier constante c,

y(x) = u(x) + cv(x)

es una solucion de y′′(x) = p(x)y′(x) + q(x)y(x) + r(x):

y′′(x) = (u(x) + cv(x))′′

= u′′(x) + cv′′(x)

= (p(x)u′(x) + q(x)u(x) + r(x)) + c(p(x)v′(x) + q(x)v(x))

= p(x)(u′(x) + cv′(x)) + q(x)(u(x) + cv(x)) + r(x)

= p(x)y′(x) + q(x)y(x) + r(x)

Ahora veamos que es posible determinar c tal que las condiciones de frontera se satisfacen. Primero,en x = a cualquier c funciona:

x(a) = u(a) + cv(a) = α + c · 0 = α.

En x = b, se tiene que para que y(b) = β se debe tener que

u(b) + cv(b) = β

y por lo tanto, asumiendo v(b) 6= 0, entonces se debe escoger

c =β − u(b)

v(b)

Pero v(b) 6= 0 debe ser el caso si se satisfacen las condiciones del teorema, porque de lo contrario,si v(b) = 0 entonces v serıa una solucion del PVF

v′′(x) = p(x)v′(x) + q(x)v(x), a ≤ t ≤ b

v(a) = 0, v(b) = 0

y por la unicidad de la solucion se tendrıa v ≡ 0, lo cual esta en contradiccion con la condicionv′(a) = 1.

Para la solucion numerica, se obtienen aproximaciones discretas w′0, w′1, . . . , w

′M y w′′0 , w

′′1 , . . . , w

′′M

para u(x) y v(x) en [a, b] usando alguno de los metodos ya discutidos para problemas con valorinicial, y luego se determina c como

c =β − w′Mw′′M

.

Con este valor, entonces la aproximacion discreta w0, w1, . . . , wM de y(x) esta dada por

wk = w′k + cw′′k k = 0, 1, . . . ,M .

Page 29: ecuaciones-diferenciales-13ii

V.10. PROBLEMAS DE CONTORNO V.29

Implementacion Matlab. La funcion linsht requiere que se pasen los sistemas de primer ordenequivalentes a los dos PVIs I y II (por supuesto serıa mas facil pasar p(t), q(t), r(t), pero ası no escomo la implementacion funciona).

function L = linsht (F1, F2, a, b, alpha, beta, M)% Entrada - F1 y F2 son los sistemas de ecuaciones de primer orden% representando los Problemas de Valor Inicial (P.V.I.’s)% - a y b son los extremos del intervalo% - alpha = x(a) y beta = x(b); las condiciones frontera% - M es el numero de pasos% Salida - L = [T’, X]; donde T’ es el vector de abscisas (M+1)x1% y X es el vector de ordenadas (M+1) x 1% Resolver el sistema F1Za = [alpha, 0];[T, Z] = rks4 (F1, a, b, Za, M);U = Z(:, 1);% Resolver el sistema F2Za = [0, 1];[T, Z] = rks4 (F2, a, b, Za, M);V = Z(:, 1);% Calcular la solucion al problema de valor fronteraX = U + (beta - U(M+1)) * V / V(M+1);L = [T’, X];