CAP TULO VIII Ecu dif
Transcript of CAP TULO VIII Ecu dif
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
141
CAPÍTULO VIII
ECUACIONES DIFERENCIALESECUACIONES DIFERENCIALESECUACIONES DIFERENCIALESECUACIONES DIFERENCIALES
Introducción
En ciertos casos como en el caso del movimiento de un objeto, de difusión de contaminantes o del crecimiento de poblaciones de cierta especie, por ejemplo, estamos interesados en funciones que evolucionan en forma continua respecto del tiempo. Tomemos este último ejemplo. A partir de una población inicial )( 0tx , la evolución se suele describir
(o modelizar) por una función )(tx a lo largo del tiempo. Al estudiar el crecimiento continuo de una población )(tx , obtenemos información sobre su tasa de crecimiento, por
ejemplo. Esta se define como dt
xdx )(, es decir la variación de población por unidad de
tiempo. Si se ha observado que la tasa de crecimiento es constante, tenemos la relación
kdt
tdx =)(
y queremos encontrar una función continua )(tx que satisfaga esta igualdad. Recordando las reglas de derivación vemos que kttx =)( la verifica, pero también lo hace
Ctktx +=)( con ℜ∈C .
Si además sabemos que la población inicial es de 100 individuos, tenemos
CCkx =+== 0.)0(100 ,
o sea que la solución en este caso es
100)( += tktx
Definición: Una ecuación diferencial para la función )(tx es una ecuación que contiene la variable t, la función )(tx , y derivadas de )(tx .
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
142
En forma general puede escribirse
0,,,, =
tx
td
xd
td
xdF
n
n
… ó
( ) .0,)(,)(,),()( =′ ttxtxtxF n …
El orden de la ecuación diferencial es el orden de la derivada de mayor orden que aparece en la ecuación. Ejemplos:
1) xtd
xd2= primer orden
2) etxt
td
xd 2
2 −−= primer orden
3) 0)1( 423
3
=++ txtd
xd tercer orden
4) txtd
xd
td
xd +=
+
42
3
3
tercer orden
5) 3
2
2
2
=
td
xdx
td
xd segundo orden
Ejemplo: Una población de bacterias crece de manera tal que su tasa de crecimiento en el tiempo t (en horas) es igual a un décimo de la población en ese instante.
¿Cómo describir el proceso con una ecuación diferencial?
Supongamos que )(tx es la población en el tiempo t. Entonces:
td
xd es un décimo de )(tx
➾ 10
)()( tx
td
txd =
que es una ecuación diferencial de primer orden.
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
143
Dada una ecuación diferencial, ¿Cómo encontramos una función ( )tx que satisfaga la ecuación? Una función derivable que satisface una ecuación diferencial se llama solución de la ecuación.
Ejemplo: Probemos que ( ) tettx = satisface la ecuación
+=t
x
td
xd 11
2
Efectivamente
( ) ( )
( )
+=
+=
+= −
t
x
tte
tet
teette
td
d
t
tt
tt
11
21
1
2
1
2
1
21
2121
Ejemplo: Probemos que ( ) tt beaetx 2+= satisface la ecuación
0232
2
=+− xdt
dx
dt
xd
Efectivamente tt ebea
td
xd 22+=
tt ebeatd
xd 22
2
4+=
Así: ( ) ( ) ( ) 02234 222 =+++−+ tttttt beaebeaebeae
independientemente de los valores de a y de b.
Si exigimos que 1)0( =x y 2)0( =dt
dx podemos determinar a y b:
0 0
0 0
1
2 2 2
ae be a b
ae be a b
+ = + =
+ = + =
1
0
b
a
=⇒ =
La solución es tetx 2)( = . Trabajaremos con ecuaciones diferenciales de primer orden, que pueden escribirse
( ) ( )( )ttxfdt
tdx,= con f continua .
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
144
Como hemos visto en los ejemplos anteriores la ecuación puede tener más de una solución, y para elegir una de ellas, agregamos una condición inicial
( ) 00 xtx = .
Entonces el problema a resolver será
0 0
( , )
( )
dxf x t
dt
x t x
=
=
Si existen funciones g y h tales que
( ) ( ) ( ), .f x t g x h t=
decimos que la ecuación es de variables separables. En ese caso la ecuación puede escribirse:
( ) ( )thdt
dx
xg=1
o haciendo abuso de notación
dtthdxxg
)()(
1 = .
Así puede buscar las primitivas de ambas funciones, y si notamos ∫ )(xg
dx y ∫ dtth )( a las
respectivas primitivas podemos escribir:
∫ ∫ += Cdtthxg
dx)(
)(
de donde se despeja x como función de t, algo que no siempre será posible.
Ejemplo: Sea )21()1( 2 txdt
dx ++= con condición inicial 0)0( =x .
Podemos escribir
dttx
dx)21(
1 2+=
+
Buscamos la primitivas
)(tg
arctg2
2
Cttx
Cttx
++=⇒
++=
Como
0
0)0(tg0)0(
=⇒
=+==C
Cx
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
145
Ejemplo: Sea ( ) texdt
dx −+= 1 con condición inicial ( ) 10 =x .
Escribimos dtedxx
t−=+11
y obtenemos
Cexnl t +−=+ −)1( . Como 1)0( =x para 0=t , queda
12
12
+=⇒
+−=nlC
Cnl
Ejemplo: Sea )1( 22 txdt
dx +=
dttdxx
)1(1 2
2+=
Ct
tx
++=−3
1 3
3 3
1 3
33
xt t t A
t C
− −= =+ ++ +
Con la condición inicial 2)0( =x , obtenemos 2
3−=A .
Teorema de existencia y unicidad.
Dado el problema
==′
∗00 )(
),()(
yxy
yxfy
Si ),( yxf es continua [ ] ( )0,, xaRybax =∈∀∈∀ y si ),( yxy
f
∂∂
es continua y
acotada, entonces existe solución única en el intervalo [ ]ba, , o sea existe una única función
)(xy que satisface ( )∗ [ ]bax ,∈∀ .
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
146
El teorema de existencia no asegura que dicha solución sea obtenible en forma analítica (esto es, que siempre pueda encontrarse una fórmula computable para )(xy ). Gran parte de los problemas físicos, biológicos, etc., se traducen en ecuaciones diferenciales de las que se desconoce solución analítica.
Se recurre entonces a los métodos numéricos, que en lugar de dar una ley para ( )y x
producen valores aproximados para )( nxy con [ ],nx a b∈ , comenzando por el valor inicial
0 0( ) ( )y a y x y= = .
Estudiaremos métodos de paso simple, tales que para calcular el valor aproximado de )( 1+nxy sólo se necesita el valor aproximado obtenido para )( nxy .
Notación: ny será el valor aproximado para )( nxy obtenido por el método: )( nn xyy ≅ .
METODO DE EULER
Sea la ecuación diferencial con condición inicial
==′
00 )(
),(
yxy
yxfy
Idea geométrica
La curva )(xy no se conoce.
Se traza la tangente a )(xy en ),( 00 yx y se toma como valor aproximado de )(by la
ordenada de la tangente (Recuérdese que estamos identificando la función y su gráfica).
Para facilitar la notación llamamos hxbx +== 01 .
Queremos calcular )( 11 xyx ≅ .
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
147
La ecuación de la tangente es
)()()( 000 xxxyyxT −′+= pero ))(,()( 000 xyxfxy =′
)( 00 yxf=
Entonces:
0 0 0 0( ) ( , ) ( )T x y f x y x x= + −
)(),()()( 000000101 yxfhyyxfxxyxT +=−+=
1 0 0 0( , )y y h f x y= +
Si en lugar de aproximar directamente )(by lo hacemos en dos pasos de longitud
2
abh
−= tendremos ax =0 ,
hxx += 01 ,
bhxx =+= 12 . En un primer paso calculamos
),()( 00011 yxfhyyxy +=≅ .
Repitiendo el procedimiento anterior tendríamos la tangente a y(x) en el punto ),( 11 yx .
1 1 1 1 1( ) ( ) ( , ( ))T x y h y x y h f x y x′= + = + ,
pero como no conocemos exactamente )( 1xy lo aproximamos por el valor 1y . Resulta entonces que:
)()()( 11122 yxfhyyxyby +=≅= que debería dar mejor aproximación que en un solo paso.
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
148
En 2 2( , )x y se suma el error de trazar la tangente por el punto ( )11, yx en lugar de hacerlo
por el punto ))(,( 11 xyx , al error de tomar un valor aproximado, )( 11yxf , para la pendiente de dicha tangente. Aproximación de la fórmula de Euler por serie de Taylor
Suponemos que )(xy puede desarrollarse en el entorno de un punto dado por serie de
Taylor. Desarrollando en un entorno del punto 0x tenemos
...)(!2
)()()()()( 0
20
000 +′′−+′−+= xy
xxxyxxxyxy
Haciendo hxx += 0 y cortando en el segundo término obtenemos
)(2
)()(2
000 ξyh
xyhyhxy ′′+′+=+ con [ ]hxx +∈ 00,ξ
Es decir que ),( 0001 yxfhyy += .
Así )( 11 xyy ≅ y el error local cometido es )(2
2
ξyh ′′ .
Partiendo el intervalo [ ]ba, en N partes y aproximando en cada subdivisión resulta el Algoritmo del Método de Euler
Dados un intervalo [ ],a b y ( ) /h b a N= −
1
Hacer para 0,1, , 1
( , )n
n n n n
n N
x a nh
y y h f x y+
= − = +
= +
…
El valor Ny será el valor aproximado para ( )y b .
Ejemplo: Dado el problema de valor inicial:
==′
1)0(y
yy [ ] [ ]1,0,
),(
==
ba
yyxf
aproximar el valor de )1(y . Tomemos 2=N , entonces 5.0=h . Calculamos:
25.25.15.05.1),(
5.115.01),(
1112
0001
=∗+=+==∗+=+=
yxfhyy
yxfhyy
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
149
o sea 25.2)1( ≅y .
Sabemos que la solución exacta es xexy =)( y entonces 718281828.2)1( == ey . Si aplicamos el algoritmo en este ejemplo tenemos
21111112
0000001
)1()1(),(
)1()1(),(
hhyyhyyxfhyy
hhyyhyyxfhyy
+=+=+=+=
+=+=+=+=
Repitiendo estos pasos llegaremos a n
n hy )1( += .
Si tomamos 10=N , entonces 1.0=h y obtenemos
5937.2)1.1()1()1( 101010 ==+=≅ hyy
Con 100=N , resulta que 01.0=h y obtenemos
70481.2)01.01()1( 100100 =+=≅ yy .
En este método debemos tomar un h muy pequeño si esperamos tener una buena aproximación. Ejemplo: Dado el problema de valor inicial: 31),( yxyxfy ==′ con 1)1( =y . Calculemos qué error local podemos cometer cerca de 1=x :
( )ξyh
e ′′=2
2
Calculamos las derivadas:
).3
11(
)(3
1
3
1
32231
3132313231
31
−
−−
+=
=+=′+=′′
=′
yxy
yxyxyyyxyy
yxy
Si suponemos 1=x e 1)1( =y , reemplazando queda
3
4)1( =′′y
Para 01.0=h , el error que se comete en el primer paso es del orden de 4
410 4 210 0.00007
2 3 3e
−−≅ = ≅
Después de cuatro pasos con errores de este orden la cuarta cifra decimal tiene poquísima probabilidad de ser exacta.
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
150
En la tabla siguiente vemos la necesidad de tomar pasos muy pequeños para evitar errores grandes en la aproximación
x
1.0=h
05.0=h
01.0=h
232
3
2
+= xy
exacta
1 1 1 1 1
2 2.72 2.78 2.82 2.83
3 6.71 6.87 6.99 7.02
4 14.08 14.39 14.63 14.70
5 25.93 26.48 26.89 27.00
Ejemplo: Sea la ecuación diferencial
01
=+
+t
x
dt
dx
con condición inicial 12)0( =x .
Queremos obtener una solución numérica aproximada sobre el intervalo [ ]1,0 . Elegimos un paso 1.0=h . Calculamos:
81818.91.01
8.101.08.10
1.
8.10)12(1.0121.
12
1
112
0
001
0
=
+−=
+−=
=−=+
−=
=
t
xhxx
t
xhxx
x
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
151
23 2
2
34 3
3
45 4
4
9.81818. 9.81818 0.1 9.00001 1.2
9. 9 0.1 8.3076921 1.3
8.307692. 8.307692 0.1 7.7142851 1.4
xx x h
t
xx x h
t
xx x h
t
= − = − = +
= − = − = +
= − = − = +
56 5
5
7.714285. 7.714285 0.1 7.1999991 1.5
xx x h
t = − = − = +
67 6
6
78 7
7
89 8
8
910 8
9
7.199999. 7.199999 0.1 6.7500001 1.6
6.75. 6.75 0.1 6.3529411 1.7
6.352941. 6.352941 0.1 5.9999991 1.8
5.999999. 5.999999 0.1 5.61 1.9
xx x h
t
xx x h
t
xx x h
t
xx x h
t
= − = − = +
= − = − = +
= − = − = +
= − = − = + 84210
La solución exacta de esta ecuación es t
tx+
=1
12)( de donde 6
2
12)1( ==x .
Estimación del error en el método de Euler
Se quiere estimar el error global, o sea el error acumulado después de n pasos del método
de Euler. Sabemos que el error local de truncamiento es ( )ξyh ′′2
2
, pero a la suma de estos
errores se agrega el error de ),( nn yxf .
Sea nnn yxye −= )( el error global después de n pasos y supongamos que la solución
)(xy tiene derivadas continuas hasta el orden dos. Por un lado tenemos
),(1 nnnn yxfhyy +=+ por el algoritmo de Euler (1).
Además ( )ξyh
xyhxyxy nnn ′′+′+=+ 2)()()(
2
1 , con [ ]1,int −∈ nn xxξ por Taylor.
Es decir que
( )ξyh
xyxfhxyxy nnnn ′′++=+ 2))(,()()(
2
1 (2).
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
152
Restando (1) de (2) tenemos
[ ] ( )ξyh
yxfxyxfhyxyyxye nnnnnnnnn ′′+−+−=−= +++ 2),())(,())(()(
2
111
Aplicando el Teorema del Valor Medio a ),( yxf en la segunda variable tenemos
( )
[ ]
2
1 ( ( ) ) ( ( ) ) ( , )2
int , ( )
n n n n n n
n n
f he y x y h y x y x y
y
con y y x
α ξ
α
+∂ ′′= − + − +∂
∈
Reemplazando nn yxy −)( por ne , resulta
( )ξ′′+∂∂+=+ y
hax
y
fhee nnn 2
))(1(2
1 .
Si suponemos que existen constantes positivas L, M tales que
[ ]( ) , ,y x M x a b′′ ≤ ∀ ∈
y ( ) Lyxy
f ≤∂∂
, [ ] ybax ∀∈∀ ,,
entonces
( ) Mh
hLee nn 21
2
1 ++≤+ .
Si queremos obtener el error 1+ne en función del error inicial, seguimos reemplazando
( ) Mh
hLee nn 21
2
1 ++≤ −
( ) ( )[ ]hLMh
hLee nn ++++≤ −+ 112
12
211 .
Si seguimos hacia atrás tendremos finalmente
( ) ( )[ ]Lh
LhM
hhLee
nn
n
11
21
121
01
−+++≤+
++
ya que el último término es una progresión geométrica de razón ( )hL+1 .
Escribamos la fórmula para n
( ) ( )[ ]112
10 −+++≤ nnn hL
L
MhhLee .
Si hacemos n
xxh n 0−= , obtenemos
( ) ( ) h
xxn n
hLhL0
11−
+=+
cuyo límite cuando h tiende a 0 es )( 0xxL ne −.
Además se verifica que ( ) )( 00
1 xxLh
xxn
n
ehL −−
≤+ .
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
153
Este reemplazo da la fórmula más usual
( ) ( )( )12
1 00 −++≤ −xxLn
nne
L
MhhLee .
Si suponemos que la condición inicial 00)( yxy = es exacta, entonces 00 =e y
( )( )12
0 −≤ −xxLn
nehL
Me .
Esto muestra que el error es lineal en h por lo que se dice que el método de Euler es un método de orden 1. Hay casos para los cuales la desigualdad se transforma en igualdad. Ejemplo: Volvemos al problema
==′
1)0(y
yy
Con 10=N , y por lo tanto 1.0=h , habíamos obtenido 5937.210 =y
Calculemos las constantes L y M:
Como yyxf =),( , tenemos 11 =⇒=∂∂
Ly
f
Para calcular la cota M usaremos la solución exacta que conocemos xexy =)( . Tenemos
xexyxyxy ==′=′′ )()()(
como [ ]0.1 2.7182818...xe e en M e≤ ⇒ = = .
Entonces la cota es
10 0.1 ( 1) 0.242
ee e≤ − ≤
El error cometido es 2.05937.2 <−e , con lo que corroboramos que es menor que la cota
obtenida. La dificultad en la aplicación de la acotación del error está en que no siempre se pueden hallar las constantes L y M. Aún en un ejemplo sencillo como el anterior, tuvimos que recurrir a la solución exacta, que en general es desconocida. Ejemplo: Dado el problema de valor inicial:
==′
2)0(
sen
y
yy
Acotar el error cometido al aproximar )1(y en 10 pasos.
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
154
En este caso 1.0=h y [ ] [ ]1,0,0 =Nxx .
Entonces ( )10 0.1 12
LMe e
L≤ − .
Como ( ) yyyyyy sen.coscos;sen =′=′ entonces ( ) 1y x x′′ ≤ ∀ .
Además cos 1f f
y x yy y
∂ ∂= ⇒ ≤ ∀ ∀∂ ∂
.
Tenemos entonces que 1== LM y resulta que
( )10
10.1 1 0.086.
2e e≤ − <
INTEGRACIÓN POR SERIES DE TAYLOR
Sea el problema:
==′
00)(
),(
yxy
yxfy .
Suponemos que ),( yxf tiene suficientes derivadas respecto a x y a y como para asegurar que lo que sigue tiene sentido. Si )(xy es solución del problema planteado, podemos escribir su desarrollo en serie de
Taylor en un entorno del punto 0x :
...)(!2
)()()()(
20
000 +′′−+′−+= xyxx
xyxxyxy
No conocemos explícitamente las derivadas pero sabemos que:
),( yxfy =′
fffyfffy yxyx +=′+=′=′′
ffffffffffffy yxyyyyxxyxx22 +++++=′′=′′′
2 22xx xy yy x y yf f f f f f f f f= + + + +
que se convierten en expresiones muy complejas si f no es sencilla. Si llamamos 0xxh −= y suponemos que la serie de Taylor truncada es una buena
aproximación, definamos el operador:
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
155
1
( 1)( , ) ( , ) ( , ) ... ( , )2! !
kk
k
h hT x y f x y f x y f x y
k
−−′= + + + para ,...2,1=k
A partir de este operador, podemos definir aproximaciones ny al valor )( nxy , donde los
nx son puntos del intervalo [ ]ba, sobre el cual se busca la solución numérica y tales que
.22
1
0
etchax
hax
ax
+=+=
=
Para ello se utiliza la recursión
),(1 nnknn yxThyy +=+ 0,1,..., 1.n N= −
El error local será dado por )!1(
))(,()(1
+ξξ
=ε+
k
yfh kk
con ),( hxx nn +∈ξ .
Es decir que
)()!1(
)1(1
ξ+
=ε ++
kk
yk
h.
Se dice que el algoritmo de Taylor es de orden k si ε es )( 1+khϑ . Podemos comprobar que para 1=k tenemos el método de Euler. METODOS DE RUNGE-KUTTA Se utilizan expresiones del tipo
(♦)
++==
++=+
),(
),(
12
1
211
kyhxfhk
yxfhkcon
kbkayy
nn
nn
nn
βα
con βα ,,,ba constantes a determinar de manera que la expresión (♦) coincida con el algoritmo de Taylor con orden lo mayor posible.
Desarrollando y(x) según Taylor tenemos 2 3
( ) ( ) ( ) ( ) ( ) ...2 6n n n n n
h hy x h y x h y x y x y x′ ′′ ′′′+ = + + + +
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
156
nynnnn fffh
yxfhxy )(2
),()(2
+++=
( )4223
)2(6
hfffffffffh
nyyxyyxyxx ϑ++++++
Por otro lado, el desarrollo de Taylor para funciones de dos variables da
1 1
2 2 2 231
1
( , ) ( , )
( )2 2
n n n n x y
xx xy yy
f x h y k f x y h f k f
h kf h k f f h
α β α β
α βα β ϑ
+ + = + + +
+ + + +
con derivadas evaluadas en ),( nn yx .
Si reemplazamos esta expresión en la primera ecuación obtenemos
21
2 23 2 4
( ) ( )
( )2 2
n n x y
xx xy yy
y y a b h f b h f f f
b h f f f f f h
α β
α βα β ϑ
+ = + + + + +
+ + + +
Comparando con la expresión para )( 1+nxy vemos que para que los coeficientes
correspondan se necesita tener
=
=
=+
2
12
1
1
βb
bx
ba
.
Son 3 ecuaciones con 4 incógnitas: es decir que hay un grado de libertad en la solución.
La solución más sencilla es
==
==
12
1
βαba .
Método de RungeMétodo de RungeMétodo de RungeMétodo de Runge----Kutta de orden Kutta de orden Kutta de orden Kutta de orden 2222
Sea la ecuación ),( xtfdt
dx = con condición inicial 0)( xtx o = .
Fijamos el paso h y generamos una aproximación nx al valor de )( 0 nhtx + usando la
fórmula
)(2
1211 kkxx nn ++=+
donde
( )),(,
),(
2
1
nnnn
nn
xtfhxhtfhk
xtfhk
++==
.
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
157
Nótese que 1+=+ nn tht y que ),( nnn xtfhx + es el punto 1+nx según el algoritmo de
Euler.
Si queremos calcular el error local para el método de Runge-Kutta de orden 2 nos encontramos con una expresión
32 2 4
1 1( ) ( 2 . . 2 2 . ) ( )12n n tt tx xx t x x
hx t x f f f f f f f f f hϑ+ +− = + + − − +
donde ft y fx indican derivadas parciales respecto de una y otra variable.
La complejidad del término constituye una desventaja para la estimación del error. Pero se sabe que el error local es del orden de h3 mientras que el error local en el método de Euler es del orden de h2.
Quiere decir que con Runge - Kutta podemos obtener una precisión dada tomando un paso h mayor que con el método de Euler. Algoritmo de RUNGE - KUTTA de orden 2
Dado el problema ),( yxfy =′ con condición inicial 0)( yay = a resolver sobre [ ]ba, y
dado b a
hN
−=
Hacer: ax =0
Hacer para 0,1,..., 1,i N= −
),(
),(
12
1
kyhxfhk
yxfhk
ii
ii
++==
hxx
kkyy
ii
ii
+=
++=
+
+
1
211 )(2
1
Entonces yi aproxima al valor y (xi) para cada i. Ejemplo: Sea el problema
==
=
01)0( xx
xdt
dx
Calcular )1(x con 5.0=h . Tenemos xxtf =),(
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
158
( )
1 0 1 2
0 0 0
1( )
21
( )2
11 (0.5 0.5 (1.5) )
21 2.5
1 0.5 (2.5) 1 1.6252 4
x x k k
x h x h x h
= + +
= + + +
= + +
= + = + =
( )2 1 1 1
1 1 1
1( )
21 1
2 (1.5)4 2 8
2.64063
x x h x h x h
hx x x
= + + +
= + + = +
=
La solución exacta es tcex = y utilizando la condición inicial
0(0) 1 obtenemos 1x ce c= = = 71828.2)1( ==⇒ ex MMMMéééétodo de Rungetodo de Rungetodo de Rungetodo de Runge----Kutta de orden 4Kutta de orden 4Kutta de orden 4Kutta de orden 4
Partiendo de la ecuación
=
=
00)(
),(
yxy
yxfdx
dy
se establece la fórmula
1 1 2 3 4
1( 2 2 )
6n ny y k k k k+ = + + + +
donde
),(
)2
,2
(
)2
,2
(
),(
34
23
12
1
kyhxfhk
ky
hxfhk
ky
hxfhk
yxfhk
nn
nn
nn
nn
++=
++=
++=
=
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
159
La demostración del cálculo del error local está fuera de las posibilidades de este curso, pero basta con saber que el mismo es del orden de 5h .
El error global es del orden de 4( )hϑ
Ejemplo: Sea la ecuación 1/3dyx y
dx= con condición inicial 1)1( =y
Tomando 1.0=h , calculamos:
11378.0)10684.1,1.1(1.0
10684.0)05336.1,05.1(1.0
10672.0)05.1,05.0(1.0
1.0)1,1(1.0
4
3
2
1
====
====
fk
fk
fk
fk
y entonces
10682.1)11378.0210684.0210672.01.0(6
101 =+×+×++= yy
Vemos la eficiencia del método en los resultados que se muestran en la tabla
t Runge-Kutta 4 Exacta
1 2 3 4 5
1.0 2.82843 7.02113 14.69693 26.99998
1.0 2.82843 7.02113
14.69694 27.00
Vale la pena comparar estos valores con los obtenidos usando el método de Euler con distintos pasos h. ANALOGIAS CON LOS METODOS DE INTEGRACION Supongamos que la ecuación diferencial es
=
=
00)(
)(
yxy
xfdx
dy (1)
es decir que la función f depende únicamente de la variable x. En este caso )(xy es una función primitiva de )(xf y se tiene
00
( ) ( ) ( )NN
xf t dt y x y x
x= −∫
o bien ∫+= dttfx
xyxy N
N )()(0
0 .
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
160
Tenemos entonces dos formas de aproximar )( Nxy
i) resolviendo la ecuación diferencial
ii) calculando la integral
Lo que pretendemos aquí es resaltar que hay una correspondencia entre un método dado para resolver la ecuación diferencial y uno de los métodos de integración para calcular la integral.
Veamos:
A. i) Método de Euler
Aquí el algoritmo se resume en la fórmula:
N
xxhNnxfhyy N
nnn0
1 1,,1,0)(−−=+=+ …
Calculando obtenemos
[ ])()()()(
)(
101002
001
xfxfhxfhxfhyy
xfhyy
+=++=+=
.
. [ ])()( 100 −+++= NN xfxfhyy …
De donde )()(1
00 i
N
iN xfhyxy ∑
−
=
+≅
ii) Sumas izquierdas de Riemann (método del rectángulo)
Sabemos que
)()(1
00i
N
i
N xfhdttfx
x∫ ∑
−
=
≅
Reemplazando en la ecuación (2), obtenemos
)()(1
00 i
N
iN xfhyxy ∑
−
=
+≅
que da la misma aproximación Ny que Euler.
Comparemos las cotas para el error obtenidas en ambos métodos. Al aproximar )(by con pasos de longitud h por el método de Euler tenemos
( )( 1)2
L b aMe h e
L−≤ −
siendo
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
161
[ ][ ]
( ) ,
( , ) , ,y
y x M x a b
f x y L x a b y
′′ ≤ ∀ ∈
≤ ∀ ∈ ∀
En este caso tenemos )(),( xfyxf = y entonces como )(xfy =′ , resulta )(xfy ′=′′ .
Así la cota M es tal que [ ]baxMxf ,)( ∈∀<′ .
Además 0=yf o sea 0=L
Esto produce una indeterminación del tipo 0
0 en la cota para el error, que puede salvarse
tomando el límite cuando L tiende a 0 y calculándolo por la regla de L'Hôpital:
( ) ( )
0 0
( )
0
1 1lim (lim )
2 2( ) ( )
(lim )2 1 2
L b a L b a
L L
L b a
L
M e M eh h
L L
M b a e M b ah h
− −
→ →
−
→
− −= =
− −= =
que coincide con la cota obtenida en el método de sumas izquierdas de Riemann. Ejemplo: Dado el problema
2000
200(0) 0
yt
y
′ = − =
¿Qué paso h debe usarse para aproximar ( )50y con error menor que 210− ?
En este caso ( )tft
ytf =−
=200
2000),(
Usamos la cota ( )2
M b ae h
−≤ .
Como ( ) ( )2200
2000
ttf
−=′ , resulta que ( ) 2
20000.09
150f t′ ≤ ≤
Tomamos 09.0=M , obtenemos
( ) 20.09 5010
2 2
M b ah h −− ∗≤ < , de donde 0045.0<h .
B. i) Método de Runge-Kutta de orden 2
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
162
En este caso la fórmula está dada por
( ) ( )( )( )nnnnnnnn yxfhyxfyxfh
yy ,,,2 11 +++= ++
.
Calculamos
( ) ( )( )
( ) ( )( ) ( ) ( )( )211002
1001
22
2
xfxfh
xfxfh
yy
xfxfh
yy
++++=
++=
.
.
( ) ( )( ) ( ) ( )( ) ( ) ( )( )0 0 1 1 2 1...2 2 2N N N
h h hy y f x f x f x f x f x f x−= + + + + + + +
Que puede escribirse
( ) ( ) ( )
∑+++=
−
=i
N
iNN xfxfxf
hyy
1
100 2
2
ii) Método de trapecios Recordemos que
( ) ( ) ( ) ( )
∑++≅−
=∫ i
N
iN
N xfxfxfh
dttfx
x 1
10
0
22
Por lo que obtenemos
( ) ( ) ( ) ( )
∑+++≅
−
=i
N
iNN xfxfxf
hyxy
1
100 2
2
que da la misma aproximación Ny que Runge-Kutta de orden 2. C. i) Método de Runge-Kutta de orden 4
Teniendo en cuenta que ( ) ( )xfyxf =, es
( ) ( )
++
++
+++=+ hxfh
xfh
xfxfh
yy nnnnnn 22
22
61
donde 2
hxn + es el punto medio del intervalo [ ]1, +nn xx , o sea
221++=+ nn
n
xxhx
Haciendo los cálculos se tiene:
( ) ( )
+
+++= 110
001 24
6xf
xxfxf
hyy
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
163
( ) ( ) ( ) ( )
+
+++
+
+++= 221
1110
002 24
624
6xf
xxfxf
hxf
xxfxf
hyy
. . .
( ) ( ) ( )
+
++++
+++= −N
NNN xf
xxfxf
xxfxf
hyy
242
24
61
110
00 …
Finalmente:
( ) ( ) ( ) ( )
+∑+∑+++=≅ −
=
−
= 242
61
1
1
100
iiN
ii
N
iNNN
xxfxfxfxf
hyyxy
ii ) Método de Simpson
Es fácil observar que haciendo el cálculo de la integral de la misma aproximación Ny que
la obtenida en i) para Runge-Kutta de orden 4.
ECUACIONES DIFERENCIALES DE ORDEN N
Sea la ecuación diferencial
( )( ) ( ) ( ) ( )( )( )txtxtxtftx nn 1,,,, −′= … .
Aquí consideramos la derivada n-ésima de ( )tx como función de t y de las derivadas de
( )tx de orden < n. Es posible modificar esta ecuación de la siguiente forma:
Si llamamos ( ) ( )txtx =1 , obtenemos un sistema de ecuaciones:
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( )( ) ( )
1 2
2 3
11
1 2 3, , , , ,
nn n
n n
x t x t x t
x t x t x t
x t x t x t
x t f t x x x x
−−
′ ′= = ′ ′′= = ′ = =
′ =
⋮
…
Una ecuación diferencial de orden n puede llevarse a un sistema de n ecuaciones de orden 1 que se resuelven simultáneamente con cualquiera de los métodos vistos.
Ejemplo: Para una cierta especie de pájaros el tiempo invertido en la búsqueda de alimento varía desde un mínimo de 2 horas por día en verano a un máximo de 8 horas diarias en invierno. Se sabe que la variación en la longitud de estos períodos obedece a la ecuación
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
164
( ) ( ) 0274.0 =+′′ txtx .
Podemos transformar esta ecuación en el sistema:
−=′=′
12
21
274.0 xx
xx
suponiendo ( )txx =1 . Para resolverlo, necesitamos las correspondientes condiciones iniciales. En general, obtenemos dos ecuaciones de primer orden que resolvemos simultáneamente, con cualquiera de los métodos estudiados. A modo de ilustración, veamos cómo resolver una ecuación de segundo orden utilizando el método de Runge-Kutta de orden 4. Sea la ecuación diferencial
( )xxtfx ′=′′ ,,
con condiciones iniciales ( ) ( ) 0000 , wtxxtx =′= . La transformamos en
( )( )
=′==′
wxtfw
wxtgwx
,,
,,
con condiciones iniciales ( ) ( )0 0 0 0,x t x w t w= = .
Las fórmulas correspondientes serán:
( )43211 226
1kkkkxx nn ++++=+
( )43211 1121216
1 ++++=+ nn ww
donde:
( )( )
( )
1
1
1 1 12
1 12
2 2 23
2 23
4 3 3
, ,
1 , ,
1 1, ,
2 2 2 2
11 , ,
2 2 2
1 1, ,
2 2 2 2
11 , ,
2 2 2
, , 1
n n n n
n n n
n n n n
n n n
n n n n
n n n
n n n
k h g t x w h w
h f t x w
khk h g t x w h w
khh f t x x
khk h g t x w h w
khh f t x x
k h g t h x k w
= =
=
= + + + = +
= + + +
= + + + = +
= + + +
= + + + = ( )( )
3
4 3 3
1
1 , , 1
n
n n n
h w
h f t h x k w
+
= + + +
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
165
Ejemplo: Sea la ecuación diferencial
( ) ( ) 011.0 2 =+′−−′′ xxxx
con condiciones iniciales ( ) ( ) 00,10 =′= xx . La transformamos en el sistema
( ) ( ) ( )
=−−=′=′
wxtfxwxw
wx
,,11.0 2
En este caso las fórmulas son
( ) ( )[ ]
( )
+
+−+
+−=
+=
−+−=
=
2
1
211.0
21
2
1
11.01
1
2
112
12
21
1
nnn
n
nnn
n
wk
xk
xh
whk
wxxh
whk
( )
( )( ) ( ) ( )( ) ( )[ ]3
2334
34
2
2
22
3
2
3
111.01
1
2
1
211.0
21
2
1
++−++−=
+=
+
+−+
+−=
+=
nnn
n
nnn
n
wkxkxh
whk
wk
xk
xh
whk
Si tomamos 2.0=h obtenemos
1
1
2
1
3
3
4
4
0
1 0.2
0.02
1 0.2
0.002
1 0.198
0.04
1 0.196
k
k
k
k
== −= −= −= −= −= −= −
de donde calculamos
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
166
( )
( ) 199.0196.0396.04.02.06
10
98.004.004.004.06
11
1
1
−≅−−−−+=
=−−−+=
w
x
Entonces ( ) 98.02.0 ≅x . Algunas veces podemos encontrar modelos de sistemas biológicos en los que aparecen ecuaciones diferenciales con dos funciones incógnitas. Es el caso de los sistemas "presas-depredadores", por ejemplo, que resolveremos transformando el sistema con dos incógnitas en una ecuación diferencial de orden superior en una sola incógnita, y luego transformando esta ecuación en un sistema de ecuaciones de primer orden. Ejemplo (Modelo de Lotka-Volterra):
Si ( )tx es la población de la especie depredadora e ( )ty es la población de la especie presa, y si se sabe que las tasas de crecimiento obedecen al sistema
( ) ( ) ( )( ) ( ) ( )
x t x t y t
y t x t y t
′ = + ′ = − +
con poblaciones iniciales ( ) ( ) 100000 == yx , queremos determinar los valores de
población ( )tx e ( )ty a lo largo de un cierto intervalo de tiempo.
Hacemos
( ) ( ) ( )tytxtx ′+′=′′
y sustituyendo por medio de las ecuaciones antes planteadas:
( ) ( ) ( ) ( )( ) ( ) ( ) ( )
( ) ( )2 2
x t x t x t y t
x t x t x t x t
x t x t
′′ ′= − +
′ ′= − + −
′= −
( ) ( ) ( )2 2 0x t x t x t′′ ′⇒ − + =
Ahora, si ( ) ( )txtx =1 , formamos:
( ) ( )( ) ( ) ( ) ( )
−=′=′=
txtxtxtx
txtx
1223
12
22
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
167
y resolvemos usando cualquiera de los métodos estudiados anteriormente.
CONTROL DE PASO EN LOS METODOS DE RUNGE-KUTTA
No hay razón alguna para que el paso h se mantenga fijo a lo largo del proceso de solución numérica con Runge-Kutta. Se puede estimar el error local en cada paso y decidir cómo cambiar la longitud h. Un método se basa en dividir o multiplicar la longitud del intervalo siguiente por dos.
Supongamos que usamos Runge-Kutta de orden p y que llegamos a xn con 1−−= nn xxh .
Ahora resolvemos para hxx nn +=+1 dos veces:
(a) usando h
(b) usando dos pasos con 2
h.
Obtenemos dos estimaciones del valor exacto ( )1+nxy : ( )1h ny x + y ( )1
2
+nh xy .
Para Runge-Kutta de orden p tenemos
( ) ( ) ( ) ( )1P Ph n n ny x m h y x m h C x m h h hϑ ++ − + = + +
�����
depende de ( ),f x y y de hmxx n +=
Entonces:
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( )
( ) ( )
11 1 1
11 1 1
2
1 12
1 12
2
2 1 2
2 1
n
p ph n n n
pp
h n n n
C
p h n h n
n p
h n h n
n p
y x y x C x h h
hy x y x C x h
y x y xh
C
y x y x
D
ϑ
ϑ
++ + +
++ + +
+ +
+ +
− = + − = +
−
⇒ ≈ −
−⇒ =
−
�����
que permite estimar si h está bien, es grande o es chico.
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
168
Supongamos que nos damos una tolerancia de error ε y queremos mantener nD debajo
de la tolerancia para cada paso, es decir nD hε≤ .
Un método es calcular ( )1+nh xy y ( )1
2
+nh xy y decidimos si ( )1
2
+nh xy es aceptable y
cuál paso hay que usar en la próxima integración. Notar que si sólo duplicamos o dividimos en dos la longitud de cada subintervalo, podemos
poner una cota inferior para el error local 1
´2p
εε += , ya que al dividir el error se reduce en
12
1+≈
p.
Si:
• εε <<′h
Dn , aceptamos ( )1
2
+nh xy y seguimos usando h ;
• ε>h
Dn , hay que reducir h a 2
h y volver a hacer las cuentas a partir de nx ;
• ε ′>h
Dn , sobra tolerancia podemos tomar ( )1
2
+nh xy y seguir con h2 a partir de
1+nx .
Por ejemplo, para 4=p , tenemos 32εε =′ , pero es más fácil de calcular y estamos más
seguros si consideramos 50
εε =′ .
Otro método toma la siguiente forma:
1
22
+
≈P
nn
hCD .
Se busca h para el paso siguiente. Como el error local será cercano a 1
22
+
P
n
hC , se
elige h de manera que la cota del error local sea satisfecha
hh
CP
n ε≤
+1
22
suponiendo que nC no varía mucho con n. De esta forma tenemos:
Facultad de Ciencias Exactas, UNCPBA CALCULO NUMERICO
Ecuaciones Diferenciales G.A. Canziani, M.V. Simoy
169
11 1
1
1 1
22 2 2
2 2
PP P
n
P P
n P P
P Pn
h h hC h
h h h hD
D h h h
ε
ε
ε
++ +
+
+ +
≤
≤
≤
Entonces se modifica la longitud del paso según: 1
PP
n
P
n
h hh
D
hh h
D
ε
ε
≤
≈
Ejemplo: Supongamos que 4p = , 610−=ε , 110−=h y que nD resulta 510− .
Entonces
( ) ( ) 032.032.001.001.01.0 41 ==≈h .
Pero si 810−=nD , tenemos
( ) ( ) 18.08.11.0101.0 41 =≈≈h