Sei sulla pagina 1di 7

ANLISIS NUMRICO

ICM ESPOL

7.1.2 Frmula de Euler


El objetivo de los mtodos numricos es proporcionar frmulas generales y fciles de usar.
Las siguientes frmulas nicamente requieren especificar f(x, y) y la condicin inicial de un
problema particular.
Sea una ecuacin diferencial ordinaria de primer orden con una condicin en el inicio:
y(x) = f(x, y), y(x0) = y0
La frmula de Euler usa los dos primeros trminos de la serie de Taylor:
h2
h2
y(z) = yi + hf(xi, yi) +
y(z), xi z xi+1
yi+1 = yi + hyi +
2!
2!
Definicin:

Frmula de Euler

yi+1 = yi + h f(xi ,yi)


xi+1 = xi + h,
h2
y(z) = O(h2),
E=
2!

i = 0, 1, 2, ...
xi z xi+1

(Error de truncamiento en cada paso)

Ejemplo. Obtenga dos puntos de la solucin de la siguiente ecuacin diferencial con la frmula
de Euler. Use h = 0.1
y - y - x + x2 - 1 = 0, y(0) = 1
Solucin
y = f(x, y) = y - x2 + x + 1, x0 = 0, y0 = 1, h = 0.1
Clculo de los puntos
i=0:
y1 = y0 + h f(x0, y0) = 1 + 0.1 f(0, 1) = 1 + 0.1 [1 02 + 0 + 1] = 1.2000;
x1 = x0 + h = 0 + 0.1 = 0.1
i=1:

y2 = y1 + h f(x1, y1) = 1.2 + 0.1 f(0.1, 1.2) = 1.2 + 0.1 [1.2 0.12 + 0.1 + 1] = 1.4290
x2 = x1 + h = 0.1 + 0.1 = 0.2

Para comprobar comparamos con la solucin exacta: y(x) = x + x2 + ex


y(0.1) = 1.2152
y(0.2) = 1.4614
El error de truncamiento E en cada paso es grande y est en el orden de los centsimos.
Para reducir E se debe reducir h: h 0 E 0. Sin embargo, este hecho matemticamente
justificado, al ser aplicado tiene una consecuencia importante que es interesante analizar:
Suponer que se desea calcular la solucin y(x) en un intervalo fijo x0 x xf mediante m
puntos xi = x0, x1, x2, ..., xm espaciados en una distancia h. Enonces la distancia h es:
x xo
h= f
m
Sea Ei el error de truncamiento en el paso i, entonces
y1 = y0 + h f(x0, y0) + E1
y2 = y1 + h f(x1, y1) + E2 = y0 + hf(x0, y0) + E1+ hf(x1, y1) + E2
= y0 + hf(x0, y0) + hf(x1, y1) + E1 + E2
y3 = y2 + h f(x2, y2) + E3 = y0 + hf(x0, y0) + hf(x1, y1) + hf(x2, y2) + E1 + E2 + E3
...
ym = y0 + hf(x0, y0) + hf(x1, y1) + hf(x2, y2) + . . . + hf(xm-1, ym-1) + E1 + E2 + E3 + ... + Em
El error de truncamiento acumulado es:
E = E1 + E2 + E3 + ... + Em
E = O(h2) + O(h2) + O(h2) + . . . + O(h2) = m O(h2) =

xf x0
O(h2) = O(h)
h

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

Lo cual demuestra que el error de truncamiento acumulado es de orden O(h), por lo tanto h
debe ser un valor mas pequeo que el previsto para asegurar que la solucin calculada sea
suficientemente precisa hasta el final del intervalo.
Por otra parte, cada vez que se evala f(xi, yi) se puede introducir el error de redondeo Ri
debido a los errores en la aritmtica computacional, independientemente del valor de h.
Entonces, el error de redondeo acumulado al calcular el valor final ym ser
R = R1 + R2 + R3 + . . . + Rm = m ( R ), siendo R algn valor promedio.
Si m es grande, este error puede ser significativo y puede anular la precisin que se obtuvo
reduciendo el error de truncamiento E con valores muy pequeos de h.
Como conclusin de lo anterior, es preferible usar frmulas cuyo error de truncamiento E sea
de mayor orden para que el valor de h no requiera ser muy pequeo si se buscan resultados
con alta precisin. Esto retardar introducir el error de redondeo R.

7.1.3 Una funcin en MATLAB para instrumentar la frmula de Euler


Se define una funcin que recibe un punto de la solucin y entrega el siguiente:
function [x,y] = euler(f, x, y, h)
y=y + h*f(x,y);
x=x+h;

Un programa en MATLAB para calcular m=20 puntos espaciados en una distanciah= 0.1 del
ejercicio anterior con la frmula de Euler
f=inline('y - x^2 + x + 1');
x=0;
y=1;
m=20;
h=0.1;
for i=1:m
[x,y]=euler(f,x,y,h);
u(i)=x;
v(i)=y;
end

Si el programa se almacen con el nombre ed2. Los siguientes comandos permiten visualizar
la solucin y compararla con la solucin analtica exacta

>> ed2
>> plot(u, v, 'o');
% u, v contienen los puntos calculados
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x') % Obtencin de la solucin analtica.
g=
x+x^2+exp(x)
% Solucin analtica
>> hold on;
>> grid on;
>> ezplot(g,0,2);

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

Solucin analtica y solucin numrica para el ejemplo anterior


Se observa la acumulacin del error de truncamiento

7.1.4 Frmula de Heun o frmula mejorada de Euler


Sea la EDO de primer orden con una condicin en el inicio: y(x) = f(x, y), y(x0) = y0
La frmula de Heun o frmula mejorada de Euler usa los tres primeros trminos de la serie de
Taylor y un artificio para sustituir la primera derivada de f(x, y)
h2
h3
h2
h3
yi +
y(z) = yi + hf(xi, yi) +
f(xi, yi) +
y(z), xi z xi+1
yi+1 = yi + hy i +
2!
3!
2!
3!
h2
yi+1 = yi + hf(xi, yi) +
f(xi, yi) + O(h3)
2
f f
Para evaluar f(xi, yi) usamos una aproximacin simple: fi = i + 1 i + O(h)
h
h2 fi + 1 fi
h
h
3
yi+1 = yi + hfi + [
+ O(h)] + O(h ) = yi + hfi + fi+1 - fi + O(h3)
2
2
2
h
h
3
yi+1 = yi + (fi + fi+1) + O(h )
2
Para evaluar fi+1 = f(xi+1, yi+1) se usa yi+1 calculado con la frmula de Euler como aproximacin
inicial:
yi+1 = yi + hf(xi, yi)
h
yi+1 = yi +
(f(xi, yi) + f(xi+1, yi+1))
2
xi+1 = xi + h,
i = 0, 1, 2, ...

Valor usado como una aproximacin


Valor mejorado con la frmula de Heun

Esta frmula se puede re-escribir como se muestra en la definicin:


Definicin:

Frmula de Heun

K1 = hf(xi, yi)
K2 = hf(xi + h, yi + K1)
1
yi+1 = yi + (K1 + K2)
2
xi+1 = xi + h,
i = 0, 1, 2, ...
3
h
y(z) = O(h3), xi z xi+1
E=
3!

(Error de truncamiento en cada paso)

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

Ejemplo. Obtener dos puntos de la solucin de la siguiente ecuacin diferencial con la frmula
de Heun. Use h = 0.1
y - y - x + x2 - 1 = 0, y(0) = 1
Ecuacin diferencial
y = f(x, y) = x - x2 + y + 1, x0 = 0, y0 = 1, h = 0.1
Clculos
i=0:

K1 = hf(x0, y0) = 0.1 f(0, 1) = 0.1 (0 - 02 +1 + 1) = 0.2000;


K2 = hf(x0 + h, y0 + K1) = 0.1 f(0.1, 1.2) = 0.1 [ 0.1 0.12 + 1.2 +1] = 0.2290
1
(K1 + K2) = 1 + 0.5(0.2000 + 0.2290) = 1.2145
2
x1 = x0 + h = 0 + 0.1 = 0.1

y1 = y0 +

i=1:

K1 = hf(x1, y1) = 0.1 f(0.1, 1.2145) = 0.1 (0.1 0.12 + 1.2145 + 1) =0.2305;
K2 = hf(x1 + h, y1 + K1) = 0.1 f(0.2, 1.4450) = 0.1 [ 0.2 0.22 + 1.4450 + 1] = 0.2605
1
(K1 + K2) = 1.2145 + 0.5(0.2305 + 0.2605) = 1.4600
2
x2 = x1 + h = 0.1 + 0.1 = 0.2

y2 = y1 +

Para comprobar comparamos con la solucin exacta: y(x) = x + x2 + ex


y(0.1) = 1.2152
y(0.2) = 1.4614
El error de truncamiento en cada paso est en el orden de los milsimos, coincidiendo
aproximadamente con E=O(h3)

7.1.5 Una funcin en MATLAB para instrumentar la frmula de Heun


Se define una funcin que recibe un punto de la solucin y entrega el siguiente:
function [x,y] = heun(f, x, y, h)
k1=h*f(x,y);
k2=h*f(x+h, y+k1);
y=y+0.5*(k1+k2);
x=x+h;

Un programa en MATLAB para calcular m=20 puntos espaciados en una distancia h=0.1 del
ejercicio anterior usando la frmula de Heun
f=inline('y - x^2 + x + 1');
x=0;
y=1;
m=20;
h=0.1;
for i=1:20
[x,y]=heun(f,x,y,h);
u(i)=x;
v(i)=y;
end

% La solucin es almacenada
% en los vectores u, v

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

Si el programa se almacen con el nombre ed3. Los siguientes comandos permiten visualizar
la solucin y compararla con la solucin analtica exacta
>> ed3
>> plot(u, v, 'o');
% u, v contienen los puntos calculados
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x') % Obtencin de la solucin analtica.
g=
x+x^2+exp(x)
% Solucin analtica de MATLAB
>> hold on;
>> grid on;
>> ezplot(g,0,2);

Solucin analtica y solucin numrica para el ejemplo anterior


Se observa una reduccin significativa del error de truncamiento

7.1.6 Frmulas de Runge-Kutta


Estas frmulas utilizan artificios matemticos para incorporar ms trminos de la serie de
Taylor. Describimos la ms popular, denominada frmula de Runge-Kutta de cuarto orden, la
cual incluye los cinco primeros trminos de la Serie de Taylor.
Sea la ED de primer orden con una condicin en el inicio: y(x) = f(x, y), y(x0) = y0
Definicin:

Frmula de Runge-Kutta de cuarto orden

K1 = hf(xi, yi)
K2 = hf(xi + h/2, yi + K1/2)
K3 = hf(xi + h/2, yi + K2/2)
K4 = hf(xi + h, yi + K3)
1
yi+1 = yi + (K1 + 2K2 + 2K3 + K4)
6
xi+1 = xi + h,
i = 0, 1, 2, ...
E = O(h5), xi z xi+1

(Error de truncamiento en cada paso)

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

Ejemplo. Obtenga un punto de la solucin de la siguiente ecuacin diferencial con la frmula


de Runge-Kutta de cuarto orden. Use h = 0.1
y - y - x + x2 - 1 = 0, y(0) = 1
Ecuacin diferencial
y = f(x, y) = x - x2 + y + 1, x0 = 0, y0 = 1, h = 0.1
Clculo de los puntos
i=0:
K1 = hf(x0, y0) = 0.1 f(0, 1) = 0.1 (0 - 02 +1 + 1) = 0.2000;
K2 = hf(x0 + h/2, y0 + K1/2) = 0.1 f(0.05, 1.1) = 0.1 (0.05-0.052+1.1+1) = 0.2148
K3 = hf(x0 + h/2, y0 + K2/2) = 0.1 f(0.05, 1.1074) = 0.1 (0.05-0.052+1.1074+1) = 0.2155
K4 = hf(x0 + h, y0 + K3) = 0.1 f(0.1, 1.2155) = 0.1 (0.1-0.12+1.2155+1) = 0.2305
1
1
y1 = y0 + (K1 + 2K2 + 2K3 + K4 ) = 1 + [0.2 + 2(0.2148)+2(0.2155)+0.2305] = 1.2152
6
6
x1 = x0 + h = 0 + 0.1 = 0.1
Para comprobar comparamos con la solucin exacta: y(x) = x + x2 + ex
y(0.1) = 1.2152

El error de truncamiento en cada paso est en el orden de los cienmilsimos, coincidiendo


aproximadamente con E=O(h5). Los resultados tienen una precisin aceptable para la solucin
de problemas prcticos, por lo cual esta frmula es muy utilizada

7.1.7 Una funcin en MATLAB para instrumentar la frmula de RungeKutta de cuarto orden
Se define una funcin que recibe un punto de la solucin y entrega el siguiente:
function [x,y]=rk4(f, x, y, h)
k1=h*f(x,y);
k2=h*f(x+h/2, y+k1/2);
k3=h*f(x+h/2, y+k2/2);
k4=h*f(x+h, y+k3);
y=y+1/6*(k1+2*k2+2*k3+k4);
x=x+h;

Un programa en MATLAB para calcular m=20 puntos espaciados en una distancia h=0.1 del
ejercicio anterior usando la frmula de Runge-Kutta de cuarto orden

f=inline('y - x^2 + x + 1');


x=0;
y=1;
m=20;
h=0.1;
for i=1:m
[x,y]=rk4(f,x,y,h);
u(i)=x;
v(i)=y;
end

Si el programa se almacen con el nombre ed4. Los siguientes comandos permiten visualizar
la solucin y compararla con la solucin analtica exacta

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

>> ed4
>> plot(u, v, 'o');
% u, v contienen los puntos calculados
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x') % Obtencin de la solucin analtica.
g=
x+x^2+exp(x)
% Solucin analtica
>> hold on;
>> grid on;
>> ezplot(g,0,2);

x+x 2+exp(x)
14

12

10

Solucin analtica
8

Solucin numrica
4

0
0

0.2

0.4

0.6

0.8

1
x

1.2

1.4

1.6

1.8

Solucin analtica y solucin numrica para el ejemplo anterior


Se observa una coincidencia muy buena.

Ing. Luis Rodrguez Ojeda, MSc.

Potrebbero piacerti anche