Вы находитесь на странице: 1из 2

Solucin de Ecuaciones Diferenciales en MATLAB

Buscando un tutorial que me dijera como resolver ecuaciones diferenciales de segundo orden en Matlab, la verdad no encontr nada como bueno, as que aqu traigo un tutorial para que puedan escribir el cdigo apropiado y el significado de este. MATLAB tiene ciertas funciones o solucionadores de ellas, basadas en los metodos Runge-Kutta, que pueden ser usados para la solucin de una ecuacin diferencial lineal de primer orden. La funcin de MATLAB ode23 es la funcin que vamos a usar para poder resolver la ecuacin. Para resolver un sistema de primer orden y'=f(t,y) usando la funcin de MATLAB ode23, el siguiente comando puede ser usado: >>[t,y]=ode23('dfunc', tspan. y0) donde 'dfunc' es el nombre de la funcin m-file donde deben estar los datos de t,y y los cuales deben estar denotados por el vector columna dy/dt, que es f(t,y). El nmero de vector columna debe ser igual al nmero de ecuaciones de primer orden. El vecto tspan debera contener los valores iniciales y finales de la variable independiente t y opcionalmente el intervalo que ud desee. El vector y0 debe contener los valores iniciales de y(t). Note que la funcin m-file debe contener dos argumentos de entrada: t y y, incluso si la funcin no involucra t. Un proceso similar se puede hacer con la funcin ode45. Ahora voy a darles un ejemplo de como resolver la ecuacin diferencial: my''+cy'+ky=0 que representa el movimiento amortiguado de un sistema. Vamos a decir que c=1, k=2 y m=1 con sus debidas unidades. Las condiciones iniciales son: y(0)=10 dy/dt(0)=y'(0)=0. Primero q todo, se tiene que dividir todo por m, para que quede y'' libre. Entonces queda as la ecuacin. y''+(c/m)y'+(k/m)y=0, despejamos y'', quedando as: y''=- (c/m)y' - (k/m)y Bien, lo siguiente es que se debe crear la funcin que contenga a t y y como variales. Pero MATLAB resuelve ecuaciones de primer orden, as que tenemos que llamar y2=y' y y''=y2'. Ahora si, ya teniendo esto claro, vamos al editor de MATLAB y all empezaremos a escribir el cdigo de f(t,y).

%dfunc function f = dfunc(t,y) %Funcin que depende de t y y f = zeros (2,1); %Vector columna con el nmero de ecuaciones a resolver c=1; %Constante de amortiguamiento [Ns/m] k=2; %Contante de elasticidad [N/m] m=1; %Masa del sistema f(1)=y(2); %Ecuacin donde decimos que y(2) es la derivada de y(1) f(2)=-(c/m)*y(2)-(k/m)*y(1); %Ecuacin a resolver. Ahora, esta es nuestra funcin f(t,y) Ahora, creamos un nuevo m-file donde llamaremos a esta funcin que acabamos de crear para que la resuelva con la funcin ode23. %Ejemplo.m Este es el nombre del archivo m-file tspan=[0: 0.01: 5]; %Vector de la variable independiente y0=[10,0]; %Condiciones iniciales del sistema [t,y] = ode23 (@dfunc, tspan, y0); [t,y] plot (t, y(:,1)'-',t, y(:,2),'-'); %Grfica de y & y' Esto es para que queden de distinto color title ('Solucin'); %Titulo del grfico legend ('y(1)','y(2)') %Leyenda del grfico xlabel ('t'); %Nombre del eje x ylabel ('y(1) y y(2)'); %Nombre del eje y hold on As que solo tienen que darle run y tendrn los datos y la grfica correspondiente. ESPERO QUE LES HAYA SIDO DE GRAN Si algo no les queda claro, no duden en comentar!

Вам также может понравиться