MÉTODO DE HEUN
INTRODUCCION
Aplicar métodos numéricos para aproximar soluciones de algunas ecuaciones
diferenciales, viendo así la importancia de los métodos numéricos que radica en la
aparición de ecuaciones diferenciales que no pueden resolverse por métodos
tradicionales, y de ahí la necesidad de implementar algún método de aproximación.
DEFINICION
Un método para mejorar la estimación de la pendiente emplea la determinación de
dos derivadas en el intervalo (una en el punto inicial y otra en el final). Las dos
derivadas se promedian después con la finalidad de obtener una mejor estimación de
la pendiente en todo el intervalo. Este procedimiento, conocido como método de
Heun, se presenta en forma gráfica en la siguiente figura
Primera iteración del método Euler modificado
Recordaremos que, en el método de Euler, la pendiente al inicio.
= f ( xi , yi )
yi� ... ( 1)
se utiliza para extrapolar linealmente a yi +1
yi +1 = y0 + f ( xi , yi ) h ..... ( 2 )
En el método estándar de Euler debería parar aquí. Sin embargo, en el método de
Heun la yi +1 calculada en la ecuación (2) no es la respuesta final, sino una predicción
intermedia. Por consiguiente, la distinguimos con un superíndice 0.
La ecuación (2) se llama ecuación predictora o simplemente predictor. Da una
estimación de yi +1 que permite el cálculo de una estimación de la pendiente al final del
intervalo:
( )
+1 = f xi +1 , yi +1 .... ( 3 )
yi�
Así, se combinan las dos pendientes [ecuaciones (1) y (3)] para obtener una pendiente
promedio en el intervalo:
y�=
+ yi�
yî� +1
=
(
f ( xi , yi ) + f xi +1 , yi +1 )
2 2
Está pendiente promedio se utiliza después para extrapolar linealmente desde yi hasta
yi +1 con el método de Euler:
yi +1 = yi +
(
f ( xi , yi ) + f xi +1 , yi +1 )h .... ( 4 )
2
A esta ecuación (4) se conoce como ecuación correctora o simplemente corrector
El método de Heun es el único método predictor-corrector de un solo paso.
Predictor � yi +1 = y0 + f ( xi , yi ) h
Corrector � yi +1 = yi +
(
f ( xi , yi ) + f xi +1 , yi +1 )h
2
Observe que debido a que en la ecuación (4) aparece yi +1 a ambos lados del signo igual,
entonces se puede aplicar en una forma iterativa. Es decir, una estimación anterior se utilizará
de manera repetida para proporcionar una estimación mejorada de yi +1
ERROR RELATIVO PORCENTUAL
yij+1 - yij+-11
et = �100% yij+-11 = iteracion anterior
yij+1
yij+1 = actual del corrector
EJERCICIOS RESUELTOS
EJERCICIO 1
= 4e 0.8 x - 0.5 y x = 0 hasta x = 4 con un tamaño de paso
Con el método de Heun integre y �
igual a 1. La condición inicial es en x = 0 y y = 2
Predictor � yi0+1 = yi + f ( xi , yi ) h
f ( xi , yi ) + f ( xi +1 , yi0+1 )
Corrector � yi +1 = yi + h
2
Antes de resolver el problema numéricamente, se utiliza el cálculo para determinar la siguiente
solución analítica:
4 0.8 x -0.5 x
y= (e - e ) + 2e-0.5 x
1.3
4 0.8(0) -0.5(0)
y= (e -e ) + 2e -0.5(0) = 2
1.3
4 0.8(1) -0.5(1)
y= (e -e ) + 2e -0.5(1) = 6.1946314
1.3
4 0.8(2) -0.5(2)
y= (e -e ) + 2e-0.5(2) = 14.8439219
1.3
4 0.8(3) -0.5(3)
y= (e -e ) + 2e -0.5(3) = 33.6771718
1.3
4 0.8(4) -0.5(4)
y= (e -e ) + 2e -0.5(4) = 75.3389626
1.3
0
Para la siguiente solución primero calcularemos el predictor yi +1 y seguidamente llevaremos
este resultado a la ecuación del corrector yi +1 que vendría a ser la solución de Heun
i=0
x0 = 0 ; x1 = 1 ; y0 = 2 ; h =1
y0
i +1 = yi + f ( xi , yi ) h
y10 = 2 + (4e0,8(0) - 0.5(2))1
y10 = 5
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
�[4e 0,8(0) - 0.5(2)] + [4e0,8(1) - 0.5(5)] �
y1 = 2 + � 1
�
� 2 �
y1 = 6.7010819
Cuando i = 1
x1 = 1 ; x2 = 2 ; y1 = 6.7010819 ; h =1
yi0+1 = yi + f ( xi , yi ) h
y20 = 6, 7010819 + (4e0,8(1) - 0.5(6.7010819))1
y20 = 12.2527
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
�[4e0,8(1) - 0.5(6.7010819)] + [4e0,8(2) - 0.5(12.2527)] �
y2 = 6.7010819 + � 1
�
� 2 �
y2 = 16.3197819
Cuando i = 2
x2 = 2 ; x3 = 3 ; y2 = 16.3197819 ; h =1
y0
i +1 = y1 + f ( xi , yi ) h
y30 = 16.3197819 + (4e 0,8(2) - 0.5(16.3197819))1
y30 = 27.9720
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
�[4e0,8(2) - 0.5(16.3197819)] + [ 4e0,8(3) - 0.5(27.9720)] �
y3 = 16.3197819 + � 1
�
� 2 �
y3 = 37.1992489
Cuando i = 3
x3 = 3 ; x4 = 4 ; y3 = 37.1992489 ; h =1
y 0
i +1 = yi + f ( xi , yi ) h
y = 37.1992489 + (4e 0,8(3) - 0.5(37.1992489))1
0
4
y40 = 62.6923
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
�[4e 0,8(3) - 0.5(37.1992489)] + [4e0,8(4) - 0.5(62.6923)] �
y4 = 37.1992489 + � 1
�
� 2 �
y4 = 83.3377674
x y verdadero yHeun |et|(%)
0 2.0000000 2.0000000 0.00
1 6.1946314 6.7010819 8.18
2 14.8439219 16.3197819 9.94
3 33.6771718 37.1992489 10.46
4 75.3389626 83.3377674 10.62
EJERCICIO 2
Resolver el problema de valor inicial
dy x - y
= en [0,3] y(0) = 1
dx 2
Con n=3
Calculamos h:
b-a 3-0
h= = =1
n 3
Primera interacción:
Hallamos el predictor
+1 = y0 + f ( xi , yi ) h
yi�
�0 - 1 �
y1 = 1 + � � *1 = 0.5
�2 �
Hallamos el corrector
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
1 �( 0 - 1) + ( 1 - 0.5 ) �
y1 = 1 + * � *1 = 0.875
�
2 � 2 �
Segunda interacción:
Hallamos el predictor
+1 = y0 + f ( xi , yi ) h
yi�
1 - 0.875 �
�
y2 = 0.875 + � *1 = 0.9375
�
� 2 �
Hallamos el corrector
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
1 �( 1 - 0.875 ) + ( 2 - 0.9375 ) �
y2 = 0.875 + * � *1 = 1.171875
�
2 � 2 �
Tercera interacción:
Hallamos el predictor
+1 = y0 + f ( xi , yi ) h
yi�
�2 - 1.173325 �
y3 = 1.173325 + � * 1 = 1.5859375
�
� 2 �
Hallamos el corrector
f ( xi , yi ) + f ( xi +1 , yi0+1 )
yi +1 = yi + h
2
1 �( 2 - 1.173325 ) + ( 3 - 1.5859375 ) �
y3 = 1.173325 + * � *1 = 1.73242188
�
2 � 2 �
i Xi Yi y(xi)exacto
0 1 0.875 0.81959198
1 2 1.171875 1.10363832
2 3 1.73242188 1.66939048
EJERCICIO 3
Un tanque cilíndrico de fondo plano con un diámetro de 1.5m contiene un líquido de densidad
r = 1.5 Kg / L a una altura de 3m.Se desea saber la altura del líquido dentro del tanque tres
minutos después de que se abre completamente la válvula de salida, la cual da un gasto de
0.6 A 2 ga m 3 / s donde A es el área seccional del tubo de salida y es
-4 2 2
78.5 �10 m y g=9.81 m/s con 6 iteraciones.
SOLUCION
G = 0.6 A 2 ga
dV r
Acumulación=entrada: =0 Salida: -0.6 A 2 ga
dt
p p 2 da
( 1.5) a ( 1.5)
2
V= = -0.6 A 2 ga
4 4 dt
De donde
da 2.4 A 2 ga
=- = -0.0026653 2 ga al considerar como tiempo cero el momento de
p ( 1.5 )
2
dt
abrir la válvula y además la altura buscada a un tiempo de 180 s, se llega a
da
= -0.0026653 2 ga
dt
a ( 0 ) = 3m
a ( 180 ) = ?
Hallamos por el método de Heun
A. - yi +1 = yi + hf ( xi , yi ) � caso predictor
1
( )
B. - ��f ( xi , yi ) + f xi +1 , yi +1 �
2 � �
1
�
2 �
�
(
C. - yi +1 = yi + h � ��f ( xi , yi ) + f xi +1 , yi +1 )�
�
�
�
�
� caso corrector
i ti A B. C
0 0 2.38655 -0.019343 2.4197
1 30 1.86876 -0.017249 1.90221
2 60 1.413730 -0.015150 1.44745
3 90 1.02134 -0.0130665 1.05545
4 120 0.691588 -0.01097 0.72626
5 150 0.424429 -0.0088756 0.45999
6 180
EJERCICIO 4
Una solución de salmuera de salmuera razón constante de 6L/min, hacia el interior de un
depósito que inicialmente contiene 50L de solución de salmuera en la cual se disolvieron %kg
de sal. La solución contenida en el depósito se mantiene bien agitada y fluye hacia el exterior
con la misma rapidez. Si la concentración de sal presente en el depósito es de 0.5 kg/L,
terminar la cantidad de sal presente en el depósito al cabo de 1 minutos. ¿Cuenta
concentración alcanzara de sal en el depósito en un tiempo de 5 min?
Hallamos por el método de Heun con h=1.25 y 5 iteraciones
x ( t ) = kg de sal dentro del deposito en el instante t
dy �y � 3
= 6 �0.5 - 6 �� �= 3 - y
dt �50 � 25
y ( 0) = 5
y ( 5) = ?
A. - yi +1 = yi + hf ( xi , yi ) � caso predictor
1
(
B. - ��f ( xi , yi ) + f xi +1 , yi +1 �
2 � � )
1
�
2 �
�
(
C. - yi +1 = yi + h � ��f ( xi , yi ) + f xi +1 , yi +1 )�
�
�
�
�
� caso corrector
i ti A B. C
0 0 8 2.22 7.775
1 1.25 10.3375 1.91475 10.1434
2 2.5 12.37189 1.64908 12.2047
3 3.75 14.1239 1.420284 13.9800
4 5 15.633 1.22322 15.5090
EJERCICIOS PROPUESTOS
1.-En un tanque perfectamente agitado se tiene 400L de una salmuera en la cual están
disueltos de sal común (NaCL), en cierto momento se hace llegar al tanque un gasto de un 80
salmuera que contiene 0.5 Kg de sal común por litro. Si tiene un gasto de salida de 80L/min
determine:
a) ¿Qué cantidad de sal hay en el tanque transcurrido 10 minutos?
b) ¿Qué cantidad de sal hay en el tanque transcurrido un tiempo muy grande?
Respuesta
dy
a) = 40 - 0.2 y y ( 0 ) = 25
dx
h=1 y ( 10 ) = ? rpta: y ( 10 ) = 175.9466
b)La solucion se obtiene hasta la cantidad de sal en el tanque no cambie con el tiempo
y ( 10 ) = 199.9914
2.-Se hacen reaccionar isotérmicamente 260 g de acetato de etilo CH 3COOC2 H 5 con 175g
de hidróxido de sodio NaOH en solución acuosa (ajustando el volumen total a 5 litros) para
dar acetato de sodio CH 3COONa y el alcohol etílico C2 H 5OH de acuerdo con la siguiente
ecuación estequiometria.
CH 3COOC2 H 5 + NaOH � CH 3COONa + C2 H 5OH
Respuesta
dy
= 1.44 �0.01( 0.59 - y ) ( 0.875 - y ) y ( 0) = 0
dx
h=1 y ( 30 ) = ? rpta: y ( 30 ) = 0.1692
3.-Calcular el tiempo necesario para que el nivel del líquido dentro del tanque esférica con
r=5m mostrando en la figura pase de 4m a 3m.La velocidad de salida por el orificio del fondo es
de v=4.895,el diámetro de dicho orificio es de 10cm.
Respuesta
da 0.012375 a
=- a ( 0) = 4
dt ( 10a - a 2 )
h=10 a ( ?) = 3 rpta: y ( 100 ) = 2.9796
DIAGRAMA DE FLUJO
PSEUDOCODIGO
clear all
disp('METODO DE HEUN')
clc
syms x
syms y
f=inline(input('ingrese la derivada:','s'));
x=input('ingrese el valor de x:');
y=input('ingrese el valor de y:');
h=input('ingrese el valor de h:');
n=input('ingrese numero de iteraciones:');
clc
disp('xi , yi , y(i+1) , Y(i+1) ');
%y(i+1)caso predictor
%Y(i+1)caso corrector
for i=1:n
s=h+x;
y1=feval(f,x,y);
hy1=h*y1;
y2=y+hy1;
y3=feval(f,s,y2);
hy2=y3*h;
yn=y+((hy1+hy2)/2);
fprintf('\n%0.1f %0.4f %0.4f %0.4f',x ,y ,y2 ,yn );
y=yn;
x=x+h;
end
Veamos un ejemplo con el ejercicio 3 para asi comprobar que las respuestas son iguales
Ahora comprobamos con un ejercicio propuesto la numero 3,ingresamos los datos
Y luego nos dará los resultados