Sei sulla pagina 1di 15

EL METODO DE Runge-kutta es una mejora del metodo de Euler,

este nuevo método requiere de la aplicación de otros metodos para


ser aplicado los mas utilizados son los siguientes:
- Método de Heun
- Método del punto medio
- Método de Ralston

- El método de Runge-kutta se compone de la siguiente ecuación


general
- Yi+1=yi + (a1,k1 +a2k2)h
- Donde
- K1= f(xi,yi)
- K2=f(xi +p1h , y1 + q11k1h)

- A continuación veremos a que se refieren con los valores de


a1,a2,p1,q11
cada uno de los métodos que se utilizan para Rugen-kutta tiene valores
distintos de a1,a2,p1,q11.
Método de Heun
Se le da un valor inicial a a2
a2= .5 Por lo tanto al sustituir los valores en
a1= 1 – a2 = .5 la ecuación de Runge-kutta nos queda como:
p1= .5/a2 = 1 Yi+1=yi + (.5k1 + .5k2)h
q11= .5/a2 = 1 K1= f(xi,yi)
K2=(xi + h , y1 + k1h)

Método del punto medio


Se da una valor inicial a a2
a2= 1 Por lo tanto al sustituir los valores en
a1= 1 – a2 = 0 la ecuación de Runge-kutta nos queda como:
P1= .5/a2 = ½ Yi+1=yi + k2h
q11= .5/a2 = ½ K1= f(xi,yi)
K2=(xi + .5h , y1 + .5k1h)
Método de Ralston
Se da un valor inicial a a2
a2= 2/3
a1= 1 – a2 = 1/3
p1= .5/a2 = 3/4
q11= .5/a2 = ¾

Por lo tanto al sustituir los valores en la ecuación de Runge-kutta nos


queda como:
Yi+1=yi + (1/3k1 + 2/3k2)h
K1= f(xi,yi)
K2=(xi + 3/4h , y1 + 3/4k1h)
El primer método que utilizamos para resolver una ecuación
diferencia de primer orden con el método de Runge-kutta es el
método de Heun:
Partiendo de la ecuación:
dy/dx = 3x^2+8e^-x -5y + 15 Y(0)= 5
Con datos iniciales de:
x0= 0, y0=5, xf=3, n=2, yf=?
Retomamos la ecuación vista anteriormente:
Yi+1=yi + (.5k1 + .5k2)h
Donde h= 1.5 ((xf – x0)/n)
K1= f(xi,yi)
K2=(xi + h , y1 + k1h)
Tomamos como valor inicial de i=0 que es la iteración 1
K1= F(x0,y0) K2=(x0 + h , y1 + k1h)
K1= (0,5) K2=(0 + 1.5 , 5 + (-2)1.5)
K1= 3(0)^2+8e^-(0) -5(5) + 15 k2 = (1.5 , 2)
K1 = -2 K2= 3(1.5)^2+8e^-(1.5) -5(2) + 15
K2 = 13.5350
Ya con estos valores sustituimos en la ecuación general del método
para obtener el valor de y1
Y1 =y0 + (.5k1 + .5k2)h
Y1 = 5 + (.5(-2) + .5(13.5350)(1.5)
Y1 = 13.6512

Este valor es la aproximación de y(x1)


Donde x1 = x0 + h = 0 + 1.5 = 1.5
Como el valor de y1 solo es la aproximación cuando x = 1.5 necesitamos
obtener una segunda iteración por lo tanto tomamos los valores de :
i=1 x1= 1.5 (es el valor obtenido de la iteración anterior)
Y1= 13.6512

K1= F(x1,y1) K2=(x1 + h , y1 + k1h)


K1= F(1.5,13.6512) K2=(1.5 + 1.5 , 13.6512 + (-44.7209)(1.5)
K1= 3(1.5)^2+8e^-(1.5) -5(13.6512) + 15 K2=( 3 , -53.43015)
K1 = -44.7209 K2= 3(3)^2+8e^-(3) -5(-53.43015) + 15
K2= 309.5409
Ya con estos valores sustituimos en la ecuación general del método para
obtener el valor de y2
Y2 =y1 + (.5k1 + .5k2)h
Y2 =13.6512+ (.5(-44.7209) + .5(309.5409)(1.5)
Y2= 212.2662
Este valor es la aproximación de y(x2)
Donde x1 = x0 + h = 1.5 +1.5 = 3
Por lo tanto como el valor de x2 = 3 el valor que buscamos es el valor de
y2 = 212.2663
Ahora hay que obtener los valores reales y porcentuales del método.

Valor real de la ecuación diferencia (yf) es = 7.8275 cuando xf = 3


Ese valor lo obtenemos de la programación de scilab con el código
“ode(y0 , x0 , xf , funcion)”

Error verdadero : Error relativo


Ev = Vr – Va Er= abs(Ev/Vr)*100
Ev = 7.8275 – 212.2662 Er= abs(-204.4387/7.8275)*100
Ev = -204.4387 Er= 2611.87
El segundo método que suele utilizarse junto con Runge-kutta es el
método del punto medio

Partiendo de la ecuación:
dy/dx = 3x^2+8e^-x -5y + 15 Y(0)= 5
Con datos iniciales de:
x0= 0, y0=5, xf=3, n=2, yf=?
Retomamos la ecuación vista anteriormente:
Yi+1=yi + k2h
Donde h= 1.5 ((xf – x0)/n)
K1= f(xi,yi)
K2=(xi + .5h , y1 + .5k1h)
Tomamos como valor inicial de i=0 que es la iteración 1
K1= F(x0,y0) K2=(x0 + .5h , y0 + .5k1h)
K1= (0,5) K2=(0 + .5(1.5) , 5 + .5(-2)1.5)
K1= 3(0)^2+8e^-(0) -5(5) + 15 k2 = (.75 , 3.5)
K1 = -2 K2= 3(.75)^2+8e^-(.75) -5(3.5) + 15
K2 = 2.9664
Ya con estos valores sustituimos en la ecuación general del método
para obtener el valor de y1
Y1=y0 + k2h
Y1= 5 + (2.9664)(1.5)
Y1= 9.4496
Este valor es la aproximación de y(x1)
Donde x1 = x0 + h = 0 + 1.5 = 1.5
Como el valor de y1 solo es la aproximación cuando x = 1.5
necesitamos obtener una segunda iteración por lo tanto tomamos los
valores de :
i=1 x1= 1.5 (es el valor obtenido de la iteración anterior)
Y1= 9.4496

K1= F(x1,y1) K2=F(x1 + .5h , y1 + .5k1h)


K1= (1.5 ,9.4496) K2=(1.5 + .5(1.5) , 9.4496 + .5(-23.71)(1.5)
K1= 3(1.5)^2+8e^-(1.5) -5(9.4496) + 15 K2= (2.25 , -8.335075)
K1 = -23.7129 K2= 3(2.25)^2+8e^-(2.25) -5(-8.3350) + 15
K2= 72.706068
Ya con estos valores sustituimos en la ecuación general del método
para obtener el valor de y2
Y2=y1 + k2h
Y2= 9.4496 + (72.7060)(1.5)
Y2= 118.5087
Este valor es la aproximación de y(x2)
Donde x1 = x0 + h = 1.5 +1.5 = 3
Por lo tanto como el valor de x2 = 3 el valor que buscamos es el valor
de
y2 = 118.5087
Ahora como acostumbramos hay que obtener los valores reales y
porcentuales del método.

Valor real de la ecuación diferencia (yf) es = 7.8275 cuando xf = 3


Ese valor lo obtenemos de la programación de scilab con el código
“ode(y0 , x0 , xf , funcion)”

Error verdadero : Error relativo


Ev = Vr – Va Er= abs(Ev/Vr)*100
Ev = 7.8275 – 118.5087 Er= abs(110.6812/7.8275)*100
Ev = -110.6812 Er= 1414.0078
Como ya vimos en los casos anteriores el método de Rungen-Kutta
necesita de otros métodos para poder ser aplicado, ahora veremos
el método de Ralston
Partiendo de la ecuacion:
dy/dx = 3x^2+8e^-x -5y + 15 Y(0)= 5
Con datos iniciales de:
x0= 0, y0=5, xf=3, n=2, yf=?
Retomamos la ecuacion vista anteriormente:
Yi+1= yi + ( 1/3k1 + 2/3k2)h
Donde h= 1.5 ((xf – x0)/n)
K1 = f(xi , yi)
K2 = f(xi + 3/4h , yi + 3/4k1h)
Tomamos como valor inicial de i=0 que es la iteración 1

K1= F(x0,y0) K2= f(x0 + 3/4h , y0 + 3/4k1h)


K1= (0,5) K2= f( 0 + ¾(1.5) , 5 + 3/4(-2)(1.5))
K1= 3(0)^2+8e^-(0) -5(5) + 15 K2= f(1.125, 2.75)
K1 = -2 K2= 3(1.125)^2+8e^-(1.125)-5(2.75)+ 15
K2= 7.6440

Ya con estos valores sustituimos en la ecuación general del método


para obtener el valor de y1
Y1= y0 + ( 1/3k1 + 2/3k2)h
Y1= 5 + ( 1/3(-2) + 2/3(7.6440)(1.5)
Y1= 11.6440
Este valor es la aproximación de y(x1)
Donde x1 = x0 + h = 0 + 1.5 = 1.5
Como el valor de y1 solo es la aproximación cuando x = 1.5
necesitamos obtener una segunda iteración por lo tanto tomamos los
valores de :
i=1 x1= 1.5 (es el valor obtenido de la iteración anterior)
Y1= 11.6440 (este valor también lo obtuvimos de la iteración i=0)

K1= F(x1,y1) K2= f(x1 + 3/4h , y1 + 3/4k1h)


K1= (1.5 , 11.6440) K2= f( 1.5 + ¾(1.5) , 11.6440 + 3/4(-34.6849)(1.5))
K1= 3(1.5)^2+8e^-(1.5)-5(11.6440)+15 K2= f(2.625 , -27.3765)
K1 = -34.6849 K2= 3(2.625)^2+8e^-(2.625) -5(-27.3765)+15
K2= 173.1338
Ya con estos valores sustituimos en la ecuación general del método
para obtener el valor de y2
Y2= y1 + ( 1/3k1 + 2/3k2)h
Y2= 11.6440 + ( 1/3(-34.6849) + 2/3(173.1338)(1.5)
Y2= 167.43535
Este valor es la aproximación de y(x2)
Donde x1 = x0 + h = 1.5 +1.5 = 3
Por lo tanto como el valor de x2 = 3 el valor que buscamos es el valor
de y2 = 167.43535
Ahora como acostumbramos hay que obtener los valores reales y
porcentuales del método.

Valor real de la ecuación diferencia (yf) es = 7.8275 cuando xf = 3


Ese valor lo obtenemos de la programación de scilab con el código
“ode(y0 , x0 , xf , funcion)”

Error verdadero : Error relativo


Ev = Vr – Va Er= abs(Ev/Vr)*100
Ev = 7.8275 – 167.43535 Er= abs(-159.60785/7.8275)*100
Ev = -159.60785 Er= 2039.07

Potrebbero piacerti anche