View
678
Download
3
Category
Preview:
Citation preview
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 1/18
UNIVERSIDAD PERUANA UNIÓNFACULTAD DE INGENIERÍA Y
ARQUITECTURA INGENIERÍA DE SISTEMASCURSO: MÉTODOS NUMÉRICOS
Alumno:
José Manuel Limachi Chávez
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 2/18
Introducción
Cabe destacar que el método de Runge kuttafue desarrollado por los matemáticos C.
Runge y M. W. Kutta. Este método es
también llamado Runge-Kutta explícito. Esun método iterativo tanto implícito como
explícito para aproximar las soluciones de
ecuaciones diferenciales ordinarias.
El método cuarto orden se puede utilizar paracalcular soluciones aproximadas.
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 3/18
Método de
Runge Kutta
El método de Runge-Kutta es un método genérico de
resolución numérica de ecuaciones diferenciales.
Se trata de un método por etapas que tiene la siguiente
expresión genérica:
donde:
i = 1,..., e
con aij ,bi ,c i constantes propias del esquema numérico. Losesquemas Runge-Kutta pueden ser explícitos o implícitos
dependiendo de las constantes aij del esquema. Si esta
matriz es triangular inferior con todos los elementos de la
diagonal principal iguales a cero; es decir , aij
= 0 para j =
i ,..., e, los esquemas son explícitos.
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 4/18
Ejemplo:
Esquema Runge-Kutta de dos etapas, una en t = t n
y
otra en t = t n
+ t n. F (u, t) en la primera etapa es:
y para estimar F (u, t) en t = t n + t n usamos un esquemaEuler
Con estos valores de F introducidos en la ecuación
nos queda la expresión:
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 5/18
Las constantes propias de este esquema son: b1
= b2
= 1 /
2;a21
= 1;c 2
= 1.
Existen variantes del método de Runge-Kutta clásico,
también llamado Runge-Kutta explícito, tales como la
versión implícita del procedimiento o las parejas de métodos
Runge-Kutta (o métodos Runge-Kutta-Fehlberg).
Este último consiste en ir aproximando la solución de laecuación mediante dos algoritmos Runge-Kutta de órdenes
diferentes, para así mantener el error acotado y hacer una
buena elección de paso.
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 6/18
Método de Runge-Kutta (de cuarto orden):
00
)( ; ),( y x y y x f dx
dy!!
Los llamados métodos de Runge-Kutta son una serie dealgoritmos para calcular aproximaciones numéricas del
valor de la solución de:
En puntos de la forma siguiente:
etch x xh x x ;; 1201 !!
con muy buena precisión, sin que, para ello, seanecesario que los h sean muy pequeños.
El procedimiento consta de los siguientes pasos:Para calcular un valor aproximado de la solución y1 en el
punto
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 7/18
x1 = x0+ h, se calculan los siguientes números:
),( 001 y x f hk !
)2
,2
( 1002
k y
h x f hk !
)
2
,
2
( 2003
k y
h x f hk !
),( 3004 k yh x f hk !
)22(
6
143210 k k k k K !
y entonces se toma:
001 K y y !
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 8/18
),( 111 y x f hk !
)
2
,
2
( 1112
k y
h x f hk !
)2
,2
( 2113
k y
h x f hk !
),( 3114 k yh x f hk !
)22(6
143210 k k k k !
012 K y y !
Del mismo modo, se calcula el valor aproximado de la
solución, y2, en el punto x2 = x1 + h:
Y así, sucesivamente
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 9/18
1)0( ; 2 !! y y xdx
dy
2.02.0001 !!! h x x
Ejemplo 1
Utilizar el método de Runge-Kutta con el problema
siguiente para calcular la solución aproximada en x =0.2 y x =0.4:
h = 0.2:
),(001
y x f hk !
2.0)102(2.0!v!
)2
,2
( 1002
k y
h x f hk ! )1.01,1.00(2.0 ! f
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 10/18
26.01.11.022.02 !v!k
)2,2(2
003
k
y
h
x f hk ! )13.1,1.0(2.0 f !
266.013.11.022.03 !v!k
),( 3004 k yh x f hk ! )266.1,2.0(2.0 f !
3332.0266.12.022.04 !v!k
2642.0)22(6
143210 !! k k k k
2642.1001 !! K y y
4.02.02.012 !!! h x x
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 11/18
),( 111 y x f hk ! 33284.0)2642.12.02(2.0 !v!
)2,2(
1
112
k
y
h
x f hk ! 40612.0)43062.1,3.0(2.0 !! f
)2
,2
( 2113
k y
h x f hk ! 41345.0)46726.1,3.0(2.0 !! f
),( 3114 k yh x f hk ! 49553.0)67765.1,4.0(2.0 !! f
41125.0)22(6
143210 !! k k k k K
67545.141125.02642.1012 !!! K y y
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 12/18
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 13/18
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
* To change this template, choose Tools | Templates* and open the template in the editor.
*/
/**
*
* @author JOSE MANUEL*/
public class RK {
public static double func(double x, double y)
{
return //-2*x^3+12*x^2-20*x+8.5;
-2*Math.pow(x, 3)+12*Math.pow(x, 2)-20*x+8.5;
}
public static void reportar(double x, double y, int i)
{
System.out.println("\t\t" +i +"\t\t" +x +"\t\t" +y );
}
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 14/18
public static int menu()
{
int opc=0;do
{
BufferedReader br = new BufferedReader( new
InputStreamReader(System.in));
try
{System.out.println("SELECCIONE OPCION");
System.out.println("=================");
System.out.println("1.Metodo de Runge Kutta");
System.out.println("2.Salir");
System.out.print("Opcion:");opc=Integer.parseInt(br.readLine());
}catch(Exception e){e.getMessage();}
}while(opc<1||opc>2);
return opc;
}
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 15/18
public static void Kutta(){
double x0,y0,xf,yf,h,k1,k2,k3,k4;
int n,i;
System.out.println("Metodo de Runge Kutta");
System.out.println("---------------------");BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
try
{
System.out.print("Ingrese el valor de x0:
");x0=Double.parseDouble(br.readLine());System.out.print("Ingrese el valor de y0:
");y0=Double.parseDouble(br.readLine());
System.out.print("Ingrese el valor de xf:
");xf=Double.parseDouble(br.readLine());
do{
System.out.print("Ingrese el numero de subintervalos a emplear:");n=Integer.parseInt(br.readLine());
}while(n<=0);
h=(xf-x0)/n;
System.out.println("");
System.out.println("\t\t" +"I" +"\t\t" +"Xi" +"\t\t" +"Yi" );
System.out.println("\t\t" +"-" +"\t\t" +"-" +"\t\t" +"-" );
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 16/18
for(i=1;i<=n;i++)
{
k1=func(x0,y0);
k2=func(x0+h/2,y0+h*k1/2);
k3=func(x0+h/2,y0+h*k2/2);k4=func(x0+h,y0+h*k3);
y0=y0+(k1+2*k2+2*k3+k4)*h/6;
x0=x0+h;
reportar(x0,y0,i);
}
System.out.println("El valor de Yf: " +y0);
}catch(Exception e){e.printStackTrace();}
}
public static void terminar()
{System.out.println("Gracias por usar el programa");
}
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 17/18
public static void main (String[]args)
{int opc;
do
{
opc=menu();
switch(opc)
{case 1: Kutta(); break;
case 2: terminar();break;
}
}
while(opc!=2);
}
}
5/7/2018 Metodo de Runge Kutta 4 Jml - slidepdf.com
http://slidepdf.com/reader/full/metodo-de-runge-kutta-4-jml 18/18
Conclusió
n
El método de runge kutta es empleado para la resolución de ecuaciones
diferenciales. Los métodos Runge-Kutta o métodos Runge-Kutta-
Fehlberg. Consiste en ir aproximando la solución de la ecuación
mediante dos algoritmos Runge-Kutta de órdenes diferentes, para así
mantener el error acotado y hacer una buena elección de paso.
El método de Runge Kutta de cuarto orden es una serie de algoritmos
para calcular aproximaciones numéricas.
Recommended