Está en la página 1de 30

INSTITUTO TECNOLGICO SUPERIOR

DE IRAPUATO







CURSO DE MATLAB PARA
INGENIERA BIOQUMICA













JOS LUIS SOTO ALCOCER
MARZO DE 2009
1
I INTRODUCCIN

1.1 Definicin y usos
Matlab es un lenguaje de computacin tcnica de alto desempeo, que emplea
la computacin donde los problemas y las soluciones son expresados en una
notacin matemtica familiar. Los usos tpicos de Matlab incluyen: a)
Computacin y matemticas, b) Desarrollo de algoritmos, c) Manejo de datos,
d) Modelacin, simulacin y desarrollo de prototipos, e) Anlisis de datos,
exploracin y visualizacin, f) Grficos de ciencia e ingeniera, g) Desarrollo de
aplicaciones, que incluyen construccin de interfaces para graficacin.

1.2 Entorno de Matlab
El despliegue de inicio de la pantalla de Matlab muestra:





Figura 1.1 Despliegue de inicio de Matlab



Ventana de
comandos
Apuntador
y cursor
Ventana de
directorio actual
Ventana de
historial de
comandos
Recuadro de
directorio actual

Barra de mens Barra estndar
2
1.3 Variables, nmeros y operadores en Matlab
Variables:
A diferencia de otros lenguajes de programacin, matlab no requiere de
declaracin de variables o dimensionamiento de matrices, pues las crea
automticamente cuando encuentra el nombre por primera vez, debe
recalcarse que distingue entre asignacin de variables con letras minsculas y
letras maysculas, ejemplo:

>> metodo=5
>> METODO=23

Si se desea que Matlab no despliegue valores de variables o matrices, es
necesario terminar cada sentencia con punto y coma, ejemplo:

>>concentracion=100;

Nmeros:
Para el almacenamiento de nmeros internamente se usa un formato de
precisin de aproximadamente 16 dgitos en un intervalo entre 10
-308
a 10
308
,
denominado long. Para expresar la escala de la potencia 10 se usa la letra e
o E; los nmeros imaginarios debern acompaarse ya sea de la letra i o j,
algunos ejemplos de nmeros en Matlab son:

5 2.7183 1.55E15 2.23E-12 6.67j

Operadores:
Operadores aritmticos
suma, +; resta, -; multiplicacin, *; divisin, /; recproco, \; potencia ^

Operadores de elemento a elemento
suma,.+; resta, .- ; multiplicacin, .*, divisin, ./; recproco, .\; potencia .^

Operadores lgicos
and, or, not, xor, any, all
3
1.4 Funciones internas
Al igual que cualquier paquete matemtico se cuenta con funciones
matemticas del tipo trigonomtrico, exponencial, complejas y redondeo, las
cuales se citan a continuacin en la tabla siguiente:

Tabla 1.1 Funciones matemticas
Trigonomtricas
sin seno
sinh seno hiperblico
asin arco seno
asinh arco seno hiperblico
cos coseno
cosh coseno hiperblico
acosh arco coseno hiperblico
tan tangente
tanh tangente hiperblico
atan arco tangente
atan2 arco tangente en los 4 cuadrantes
atanh arco tangente hiperblica
sec secante
sech secante hiperblica
asec arco secante
asech arco secante hiperblica
csc cosecante
csch cosecante hiperblica
acsc arco cosecante
acsch arco cosecante hiperblica
cot cotangente
coth cotangente hiperblica
acot arco cotangente
acoth arco cotangente hiperblica


4
Tabla 1.1 Funciones matemticas
(continuacin)
Exponenciales
exp exponencial
log logaritmo natural
log10 logaritmo de base 10
log2 logaritmo de base 2
pow2 potencia de base 2
sqrt raz cuadrada
conj complejo conjugado
imag parte imaginaria del nmero complejo
real parte real del nmero complejo
Redondeo y residuo
fix complejo conjugado
floor redondea a menos infinito
ceil redondea a ms infinito
round redondea al entero ms cercano
mod residuo de la divisin
rem residuo
sign signo


1.5 Grficos en dos y tres dimensiones
Instruccin plot
Sintaxis >>plot(x,y)
Ejemplo
>>x=[0:pi/100:2*pi];
>>y=sin(x);
>>plot(x,y)

El ejemplo anterior generara la funcin seno como se muestra a continuacin,
las leyendas de los ejes y ttulos se pueden editar desde el entorno grfico

5

Figura 1.2 Grfica de la funcin seno en Matlab

Instruccin hold on
Permite la graficacin de varias funciones a la vez

Ejemplo
>> x=[0,0];
>> y=[-5,5];
>> plot(x,y);
>> hold on;
>> x=[-5,5];
>> y=[0,0];
>> plot(x,y);
>> x=[-5:0.5:5];
>> y=sqrt(1-x);
>> plot(x,y);
>>plot(x,-y);

Esta serie de instrucciones permitir desplegar la figura de una parbola, con
los ejes respectivos X y Y; si se desea editar puede hacerse desde la ventana
de la misma grfica


6

Figura 1.3 Grfica de la parbola x y = 1 en Matlab

Una manera alterna de realizar varias grficas en una misma ventana de
despliegues grficos, puede realizarse de la manera como indica el ejemplo
siguiente.
>> t=[0:pi/100:pi];
>> x=cos(t);
>> y=sin(t);
>> plot(t,x,'c-',t,y,'m--');
lo cual producira
0 0.5 1 1.5 2 2.5 3 3.5
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
t
f


seno
coseno

Figura 1.4 Grfica del seno y coseno
7
Grficas en tres dimensiones
En este tipo de grficas se emplean las instrucciones mesh y surf, tal como se
observa en el siguiente ejemplo:

>> [x,y]=meshgrid(-10:0.5:10);
>> r=sqrt(x.^2+y.^2);
>> z=sin(r)./r;
>> mesh(x,y,z);

-10
-8
-6
-4
-2
0
2
4
6
8
10
-10
-8
-6
-4
-2
0
2
4
6
8
10
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x
y
z

Figura 1.5 Empleo de la instruccin mesh

>> surf(x,y,z);
-10
-8
-6
-4
-2
0
2
4
6
8
10
-10
-8
-6
-4
-2
0
2
4
6
8
10
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

Figura 1.6 Empleo de la instruccin surf


8
II SOLUCIN DE ECUACIONES NO LINEALES

2.1 Races de polinomios
Para encontrar todas las races de un polinomio, Matlab cuenta con funciones
internas, que permite encontrarlas de una manera rpida y sencilla.

Funcin roots
Sintaxis >>variable=roots([ p
n
p
2
p
1
p
0
]);
o bien >>p=[ p
n
p
2
p
1
p
0
];
>>variable=roots(p);
Ejemplo: encontrar las races del polinomio 0 8 6 7 6
2 3 4
= + + x x x x .

>> p=[1 6 7 -6 -8];
>> raices=roots(p)
raices =
-4.0000
1.0000
-2.0000
-1.0000

Funcin polyval
Verifica que las races encontradas de un polinomio sean satisfactorias
Sintaxis >>polyval([p
n
++p
2
+p
1
+p
0
], variable)
Ejemplo: con respecto al ejemplo anterior

>> polyval(p,raices)
ans =
1.0e-012 *
0.1332
0.0071
0.0053
-0.0036

9
Funcin solve
Sintaxis >>solve(ecuacin,variable_a_resolver)
El uso de esta funcin se ilustra mediante el ejemplo siguiente:
Ejemplo: resuelva la ecuacin del ejemplo anterior.
>> solve('x^4+6*x^3+7*x^2-6*x-8',x)
ans =
-1
1
-2
-4
o bien >> solve('x^4+6*x^3+7*x^2-6*x-8') solamente

Ejemplo: Calcule el volumen molar a 100
o
C y 50 atm para los gases dados en
la tabla siguiente, mediante la ecuacin de estado de Redlich-Kwong dada por
la expresin:
( )
( ) RT b V
b V V T
a
P =

+
+
2 / 1

Donde:
P: presin en atm
T: temperatura en K
V: volumen molar en l/gmol
R: constante universal de los gases en atm l/gmol K
Los valores de a y b se calculan mediante:
c
c
c
c
P
RT
. b
P
T R
a 0867 0 , 4278 . 0
5 . 2 2
= =
Para el oxgeno P
c
=49.70 atm, T
c
=154.40 K.

>> t=373;
>> p=50;
>> pc=49.7;
>> tc=154.40;
>> r=0.0821;
>> a=0.4278*r^2*tc^2.5/pc;
10
>> b=0.0867*r*tc/pc;
>> a
a =
17.1866
>> b
b =
0.0221
>> sol=solve('(50+17.1866/(373^0.5*v*(v+0.0221)))*(v-0.0221)-0.0821*373','v');
>> double(sol)
ans =
0.6073
0.0026 + 0.0253i
0.0026 - 0.0253i

Advierta que la solucin se asigna a la variable sol, para despus desplegarla
en forma de punto flotante con la funcin double. Otra opcin para resolver el
problema, es mediante el empleo de la instruccin syms la cual le da un valor
simblico a alguna variable.

Instruccin syms
Sintaxis >>syms nombre_variable
Ejemplo:
>> syms v;
>> t=373;
>> p=50;
>> pc=49.7;
>>tc=154.4;
>> r=0.0821;
>> a=0.4278*r^2*tc^2.5/pc
a =
17.1866
>> b=0.0867*r*tc/pc
b =
0.0221
11
>> f=(p+a/(t^0.5*v*(v+b)))*(v-b)-r*t;
>>sol= solve(f);
>> double(sol)
0.6073
0.0026 + 0.0253i
0.0026 - 0.0253i




























12
III MATRICES Y SISTEMAS DE ECUACIONES LINEALES

3.1 Operaciones con matrices y solucin de sistemas lineales
En este captulo se revisarn todas las operaciones realizadas con matrices,
adems de la solucin de sistemas de ecuaciones lineales, que han sido
estudiados en cursos de matemticas.

3.2 Vectores
La forma de declarar vectores en Matlab se muestra a continuacin.
Syntaxis >>variable=[nmero 1, nmero 2,, nmero n]
o bien >>variable=[nmero1 nmero 2 nmero n];
Donde los nmeros no han sido separados por ningn signo de puntuacin.
Ejemplo:

>> z=[2 4 5 6 7];
si se omite el punto y coma, se despliegan los valores del vector, como se
haba advertido anteriormente.
>> z=[2 4 5 6 7]
z =
2 4 5 6 7

3.3 Matrices
Las matrices se designan segn la sintaxis presentada enseguida.
Sintaxis >>variable=[ vector1; vector2; ;vectorn]
Ejemplo

>> z=[[2 3 4];[1 2 3];[3 4 5]]
z =
2 3 4
1 2 3
3 4 5
Una forma ms simple es como se muestra
>> z=[2 3 4; 1 2 3; 3 4 5] (se han omitido los corchetes de los vectores)
13
z =
2 3 4
1 2 3
3 4 5

3.4 Transpuesta de una matriz
La transpuesta de una matriz designada como A ser A
Sintaxis >>z;
Ejemplo: la matriz transpuesta de la matriz que se cit anteriormente ser
>> z'
ans =
2 1 3
3 2 4
4 3 5

3.5 Determinante de una matriz
Sintaxis >>det (nombre_de_la_matriz)
Ejemplo:

>> A=[ 1 5 -8; 3 5 -2; 8 9 -1]
A =
1 5 -8
3 5 -2
8 9 -1
>> det(A)
ans =
52

3.6 Inversa de una matriz
Sintaxis >>inv(nombre_de _la_matriz)
Ejemplo: para la matriz A del ejemplo anterior

>> inv(A)

14
ans =
0.2500 -1.2885 0.5769
-0.2500 1.2115 -0.4231
-0.2500 0.5962 -0.1923

3.7 Multiplicacin de matrices
Sintaxis >>nombre_de_la_matriz_1*nombre_de_la_matriz_2
Ejemplo: considerar la misma matriz A.

>> A

A =
1 5 -8
3 5 -2
8 9 -1
>> B=inv(A)
B =
0.2500 -1.2885 0.5769
-0.2500 1.2115 -0.4231
-0.2500 0.5962 -0.1923
>> A*B
ans =
1.0000 0 0
0 1.0000 -0.0000
0 0.0000 1.0000

3.8 Solucin de sistemas de ecuaciones lineales
Como se sabe la solucin se fundamenta en el hecho siguiente
b A x I
b A x A A
b x A
* *
* *
1
1 1


=
=
=

(3.1)
Ejemplo: resolver el siguiente sistema de ecuaciones

15
4 2 3
40 6 5 8
18 6 4 2
3 2 1
3 2 1
3 2 1
= +
= + +
= + +
x x x
x x x
x x x


>> A=[2 4 6; 8 5 6; 3 1 -2];
>> b=[18; 40; 4];
>> x=inv(A)*b
x =
4.0000
-2.0000
3.0000
Observe que los elementos del vector b son separados por punto y coma, de
no haber realizado esto, se empleara para el clculo la transpuesta de b,
como se muestra

>> A=[2 4 6; 8 5 6; 3 1 -2];
>> b=[18 40 4];
>> x=inv(A)*b'
x =
4.0000
-2.0000
3.0000

3.9 Otras operaciones
La suma de matrices y la multiplicacin por un escalar no se han incluido por
ser demasiado obvias, de cualquier forma se introduce aqu la sintaxis.

Suma de matrices
>>nombre_de_la_matriz_1+nombre_de_la_matriz_2

Multiplicacin por un escalar
>>escalar*nombre_de_la_matriz


16
IV SOLUCIN DE SISTEMAS DE ECUACIONES NO LINEALES

4.1 Sistemas de ecuaciones no lineales
Los sistemas a los que se hacen referencia, implica una combinacin de lo que
se revis en los dos captulos anteriores, pues se resuelven sistemas del tipo
definido a continuacin.
( )
( )
( )
n n n
n
n
x x x f f
x x x f f
x x x f f
,..., ,
,..., ,
,..., ,
2 1
2 1 2 2
2 1 1
1
=
=
=
M

(4.1)

4.2 Funcin solve
Aqu, se refiere la sintaxis, para dos ecuaciones solamente, aunque puede
ampliarse para un sistema de ecuaciones cualquiera.
Sintaxis >>solve(ecuacin1,ecuacin2,variable_1,variable_2).
Ejemplo: resuelva el sistema de ecuaciones no lineales siguiente:
( )
( ) 0 * 2 ,
0 6 * 2 ,
2 2
2
2
1
= + =
= + =
y y x y x f
y x y x f

>> [x,y]=solve('2*x+y^2-6=0','x^2-y^2+2*y=0');
>> double([x,y])
ans =
-1.8705 - 0.0000i 3.1211 + 0.0000i
0.6252 - 0.0000i 2.1794 + 0.0000i
2.1095 - 0.0000i -1.3345 - 0.0000i
-4.8642 + 0.0000i -3.9659 + 0.0000i

4.3 Comprobacin de la solucin
Funcin inline
Verifica que las races encontradas de un sistema sean satisfactorias
Sintaxis nombre_variable=inline([ecuacin1; ecuacin2]).
Ejemplo: comprobar que las races del ejemplo anterior satisfagan el sistema.
>> f1f2=inline('[2*x+y.^2-6;x.^2-y.^2+2*y]')
17
f1f2 =
Inline function:
f1f2(x,y) = [2*x+y.^2-6;x.^2-y.^2+2*y]
>> f1f2(double(x),double(y))
ans =
1.0e-014 *
0.1776 + 0.0000i
0.1776 + 0.0000i
0 + 0.0000i
0
-0.0888 + 0.0000i
-0.0888 - 0.0000i
-0.0444 - 0.0000i
0.1776 - 0.0000i

4.4 Representacin grfica de la solucin
Se puede hacer uso de lo que se revis en el captulo 1 para ver grficamente,
la solucin.
>> [x,y]=meshgrid(-5:0.5:5);
>> z=x.^2-y.^2+2*y;
>> mesh(x,y,z);
>> hold on;
>> z=2*x+y.^2-6;
>> mesh(x,y,z);
>> z=0*x.*y;
>> mesh(x,y,z);
>>plot3([-1.8705,0.6252,2.1095,-4.8642],[3.1211,2.1794,-1.3345,-3.9659],
[0,0,0,0],'d');

La figura que aparece junto con los puntos de interseccin se muestra a
continuacin.



18
-5
0
5
-5
0
5
-40
-20
0
20
40
x
y
z

Figura 4.1 Interseccin entre planos

4.5 Otras funciones grficas
Funcin sphere
Realiza la grfica de una esfera.
Sintaxis >>[x,y,z]=sphere(numero).

Funcin cylinder
Realiza la grafica de un cilindro.
Sintaxis >>[x,y,z]=cylinder(numero).

Funcin meshc
Aade un mapa de contorno.
Sintaxis >>mesh(x,y,z)

Funcin hidden off
Efecta las grficas en forma transparente

19
V AJUSTE DE DATOS

5.1 Ajuste de datos
Frecuentemente es necesario ajustar datos experimentales a ciertas funciones
para crear un modelo matemtico que describa cierto fenmeno; el tipo de
funcin al cual pueden ajustarse puede ser de tipo lineal, polinomial o alguna
otra; en esta seccin revisaremos algunos de ellos.

5.2 Funciones de matlab para el ajuste de datos
Funcin polyfit
Syntaxis >>polyfit(var_independiente, var_dependiente, grado de ajuste)
Ejemplo:
> peso=[0:10:90]
peso =
0 10 20 30 40 50 60 70 80 90
>> calor_esp=[1 0.9 0.81 0.73 0.675 0.65 0.64 0.615 0.575 0.515]
calor_esp =
1.0000 0.9000 0.8100 0.7300 0.6750 0.6500 0.6400 0.6150
0.5750 0.5150
>> z=polyfit(peso,calor_esp,1)
z =
-0.0048 0.9267
La funcin que resulta es 9267 . 0 0048 . 0 + = x y

>> z=polyfit(peso,calor_esp,2)
z =
0.0000 -0.0089 0.9815
La funcin resultante en este caso es 9815 . 0 0089 . 0 0
2
+ = x x y

EL ajuste a cierto tipo de funciones se puede realizar dentro del entorno
grfico, mediante la instruccin plot; esto puede ilustrarse mediante el ejemplo
que se muestra a continuacin.

20
> plot(peso, calor_esp,'o--')
0 10 20 30 40 50 60 70 80 90
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
c
a
lo
r

e
s
p
e
c
if
ic
o
peso de cido ntrico



y = - 0.0048*x + 0.93
y = 4.6e-005*x
2
- 0.0089*x + 0.98
y = - 1.1e-006*x
3
+ 0.0002*x
2
- 0.014*x + 1
data 1
linear
quadratic
cubic

Figura 5.1 Ajuste de datos

La forma en que se desplegaron las ecuaciones, sus grficos y leyendas, fue
desde el entorno grfico, en la barra de menus, seleccionando

ToolsBasic Fitting

Dentro de este cuadro se selecciona las opciones linear, quadratic, cubic y
show equations.


Figura 5.2 Ventana del Basic fitting de matlab
21
5.3 Instruccn cftool
Al invocarse la instruccin despliega una ventana en la cual pueden realizarse
los ajustes ya analizados y otros correspondientes a otras funciones, para
desplegar la ventana y comenzar a trabajar sobre ella se teclea.
>>cftool;

La manipulacin de datos para el ajuste es extremadamente sencilla y no
necesita una descripcin aparte.

5.4 Otras funciones de ajuste
Para observar el desplegado de otras funciones de ajuste, puede usarse la
instruccin siguiente
>> cflibhelp;
Con dicha instruccin se mostrar la mayor parte de las funciones a las cuales
los datos de cualquier experimento pueden ser ajustados.



















22
VI SOLUCIN DE SISTEMAS DE ECUACIONESDIFERENCIALES

6.1 Integracin numrica de funciones
Instruccin syms
Designa variables simblicas
Sintaxis >>sims x;

Funcin int
Realiza integrales de funciones definidas por variables simblicas.
Sintaxis >>int(nombre_funcin, lmite superior, lmite inferior)
Ejemplo: resolver la integral dada por


0
dx
x
senx e
x

>> syms x;
>> f=(exp(-x)*sin(x))/x; %definicin de la funcin
>> int(f,0,inf) %inf define a infinito
ans =
1/4*pi
Ejemplo: resolver

1
1
2
2
2
dx
e
x


>> syms x;
>> f=exp(-(x^2)/2)/sqrt(2*pi);
>> int(f,-1,1)
ans =
2251799813685248/5644425081792261*erf(1/2*2^(1/2))*2^(1/2)*pi^(1/2)
>> double(ans) %para cambiar a un nmero de punto flotante
ans =
0.6827

6.2 Creacin de un archivo M
Los archivos M son creados por el usuario y son empleados por matlab, para
ejecutar ciertas funciones. Para crear uno se pulsa en la barra de menus, la
opcin representada por una hoja en blanco y tecleamos a continuacin en ese
editor
23
function dy = enfriam (x, y)
% Temperatura de enfriamiento de un cuerpo humano
% Ultima modif: [May 9,08]

dy = -0.063 * (y - 20);


A continuacin salvamos los cambios como en cualquier editor de textos con
cualquier nombre, en esta ocasin guarde con el nombre de enfriamiento. El
archivo anterior describe a la ecuacin diferencial dada por:
( ) 20 * 063 . 0 = y
dt
dy
que modela la temperatura de enfriamiento de un cuerpo
humano.

6.3 Solucin de ecuaciones diferenciales
Funcin ode45
Sintaxis >>ode45(nombre_archivo_M, [valor inicial de la variable
independiente, valor final de la variable independiente], valor inicial variable
dependiente).
Ejemplo: Resuelva la ecuacin diferencial ( ) 20 * 063 . 0 = y
dt
dy
con las
condicin inicial en t=0, y=37; para t=40, y=?.
>> [t, T]=ode45('enfriamiento',[0,40],37);
>> plot(t,T)

Advierta que en la ecuacin diferencial la variable dependiente es y y el
resultado en matlab se guarda en T, lo cual no advierte ninguna importancia; en
el caso de que se omitiera la asignacin de los resultados al vector [t, T], se
hubiese desplegado la grfica inmediatamente sin necesidad de emplear plot(t,
T). De cualquier forma la solucin numrica a la ecuacin diferencial est
representada por la Figura 6.1.
24
0 5 10 15 20 25 30 35 40
20
22
24
26
28
30
32
34
36
38
T
t

Figura 6.1 Solucin grfica de una ecuacin diferencial

6.4 Solucin de sistemas de ecuaciones diferenciales
La funcin ode 45 puede resolver sistemas de ecuaciones diferenciales de la
misma forma en que se ejecut para una ecuacin diferencial, siempre y
cuando se escriba el archivo M correspondiente la sintaxis de esta funcin
considerando un sistema de 3 ecuaciones sera.
Sintaxis >>ode45(nombre_archivo_M, [valor inicial de la variable
independiente, valor final de la variable independiente], [valores iniciales de la
variable dependiente).

Ejemplo: considere una reaccin llevada a cabo en un reactor batch o str
(stirred tank reactor) como se muestra en la Figura 6.2, la reaccin se lleva
cabo de acuerdo a la reaccin S R A
k k

2 1
; en el tiempo t=0, las
concentraciones iniciales son [ ] 1 =
o
A M, 0 ] [ =
o
R M, se desea saber las
concentraciones al cabo de t=2.5 horas, Las constantes de velocidad son
3
1
= k hr
-1
, 1
2
= k hr
-1
.

Considerando la Figura 6.2 el conjunto de reacciones que definen el sistema,
considerando que no hay entradas ni salidas, estn dados por:
25

Figura 6.2 Reactor batch str para la reaccin S R A
k k

2 1


Para un reactor cstr (continuous stirred tank reactor) las ecuaciones estn
dadas por:
[ ] ( )
[ ] [ ] [ ]
[ ] ( )
[ ] [ ] [ ] [ ]
[ ] ( )
[ ] [ ] [ ] S k V S F S F
dt
S V d
R k V A k V R F R F
dt
R V d
A k V A F A F
dt
A V d
o o
o o
o o
+ =

+ =

2
2 1
1


Pero para un reactor batch no hay flujos de entrada ni de salida, adems el
volumen permanece constante, por tanto el sistema a resolver se reduce a:

[ ]
[ ] [ ]
[ ]
[ ] [ ] [ ] [ ]
[ ]
[ ] [ ] R R k
dt
S d
R A R k A k
dt
R d
A A k
dt
A d
= =
= =
= =
1
1 3
3
2
2 1
1

Junto con las condiciones iniciales:

A t=0 [ ] 1 =
o
A , 0 ] [ =
o
R , [ ] 0 =
o
S
t=2.5 [ ] ? = A , ? ] [ = R , [ ] ? = S

El archivo M que se debe escribir para resolver el sistema ser el siguiente:
26
function sistema = batch(t, z)

A=z(1); R=z(2); S=z(3); % Valores iniciales de variables dependientes
k1=3; k2=1; % Constantes (velocidad de reaccion) para las ecs.
sistema=[-k1*A; k1*A-k2*R; k2*R]; % Sistema de 3 EDO's (Vector
columna), no aparece S

A continuacin guarde el archivo M con el nombre de reactor_batch, aunque
puede usar cualquier otro. La solucin con matlab se efecta de la forma como
se indica a continuacin.
>> [t,z]=ode45('reactor_batch',[0,2.5],[1,0,0]);
>> plot(t,z)
Que desplegar la solucin dada en forma grfica por la siguiente figura
0 0.5 1 1.5 2 2.5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
t
[
c
o
n
c
e
n
t
r
a
c
i

n
]


[A]
[R]
[S]

Figura 6.3 Cintica de reaccin en un reactor batch para la reaccin
S R A
k k

2 1


Si se desea desplegar los valores numricos bastar con teclearse
>> [t,z] sin punto y coma al final.



27
VII INTRODUCCN AL SIMULINK

7.1 Simulink
Es una herramienta de matlab empleada para modelar, simular y analizar
sistemas, que pueden ser lineales o no lineales; de datos continuos, discretos o
combinacin de los dos. Los sistemas simulados en simulink reciben el nombre
de modelos.

7.2 Ejemplo de simulacin de una ecuacin de segundo orden mediante
simulink
Ejemplo: simular la Ecuacin diferencial con condiciones iniciales y(0)=0,
y(0)=-2000; 0
2
2
= + + by
dt
dy
a
dt
y d
.
Para simular esta ecuacin diferencial se escribe como by
dt
dy
a
dt
y d
=
2
2
; con
a=-2000, b=-20000, a continuacin dentro de matlab pulsamos el cono de
simulink en la barra estndar, al momento del cual se desplegara la ventana
siguiente:


Figura 7.1 Ventana del simulink
28
A continuacin se crea un documento nuevo en la barra estndar de esta
ventana, sobre la cual construiremos el diagrama siguiente:

Scope
Integrator 1
1
s
Integrator
1
s
Gain 1
-K-
Gain
-K-

Figura 7.2 Modelo en simulink para resolver la ecuacin diferencial

Cada uno de los conos de ganancia e de integracin fueron tomados de la
librera de simulink, particularmente del menu bloques comnmente usados y
unidos arrastrando el ratn y pulsando el click izquierdo simultneamente; el
valor respectivo de los integradores y bloques de ganancia se introduce dando
doble click con el botn izquierdo del ratn.

El bloque sum, suma los valores correspondientes al producto de cada
integrador con su ganancia, para observar el resultado damos doble click con el
mismo botn en el bloque de scope, en la barra de menus de la ventana donde
se construy el diagrama de la figura 7.2.

En la opcin simulation se elige la opcin configuration parameters y se
selecciona .01 segundos; a continuacin se comienza la simulacin con el
cono start simulation en la barra estndar de la ventana mencionada
anteriormente, desplegndose la Figura 7.3. En la ventana desplegada scope
pulsamos el cono correspondiente a autoescale con forma de binoculares para
ajustar la grfica.



dy/dx
y
a=-2000
b=-20000
29


Figura 7.3 Ventana de la solucin a la ecuacin diferencial
0
2
2
= + + by
dt
dy
a
dt
y d
mediante simulink

BIBLIOGRAFA SUGERIDA

Bez-Lpez, D., Matlab con aplicaciones a la Ingeniera, Fsica y Finanzas,
Editorial, Alfaomega, Mxico, (2007).

Medina-Heredia, G. y P. A., Quintana-Hernndez, Solucin de problemas de
ingeniera qumica empleando matlab, XXIV Seminario Anual de Ingeniera
Qumica, Mxico, (2007).

Nieves, A., F. C., Domnguez, Mtodos Aplicados a la Ingeniera, Editorial,
CECSA, Mxico, (2002).

También podría gustarte