Trabajo Final Ecuaciones Diferenciales Ordinarias Seminario de Ecuaciones Diferenciales Ordinarias Facundo Ramón
RESUMEN Resolución de un sistema de ecuaciones diferenciales de primer orden por método de Runge Kutta de 4to orden con Software MatLab R2010a
Universidad Nacional de Tres de Febrero Ingeniería de Sonido 2do Cuatrimestre 2011
Seminario Ecuaciones Diferenciales Ordinarias
Ramón Facundo
Objetivo El objetivo del trabajo es obtener el valor de las funciones !! (!) e !! (!) en ! = 0.5 partiendo del siguiente sistema de ecuaciones diferenciales ordinarias de primer orden con valores iniciales. !!! ! = −20!! + 10!! + 100 !" !!! ! = 10!! − 20!! !" !! 0 = !! 0 = 0 (1) Que responde al comportamiento de la corriente del siguiente circuito.
E=100[v], R=10[Ω] y L=1[h].
Desarrollo del código
Se utlizó el método Runge Kutta de 4to orden. Primero se realizó un código simple con un único loop for que resuelve el sistema y luego se lo comparó con la función ODE45 de la librería de MatLab. El primer código define en la variable h el paso de la discretización, y luego define el valor inicial de los vectores i1 e i3 según la información del enunciado. Los vectores i1 e i3 serán los valores de la corriente en función del tiempo al finalizar el algoritmo. Posteriormente, ingresa en un loop for en el que se calculan los k1, k2, k3 y k4 de las funciones i1 e i3, y se obtiene el siguiente valor de i1 e i3, habiendo dado saltos definidos por h. De esta manera, a medida que el loop for avanza se generan los vectores i1 e i3 que contienen, en la posición 0.5/h, el valor de !! (!) e !! (!) en ! = 0.5 segundos. El segundo código precisa la generación de una función, en este caso llamada fun, en la cual se declaran el sistema de ecuaciones que se quiere resolver y los valores iniciales del problema y, por medio de la función ODE45, se obtienen los vectores deseados. En ambos casos se grafica la solución. Se eligió un intervalo de resolución de 0 a 1 segundo en ambos casos. Y por último, se solicita el valor de las funciones funciones !! (!) e !! (!) en ! = 0.5 para comprar los resultados entre ambos métodos.
Universidad Nacional de Tres de Febrero – Ing. De Sonido
1
Seminario Ecuaciones Diferenciales Ordinarias
Ramón Facundo
Códigos y resultados Código 1 %% Runge Kutta de Orden 4 h=0.01; %Paso i1(1)=0; i3(1)=0;
%Condición inicial para i1 %Condición inicial para i2
%Generación de los vectores i1 e i3 for i=1:1/h k11=-20*i1(i)+10*i3(i)+100; k31=10*i1(i)-20*i3(i); k12=-20*(i1(i)+1/2*k11*h)+10*(i3(i)+1/2*k31*h)+100; k32=10*(i1(i)+1/2*k11*h)-20*(i3(i)+1/2*k31*h); k13=-20*(i1(i)+k12*h)+10*(i3(i)+k32*h)+100; k33=10*(i1(i)+k12*h)-20*(i3(i)+k32*h); k14=-20*(i1(i)+k13*h)+10*(i3(i)+k33*h)+100; k34=10*(i1(i)+k13*h)-20*(i3(i)+k33*h); i1(i+1)=i1(i)+(h/6)*(k11+2*k12+2*k13+k14); i3(i+1)=i3(i)+(h/6)*(k31+2*k32+2*k33+k34); end %Ploteo y=0:h:1; %Vector de referencia plot(y,i1,'b-',y,i3,'r-.') grid %Resultados valor1=i1(0.5/h) valor2=i3(0.5/h)
El código entrega los siguientes valores. valor1 = 6.6263 valor2 = 3.2929
Es decir, !! 0.5 = 6.6263 e !! 0.5 = 3.2929. Y se obtiene el siguiente gráfico.
Universidad Nacional de Tres de Febrero – Ing. De Sonido
2
Seminario Ecuaciones Diferenciales Ordinarias
Ramón Facundo
Código 2 %%Función para ODE45 function dy=fun(t,y) dy=zeros(2,1); dy(1)=-20.*y(1)+10.*y(2)+100; dy(2)=10.*y(1)-20.*y(2); %%Resolución con funciones de MatLab error=odeset('RelTol',1e-4); [T,Y]=ode45(@fun,[0 1],[0 0],error); plot(T,Y(:,1),'-',T,Y(:,2),'-.') grid k=0; for i=1:length(T) if T(i)<=0.5 k=k+1 end end Y(k+1,:)
El código entrega los siguientes valores: valor1 = 6.6345 valor2 = 3.3012
Muy similares a los entregados por el código 1. Y también devuelve un gráfico similar.
Comprobación analítica Dado que la fuente del circuito es de tensión continua, los inductores no ofrecen resitencia teórica al paso de la corriente, por lo tanto la corriente final del circuito (superado el estado estacionario) depende únicamente del voltaje de la fuente y los valores de las resistencias. La resistencia total de este circuito es de 15[Ω] y la tensión 100[v], entonces por Ley de Ohm, la corriente total del circuito es de 6,66[A]. Por Ley de Kirchhoff tenemos que !! = !! + !! y, como ambas ramas tienen iguales resistencias, se
Universidad Nacional de Tres de Febrero – Ing. De Sonido
3
Seminario Ecuaciones Diferenciales Ordinarias
Ramón Facundo
!,!! !
deduce que !! = ! = 3,33[!]. En 0.5 segundos el circuito prácticamente llega a su estado estacionario y las corrientes se mantienen en esos valores hasta que varíe la fuente.
Bibliografía
MatLab R2010a, Matlab Getting Started Guide, The Mathworks Inc. 2010 Seminario de Ecuaciones Diferenciales Ordinarias, Material y apuntes del seminario, UNTREF, Ing. De Sonido 2011 Dennis G. Zill, Ecuacuines diferenciales con aplicaciones de modelado 6ta edición, Ed. Thomson, 1997
Tabla de contenido Objetivo .................................................................................................................... 1 Desarrollo del código ................................................................................................. 1 Códigos y resultados .................................................................................................. 2 Código 1 ....................................................................................................................................................................... 2 Código 2 ....................................................................................................................................................................... 3 Comprobación analítica ............................................................................................. 3 Bibliografía ................................................................................................................ 4
Universidad Nacional de Tres de Febrero – Ing. De Sonido
4