MÉTODOS NUMÉRICOS
ECUACIONES DIFERENCIALES ORDINARIAS
INTRODUCCIÓN
Los Métodos Numéricos presentan soluciones de Ecuaciones Diferenciales sólo aproximadas, pero con una
precisión que puede ser suficiente para los cálculos de ingeniería. Sin embargo, para aplicar estos métodos, es
necesario conocer un punto que satisfaga a la Ecuación.
MÉTODO DE PICARD:
En este método, inicialmente se asume que x = x0; y = y0 y se usa la fórmula siguiente:
EJEMPLO 1: resolver la E.D. y’ = y + 2x en el punto P0(0,1), hallar yn(0.2), con una precisión menor a 1x10-5.
PRÁCTICA 1: resolver la E.D. y’ = (x + 2y)1/2 en el punto P0(3,2), hallar yn(1) con e < 1x10-6.
MÉTODO DE LA SERIE DE TAYLOR:
Este método se basa en el desarrollo de funciones por Series de Taylor y tiene la fórmula siguiente:
EJEMPLO 2: usando la E.D. del ejemplo 1, resolver por este método y hallar y n(1).
PRÁCTICA 2: resolver la E.D. y’ = (x + y)1/2 en el punto P0(1,3), hallar yn(2) con e < 1x10-6.
MÉTODO DE EULER:
Este método posee la ventaja de su simplicidad, aunque sus resultados no son todo lo precisos que se pueda
esperar; tiene la fórmula:
Donde:
EJEMPLO 3: usando la E.D. del ejemplo 1, resolver por este método y hallar y n(1), para n = 0 hasta n = 5.
PRÁCTICA 3: resolver la E.D. del ejemplo 3 de n = 0 hasta n = 10.
Luis Cabezas Tito Métodos Numéricos Página 1
MÉTODO DE EULER MEJORADO O MÉTODO DE HEUN:
Debido a la escasa aproximación que brinda el Método de Euler, se introduce una corrección, que permite
mejorar su precisión.
Donde:
EJEMPLO 4: usando la E.D. del ejemplo 1, resolver por este método y hallar y n(1), para n = 0 hasta n = 5.
PRÁCTICA 4: resolver la E.D. del ejemplo 4 de n = 0 hasta n = 10.
MÉTODO DE RUNGE – KUTTA O MÉTODO DE KUTTA - SIMPSON:
Este es el método de resolución de E.D. por excelencia, permitiendo una mayor precisión y por ello es el más
usado.
Donde:
EJEMPLO 5: usando la E.D. del ejemplo 1, resolver por este método para x = 1.
PRÁCTICA 5: resolver la E.D. y’ = (x + 2y)1/2, P0 = (0.3,0.17); x = 0.5.
OPTIMIZACIÓN DEL MÉTODO DE RUNGE – KUTTA:
Una alternativa para mejorar más aún la excelente precisión que brinda el Método de Runge – Kutta consiste
en hacer una aproximación mediante pasos sucesivos.
En particular esta optimización es conveniente cuando el valor de x0 conocido dista bastante, en forma
relativa, del valor de x para el que se desea calcular.
Luis Cabezas Tito Métodos Numéricos Página 2
MÉTODO DE MILNE:
Todos los Métodos anteriormente analizados son Métodos de sólo UN PASO, ya que en el cálculo de la
siguiente aproximación yn+1 se usa solamente la aproximación anterior: yn. Los métodos de pasos múltiples,
para el cálculo de la siguiente aproximación: yn+1 usan dos o más aproximaciones anteriores: yn, yn-1, yn-2, etc.
El principal método de pasos múltiples es el Método de Milne que usa DOS PASOS, mediante la fórmula:
[ ]
EJEMPLO 6: usando la E.D. del ejemplo 1, resolver por este método para P 0(0,1); x = 1.
Donde h = (x – x0)/n
Aplicando el Método de Milne, elaborar la siguiente tabla para n = 10:
n xn yn
0 0
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
6 0.6
7 0.7
8 0.8
9 0.9
10 1.0
PRÁCTICA 6: resolver la E.D. y’ = (x + 2y)1/2, P0 = (0.3, 0.17); x = 0.5.
RESOLUCÍON DE ECUACIONES DIFERENCIALES CON MATLAB
EJEMPLO 7: determinar la solución de la ecuación diferencial:
SOLUCIÓN:
Crear un archivo m o script con los siguientes datos:
function sol=ejemplo(x,y)
sol = x-y;
El intervalo de trabajo será [0 1].
Luis Cabezas Tito Métodos Numéricos Página 3
La condición inicial y0 = 2.
Escribir en el workspace de MATLAB:
>> [x,y]=ode45('ejemplo',[0 1],2)
x=
0
0.0250
0.0500
0.0750
0.1000
0.1250
0.1500
0.1750
0.2000
0.2250
0.2500
0.2750
0.3000
0.3250
0.3500
0.3750
0.4000
0.4250
0.4500
0.4750
0.5000
0.5250
0.5500
0.5750
0.6000
0.6250
0.6500
0.6750
0.7000
0.7250
0.7500
0.7750
0.8000
0.8250
0.8500
0.8750
0.9000
0.9250
0.9500
0.9750
1.0000
Luis Cabezas Tito Métodos Numéricos Página 4
y=
2.0000
1.9509
1.9037
1.8582
1.8145
1.7725
1.7321
1.6934
1.6562
1.6205
1.5864
1.5537
1.5225
1.4926
1.4641
1.4369
1.4110
1.3863
1.3629
1.3407
1.3196
1.2997
1.2808
1.2631
1.2464
1.2308
1.2161
1.2025
1.1898
1.1780
1.1671
1.1571
1.1480
1.1397
1.1322
1.1256
1.1197
1.1146
1.1102
1.1066
1.1036
MÉTODO DE EULER:
EJEMPLO 8: resuelva el siguiente problema de valor inicial por método de Euler:
Luis Cabezas Tito Métodos Numéricos Página 5
SOLUCIÓN:
Para resolver la ecuación diferencial dada, se utilizará n = 5 que es el número de franjas.
Crear un script o archivo m con los siguientes comandos.
function valor = Der_Euler(x,y)
valor = x-y;
ejecutar el siguiente archivo Euler_L:
>> Euler_L
METODO DE EULER
Arch. Ecuación ? Der_Euler
Punto Inicial ? 0
Condicion Inicial ? 2
Punto Final ?1
Nro Intérvalos ? 5
Ver Grafica (s/n) ? s
SOLUCION
num xf yf
0 0.00000 2.00000
1 0.20000 1.60000
2 0.40000 1.32000
3 0.60000 1.13600
4 0.80000 1.02880
5 1.00000 0.98304
ans =
0.9830
Luis Cabezas Tito Métodos Numéricos Página 6
PRÁCTICA 7: resuelva el siguiente problema de valor inicial, para el intervalo que va de x = 0 a x = 2. Graficar
los datos obtenidos.
MÉTODO DE TAYLOR:
EJEMPLO 9: resuelva el siguiente problema de valor inicial por método de Taylor:
SOLUCIÓN:
Para determinar la derivada de la función se utiliza la ecuación:
Con lo cual se obtiene:
Con este resultado, crear un script de la siguiente manera:
function valor = Der_Taylor(x,y)
valor = [x-y,1-x+y];
Ahora ejecutar:
>> Taylor_L
METODO DE TAYLOR
Arch. Ecuación ? Der_Taylor
Punto Inicial ? 0
Condicion Inicial ? 2
Punto Final ?1
Nro Intérvalos ? 5
Ver Grafica (s/n) ? s
SOLUCION
num xf yf
0 0.00000 2.00000
1 0.20000 1.66000
2 0.40000 1.41720
3 0.60000 1.25410
4 0.80000 1.15637
5 1.00000 1.11222
Luis Cabezas Tito Métodos Numéricos Página 7
ans =
1.1122
PRÁCTICA 8: resuelva desde t 0 0 hasta t = 3 con h = 0.1, la ecuación diferencial (graficar los resultados):
MÉTODO DE EULER MODIFICADO:
EJEMPLO 10: resuelva el siguiente problema de valor inicial por método de Euler Modificado:
SOLUCIÓN:
Escribir en un archivo script:
function valor = Der_EulerM(x,y)
valor = x-y;
Se resolverá para n = 5 franjas.
A continuación escribir:
>> EulerModificado_L
Arch. Ecuación ? Der_EulerM
Punto Inicial ? 0
Condicion Inicial ? 2
Punto Final ?1
Nro Intérvalos ? 5
Luis Cabezas Tito Métodos Numéricos Página 8
Ver Grafica (s/n) ? s
SOLUCION
num xf yf
0 0.00000 2.00000
1 0.20000 1.66000
2 0.40000 1.41720
3 0.60000 1.25410
4 0.80000 1.15637
5 1.00000 1.11222
ans =
1.1122
PRÁCTICA 9: resuelva el siguiente problema en forma numérica, con un tamaño de paso de 0.5 y 0.01, además
de graficar los resultados.
MÉTODO DE RUNGE - KUTTA:
EJEMPLO 11: resuelva el siguiente problema de valor inicial por método de Runge - Kutta:
SOLUCIÓN:
Escribir en un archivo script:
function valor = Der_Runge(x,y)
valor = x-y;
Luis Cabezas Tito Métodos Numéricos Página 9
Se resolverá para n = 5 franjas.
A continuación escribir:
>> RungeKutta_L
METODO DE RUNGE KUTTA
Arch. Ecuación ? Der_Runge
Punto Inicial ? 0
Condicion Inicial ? 2
Punto Final ?1
Nro Intérvalos ? 5
Ver Grafica (s/n) ? s
SOLUCION
num xf yf
0 0.00000 2.00000
1 0.20000 1.65620
2 0.40000 1.41097
3 0.60000 1.24645
4 0.80000 1.14800
5 1.00000 1.10366
ans =
1.1037
PRÁCTICA 10: un tanque cilíndrico de 5 m de diámetro y 11 m de largo aislado con asbesto se carga con un
líquido que está a 220 oF y el cual se deja reposar durante cinco días. A partir de los datos de diseño del
tanque, las propiedades térmicas y físicas del líquido y el valor de la temperatura ambiente se encuentra la
ecuación:
( )
Luis Cabezas Tito Métodos Numéricos Página 10
Que relaciona la temperatura T del líquido en 0C con el tiempo t en horas. Utilizando el método Runge-Kutta,
determine la temperatura final del líquido.
ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR:
EJEMPLO 12: considere el siguiente sistema de ecuaciones obtenido por medio de un cambio de variables:
Resuelva para xf = 12.
SOLUCIÓN:
Crear un archivo m o script con el código siguiente:
function dy=OrdenSuperior(t,y)
dy=zeros(3,1);
dy(1)=y(2)*y(3);
dy(2)=-y(1)*y(3);
dy(3)=-0.51*y(1)*y(2);
Se define el intervalo de trabajo desde x0 = 0 a xf = 12 como un vector [0 12].
Se definen las condiciones iniciales como un vector fija [0;1;1].
A continuación, escribir:
>> [T,Y]=ode45(@OrdenSuperior,[0 12],[0 1 1])
Para realizar una representación gráfica de la información obtenida se escribe lo siguiente:
>> plot(T,Y(:,1),'-',T,Y(:,2),'.-',T,Y(:,3),'.')
Luis Cabezas Tito Métodos Numéricos Página 11
ECUACIONES DIFERENCIALES DE SEGUNDO ORDEN:
EJEMPLO 13: resuelva el siguiente problema de valor inicial por el método de Runge-Kutta de segundo orden:
( )
Utilice 8 subintervalos.
SOLUCIÓN:
En principio se escribe la respectiva ecuación diferencial como un sistema:
( )
A continuación, crear un archivo script siguiente:
function dy=EDO(x,y,z)
dy(1)=2;
dy(2)=-2/x+(1/(x.^2)-1).*y;
Luego ejecutar:
>> EDO2do_L
ECUACIONES DE SEGUNDO ORDEN
Arch. Ecuación ? EDO
Punto Inicial Xo ? 1
Condicion Inicial Yo ? 1
Condicion Inicial Zo ? 2
Punto Final Xf ? 3
Nro Intérvalos ?8
SOLUCION
x y z
1.00000 1.00000 2.00000
1.25000 1.50000 1.48748
1.50000 2.00000 0.91664
1.75000 2.50000 0.25890
2.00000 3.00000 -0.50003
2.25000 3.50000 -1.36809
2.50000 4.00000 -2.35003
2.75000 4.50000 -3.44889
3.00000 5.00000 -4.66670
Luis Cabezas Tito Métodos Numéricos Página 12
ans =
3.0000 5.0000 -4.6667
PRÁCTICA 11: resuelva el siguiente problema de valor inicial con el método de Runge-Kutta de segundo orden,
con h = 0.05 y h = 0.01.
Grafique y compare los resultados. De igual forma, grafique la curva de error.
----- oOo -----
Luis Cabezas Tito Métodos Numéricos Página 13