You are on page 1of 21

MÉTODOS NUMÉRICOS PARA INGENIERÍA

SESIÓN 8:
SOLUCIÓN NUMÉRICA DE
EDO DE PRIMER ORDEN
Responda las siguientes preguntas:

• ¿Qué es una ecuación diferencial


ordinaria con valor inicial?
• Si la variación de una población es
directamente proporcional a la
población, ¿cómo expresaría ese
hecho a través de una ecuación
diferencial?
LOGRO

Al finalizar la sesión, el
estudiante aplica los
métodos de Runge Kutta de
paso simple para resolver las
EDO de primer orden.
Ecuaciones Diferenciales de Primer Orden con Valor Inicial
 Hallar y  y ( x) :[a, b]  R / .
Se trata de resolver un problema  dy

de la forma:   F ( x, y ) Ecuación Diferencial
 dx
 y ( x1 )  y1 Condición Inicial
Métodos para resolverlo

Runge Kutta Ordenes de


Euler Heun
de orden 4 Matlab
MÉTODO DE EULER
Problema Forma de aproximación
 dy w2  y1
  F ( x, y ) De la figura:
 m1  F ( x1 , y1 )
 dx
 y ( x1 )  y1 h
w2  y1  hF ( x1 , y1 )

Solución numérica  w1  y1
 w  w  hF ( x , w )
 2 1 1 1

 w3  w2  hF ( x2 , w2 )
...así sucesivamente

Partición regular
de tamaño de paso h
Método de Euler
Solución Numérica
Recuerde la estructura del Método de Euler

 w1  y1 es el punto de partida

 wi 1  wi  hF ( xi , wi )
𝑖 = 1,2,3, … , 𝑛

Errores de aproximación del método de Euler

Error absoluto EA  y  xn 1   wn 1
y  xn 1   wn 1
Error relativo ER 
y  xn 1 
Error de truncación h2 para algún  con xn    xn 1
ET  y ,,
n 1 ( )
2!
Método de Euler

1 Dada la ecuación diferencial  dy


  x y
2 2

 dx
 y (2)  0.5
Usa el método de Euler para aproximar y  2.3 tomando
h  0.1 en cada paso del proceso iterativo.

Solución:
 F ( x, y )  x 2  y 2
Identificando datos 
 x1  2, w1  y1  0.5

Usando la fórmula de Euler se tiene:

y (2.1)  w2  w1  hF ( x1 , w1 )  0.5  0.1F (2, 0.5)  0.706155


y (2.2)  w3  w2  hF ( x2 , w2 )  0.706155  0.1F (2.1, 0.706155)  0.927710
y (2.3)  w4  w3  hF ( x3 , w3 )  0.927710  0.1F (2.2, 0.927710)  1.166470

 y (2.3)  1.166470
Método de Euler

Solución:

 F ( x , y )  ln  x  y 
Identificando datos 
 x1  1, w1  y1  1.5
Usando la fórmula de Euler se tiene:

y (1.1)  w2  w1  hF ( x1 , w1 )  1.591629
y (1.2)  w3  w2  hF ( x2 , w2 ) 
y (1.3)  w4  w3  hF ( x3 , w3 ) 

 y (1.3) 
MÉTODO DE HEUN (Runge Kutta de orden 2)

Problema

 dy
  F ( x, y )
 dx
 w1  y ( x1 )  y1

Solución numérica

 1
 wi 1  wi  2 [k1  k2 ]

 siendo :

 k1  hF ( xi , wi )

 k2  hF ( xi  h, wi  k1 )

Método de Heun
3

Solución:
Identificando datos  F ( x, y )  2 x  y  3

 x1  2, w1  y1  1
1
Usando la fórmula de Heun se tiene: w2  w1   k1  k2 
2
 k1  hF ( x1 , w1 )  0.2 F (2,1)  0.4 1
  y (2.2)  w2  1   k1  k2   1.48
 k2  hF ( x1  h, w1  k1 )  0.2 F (2.2,1  0.4)  0.56 2

1
Usando la fórmula de Heun se tiene: w3  w 2   k1  k2 
2
k1  hF ( x2 , w2 )  0.2 F (2.2,1.48)  0.576 1
  y (2.4)  w3  1.48   k1  k2   2.1536
k2  hF ( x2  h, w2  k1 )  0.2 F (2.4,1.48  0.576)  0.7712 2
1
Usando la fórmula de Heun se tiene: w 4  w3   k1  k2 
2
k1  hF ( x3 , w3 )  0.2 F (2.4, 2.1536)  0.790720 1
  y (2.6)  w4  2.1536   k1  k2   3.063392
k2  hF ( x3  h, w3  k1 )  0.2 F (2.6, 2.1536  0.790720)  1.028864 2

 y (2.6)  3.063392
MÉTODO DE RUNGE KUTTA 4
Problema
 dy
  F ( x, y )
 dx
 w1  y ( x1 )  y1

Solución numérica

 1
w
 i 1  wi  [ k1  2k2  2k3  k 4 ]
6

siendo:
 k  hF ( x , w )
 1 i i

 h k1
 2
k  hF ( x i  , wi  )
 2 2
 k  hF ( x  h , w  k2 )
 3 i
2
i
2

 k4  hF ( xi  h, wi  k3 )
Método de RK4
 dx
 3tsenx  5tx  1
4 Dada la ecuación diferencial :  dt
 x(0)  0.5
Usar el método de RK4 para aproximar x(0.5) tomando h = 0.1 en c/paso del proceso iterativo.
Solución:  x1  0, w1  y1  0.5

h  0.1
 F (t , x)  3tsenx - 5tx  1

Primero w2, debemos calcular los valores de k1, k2, k3 y k4:

k1  hF (t1 , w1 )  0.1F (0, 0.5)  0.10


h k
k2  hF (t1  , w1  1 )  0.1F (0.05, 0.5  0.05)  0.094090308
2 2
h k
k3  hF (t1  , w1  2 )  0.1F (0.05, 0.5  0.04704515422)  0.094126359
2 2 1
k4  hF (t1  h, w1  k3 )  0.1F (0.10, 0.5  0.09412635922)  0.087087233 x(0.1)  w2  w1  [k1  2k2  2k3  k4 ]  0.593920095
6
Ahora w3:

k1  hF (t2 , w2 )  0.1F (0.1, 0.593920095)  0.087092418


h k k
k2  hF (t2  , w2  1 )  0.1F (0.15, w2  1 )  0.078972284
2 2 2
h k k
k3  hF (t2  , w2  2 )  0.1F (0.15, w2  2 )  0.079129747
2 2 2
1
k4  hF (t2  h, w2  k3 )  0.1F (0.20, w2  k3 )  0.070097433 x(0.2)  w3  w2  [k1  2k2  2k3  k4 ]  0.672819080
6
Ahora w4:

k1  hF (t3 , w3 )  0.1F (0.20, w3 )  0.070109682


h k k
k2  hF (t3  , w3  1 )  0.1F (0.25, w3  1 )  0.060282257
2 2 2
h k k
k3  hF (t3  , w3  2 )  0.1F (0.25, w3  2 )  0.060615895
2 2 2
1
k4  hF (t3  h, w3  k3 )  0.1F (0.30, w3  k3 )  0.050233035 x(0.3)  w4  w3  [k1  2k2  2k3  k4 ]  0.733175584
6

El proceso debe repetirse hasta obtener w6. Resumimos los resultados en la siguiente tabla:

i k1 k2 k3 k4 ti wi
1 0 0.50000000000
2 0.10000000000 0.09409030843 0.09412635922 0.08708723313 0.1 0.59392009474
3 0.08709241844 0.07897228389 0.07912974729 0.07009743344 0.2 0.67281908045
4 0.07010968232 0.06028225696 0.06061589543 0.05023303528 0.3 0.73317558419
5 0.05025459930 0.03950447920 0.04003433044 0.02917034670 0.4 0.77292601174
6 0.02920274213 0.01846879182 0.01916374965 0.00875094800 0.5 0.79179580726
Método de RK4

Solución:
 x1  3, w1  y1  10

Identificamos los datos  h  0.1

 F ( x, y )  x  y

y  3.1 :

k1  hF ( x1 , w1 ) 
h k
k2  hF ( x1  , w1  1 ) 
2 2
h k
k3  hF ( x1  , w1  2 ) 
2 2
k4  hF ( x1  h, w1  k3 ) 

1
y (3.1)  w2  w1  [k1  2k2  2k3  k4 ] 
6
y  3.2  :

k1  hF ( x2 , w2 ) 
h k
k2  hF ( x2  , w2  1 ) 
2 2
h k
k3  hF ( x2  , w2  2 ) 
2 2
k4  hF ( x2  h, w2  k3 ) 

1
y (3.2)  w3  w2  [k1  2k2  2k3  k4 ] 
6
y  3.3 :

k1  hF ( x3 , w3 ) 
h k
k2  hF ( x3  , w3  1 ) 
2 2
h k
k3  hF ( x3  , w3  2 ) 
2 2
k4  hF ( x3  h, w3  k3 ) 

1
y (3.3)  w4  w3  [k1  2k2  2k3  k4 ] 
6
Evolución de la población de un virus
 dN  t 
6 La dinámica de población del virus es:    0.2  0.1 N  t 
 dt
 N (0)  100

Estimar la población de virus a los 4 días por RK4, tomando h=1 día en c/paso del proceso iterativo.
Solución:
t1  0, w1  N1  100

Identificamos los datos h  1 día
 F (t , N )  0.1N

1
N (ti 1 )  wi 1  wi  [k1  2k2  2k3  k4 ]
6
w2: w4:
k1=10.000000 k1=12.214026
k2=10.500000 k2=12.824727
k3=10.525000 k3=12.855262
k4=11.052500 k4=13.499552
N(1)w2=110.517083 N(3)w4=134.985850
w3: w5:
k1=11.051708 k1=13.498585
k2=11.604294 k2=14.173514
k3=11.631923 k3=14.207261
k4=12.214901 k4=14.919311
N(2)w3=122.140257 N(4)w5=149.182424
Niveles de concentración de una reacción química
7 Sea la ecuación  y '  0.01 70  y  50  y 

 y (0)  0
hallar la solución en el intervalo [0, 10 seg] con tamaño de paso 1 seg, por RK4.

Solución:

w2:
k1=35.000000
t1  0, w1  y1  0 k2=17.062500
Identificamos los datos h  1 seg k3=25.490322

 F (t , y )  0.01 70  y 50  y k4=10.909179
   
y(1)w2=21.835804
w3:
1 k1=13.565059
y (ti 1 )  wi 1  wi  [k1  2k2  2k3  k4 ]
6 k2=8.848090
k3=10.383978
k4=6.717405
y(2)w3=31.626904
w4: w7: w10:
k1=7.050326 k1=1.934217 k1=0.787775
k2=5.174198 k2=1.612247 k2=0.683995
k3=5.649177 k3=1.664544 k3=0.697489
k4=4.163765 k4=1.391666 k4=0.606120
y(3)w4 =37.103710 y(6)w7=44.517022 y(9)w10 =47.322041
w5: w8: w11:
k1=4.242401 k1=1.397226 k1=0.607306
k2=3.316043 k2=1.185774 k2=0.531234
k3=3.510640 k3=1.217148 k3=0.540662
k4=2.758034 k4=1.035139 k4=0.473140
y(4)w5 =40.546011 y(7)w8 =45.723390 y(10)w11 =47.859414
w6: w9:
k1=2.784577 k1=1.038216
k2=2.262250 k2=0.892689
k3=2.357273 k3=0.912762
k4=1.922977 k4=0.785924
y(5)w6=42.870444 y(8)w9 =46.629231
ORDENES DE MATLAB/OCTAVE
Comandos de Matlab
Matlab tiene dos procedimientos numéricos basados en los métodos de Runge – Kutta:

Comando Método numérico


ode23 Runge – Kutta de orden 2 y orden 3 combinados.
ode45 Runge – Kutta de orden 4 y orden 5 combinados (Runge – Kutta – Fehlberg).

Comandos de Otros programas


Maple posee el comando rkf45, Mathematica posee el comando rungekutta y en otros
paquetes computacionales: Derive, Mathcad, etc también existen comandos que usan
Runge – Kutta y otras técnicas numéricas para la solución de ecuaciones diferenciales.

Orden ode45 de Matlab (Runge Kutta 4 y 5)


 dy
El comando ode45 permite resolver la ecuación diferencial  dx  F ( x, y )
 y (a )  y1
en el intervalo [a,b], simplemente escribiendo

[x,y] = ode45(odefun,xspan,y1)

odefun  directamente puede introducirse, por ejemplo: @(x,y) sin(x+y)


xspan  es el intervalo [a,b]
x= y=
ORDENES DE MATLAB 3.0000
3.0075
10.0000
10.0367
3.0150 10.0735
 y '  x  y 3.0225 10.1104
Dada la ecuación diferencial:  3.0300 10.1473
 y (3)  10 3.0375
3.0450
10.1843
10.2213
3.0525 10.2584
resolverla con ode45 en el intervalo [3,3.3]. 3.0600 10.2956
3.0675 10.3328
3.0750 10.3701
3.0825 10.4074
3.0900 10.4448
Para ello, sencillamente ejecutamos: 3.0975 10.4822
3.1050 10.5197
3.1125 10.5573
3.1200 10.5949
3.1275 10.6326
3.1350 10.6704
3.1425 10.7082
3.1500 10.7461
3.1575 10.7840
Graficamos: 3.1650 10.8220
3.1725 10.8600
3.1800 10.8981
3.1875 10.9363
3.1950 10.9745
3.2025 11.0128
3.2100 11.0511
3.2175 11.0895
3.2250 11.1280
3.2325 11.1665
3.2400 11.2051
3.2475 11.2437
3.2550 11.2824
3.2625 11.3212
3.2700 11.3600
3.2775 11.3988
3.2850 11.4378
3.2925 11.4768
3.3000 11.5158
REFERENCIAS BIBLIOGRÁFICAS

N° CÓDIGO AUTOR TITULO AÑO


1 518 CHAP/M CHAPRA, S. Métodos numéricos para ingenieros. 2007
2 519.4 MATH. MATHEWS, J. Métodos numéricos con MATLAB. 2000
519.4 AVEN AVENDAÑO, Jhonny Matlab: Una introducción a los métodos 2011
3
numéricos

01/10/2017 21

You might also like