Metodo de Euler
Metodo de Euler
Metodo de Euler
Mtodo de Euler
Preparado por M.C. Luis E. Castro-Sols
El mtodo de Euler consiste en calcular en forma tabular aproximaciones a los puntos por los que
pasa la solucin y(x), usando la informacin del problema. Los puntos de la solucin aproximada
estn equiespaciados (a la misma distancia horizontal unos de otros) a cada H unidades. H recibe
el nombre de tamao de paso.
El procedimiento para calcular la altura aproximada y1 de la solucin en x1 es:
De la interpretacin geomtrica de la primera derivada, la pendiente de la recta tangente (se
muestra en rojo en la grfica de abajo) a la curva solucin desconocida y(x) en el punto (x0 , y0 )
viene siendo la propia ecuacin diferencial F(x,y) evaluada en (x0 , y0 ). Esto es, por cada unidad
en x que se avanza a travs de esa lnea tangente, se avanzan F(x0 , y0 ) unidades en y.
Lo anterior quiere decir que por H unidades que se avanzan en x en la lnea tangente se avanzarn
(H)F(x0 , y0 ) unidades en y; y si la altura inicial es y0, la nueva altura sera:
y1a = y0 + H F(x0 , y0 )
grficamente:
Se usa y1a para denotar que esta altura es una aproximacin a la altura real y1r de la solucin, es
decir solamente se esta calculando una aproximacin a la curva solucin. El error cometido en
cada paso viene dado por e, en donde:
e = y1r - y1a
En la grfica anterior, es evidente que entre ms pequeo sea H ms pequeo ser e.
Si ahora trasladamos el problema de valor inicial al punto (x1 , y1a ) tenemos que se debe resolver
el problema de valor inicial:
dy
---- = F(x, y) sujeto a y(x1 ) = y1a
dx
=
=
=
=
En la grfica anterior, es evidente que si disminuimos el tamao de paso (H) obtendremos una
aproximacin ms precisa a la grfica de la solucin, pero a la vez requeriremos aplicar una
mayor cantidad de veces la frmula de Euler para obtener la solucin en el mismo dominio o
Error de truncamiento
Los errores de truncamiento son aquellos que resultan al usar una aproximacin en lugar de un
procedimiento matemtico exacto (por ejemplo usar el mtodo de Euler en vez de un mtodo de
integracin analtica, para resolver una ecuacin diferencial). El mtodo de Euler hacia adelante
debe utilizarse cuidadosamente para minimizar los errores de truncamiento. El error de
truncamiento del mtodo de Euler en un slo intervalo [xi, xi+1 ] llamado error local es
proporcional a H2, mientras que su error global el correspondiente a considerar la totalidad de
errores locales al cubrir el dominio [x0 - xb ], es proporcional a H. Se deja como ejercicio al
lector, usando el clculo del error local absoluto presentado para el problema del Ejemplo 1,
demostrar que estas aseveraciones son razonablemente correctas. El error de truncamiento es
independiente del error computacional por redondeo.
Consideremos la ecuacin diferencial ordinaria de primer orden
dy
---- = f(x,y), y(a) = c
dx
Sin embargo, suponiendo que f(x,c) sea diferenciable, el verdadero valor de y( a + H ) viene
dado por la serie de Taylor:
H2
y(a + H ) = y(c) + H f(a,c) + --- f '(a, c) + ...
2!
comparando ambas ecuaciones es evidente que la diferencia entre ellas el error cometido con
el mtodo de Euler es
H2
H3
e = --- f '(a,c) + ---- f '' (a,c) + ...
2!
3!
Los valores f ' (a,c), f '' (a,c), ... se pueden encontrar diferenciando sucesivamente f(x,y) evaluada
en el punto (a,c).
Al usar el mtodo de Euler, el error cometido, e, ocurre debido al hecho de que la serie se ha
cortado o truncado en el segundo trmino lo que explica su nombre de error de
truncamiento.
Para valores de H suficientemente pequeos, se espera que el error fuera un nmero muy prximo
al primer trmino o sea a H2 / 2 ya que el resto de los trminos aparecen divididos entre
valores que crecen rpidamente (su tasa de crecimiento es factorial), siendo entonces cada vez
ms pequeos, por lo que se consideran despreciables. Pero he aqu una preguntita:
Realmente lo son?.
Consideremos el uso del Teorema de Taylor con residuo. Este teorema establece que si f(x,y)
es al menos doblemente diferenciable o sea, si existe f '' (x,y) entonces
H2
y(a + H ) = y(c) + H f(a,c) + --- f '(r, c)
2!
en donde r est entre a y (a + H) o sea, a r H.
El ltimo trmino representa el residuo de la serie despus de los primeros dos trminos,
superando el problema que tiene el Teorema de Taylor sin residuo de requerir todas las derivadas
de f(x,y); por lo tanto el error pasa a ser:
H2
e = --- f '(r,c)
2!
donde r esta entre los lmites previamente especificados. Ntese que el error, e, es proporcional a
H2, o en otras palabras, e es de orden H2 , simblicamente e = O(H2 ), por lo que es evidente
que reducir el tamao de paso, H, reducir considerablemente el error, e. Debido a que f '(r,c)
puede ser positivo o negativo, si denotamos por M una constante positiva tal que |f ' (r,c)| < M,
para valores de r entre a y (a + H ), entoces
MH2
| E | < -----2
representando el trmino del lado derecho una cota superior para el error un lmite superior por
encima del cual no estar nunca la magnitud del error absoluto (denotado por |E | ).
Sin embargo este es el error cometido en un solo paso de "integracin"o error local de
truncamiento. Pero para obtener la solucin completa requerimos n pasos de "integracin" Cul
sera el error acumulado en todos los pasos de "integracin"? De que orden sera la magnitud de
ste error global de truncamiento? Para abordar estas dos preguntas consideremos lo siguiente:
Formulemos la pregunta de esta manera: si tenemos y(a) y buscamos y(a + H) Cul sera el
error acumulado si procedemos en n pasos al calculo de y(b), donde b = a + nH? Es posible
profundizar el anlisis del error para considerar el error acumulado, pudiendo demostrarse que el
error mximo acumulado o error global de truncamiento es n veces el error absoluto dado
antes, posiblemente con un valor diferente de M, digamos K; es decir, para n pasos de
"integracin" el error es
KnH2
|En | < ------2
y dado que n = (b- a)/H
K (b - a) H
|En | < -------------2
lo cual permite ver que el error globlal de truncamiento del mtodo de Euler es el del orden H,
es decir
en = O(H).
Un segundo tipo de error lo constituye la posible inestabilidad que aparece cuando la constante
del tiempo, simbolizada por , es negativa. En este caso la solucin numrica es inadecuada, a
menos de que el intervalo de tiempo H sea suficientemente pequeo. Por ejemplo, una ecuacin
caracterstica con solucin decreciente los valores de la variable independiente son cada vez
menores es
dy
---- = -y
dx
Su solucin exacta es
y = y0 e-t
El mtodo de Euler para este problema es
yn+1 = (1 - H)yn
si H < 1, la solucin numrica es decreciente y positiva; pero si H > 2, la magnitud de la
solucin aumenta en cada paso y la solucin oscila. Esto se conoce como inestabilidad [1 ] y
plantea serios problemas de computacin numrica al resolver cierto tipo de problemas; a este
tipo de problemas se les conoce como ecuaciones rgidas[3 ] y se presentan frecuentemente al
intentar analizar numricamente problemas tales como la determinacin de sistemas de flujo
reactivo por ejemplo al intentar evaluar la concentracin del CO2 emitido por una chimenea, en
diferentes puntos del tiempo y espacio. Generalmente H < 1 para valores de H pequeos, por
lo que es recomendable usar valores de H pequeos al utilizar el mtodo de Euler hacia adelante.
Tambin se recomienda que H , en donde = -1 es la constante de tiempo.
Error de redondeo
Los errores de redondeo se deben a que las computadoras solo guardan un nmero finito de
cifras significativas durante un clculo. Bsicamente las computadoras redondean las cifras a fin de
representarlas en memoria de alguna de estas dos formas: a) simplemente cortan los digitos
sobrantes, o b) utilizan reglas de redondeo comnes lo cual agrega costo computacional
adicional al problema. Como quiera que lo hagan, este proceso se justifica bajo la suposicin
de que el nmero de cifras significativas en la mayor parte de las computadoras es mucho mayor
que el error de redondeo dado por un corte o redondeo verdadero usualmente insignificante.
Sin embargo, esta aseveracin es discutible cuando se usan valores de H pequeos, que implican
un mayor nmero de clculos que los requeridos para cubrir un dominio de solucin dado, si se
usaran valores de H mayores.
El algoritmo del mtodo de Euler ha sido repetidamente presentado en otras fuentes ver por
ejemplo[3 ]. Se presenta el cdigo fuente de un programa en Pascal que implementa el mtodo de
Euler tal como ha sido explicado aqu:
Program Euler;
{Autor: Ing. Luis E.
Castro-Solis. FIC UAdeC.
Mexico 1996}
Var
x, y, x0, x1, y0,
H, PI :real;
NP, NC, i, j
:longint;
NC = numero de pasos de
calculo.
}
Function F(x,y:real):real;
Begin
{ programe aqui la EDO
en la forma dy/dx = F(x,y)
}
{
F:= 2*x*y
Diccionario de datos:
End;
x = valor actual de la var
indep.
y = valor actual de la var
dep.
x0 = valor inicial de la
var indep. = inicio del
dominio de soln.
x1 = extremo final del
dominio de soln.
y0 = valor inicial de la
var dep.
H = tamao de paso.
PI = intervalo de
impresion.
NP = numero de pasos de
impresion.
Begin
{entrada de datos}
Writeln;
Writeln('Solucion de
EDO''''s (Metodo de
Euler).');
Writeln;
Writeln('Datos...');
Writeln;
Writeln('Dominio de la
solucin:');
Write('x0 = ');
readln(x0);
Write('Xf = ');
readln(x1);
Writeln;
Write('Condicin
inicial, y0 = ');
readln(y0);
Writeln;
Write('Tamao de paso,
H = ');
readln(H);
Writeln;
Write('Intervalo de
salida tabulada = ');
Readln(PI);
{acondicionamiento de la
salida impresa}
NP := trunc( (x1 - x0)
/ PI);
NC := trunc( PI / H );
{aplicacion del metodo de
Euler}
x
y := y0;
Writeln;
Writeln('Solucin...');
Writeln;
Writeln('-- x --':8,'- y --':8);
Writeln(x:8:2, y:8:2);
For i:=1 to NP do
Begin
For j:=1 to NC do
begin
y:=
y + H*F(x,y);
x:=
x + H;
end;
writeln(x:8:2,
y:8:2);
end;
Writeln;
Writeln('ok.');
End.
:= x0;
El sofware anterior fu probado con xito en la solucin de los ejemplos resueltos presentados en
la siguiente seccin. El cdigo anterior corr tal como esta bajo el compilador TURBOPascal v.
6.0 de la compaa Borland.
Ejemplos resueltos
Ejemplo 1
Resuelva y' = -20y + 7exp(-0.5t), y(0) = 5, por medio del mtodo de Euler hacia
adelante con h = 0.01, 0.001 y 0.0001 para 0 < t 0.09.
Solucin
Usando el cdigo fuente presentado arriba en donde la funcin F se modific de la
siguiente manera para adaptarla a la ecuacin diferencial del problema:
Function F(x,y:real):real;
Begin
F:= -20*y + 7*exp(-0.5*x);
End;
Solucion...
-- x -- -- y -0.00
5.00
0.01
4.07
0.02
3.33
0.03
2.73
0.04
2.25
0.05
1.87
0.06
1.56
0.07
1.32
0.08
1.12
0.09
0.97
0.10
0.84
ok
para h = 0.001:
Solucion de EDO''s (Metodo
de Euler).
Datos...
Dominio de la solucion:
x0 =
0.00
Xf =
0.10
Condicion inicial, y0 =
5.00
Tamano de paso, H =
0.00
Intervalo de salida
tabulada =
0.01
0.03
0.04
0.04
0.05
0.06
0.07
0.08
0.09
Solucion...
-- x -- -- y -0.00
5.00
0.01
4.23
0.02
3.58
3.04
2.60
2.22
1.91
1.65
1.43
1.25
1.10
ok
para h = 0.0001:
Solucion de EDO''s (Metodo
de Euler).
Solucion...
Datos...
-- x -- -- y -0.00
5.00
0.01
4.16
0.02
3.48
0.03
2.91
0.04
2.45
0.05
2.07
0.06
1.76
0.07
1.51
0.08
1.30
0.09
1.12
0.10
0.98
Dominio de la solucion:
x0 =
0.00
Xf =
0.10
Condicion inicial, y0 =
5.00
Tamano de paso, H =
0.00
Intervalo de salida
tabulada =
0.01
ok
s.a:
y(0) = 5
La expresin anterior es una EDO lineal de primer orden; la solucin analtica de ste
problema de valor inicial viene dada por:
y = 5exp(-20t) + (7/19.5)[ exp(-0.5t) - exp(-20t) ]
Se presenta abajo una grfica de la solucin analtica "exacta" y las soluciones
numricas tabuladas aproximadas con el programa Euler; Es posible apreciar la
0,02
exacta
0,04
h = 0.01
0,06
h = 0.001
0,08
0,10
h = 0.0001
exact h =
error
a
0.01
0,00 5,00
5,00 0,000
0
0,01 4,16
4,07 0,020
9
0,02
3,47
3,33 0,039
3
0,03
2,90
2,73 0,058
Soluciones numricas
h=
error h =
error h =
0.001
0.0001
0.000001
5,00 0,000
5,00 0,0000
5,00
0
4,23 4,16 4,16
0,017
0,0007
6
3,58 3,48 3,47
0,032
0,0039
8
3,04 2,91 2,90
error
0,000
0
0,000
7
0,001
0
0,000
8
0,04
2,44
2,25 0,076
8
0,048
0
2,22 0,089
1
0,0032
0,05
2,06
1,87 0,091
1
1,91 0,071
7
2,07 0,0061
0,06
1,75
1,56 0,106
6
1,65 0,055
1
1,76 0,0079
0,07
1,49
0,08
1,28
0,09
1,11
1,43 0,041
0
1,25 0,024
9
1,10 0,009
3
0,1
0,97
1,32 0,114
7
1,12 0,126
3
0,97 0,126
4
0,84 0,133
6
1,51 0,0127
1,30 0,0141
1,12 0,0087
0,98 0,0108
2,45 0,0052
2
2,44 0,001
1
2,06 0,001
2
1,75 0,002
2
1,49 0,000
7
1,28 0,001
5
1,11 0,000
3
0,97 0,000
5
Ejemplo 2
dT
---- = 0.1(T - 20) s.a: T(0) = 90
dt
adaptando el software al problema:
Function F(x,y:real):real;
Begin
F:= 0.1*(y-20);
End;
la salida computada es:
Solucion de EDO''s (Metodo
de Euler).
Datos...
Dominio de la solucion:
x0 =
0.00
Xf =
20.00
Condicion inicial, y0 =
90.00
Tamano de paso, H =
0.01
Intervalo de salida
tabulada =
1.00
Solucion...
-- x -- -- y -0.00
90.00
1.00
83.34
2.00
77.31
3.00
71.85
4.00
66.91
5.00
62.45
6.00
58.41
7.00
54.75
8.00
51.44
9.00
48.45
10.00
45.74
11.00
43.29
12.00
41.07
13.00
39.06
14.00
37.25
15.00
35.61
16.00
34.12
17.00
32.78
18.00
31.56
19.00
30.46
20.00
29.46
ok
Ejemplo 3
Se disuelven inicialmente 50 libras (lb) de sal en un gran tanque que contiene 300
galones (gal) de agua. Se bombea salmuera al tanque a razn de 3 gpm; y luego la
solucin adecuadamente mezclada se bombea fuera del tanque tambin a razn de
3 gpm. Si la concentracin de la solucin que entra es de 2 lb/gal, determine la
cantidad de sal que hay en el tanque en un instante cualquiera a) Cunta sal hay
despus de 50 min? b) Cuanta despus de un tiempo largo?
Solucin.
Considerado al tanque completamente mezclado, homogneo e istropo, la cantidad
de sal (lb) que hay en el tanque en un instante cualquiera viene dada por A(t ). La
rapidez neta con que A(t ) cambia esta dada por aplicando la Ley de
Conservacin de Masa por el balance msico:
dA
---- = (rapidez de entrada) - (rapidez de salida) = R1 - R2
dt
La rapidez con que la sal entra al tanque es:
R1 = ( 3 gal/min ) (2 lb/gal) = 6 lb/min
La rapidez con la que la sal sale del tanque es:
R2 = (3 gal/min) ( A(t )/300 lb/gal) = A(t )/100 lb/min
En consecuencia la ecuacin del balance de masa se transforma en:
dA
---- = 6 - A(t )/100
dt
la que se resolver sujeta a la condicin inicial A(0) = 50 lb
Usando el software suministrado adaptado al problema:
Function F(x,y:real):real;
Begin
F:= 6 - y/100;
End;
la solucin computada es la siguiente:
Solucion de EDO''s (Metodo
de Euler).
Solucion...
Datos...
Dominio de la solucion:
x0 =
0.00
Xf =
400.00
Condicion inicial, y0 =
50.00
Tamano de paso, H =
0.001
Intervalo de salida
tabulada =
25.00
-- x -- -- y -0.00
50.00
25.00 171.66
50.00 266.41
75.00 340.20
100.00 397.67
125.00 442.42
150.00 477.28
175.00 504.43
200.00 525.57
225.00 542.03
250.00 554.85
275.00 564.84
300.00 572.62
325.00 578.67
350.00 583.39
375.00 587.07
400.00 589.93
ok
Ejemplo 4
La ecuacin diferencial
dx
--- = k x (n+1 - x ), k>0
dt
Solucin:
Suponiendo que el Campus se mantiene cerrado (nadie sale de l) durante el
transcurso de la enfermedad, queremos resolver el problema de valor inicial:
dx
----- = k x (1001 - x ) s.a:
dt
x(0) = 1;
Intervalo de salida
tabulada =
1.00000000
Datos...
Solucion...
Dominio de la solucion:
x0 =
0.00
Xf =
4.00
Condicion inicial, y0 =
1.00
Tamano de paso, H =
0.00010000
-- x -- -- y -0.00
1.00
1.00
2.69
2.00
7.21
3.00
19.17
4.00
49.99
ok
Solucion...
-- x -- -- y -0.00
1.00
1.00
2.69
2.00
7.21
3.00
19.17
4.00
49.99
5.00 124.12
6.00 276.19
7.00 506.79
8.00 734.54
9.00 881.68
10.00 952.53
11.00 981.83
ok
1000 es asntota de la solucin x( t); esto se puede apreciar mejor graficando los
resultados
x (No)
1000
500
0
0
10
15
t (dia)
y(0) = y0
z(0) = z0
Referencias
[1]
pp.
Nakamura, S. Applied Numerical Methods with Software, Prentice Hall Inc. 1Ed. 570
Englewood Cliffs. 1991.
[2]
Chapra, S.C. y Canale, R.P. Numerical Methods for Engineers with Personal
Computer
Applications, Mc. Graw-Hill Book Co., 1 Ed. 641 pp. New York. 1987.
[3]
Burden, R. y Faires, D. Numerical Analysis, PWS, 3rd Ed. 732 pp. Boston. 1985.
[4]
Zill, D.G. A First Course in Differential Equations with Applications, PWS, 3rd ed.
516 pp.
Belmont, CA. 1986