Download - Runge Kuta Matlab

Transcript
Page 1: Runge Kuta Matlab

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));

Page 2: Runge Kuta Matlab

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: