Metodos Numericos Metodo De Runge-Kutta
FACULTAD DE INGENIERÍA
MÉTODOS NUMERICOS
MÉTODO DE RUNGE-KUTTA
SEGUNDO Y TERCER ORDEN
MÉTODO DE RUNGE-KUTTA
El método de Runge-Kutta es un método numérico de resolución de ecuaciones diferenciales que surge como una mejora del método de Euler. El método de Euler se puede considerar como un método de Runge-Kutta de primer orden, el de Heun, es unmétodo de Runge-Kutta de orden dos.
El método de Runge-Kutta logra una exactitud de una serie de Taylor pero sin requerir el cálculo de derivadas de orden superior. Existen muchas variaciones, pero todas pueden ser representadas con la forma generalizada de la ecuación:
yi+1=yi+θxi,yi,hh (1)
Donde θxi,yi,h es una función de incremento, interpretada como una pendiente representativasobre el intervalo. La función de incremento en su forma general es:
θ=a1k1+a2k2+…+ankn (2)
En donde a1,a2,…,an son constantes, y k1,k2,…,kn son:
k1=fxi,yi
k2=f(xi+p1h,y1+q11k1h)
k3=f(xi+p2h,yi+q21k1h+q22k2h)
kn=f(xi+pn-1h,yi+qn-1,1k1h+qn-1,2k2h+…+qn-1,n-1kn-1h)
Es posible concebir varios tipos de métodos Runge-Kutta al emplear diferentes números de términos en la funciónincremento como la especificada por n. El método Runge-Kutta de primer orden con n = 1 es, de hecho, el método de Euler. Una vez que se elige n, se evalúan las a, p y q al igualar la ecuación (1) a los términos en la serie de expansión de Taylor. Así, al menos para las versiones de orden inferior, el número de términos n con frecuencia representa el orden de la aproximación.
MÉTODO DE RUNGE-KUTTADE SEGUNDO ORDEN
La ecuación de segundo orden de este método es:
yi+1=yi+a1k1+a2k2h
Donde:
k1=f(xi,yi)
k2=f(xi+p1h,yi+q11k1h)
Los valores para a1,a2,p1 y q11 se evalúan igualando la ecuación general de segundo orden con la expansión de la serie de Taylor. Para realizar esto, se desarrollaron tres ecuaciones para evaluar las cuatro constantes desconocidas. Las tres ecuaciones son:a1+a2=1
a2p1=12
a2q11=12
Como tenemos tres ecuaciones con cuatro incógnitas, debemos suponer el valor de a2 para obtener el valor de las demás. Por eso existen un número infinito de métodos Runge-Kutta de segundo orden, pero los más usados son:
* Método de Heun con un solo corrector (a2=1/2). Cuando a2=1/2, entonces a1=1/2 y p1=q11=1.Sustituyendo la ecuación queda:yi+1=yi+11k1+12k2h
k1=f(xi,yi)
k2=f(xi+h , yi+k1h)
* Método del punto medio (a2=1/2). Entonces a1=0 y p1=q11=1/2.
yi+1=yi+k2h
k1=f(xi,yi)
k2=f(xi+12h , yi+12k1h)
* Método de Ralston (a2=2/3). Entonces a1=1/3 y p1=q11=3/4.
yi+1=yi+13k1+23k2h
k1=f(xi,yi)
k2=f(xi+34h , yi+34k1h)
MÉTODO DE RUNGE-KUTTA DE TERCER ORDEN
Cuando n=3 se puede resolver de manera similar almétodo de segundo orden. De ahí resultan seis ecuaciones con ocho incógnitas, y se deben elegir aleatoriamente dos de las incógnitas para obtener los valores restantes. Una de las versiones más comunes de este método es cuando se utilizan los valores de
a2=1 ,a1=0 ,p1=12 ,q11=12 , p2=1 , q21=-1 ,q22=2
La ecuación queda:
yi+1=yi+16k1+4k2+k3h
k1=fxi,yi
k2=f(xi+p1h,y1+q11k1h)k3=f(xi+p2h,yi+q21k1h+q22k2h)
RUNGE-KUTTA TERCER ORDEN EN MATLAB
clear all
clc
disp('METODO RUNGE-KUTTA TERCER ORDEN')
syms x y
f=input('Ingrese la funcion en terminos de x,y = ');
x1=input('Ingrese el valor inicial de x= ');
x2=input('Ingrese el valor final de x= ');
h=input('Ingrese h(separacion entre valores de x)= ');
y0=input('Ingrese la condicion inicial de y(0)= ');
x=[x1:h:x2];
L1=length(x);y1(1)=y0;
for i=2:L1
k11=subs(f,'y',y1(i-1));
k1=subs(k11,'x',x(i-1))
k22=subs(f,'y',(y1(i-1))+((1/2)*k1*h));
k2=subs(k22,'x',x(i-1)+((1/2)*h))
k33=subs(f,'y',y1(i-1)-(k1*h)+((2*k2*h)));
k3=subs(k33,'x',(x(i-1)+h))
y1(i)=y1(i-1)+((1/6)*(k1+(4*k2)+k3)*h)
end
TERCERORDEN=[y1]
METODO DE HEUN EN MATLAB
clear all
clc
disp('METODO DE HEUN')
syms x y...
Regístrate para leer el documento completo.