runge kuta matlab
DESCRIPTION
Metodo de Runge Kuta programado en MatlabTRANSCRIPT
Metodo de Runge-Kutta de cuarto orden
Uno de los metodos mas utilizados para resolver numericamente problemas de ecuaciones diferenciales ordinarias con condiciones iniciales es el metodo de Runge- Kutta de cuarto orden, el cual proporciona un pequeno margen de error con respecto a la solucion real del problema y es facilmente programable en un software para realizar las iteraciones necesarias.
El metodo de Runge- Kutta es sumamente util para casos en los que la solucion no puede hallarse por los metodos convencionales (como separacion de variables). Hay variaciones en el metodo de Runge-Kutta de cuarto orden pero el mas utilizado es el metodo en el cual se elige un tamano de paso h y un numero maximo de iteraciones n tal que
y se realiza la iteracion. Para i = 0…n. La solucion se da a lo largo del intervalo (to,to+h)
Codigo en Matlab:
%%Metodo de Runge Kuta 4to Orden
h=0.001;% tamaÒo de paso
t0=0;
x=[0;-1]; %condiciones iniciales
t=0:h:5;
for k=1:(length(t)-1)
% t(k+1)=t(k)+t0+k*h;
k1=h*f(t(k),x(:,k));
k2=h*f(t(k)+(h/2),x(:,k)+(k1/2));
k3=h*f(t(k)+(h/2),x(:,k)+(k2/2));
k4=h*f(t(k)+h,x(:,k)+k3);
promedio=(k1+2*k2+2*k3+k4)/6;
x(:,k+1)=x(:,k)+promedio;
end
%ploteo de resultados
sola=(-1/3)*(sin(3*t));
plot(t,x(1,:),'o',t,sola,'r')
%funcion ejemplo
function dx = f(t,x)
dx=[x(2);-9*x(1)];
end
end
Resultados: