Professional Documents
Culture Documents
Antecedentes
Introducción
MÉTODO DE EULER
dy
y ( x) ≅ y ( x0 ) + ( x − x0 ) = y 0 + f ( x − x0 )
dx X0
x1 = x0 + h
y1 ≅ y o + f ( xo , y o )h
Si se denotan por y1,...,yN los valores aproximados correspondientes a los valores exactos
y(x1),..., y(xN), entonces quedaría como sigue:
dy
f ( x, y ) = = 2 x + y; y (0) = 1
dx
h=0.2:
x1 = x0 + h = 0 + 0.2 = 0.2
y1 ≅ y 0 + f ( x0 , y 0 )h = 1 + (1 × 0.2 ) = 1.2
x 2 = x1 + h = 0.2 + 0.2 = 0.4
y 2 ≅ y1 + f ( x1 , y1 )h = 1.2 + (1.6 × 0.2 ) = 1.52
x3 = x 2 + h = 0.4 + 0.2 = 0.6
y 3 ≅ y 2 + f ( x 2 , y 2 )h = 1.52 + (2.32 × 0.2 ) = 1.984
x 4 = x3 + h = 0.6 + 0.2 = 0.8
y 4 ≅ y 3 + f ( x3 , y 3 )h = 1.984 + (3.184 × 0.2) = 2.6208
x5 = x 4 + h = 0.8 + 0.2 = 1.0
y 5 ≅ y 4 + f ( x 4 , y 4 )h = 2.6208 + (4.2208 × 0.2 ) = 3.46496
h=0.1:
x10 = x10 + h = 0.9 + 0.1 = 1.0
y10 ≅ y10 + f ( x10 , y10 )h = 3.273843 + (5.073843 × 0.1) = 3.7812273
Vemos que obtenemos valores distintos de los que habíamos calculado para h = 0.2. Cuanto
menor sea h, mejor será la aproximación (aunque también más laboriosa). Para una h
constante el error será tanto mayor cuanto más nos alejemos del punto inicial, como puede
apreciarse en la gráfica siguiente en la que comparamos las dos soluciones aproximadas
con la solución exacta.
4.5
3.5
2.5 h=0.2
h=0.1
2
exacta
1.5
0.5
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1
y ( x) = −2( x + 1) + 3e x
Como se puede observar, únicamente se utiliza un método que evalúe la función a lo largo
de las iteraciones. Del mismo modo, debido a la imprecisión de Java, se vuelve a utilizar la
clase Redondear vista en la práctica anterior.
Esta clase recibe como parámetros el valor de h, el número de decimales para el redondeo
(es recomendable que en este número, si se tiene 0.0035, el número de decimales para el
redondeo sea de 4, o si se tiene 0.001, sea de 3), la condición inicial en x, y, y el valor final.
Se conocen como las reglas o fórmulas de Runge-Kutta de orden cuatro para la ecuación
diferencial:
y ' = f ( x, y )
y ( x0 ) = y 0
Ejemplo
Usar el método de Runge-Kutta para aproximar y (0.5) dada la siguiente ecuación
diferencial:
y ' = 2 xy
y (0) = 1
Solución
Primero observamos que esta ecuación sí puede resolverse por métodos tradicionales de
ecuaciones diferenciales. Por ejemplo, podemos aplicar el método de separación de
variables.
Solución Analítica.
dy
= 2 xy
dx
dy
= 2 xdx
y
dy
= 2 xdx
y
ln y = x 2 + c
Sustituyendo la condición inicial:
x = 0 → y =1
ln 1 = 0 2 + c
0=c
x0 = 0
y0 = 1
h = 0.1
f ( x, y ) = 2 xy
Para poder calcular el valor de y1 , debemos calcular primeros los valores de k1 , k 2 , k 3 y k 4 .
Tenemos entonces que:
k1 = h ⋅ f ( x0 , y0 ) = 0
1 1
k 2 = h ⋅ f x0 + h, y0 + k1 = 0.1 ⋅ (2(0.05)(0.1)) = 0.01
2 2
1 1
k 3 = h ⋅ f x0 + h, y0 + k 2 = 0.1 ⋅ (2(0.05)(1.005)) = 0.01005
2 2
k 2 = h ⋅ f (x0 + h, y0 + k 3 ) = 0.1 ⋅ (2(0.1)(1.01005)) = 0.020201
1
∴ y1 = y0 + (0 + 2(0.01) + 2(0.01005) + 0.020201) = 1.01005
6
Con el fin de un mayor entendimiento de las fórmulas, veamos la siguiente iteración:
x2 = x1 + h = 0.2
k1 = h ⋅ f ( x1 , y1 ) = 0.1 ⋅ (2(0.1)(1.01005)) = 0.020201
1 1
k 2 = h ⋅ f x1 + h, y1 + k1 = 0.1 ⋅ (2(0.15)(1.02010 )) = 0.03060
2 2
1 1
k 3 = h ⋅ f x1 + h, y1 + k 2 = 0.1 ⋅ (2(0.15)(1.02535)) = 0.03076
2 2
k 4 = h ⋅ f ( x1 + h, y1 + k 3 ) = 0.1 ⋅ (2(0.2)(1.04081)) = 0.04163
1
∴ y 2 = y1 + [k1 + 2k 2 + 2k3 + k 4 ] = 1.04081
6
El proceso debe repetirse hasta obtener y5 .Resumimos los resultados en la siguiente tabla:
n
0 0 1
1 0.1 1.01005
2 0.2 1.04081
3 0.3 1.09417
4 0.4 1.17351
5 0.5 1.28403