Sunteți pe pagina 1din 24

1

GUA DE TRABAJO EN MATLAB



Este documento tiene por objetivo familiarizar al estudiante con las nociones bsicas de Matlab,
en conjunto con su estructura de funciones y a partir de esto, en la simulacin y la optimizacin de
procesos.
1 Inicio
Al abrir MATLAB (una vez que el programa se encuentre instalado), nos encontraremos con una
ventana que tiene la estructura de la Figura 1. En esta, se pueden distinguir 5 partes:
A) Directorio activo: esta parte de la ventana del programa, indica la direccin dentro del
computador donde se encuentra la carpeta en la cual MATLAB busca las funciones y
archivos necesarios para el funcionamiento. Adicionalmente, tambin realiza una bsqueda
en un rbol de directorios que son configurados en File Set Path.
El directorio activo, tambin coincide con la direccin donde se guardaran los archivos por
defecto.
B) Directorio de la direccin activa. En esta parte se pueden visualizar los archivos y carpetas
que estn incluidos en el directorio activo.
C) Command Window. Corresponde a la ventana de comandos, donde se pueden ingresar las
operaciones matemticas. Al presionar la tecla Enter, se ejecutar la sentencia que est
ingresada en la lnea de comandos.
D) Workspace. En esta ventana se pueden ver las variables que el programa tiene almacenadas
en su memoria.
E) Command History. Esta ventana resume las sentencias previas que se han ingresado en el
command window.


2


FIGURA 1. DESCRIPCIN DE LA VENTANA INICIAL DE MATLAB
Todas las partes que componen la ventana principal, pueden ser modificadas a conveniencia del
usuario, a partir de la opcin desktop que se encuentra en las opciones superiores del programa
(junto a Window).
Uso del Command Window 1.1
La ventana de comandos de MATLAB, permite realizar operaciones matemticas las cuales se
ejecutan al presionar la tecla Enter. Dentro de las operaciones que se pueden realizar podemos
encontrar sumas, multiplicaciones, funciones trigonomtricas, asignacin de variables, etc
Ejemplo 1.1.1
Utilizando la ventana de comandos, ingrese las siguientes operaciones
a) 5+9
b) y = 8 + 10
c) z = 9;
d) d = y + z;
e) e = y + x;
Al realizar estos ejercicios en MATLAB, se puede observar que:
3

1) En el paso a) debera aparecer como respuesta por parte del programa un resultado del tipo
ans = 14. La variable ans corresponde a una variable interna que almacena el valor de
la ltima operacin realizada.
2) En el paso b) el programa muestra en el command window una respuesta del tipo y=18 y en
el Workspace (Parte D de la Figura 1), se almacena una variable de nombre y cuyo valor es
igual a 18.
3) A partir de la sentencia del paso c), se observa, a diferencia de lo que podra esperarse, que
no existe una respuesta en el command window del tipo z = 9. Esto debido a que se le ha
aadido al final de la operacin el operador ; que le indica al programa que no muestre el
resultado de la ltima operacin. Sin perjuicio de lo anterior, la variable z se ha creado y se
encuentra almacenada en el workspace con un valor de 9.
4) El paso d) muestra la creacin de la variable d a partir de una operacin matemtica
realizada sobre las ya definidas y y z. Puesto que se ha incluido el trmino ; al final de la
sentencia, el resultado de la asignacin no se muestra en pantalla, sin embargo la variable d
est almacenada en el workspace.
5) Por ltimo, si ejecutamos el paso e) notaremos que el programa muestra un mensaje de color
rojo que nos indica ??? Undefined function or variable x.. Este error se produce debido a
que para la asignacin de la variable e se ha utilizado la variable x, la cual se encuentra sin
definir.
Variables 1.2
Para definir una variable, basta con igualarla a un campo numrico o una variable previamente
definida. Por defecto, esta variable ser una matriz y el propio programa se encargar de reservar la
memoria necesaria para almacenarla. Existen otros tipos de variables como cadenas de texto o
expresiones simblicas, pero estas se vern ms adelante.
Ejemplos 1.2.1
a) d = 4;
b) a = 2*d;
c) f = sin(a)*cos(d);
d) g = [1 2 3];
e) f = [1;2;3];
f) m = [1 2 3; 4 5 6];
4

A partir de las declaraciones antes mostradas, se puede observar que:
1) El paso a) muestra la declaracin de la variable d como un escalar que tiene un valor igual a
4. Al ejecutar esta sentencia, automticamente MATLAB reserva la cantidad de memoria
para almacenar la variable d a la cul le asigna el valor numrico 4.
2) EL paso b) muestra la definicin de una variable a partir de otra predefinida (d) en el paso
a). Si no existe la variable d en el workspace, entonces saldr un error similar al mencionado
en el punto 5) de la seccin 1.1.1.
3) El paso c) muestra como es posible combinar variables previamente definidas, aplicarles una
funcin y a partir del resultado de esta composicin de funciones, generar una nueva variable
f la cual se almacena en el workspace como un escalar de valor sin(a)*cos(d). Es muy
importante notar que la variable f no es una funcin, si no que el resultado de la aplicacin
del producto de dos funciones sinusoidales a valores que fueron previamente definidos.
4) El paso d) muestra la extensin de las definiciones de variables para aquellas que tienen una
dimensin mayor que 1 1. En este caso en particular, se trata de la definicin de un vector
fila de tamao 1 3 que tiene la siguiente configuracin:
= [1 2 3]
En general, es importante mencionar que la definicin de un vector fila, se realiza poniendo
los nmeros dentro del vector entre parntesis cuadrados y separando cada columna
mediante un espacio o una coma (da igual).
5) En el paso e) se muestra la definicin de un vector columna. En este caso se le ha asignado a
la variable f un vector de tamao 3 1 y que tiene la siguiente forma:
=
1
2
3

Se puede generalizar la definicin de un vector columna, notando que los escalares que
integran el vector se ingresan dentro de un parntesis cuadrado, separando cada fila
mediante un ;.
Es importante notar tambin, que al ejecutar el paso e) hemos sobre escrito la variable f
previamente definida en el paso c). La nueva variable tiene distinto valor y distintas
dimensiones que la antigua, pero el programa no presenta problemas de compatibilidad con
esto, lo que indica que al redefinir una variable, se borra la anterior y se asigna al nuevo
valor.
5

6) Por ltimo, el paso f) muestra a generalizacin de los vectores, definiendo la matriz m. Este
elemento tiene una dimensin 2 3 y tiene la siguiente forma:
=
1 2 3
4 5 6

Se puede indicar que al definir una matriz, se ingresan las filas de la misma forma como se
mencion en el apartado 4) de esta seccin, las cuales se separan con un operador ;.
Los nombres de las variables deben comenzar con una letra y luego pueden usarse hasta 32
caracteres alfanumricos incluyendo el smbolo _. Con respecto al uso de maysculas y
minsculas MATLAB hace distincin entre ellas, lo que implica que la variable R ser distinta a la
variable r.
Para acceder a los elementos de una matriz se utilizan los parntesis, los cuales dan la posicin
dentro de la misma con coordenadas fila columna. Para el caso genrico de la matriz A definida
como,
=

11

12

13

21

22

23

31

32

33
el elemento
23
se escribira como (2,3)
Aplicando esto a la matriz m definida en el paso f) de esta seccin, la asignacin de variable:
12 = (1,2);
Es equivalente a definir una nueva variable escalar de nombre m12 cuyo valor es 2.
No slo escalares se pueden definir a partir de matrices, por ejemplo, la expresin
1 = [(1,1) (1,2) (1,3)]
Define un vector fila mf1 cuyo valor es igual a [1 2 3]. Esta expresin tambin puede abreviarse
utilizando el comando : de la siguiente manera:
1

= [(1,1): (1,3)] = (1,1: 3)


La variable mf1 y la mf1_a son equivalentes en trminos de dimensiones y valores, lo que
implica que la instruccin que se entrega al ingresar a(i,j) : a(i,j+n) o su homlogo a(i,j:j+n)
es equivalente a definir un vector fila de dimensin 1 a partir de la matriz a, que est
compuesto por los valores de la matriz a que van desde a(i,j) hasta a(i,j+n).
Anlogamente, es posible definir un vector columna a partir de una matriz, tal como lo muestra
la definicin del vector mc3 y su anlogo, el vector mc3_a :
3 = [(3,1); (3,2)] 3 =
3
6

6

3_ = [(1,3): (2,3)] = (1: 2,3) 3 =
3
6

Un ejemplo ms general, es el que se muestra a continuacin, donde se define la matriz s1 de
tamao 3 3 excluyendo la ltima columna de la matriz S:
S = [1 2 3 4; 5 6 7 8; 9 10 11 12];
s1 = S(1:3,1:3);
La operacin de esta ltima expresin, se puede entender siguiendo el diagrama de la Figura 2:
La expresin anterior tambin se puede haber definido como:
s1_a = S(1:end,1:3);
En el contexto de la definicin de matrices y vectores, la palabra end indica la ltima posicin
de la matriz, la cual puede estar tanto en la definicin de las filas como de las columnas. Tomando
en cuenta lo anterior, la expresin
s2 = S(1:end,1:end);
Es equivalente a escribir s2 = S;.
Adicionalmente, la matriz s1_a tambin se puede definir de manera anloga como:
s1_b = S(:,1:3);
Lo que indica que la inclusin del operador : en el indicador de las filas (y/o columnas) es
anlogo a escribir 1:end. Siguiendo este razonamiento, la matriz s2 antes definida tambin se
puede declarar como:
s2_a = S(:,:);
Siendo la ltima expresin, anloga a s2_a = S;

FIGURA 2. OBTENCIN DE UNA MATRIZ A PARTIR DE OTRA PREVIAMENTE DEFINIDA.
Por ltimo, con respecto al operador : este tambin se utiliza para definir un vector fila de
espaciado uniforme, indicando el primer elemento (x0), el espaciado entre los valores del vector
=
1 2
5 6
9 10
3 4
7 8
11 12
1 =
1 2 3
5 6 7
9 10 11

s1 = S(1: 3,1: 3) S(1: end, 1: 3) S(: ,1: 3)
7

(DX) y el ltimo elemento del vector (xf), tal como lo representa la siguiente expresin para la
definicin del vector x.
= 0 ;
Para reforzar la definicin de las variables, se invita al lector a revisar
(http://web.cecs.pdx.edu/~gerry/MATLAB/variables/variables.html) donde hallar ms
informacin acerca de otros tipos de variables.
Antes de pasar al apartado de funciones, es importante mencionar que existe una instruccin en
MATLAB que borra el workspace, permitiendo liberar memoria: el comando clear x. Esta
instruccin borra la variable x que se encuentra en el workspace. Si se desean borrar todas las
variables, se puede utilizar la expresin clear all. Similar al comando clear, la instruccin clc borra
todo lo que hay en el command window, sin embargo mantiene las variables del workspace intactas.
Funciones 1.3
Por defecto MATLAB tiene pre compiladas funciones bsicas que ayudan al clculo ingenieril y a
la visualizacin de los datos. Entre ellas se pueden encontrar: sin, cos, tan, mean, std, var, Un
resumen ms completo de estas funciones se puede encontrar en
(http://www.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--
alphabetical-list.html)
En general la estructura de las funciones en MATLAB presenta el siguiente formato:
= ()
(1)

En la ecuacin (1), se distinguen tres elementos principales:
: corresponde al dominio de la funcin
: corresponde al nombre de la funcin
: corresponde al recorrido de la funcin
Las dimensiones de e dependern del tipo de funcin . Pudiendo encontrar funciones que
admiten como argumentos (dominio), escalares, vectores e incluso matrices. Lo mismo se aplica en
el output (recorrido) de la funcin.
Para conocer las caractersticas de cada funcin pre compilada en particular, se recomienda
utilizar la ayuda de MATLAB (MATLAB help) que se encuentra en la parte superior de la ventana
principal, en el men Help.

8

Ejemplos 1.3.1
a) t = sqrt(2);
b) r = abs(-4.573);
c) ang = 0: pi/4 : 2*pi;
s_ang = sin(ang);
d) n = 2
n3 = n^3;
e) ang2 = ang^2;
Para los ejemplos antes mencionados se pueden comentar las siguientes particularidades:
1) Para el ejemplo a), se observa que se define una variable t como la raz cuadrada de 2. La
definicin general de la potencias se hace con el operador ^, de esta forma el comando
sqrt(2) es equivalente a 2^0.5. Existe otra forma de definir la potencia de un nmero o
variable predefinida:
= (2,0.5)
En este caso, podemos observar la descripcin general presentada en la ecuacin (1) aplicada
a la funcin power, donde:
y := t
x := [2,0.5]
f := power
Es importante notar que el dominio de la funcin en este caso, corresponde a un vector que
est compuesto por dos escalares: 2 y 0.5.
2) Anlogo al caso anterior, el ejemplo b) muestra la aplicacin de la funcin valor absoluto al
escalar de valor -4.753. Como resultado de esta operacin, se ha definido y almacenado en la
memoria una variable r de valor 4.753. Anlogo al paso anterior, la equivalencia con la
funcin general de la ecuacin (1) sera.
y := r
x := -4.753
9

f := abs
3) El ejemplo c) consta de dos partes. En la primera se define el vector fila ang el cual toma
valores desde 0 hasta 2 con un distanciamiento fijo entre los elementos del vector igual a
/4. A esta altura (despus de haber ledo la seccin 1.2) la pregunta esperada por parte del
lector debera ser: Por qu se ha usado la variable llamada pi si no se ha definido
previamente? La respuesta a esta pregunta radica en ciertas variables que se encuentran
reservadas y pre compiladas en MATLAB. En particular, mencionaremos al valor de pi y a
la unidad compleja : = (1) .
Una vez que se ha definido el vector ang se define una variable s_ang que corresponde al
seno de cada uno de los valores del vector ang. En este caso, la equivalencia para la
generalizacin de la funcin a partir de la ecuacin (1) sera:
x := [0:

4
: 2]
f := sin
y := [sin(0) sin(

4
) sin(

2
) sin
3
4
sin() sin
5
4
sin
3
2
sin
7
4
sin(2)]
Como se puede observar, la funcin sin corresponde a una funcin que admite como
dominio a un vector (e incluso una matriz) y su recorrido corresponde a un vector (o matriz)
de las mismas dimensiones de x, cuyos elementos corresponden a la aplicacin de la funcin
sinusoidal para cada uno de sus componentes.
4) El ejemplo d) muestra la aplicacin de la funcin power a una variable escalar n de valor
2.
5) El ejemplo e) muestra una situacin anloga al caso descrito en 4). Sin embargo, en este
caso, el dominio de la funcin corresponde al vector ang de tamao 1 9. Si se realiza la
operacin en MATLAB, se observar un error del tipo: ??? Error using ==> mpower,
Inputs must be a scalar and a square matrix.
Este informe de error indica que el dominio de la funcin power es incompatible con la
definicin de la variable ang, situacin esperable considerando que si el exponente de una
potencia es mayor que 1, la funcin power corresponde a una multiplicacin de la base. En la
generalizacin de las variables como matrices, una multiplicacin de una variable por si
misma, slo puede realizarse si esta es una matriz cuadrada a un escalar.
Sin embargo, existe una solucin si es que se desea elevar a una potencia determinada cada
uno de los elementos de un vector, la cual nos ayuda a entrar en el campo de las primeras
instrucciones a programar en MATLAB: como ya se sabe, para hacer referencia a un
elemento escalar dentro de un vector o una matriz, se debe indicar con parntesis su
10

ubicacin en coordenadas (fila, columna). Considerando lo anterior, si se desea elevar al
cuadrado el primer elemento del vector ang es necesario entonces definir la variable ang_2_1
e igualarla al cuadrado del primer elemento del vector ang, de la siguiente forma:
ang_2_1= ang(1,1)^2;
De esta forma se define la variable ang_2_1 := (1,1)
2
0
2
.
Anlogamente a la instruccin anterior, se podran definir las variables ang_2_2 hasta la
variable ang_2_9 como los cuadrados de cada uno de los elementos restantes del vector ang:
ang_2_2= ang(1,2)^2;
ang_2_3= ang(1,3)^2;
ang_2_4= ang(1,4)^2;
ang_2_5= ang(1,5)^2;
ang_2_6= ang(1,6)^2;
ang_2_7= ang(1,7)^2;
ang_2_8= ang(1,8)^2;
ang_2_9= ang(1,9)^2;
Y luego definir el vector ang_2 como la composicin de las variables previamente definidas:
ang_2= [ang_2_1 ang_2_2 ang_2_3 ang_2_4 ang_2_5 ang_2_6 ang_2_7 ang_2_8
ang_2_9];
Como reforzamiento a la definicin de las funciones, se trabajar con una de las funciones
ms utilizadas para visualizar resultados: la funcin plot, la cual permite graficar las
variables que se encuentran en el workspace. Para lo anterior, debemos conocer la estructura
de su sintaxis. Genricamente se llamar de la siguiente manera:
plot(x,y)
Siendo x e y, dos vectores donde se encuentra la informacin a representar en el eje de las
abscisas y de las ordenadas, respectivamente (horizontal y vertical). La nica condicin que
deben cumplir x e y es que deben ser de la misma dimensin (no importando si son vectores
filas o columnas).
Ejemplos de plot 1.3.2
a) a = [0:-1:-10];
11

b = abs(a);
plot(a,b);
b) ang = 0: pi/50 : 2*pi;
s_ang = sin(ang);
plot(ang, s_ang)
c) c_ang = cos(ang);
plot(s_ang, c_ang, r-o)

Analizamos a continuacin cada una de las instrucciones del ejemplo.
1) En el caso del ejemplo f), se define la variable a (que ser la variable independiente) como
un vector fila que va desde 0 hasta -10 con un espaciado igual a -1. A continuacin se define
el vector b como el valor absoluto de la variable a. Finalmente se realiza el grfico a vs. b.
tal como lo muestra la Figura 3.

FIGURA 3. GRFICA DE (A,ABS(A)).
2) El ejemplo g) tiene la misma estructura del a), solamente con la diferencia que el vector de
las variables independientes (ang) se ha definido desde 0 hasta 2, con un espaciado
uniforme de /50. El resultado de este ejemplo se presenta en la Figura 4.
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0
0
1
2
3
4
5
6
7
8
9
10
12


FIGURA 4. GRFICA DE (ANG, S_ANG).
3) Por ltimo, el ejemplo h) describe la definicin de la variable c_ang como el coseno de la
variable ang, seguida la instruccin para graficar c_ang vs. s_ang. Cabe destacar, que la
funcin plot en este caso tiene tres inputs: c_ang , s_ang y r-.o. El argumento que se
encuentra entre comillas simples, permite customizar la grfica: cambiar el color, definir el
estlo de lnea y los marcadores. Para este caso en particular se defini un color rojo
(expresado con la letra r), un tipo de lnea discontinua (representado con la instruccin --) y
un marcador circular (expresado con la letra o). La Figura 5 muestra la grfica obtenida en
el ejemplo.

FIGURA 5. GRFICA DE (C_ANG ,S_ANG).
Se recomienda encarecidamente al lector complementar esta parte de la gua con el Help de
MATLAB, buscando la funcin plot y replicando los ejemplos que ah aparecen.

0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
13

2 Uso de una m-file y nociones bsicas para la
programacin en MATLAB.
Introduccin a las m-files 2.1
La extensin de los archivos creados en matlab es .m. Este tipo de archivo corresponde a un
fichero de texto plano, el cual puede contener las instrucciones que MATLAB ejecutar de manera
secuencial, lo que implica que para ejecutar un comando que se encuentra en una determinada
posicin del archivo, se deben haber ejecutado previamente los comandos en las lneas anteriores.
Para crear una m-file se debe ir a File New m-file. Una vez que se crea este archivo, se
abrir el editor de MATLAB, el cual tiene la forma de la Figura 6.

FIGURA 6. VISTA INICIAL DE UNA M-FILE EN EL EDITOR DE MATLAB.
La zona A de la Figura 6, corresponde a la zona editable de la m-file (o cuerpo del archivo),
donde se escribirn, de manera secuencial, los comandos que se ejecutarn por el programa. Una vez
que se terminen de escribir los comandos, se guardar el archivo (por defecto, lo har en el
directorio activo) y se ejecutar el programa mediante el botn run, representado por la letra B
en la Figura 6.
Escritura en una m-file 2.2
Tal como se mencion, los comandos que se escriben en el cuerpo del archivo se ejecutarn de
manera secuencial una vez que se presione el botn run. Estos siguen la misma lgica (y estructura)
14

de los que se explicaron en el trabajo sobre el workspace desde el punto de vista de la definicin de
variables y del llamado a las funciones (secciones 1.1 a 1.3).
Ejemplos 2.2.1
a) Crear una m-file llamada ejemplo_1_1 en el directorio activo de MATLAB, escribir en la
primera lnea del archivo el comando clear all, en la segunda el comando clc y desde la tercera en
adelante los comandos del ejemplo de la seccin 1.1 desde la instruccin a) hasta la f). Finalmente
ejecutar el programa a partir del botn run.
b) Crear una m-file llamada ejemplo_1_2 en el directorio activo de MATLAB, escribir en la
primera lnea del archivo el comando clear all, en la segunda el comando clc y desde la tercera en
adelante los comandos del ejemplo de la seccin 1.2 desde la instruccin a) hasta la f). Finalmente
ejecutar el programa a partir del botn run.
c) Crear una m-file llamada ejemplo_1_3_a en el directorio activo de MATLAB, escribir en la
primera lnea del archivo el comando clear all, en la segunda el comando clc y desde la tercera en
adelante los comandos del ejemplo de la seccin 1.3 desde la instruccin a) hasta la e). Finalmente
ejecutar el programa a partir del botn run.
d) Crear una m-file llamada ejemplo_1_3_b en el directorio activo de MATLAB, escribir en la
primera lnea del archivo el comando clear all, en la segunda el comando clc y desde la tercera en
adelante los comandos del ejemplo de la seccin 1.3 desde la instruccin f) hasta la h). Finalmente
ejecutar el programa a partir del botn run.
A continuacin se analizan los resultados obtenidos a partir de los ejemplos.
1) La estructura de la m-file creada en el ejemplo a) se presenta en la Figura 7.

FIGURA7. ESTRUCTURA DE LA M-FILE DEL EJEMPLO A).
Al presionar el botn run, se puede observar en el command window y en el workspace lo
siguiente:


15


(a)

(b)
Figura 8. (a) Command window del ejemplo a), (b) workspace para el ejemplo a)
Como las instrucciones son secuenciales, es posible seguir el orden de ejecucin del archivo
ejemplo_1_1 a partir de la Figura 8:
- Lnea 1: La instruccin: clear all borra todas las variables que pudiesen haberse definido
previamente.
- Lnea 2: La instruccin clc borra todo el contenido del command window, dejando la
pantalla limpia
- Lnea 3: se realiza la suma 9+5 y como no existe una asignacin de variables se la asigna
a la variable del sistema ans (que recordemos es la que guarda el resultado de la ltima
instruccin). Puesto que la lnea 3 no termina en ; el resultado de esta operacin
aparece directamente en el command window como ans = 14.
- Lnea 4: Se define la variable y =8 + 10 y se almacena en el workspace. Al igual que en
la lnea 3, el resultado de esta operacin aparece en el command window, puesto que la
instruccin no termina con el operador ;.
16

- Lnea 5: Se define la variable z = 9 y se almacena en el workspace. Puesto que en este
caso la instruccin termina con ;, el valor de z no aparece en el command window.
- Lnea 6: Se define la variable d := y + z. Al igual que en el caso anterior, no aparece el
resultado de d en el command window, puesto que la instruccin ha terminado con el
operador ;. Es importante mencionar que esta asignacin se pudo realizar, debido a
que en lneas anteriores se haban definido las variables y,z. De esta forma, al estar
disponibles en el workspace, la definicin de d tiene sentido.
- Lnea 7: Este comando presenta un error (como se puede apreciar en la Figura 8(a)),
puesto que la variable x no se encuentra definida a priori, lo que impide crear la variable
e. Al encontrar un error, MATLAB de inmediato detiene la ejecucin del programa y da
un mensaje advirtiendo que hay una inconsistencia en una de las definiciones de la m-
file.
2) La estructura de la m-file creada en el ejemplo b) se presenta en la Figura 9.

FIGURA 9. ESTRUCTURA DE LA M-FILE DEL EJEMPLO B).
Al presionar el botn run, el command window no muestra mensajes, mientras que el
workspace obtenido se presenta en Figura 10.

FIGURA 10. WORKSPACE PARA EJEMPLO B).
EL anlisis de los pasos ejecutados por el programa, son equivalentes a los del ejemplo a),
sin embargo se puede hacer mencin al hecho que la variable f toma el valor de [1;2;3] en vez
del escalar producto de sin(a)*cos(b). Esto se debe a que al seguir el orden de ejecucin
17

desde la lnea 1 a la lnea 8, se ha producido una sobre escritura de la variable en cuestin, y
el valor de esta corresponde a la ltima asignacin (en este caso, la asignacin del vector).
3) La estructura de la m-file creada en el ejemplo c) se presenta en la Figura 11.

FIGURA 11. ESTRUCTURA DE LA M-FILE DEL EJEMPLO C).
Al presionar el botn run, se puede observar en el command window y en el workspace lo
siguiente:

(a)

(b)
Figura 12. (a) Command window del ejemplo c), (b) workspace para el ejemplo c)
El anlisis de los pasos ejecutados por el programa, es anlogo al del ejemplo a). Nuevamente se
observa un error, el cual se produce en este caso al elevar al cuadrado el vector ang, lo que termina
la ejecucin del programa y no se define la variable ang2
4) La estructura de la m-file creada en el ejemplo d) se presenta en la Figura 13.
18


FIGURA 13. ESTRUCTURA DE LA M-FILE DEL EJEMPLO D).
Al ejecutar el script del ejemplo d), no se observan errores en el command window y tal
como es de esperar, todas las variables definidas, se encuentran almacenadas en el workspace
(Figura 14).

FIGURA 14. WORKSPACE PARA EJEMPLO D).
Sin embargo la grfica que entrega el programa, corresponde a la de la Figura 5
(plot(s_ang,c_ang)) y no aparecen las grficas de la funcin valor absoluto, ni de la funcin
seno. Esto se produce debido a que se ha llamado a la funcin plot tres veces de manera
secuencial, lo que implica que su output se ha sobre escrito dos veces y por lo tanto, la
grfica muestra el ltimo valor asignado. Si se desean mostrar las tres grficas se deben
definir tres variables grficas tal como se muestra en la Figura 15.
A diferencia del programa de la Figura 13, en este caso se han agregado los comandos
figure(i) en las lneas 6, 10 y 13. Estas expresiones son equivalentes a asignarle un nombre
distinto al output de la funcin plot. De esta forma, se evita la sobre escritura y se permite
visualizar las tres grficas en las figuras 1, 2 y 3. Otro detalle que vale la pena mencionar es
el comando clf de la lnea 3, que permite borrar el contenido de las figuras que existen al
momento de ejecutar el programa (es un equivalente al clc, pero con las figuras).
19


FIGURA 14. WORKSPACE PARA EJEMPLO D).
Bucles 2.3
MATLAB contiene palabras reservadas que permiten programar bucles. Estos se definen como la
repeticin de un cdigo mientras se cumpla una condicin. Existen dos formas de programar un
bucle: mediante el uso de las palabras for y while.
La estructura del bucle, independiente del mismo se resume en la Figura 15:

FIGURA 15. ELEMENTOS DE UN BUCLE.
Una vez que la condicin lgica sea falsa, el bucle acabar y el programa seguir con las
instrucciones que se encuentran bajo este.
Bucle for 2.3.1
El bucle for se utiliza generalmente cuando se requiere realizar un clculo un nmero fijo de
veces. La estructura que tiene es:
for (o while) condicin lgica
Comandos que se ejecutarn de
manera secuencial y repetitiva
mientras la condicin lgica sea
verdadera
end
20


FIGURA 16. FORMA PARA DEFINIR UN BUCLE FOR.
En este caso el programa siempre ingresar al bucle for. La primera vez que lo haga, se realzar
la asignacin x=a. Una vez que se termine de ejecutar la secuencia que est dentro del ciclo por
primera vez, MATLAB retornar a la cabecera del bucle, sobre escribir el valor de x=a+b y
volver a ejecutar las instrucciones hasta antes de end. A continuacin se devolver a la cabecera
del bucle nuevamente y reasignar el valor de x=a+2b y ejecutar el cdigo. Esta operacin se
realizar sucesivamente hasta que x=b. Cuando esto suceda, el programa ejecutar las instrucciones
dentro del ciclo por ltima vez y seguir con los comandos que se encuentran despus del end.
A modo de recordatorio, es importante indicar que si en la definicin de la condicin lgica, no
se escribe la variable b por defecto MATLAB asume que es igual a 1.
2.3.1.1 Ejemplo
Tal como se mencion en el ejemplo e) del apartado 1.3 la funcin power no se puede aplicar a
un vector. Sin embargo, es posible aplicarla a cada uno de los trminos dentro del vector. Para esto,
anteriormente se definieron las variables ang_2_i, i=19 y luego se compuso el vector ang_2. Esto
tambin se puede realizar dentro de un ciclo for. La Figura 17 muestra la m-file que se debe
implementar para calcular el vector ang_2.

FIGURA 17. M-FILE DEL EJEMPLO DE CICLO FOR.
Desde la lnea 8 a la 12 de la Figura 17 se define el bucle for. Dentro de este, se realiza la
asignacin de los elementos del vector ang_2 elevando al cuadrado cada uno de los componentes del
vector ang (definido previamente en la lnea 4). Se observan tambin unas instrucciones en verde,
que corresponden a comentarios. Los comentarios sirven para ayudar al programador a describir
for x = a : b : c

end
21

cada paso del programa y siempre comienzan con el smbolo %, lo que implica que cualquier
instruccin que est a la derecha del % no se ejecutar.
Bucle while 2.3.2
El bucle while se utiliza generalmente cuando el nmero de veces que se debe realizar un clculo
depende de una condicin externa (generalmente el resultado de un clculo dentro del mismo bucle).
Su estructura se detalla en la Figura 18.

FIGURA 18. FORMA PARA DEFINIR UN BUCLE WHILE.
El programa ingresar al bucle while, s y solo s la condicin lgica del mismo sea verdadera (lo
que implica que sta se debe comprobar antes de la definicin del ciclo). Una vez dentro del bucle,
los clculos en su interior se realizarn de manera secuencial y repetitiva hasta que la condicin
lgica sea falsa. Por lo mismo esta condicin debe ser comprobada en cada paso del ciclo.
2.3.2.1 Ejemplo
Se resolver el mismo problema del ejemplo 2.3.1.1 mediante un ciclo while. La Figura 19
muestra la m-file que se debe implementar para calcular el vector ang_2.

FIGURA 19. M-FILE DEL EJEMPLO DE CICLO WHILE.
Desde la lnea 8 a la 14 de la Figura 19 se define el bucle while. Dentro de este, se realiza la
asignacin de los elementos del vector ang_2 elevando al cuadrado cada uno de los componentes del
vector ang (definido previamente en la lnea 4). La definicin inicial de la condicin lgica se realiza
antes del bucle (en la lnea 7) de tal forma que en la primera comprobacin del ciclo, el programa
ingrese al bucle.
while condicin lgica

end
22

Conmutadores 2.4
Los conmutadores en MATLAB, se utilizan cuando se requiere evaluar una expresin u otra,
dependiendo del valor de verdad de una condicin lgica. Las palabras reservadas para estos
conmutadores son if, else y elseif.
La estructura general que tiene la implementacin de conmutadores en MATLAB se resume en
la Figura 20



FIGURA 20. ESTRUCTURA GENERAL DE UN CONMUTADOR EN MATLAB.
2.4.1.1 Ejemplo
Para entender la aplicacin de un conmutador y su integracin con otros elementos como los
bucles, se propone graficar la siguiente funcin definida por tramos.
()
(), < 0

2
,

(2)
Para valores de [5,5].
if condicin lgica 1 (obligatorio)
Asignacin relacionada con la
condicin lgica 1
elseif condicin lgica 2 ( opcional)
Asignacin relacionada con la
condicin lgica 2
elseif condicin lgica n ( opcional)
Asignacin relacionada con la
condicin lgica n

else condicin lgica n ( obligatorio)
Asignacin relacionada con la
condicin lgica n+1 (cuando
ninguna de las anteriores es cierta)
end
23

La Figura 21 muestra la implementacin del ejemplo utilizando: un bucle for y un conmutador
con dos condiciones lgicas.

FIGURA 21. M-FILE DEL EJEMPLO DEL CONMUTADOR IF CON UN BUCLE FOR.
El resultado de este script se representa en la Figura 22.

FIGURA 22. GRFICA DE LA ECUACIN (2).


-5 -4 -3 -2 -1 0 1 2 3 4 5
0
5
10
15
20
25
24

3 Ejercicios
1) Definir un vector t que represente el tiempo de calentamiento de un reactor agitado desde 0
hasta 3 horas, siendo el tiempo de muestreo de 1s.
A partir de la evolucin de la Temperatura del reactor, entregada en el archivo de texto
T_exp.txt, importar los datos y graficar la evolucin del reactor. (utilice la funcin load)
2) La ecuacin 3, muestra la concentracin esperada de la biomasa (X) en estado estacionario,
para el bioreactor continuo de la Figura 23, el cual sigue una cintica de Monod. Para los
parmetros de la Tabla 1, graficar el valor de la biomasa esperada para un valores de la
variable D que van desde 0 hasta 0.4.
=



(3)
TABLE 1 VALOR DE LOS PARMETROS EN EL BIOREACTOR
Parameter Value Parameter Value


0

0.5


0.42


0.35

0

5


0.025


0.09




FIGURA 23. BIOREACTOR DEL EJERCICIO 3.
3) Determinar las races del polinomio

3
3

2
+

3 mediante la funcin roots de


MATLAB. Graficar el polinomio para x entre 0.5 y 3.5.
4) Determinar las races del polinomio del ejercicio 3, utilizando el mtodo de Newton de paso
completo.

S-ar putea să vă placă și