Beruflich Dokumente
Kultur Dokumente
ICM ESPOL
Frmula de Euler
i = 0, 1, 2, ...
xi z xi+1
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
xf x0
O(h2) = O(h)
h
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.
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);
ANLISIS NUMRICO
ICM ESPOL
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!
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:
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 +
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
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);
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
ANLISIS NUMRICO
ICM ESPOL
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
Si el programa se almacen con el nombre ed4. Los siguientes comandos permiten visualizar
la solucin y compararla con la solucin analtica exacta
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