Está en la página 1de 4

UNIVERSIDAD PEDAGOGICA NACIONAL

METODOS MATEMATICOS EN LA ENSEÑANZA DE LAS CIENCIAS


LABORATORIO DE MATLAB, No 5

SOLUCION NUMÉRICA DE ECUACIONES DIFERENCIALES

Se pueden aplicar los siguientes comandos: ode23, ode45 y otros. La sintaxis de los comandos es
la misma, así que tomaremos uno de ellos.
Comando: ode23
Sintaxis: ode23('F',TSPAN,Y0)
TSPAN = [T0 TFINAL] (intervalo de interés)
F: función que define una edo de primer orden o un sistema de edo de primer orden
Y0: condiciones iniciales, puede ser un vector

Ejemplos:
1. Resolver numéricamente la siguiente ecuación diferencial de segundo orden

2
d x dx
2
 5  25 x  25
dt dt
dx ( 0 )
x (0 )  0 ,  0
dt
Para aplicar un método numérico primero transformamos el problema a un sistema de
ecuaciones diferenciales de primer orden.

dx 1
 x2
dt
dx
 25  5 x 2  25 x 1
2

dt
x1 (0 )  0 , x 2 (0 )  0

Ahora escribimos la función MATLAB, para ese sistema de ecuaciones de primer orden:

function xdot=sismec(t,x);
xdot=[x(2);(25-5*x(2)-25*x(1))];

Luego desde el espacio de trabajo o como un programa MATLAB resolvemos así:


t0=0; tfinal=3;tspan=[t0 tfinal];x0=[0 0];
[t,x]=ode23('sismec',tspan,x0);
plot(t,x(:,1),'r');hold on;plot(t,x(:,2));
xlabel('t');ylabel('x, dx/dt');
3

2.5

1.5
x, dx/dt

0.5

-0.5
0 0.5 1 1.5 2 2.5 3
t

En t se almacenan los valores de t y en x los valores de la solución, luego se pueden


manipular esos valores, por ejemplo para producir un grafico de las soluciones. Observe que
la solución que nos interesa es x1.

2. Con la información de la figura se plantea el sistema de ecuaciones diferenciales que


describe las cantidades de sal, y , que hay en un instante cualquiera en los
tanques respectivamente.

El volumen en cada tanque, en el instante esta dado por:

V 2 ( t )  v 2  ( F1  F 3  F 2  F 4 ) t

V 3 (t )  v 3  ( F 2  F3  F s ) t
Donde es la cantidad de solución inicial en el tanque
El sistema de ecuaciones diferenciales resultante, asumiendo mezcla completa, es:

Sustituyendo las funciones obtenemos el siguiente problema de valor inicial:


A continuación analizamos los siguientes casos:
Caso 1:
El volumen en cada tanque se mantiene constante. Por ejemplo, supongamos que ,
, , , , , y
.
Subcaso 1:
La alimentación al tanque 1 es con agua pura, es decir, . Si suponemos que
.
Utilizando el modelo anterior y sustituyendo cada dato, obtenemos el siguiente sistema:

Observe que el volumen en cada tanque se mantiene constante. Para resolver el sistema en
MATLAB lo hacemos de la siguiente manera (aproximación numérica):
Crear la siguiente función, en el editor, que contiene el sistema de ecuaciones diferenciales:
function sised=tanques(t,x);
sised=[-0.08*x(1)+0.0133*x(2);0.08*x(1)-0.0666*x(2)+0.02*x(3);...
0.05333*x(2)-0.08*x(3)];
Luego escriba el siguiente programa con las condiciones iniciales e intervalo de tiempo de
interés:
t0=0; tfinal=100;
x0=[5 7 6];
[t,x]=ode23('tanques',t0,tfinal,x0);
plot(t,x)
Cantidad de sal en cada tanque
8
Tanque 1
7 Tanque 2
Tanque 3

4
x

0
0 10 20 30 40 50 60 70 80 90 100
t

(como es un sistema lineal de edo, puede ser resuelto analíticamente con dsolve)
Subcaso 2:
El tanque 1 es alimentado con salmuera. Observemos, por ejemplo, para y
. El sistema resultante es:

Efectué la modificación correspondiente en la ecuación en la función que ya creo:


Cantidad de sal en cada tanque
800
Tanque 2
700 Tanque 1
Tanque 3
600

500

400

x
300

200

100

0
0 20 40 60 80 100 120 140 160 180 200
t

Subcaso 3:
El tanque 1 es alimentado con salmuera, pero inicialmente en cada tanque hay agua.
Observemos, por ejemplo, para y . El sistema resultante es:

Efectué las modificaciones en las condiciones iniciales, para obtener:


Cantidad de sal en cada tanque
800
Tanque 2
700 Tanque 1
Tanque 3
600

500

400
x

300

200

100

0
0 20 40 60 80 100 120 140 160 180 200
t

Tarea: Analice los casos, muestre ejemplos, para los casos donde el volumen de solución en
cada tanque puede variar en función del tiempo.

También podría gustarte