módulo 1 entorno matlab y funciones incorporadas
DESCRIPTION
modulo numero 1 de 'Matlab desde cero' de Jader Martínez.TRANSCRIPT
-
1
Mdulo 1
Entorno MATLAB y funciones
incorporadas.
MATLAB es un pseudo-lenguaje de programacin usado para realizar grandes
cantidades de clculos numricos, visualizar grficas, analizar datos y crear
algoritmos que implican la seleccin de acciones entre alternativas
predeterminadas por el usuario. Estos atributos hacen de este software una
herramienta muy til para el ingeniero qumico a la hora de abordar
procedimientos iterativos y/o que requieren soluciones numricas con mediana
precisin, sin necesidad de aprender otro lenguaje de programacin como C++ o
FORTRAN.
MATLAB es un lenguaje de alto nivel, lo que quiere decir que sus
sentencias son escritas similarmente como se hara en ingls ordinario.
Generalmente, en las escuelas de ingeniera se usa MATLAB porque
ste brinda un ambiente amigable de interaccin, adems de su poderosa
habilidad para manejar los datos en matrices sin igual, y posee un amplio
abanico de funciones usadas en las reas de la ciencia e ingeniera.
Cabe destacar que MATLAB no se concibe como un lenguaje de
programacin porque carece de algunos elementos o caractersticas
importantes para una buena prctica de la programacin, sobre todo en la
creacin de los objetos en el denominado paradigma de programacin orientado a objetos; por lo que el autor de este texto opt por llamar a MATLAB pseudo-lenguaje.
-
Entorno MATLAB y funciones incorporadas
2
1.1 Ventanas de MATLAB
Al iniciar MATLAB 2014-a, las cuatro ventanas por defecto que aparecen a la
vista son: command window (ventana de comandos), current folder (carpeta
actual), command history (registro de comandos) y workspace (rea de
trabajo). En la figura 1.1 se pueden apreciar las ventanas por defecto.
Figura 1.1 Ventana de apertura de MATLAB
1.1.1 Ventana de comandos
La ventana de comandos se ubica en la parte central de la ventana por defecto
y esta nos permite realizar clculos en ella con una sintaxis (escritura) simple
como la de las calculadoras ordinarias, salvo algunas diferencias. Cuando El
prompt (>>) aparece en el command Window, MATLAB est listo para ejecutar
las instrucciones que deseemos. Para empezar a usar MATLAB como una
calculadora, simplemente escribimos la operacin que queramos, por ejemplo:
cos(pi)
Debe regresar
Ans=
-1
Prompt
-
MATLAB desde cero
3
La jerarqua de las operaciones que emplea MATLAB es la
estandarizada, es decir, ejecuta los clculos de izquierda a derecha, realizando
primero las operaciones de multiplicacin y divisin, tambin se tiene prioridad
aquellas que se encuentran dentro de parntesis, logaritmos, exponentes, y por
ltimo, realiza las sumas y restas. Por ejemplo:
5+3*5-(2^2+5)/3^2-5
Regresar:
Ans=
14
La forma en que se realiz el clculo fue de izquierda a derecha. Antes
del 5 ser sumado, se multiplic 3 con 5, operacin que hasta este punto lleva 20;
luego, la operacin dentro del parntesis tiene como prioridad elevar 2 a la
segunda potencia, lo que arroja un 4 qu sumado con 5 da 9; ahora este 9 es
dividido por 3^2 y solo esta seccin de la operacin tiene como resultado 1, que
restado del 20 obtenido anteriormente, obtenemos un valor de 19. Por ltimo,
restamos el 5, terminando as la operacin aritmtica que tiene como
respuesta 14.
Podemos borrar lo escrito en la ventana de comandos usando el comando
clc.
Una vez que nos hemos equivocado al ingresar un clculo numrico, no
podremos corregirlo en la lnea escrita, pero podemos usar las teclas y para
desplazarnos a travs de los comandos ejecutados.
1.1.2 Folder actual
El folder actual nos muestra la lista de los documentos y archivos guardados.
Es en esta carpeta donde se van a guardar los trabajos que vayamos
realizando. Esta puede ser cambiada por el usuario cuando lo desee a travs del
navegador de carpetas que se encuentra por encima de esta, y que cita la ruta
del folder actual.
1.1.3 Registro de comandos
As como su nombre lo indica, esta ventana registra todos los comandos que se
van ejecutando en la ventana de comandos, seccionndolos en grupos separados
por la fecha en la que se realizan.
-
Entorno MATLAB y funciones incorporadas
4
1.1.4 rea de trabajo
Esta ventana lista las variables que vamos definiendo cuando ejecutamos
comandos en la ventana de comandos. Si el lector ha estado desarrollando los
ejemplos, el rea de trabajo debe llevar cuenta de una sola variable, ans, que
tiene un valor de 14, un tamao matricial 1x1, y valores mximos y mnimos de
14 cada uno.
Figura 1.2 ventana de rea de trabajo.
La forma de declarar variables en MATLAB es haciendo uso del operador
asignacin (=). Por ejemplo, creamos una variable G con valor de 9.8 al
escribir:
G=9.8
Lo que regresa:
G=
9.8000
Observe que la variable G fue agregada a la lista de variables en el rea
de trabajo.
Las variables en el rea de trabajo se ordenan alfabticamente.
-
MATLAB desde cero
5
Ms adelante se estudiar en ms detalle como ingresar matrices; por lo
pronto podemos escribirlas como sigue
A=[1,2,3,4]
Lo que regresar
A=
1 2 3 4
Podemos ingresar una matriz bidimensional separando las filas con punto
y coma como sigue:
B=[1 2 3 4; 5 6 7 8]
Lo que regresar:
B=
1 2 3 4
5 6 7 8
En esta ltima forma de ingresar matrices, se nota que el uso de las comas
para separar los elementos de una fila no es necesario. En este punto, el rea
de trabajo debe lucir de la siguiente forma:
Hasta ahora las nicas variables que se han ingresado son numricas,
pero posteriormente veremos que MATLAB acepta tambin otros tipos de
variables de gran importancia.
Cuando se describi la ventana de comandos, se explic el uso del
comando clc. Este comando limpia la ventana de comandos, pero de ninguna
forma elimina las variables que han sido declaradas. Si deseamos eliminar las
variables definidas usamos el comando clear.
-
Entorno MATLAB y funciones incorporadas
6
1.1.6 Ventana de edicin
La ventana de edicin se puede abrir en el icono New script que se encuentra en la barra de herramientas. Esta ventana permite escribir y guardar
comandos sin ejecutarlos, y si queremos ejecutarlos solo damos clic en el icono
Run que se encuentra en la pestaa EDITOR de la barra de herramientas. Esta forma de programar es ms usual y cmoda que escribir el cdigo
directamente en la ventana de comandos; adems, el cdigo es guardado en el
folder actual al mismo momento que es ejecutado de este modo.
1.2 Resolucin de problemas
Como es sabido, la ventana de edicin es una poderosa herramienta de clculo,
pero para hacer buen eso de esta, es necesario saber un poco ms de cmo
funciona MATLAB.
1.2.1 Uso de variables
Para nombrar variables basta con tener en cuenta los siguientes aspectos:
Todos los nombres deben comenzar con una letra.
Los nicos caracteres que se permiten son letras, nmeros y guin bajo.
MATLAB diferencia mayscula y minscula.
MATLAB se reserva un conjunto de nombres que no pueden ser usados
como variables. Las lista de estos la puede obtener usando el comando
iskeyword.
1.2.2 Operaciones escalares
Como es de esperar MATLAB opera dos nmeros similarmente a como se hace
en una calculadora, pero tambin podemos ir guardando estos resultados en
una variable, por ejemplo:
A=4+5
-
MATLAB desde cero
7
Regresar
A=
9
Y si miramos en el rea de trabajo notaremos que la variable tiene el
valor resultado de la operacin. Adems MATLAB tambin admite las
operaciones con el uso de las variables guardadas, as, si continuamos
escribiendo los siguientes comandos:
B=1
C=A+B
Regresar:
C=
10
Algo importante para resaltar, es que el operador asignacin (=) es
diferente de una igualdad. Por ejemplo, si primero asignamos a la variable x un
valor de 3:
x=3
Y escribimos despus:
x=x+5
La consola mostrar:
x=
8
Ntese que la expresin x=x+5 no es una expresin matemtica valida,
pero al ingresarla en MATLAB, este interpreta que el nuevo valor de x es el
anterior que tena ms 5. Adems, en cualquier momento podemos cambiar el
valor de una variable reasignndole otro valor; de esta forma, si escribimos:
x=10
La variable x pierde el valor de 8 que tena y ahora observamos en el
workspace que asume uno de 10.
-
Entorno MATLAB y funciones incorporadas
8
| || |
Ejemplo de Aplicacin 1.1
Escriba un programa para calcular la fuerza elctrica de repulsin entre
dos cargas que tienen magnitud de 10 C y 5 C, y que se encuentran a 50
cm de distancia, usando la ley de coulomb:
Donde .
Solucin
La resolucin del ejercicio se muestra en la figura 1.3 donde el cdigo
ha sido escrito y ejecutado en la ventana de edicin.
Cuando corremos el programa, MATLAB da un nombre por defecto al
archivo que es guardado en el folder actual cuando damos aceptar en el
cuadro de dilogo que se despliega.
En la resolucin del ejercicio saltan unas caractersticas importantes:
La primera lnea del programa clear,clc protege al usuario de usar
variables que han sido definidas en otros scripts y nos proporciona un
ambiente de trabajo totalmente nuevo.
Se us del operador % para introducir comentarios. En una lnea,
cualquier escritura antecedida de un % no ejecutar cdigo alguno y
ser resaltado en color verde. Una buena prctica de programacin
sugiere el uso de comentarios para hacer el cdigo ms legible a la
hora de que otros usuarios necesiten leer nuestro trabajo.
La ventana de edicin est acoplada a la ventana de MATLAB. Esto lo
logramos pulsando control+shift+D estando activa la ventana, y
podemos desacoplarla con el atajo control+shift+U. Esto se puede
hacer con cualquier ventana.
Los resultados fueron desplegados en la ventana de comandos y
podemos verlos usando la barra de desplazamiento en esta.
El registro de comandos no lleva cuenta de los comandos ejecutados
sino que solo nos muestra el nombre del archivo.
-
MATLAB desde cero
9
Figura 1.3 Ejemplo de aplicacin 1.1
1.2.3 Operaciones con arreglos
La forma ms simple de crear una matriz en MATLAB es haciendo una lista
explicita de los valores que pertenecen a esta, separados por comas o un espacio
y dentro de parntesis angulares (corchetes), por ejemplo:
A=[1 2 3 4]
Crear un vector fila. Se sabe tambin que las filas se separan con un punto y
coma, as si queremos crear un vector columna podramos escribir por ejemplo:
B=[1;2;3;4]
Y una matriz que tiene tanto filas como columnas podramos escribirla como
C=[1 2 3 4; 5 6 7 8; 9 10 11 12]
O tambin de la siguiente manera ms cmoda
C=[1 2 3 4
5 6 7 8
9 10 11 12]
-
Entorno MATLAB y funciones incorporadas
10
Cuando a una matriz le sumamos (o restamos) un escalar, este ltimo es
sumado (o restado) a cada elemento de la matriz, por ejemplo:
D=C+5
Mostrar en la consola:
D=
6 7 8 9
10 11 12 13
14 15 16 17
De la misma forma pasa con la multiplicacin por escalar:
E=5*D
Regresar:
E=
5 10 15 20
25 30 35 40
45 50 55 60
Para hacer sumas y restas entre matrices se tiene que cumplir que
estas tengan las mismas dimensiones, por ejemplo:
D+E
Nos arrojar:
ans=
11 17 23 29
35 41 47 53
59 65 71 77
S las matrices no tienen las mismas dimensiones, entonces MATLAB
nos mostrar un mensaje de error (excepto si una de las dos es un escalar).
El enfoque para la multiplicacin y la divisin es un tanto diferente; de
esta forma, si queremos multiplicar (o dividir) la matriz C por la matriz D
elemento a elemento, usamos la multiplicacin punto .* (o la divisin punto
./), por ejemplo:
C.*D
-
MATLAB desde cero
11
Mostrar en la consola:
ans =
6 14 24 36
50 66 84 104
126 150 176 204
Y tambin:
C./D
Devolver:
ans =
0.1667 0.2857 0.3750 0.4444
0.5000 0.5455 0.5833 0.6154
0.6429 0.6667 0.6875 0.7059
El mismo enfoque aplicara para la exponenciacin:
C.^2
ans =
1 4 9 16
25 36 49 64
81 100 121 144
La razn del uso del punto se debe a que una multiplicacin matricial como la
define la matemtica es diferente de una multiplicacin elemento a elemento, y
para esta se reserva el uso del operador estrella (*); tambin lo mismo para la
exponenciacin.
Para ingresar matrices generalmente hay que hacerlo manualmente,
pero en el caso de aquellas que tienen intervalos regulares este trabajo es ms
sencillo. El comando:
A=1:5
Regresa una matriz fila
A =
1 2 3 4 5
-
Entorno MATLAB y funciones incorporadas
12
El incremento predeterminado es 1, pero si queremos cambiarlo, lo
indicamos entre el primer y ltimo valor, haciendo las separaciones por dos
puntos (:), as:
B=0:2:10
Regresar:
B =
0 2 4 6 8 10
Si deseamos que MATLAB calcule el espaciamiento entre los elementos,
usamos el comando linspace. Especificamos el valor inicial, el valor final y
cuntos valores queremos en total. Por ejemplo:
linspace(2,10,5)
Crear un vector con 5 elementos igualmente espaciados, valor inicial de 2 y
valor final de 10. El resultado del comando anterior es:
ans =
2 4 6 8 10
Otro operador importante es el operador transposicin ('), que en una matriz
convierte las filas en columnas, y las columnas en filas. Por ejemplo fjese a
continuacin:
x=1:5
x'
ans =
1
2
3
4
5
y=[1:3;12:2:16]
-
MATLAB desde cero
13
y'
ans =
1 12
2 14
3 16
Si queremos suprimir los resultados de los comandos que se van
ingresando, usamos el comando punto y coma (;). por ejemplo:
B=[1:5;7:11];
No desplegar ninguna salida en pantalla. Pero si queremos ver los
valores de la matriz, podemos ir al workspace y dar doble clic sobre el smbolo
amarillo que se encuentra antes del nombre de la variable, e inmediatamente
se abrir un Variable editor, que nos mostrar la informacin:
Figura 1.4 Variable editor
-
Entorno MATLAB y funciones incorporadas
14
En MATLAB tambin podemos crear tablas muy fcilmente. Por ejemplo, si
quisiramos una tabla de conversin que tuviera en la primera columna valores
en centmetros del 1 al 10, en la segunda sus correspondientes equivalencias en
pulgadas, y una tercera con las correspondientes equivalencias en pies,
podemos hacerlo como se muestra a continuacin:
Cm=1:10;
inch=Cm/2.54;
feet=inch/12;
Tabla=[Cm' inch' feet']
Tabla =
1.0000 0.3937 0.0328
2.0000 0.7874 0.0656
3.0000 1.1811 0.0984
4.0000 1.5748 0.1312
5.0000 1.9685 0.1640
6.0000 2.3622 0.1969
7.0000 2.7559 0.2297
8.0000 3.1496 0.2625
9.0000 3.5433 0.2953
10.0000 3.9370 0.3281
Ntese que en las lneas donde se definieron los tres vectores,
finalizamos cada sentencia con un punto y coma para evitar que sus resultados
se desplieguen en la consola. Tambin dese cuenta que creamos la tabla usando
el operador transposicin porque los arreglos que habamos definido ( Cm, inch
y feet) eran vectores fila mientras que en la tabla se muestran como columnas.
Por ltimo, no vaya a pensar el lector que se us una funcin llamada Tabla para organizar los datos de esta manera, porque en realidad, no es ms que un
nombre arbitrario con la que se defini una variable que guarda los valores de
la matriz que fue creada, como lo puede confirmar al hacer una breve
inspeccin en el workspace:
-
MATLAB desde cero
15
Ahora, si por ejemplo queremos hacer un pequeo programa para calcular el
volumen de tres cilindros usando la frmula , con alturas de 2,5,8 y radios de 2,4,6 en centmetros respectivamente, abrimos un script que
nombraremos ms tarde volmenes, escribimos las sentencias y lo ejecutamos, tal como se ven en la figura 1.5 donde tambin observamos el
resultado en el command window.
Figura 1.5 Muestra de clculo de volmenes de varios cilindros.
Ya que en la lnea tres y cuatro agregamos punto y coma al final de los
comandos, las salidas que estos generan en el command window fueron
suprimidas; Por otro lado, las lneas cinco y seis s despliegan salidas de
pantalla. Ntese en la lnea cinco el uso que se hizo del operador (*), del
operador punto estrella (.*), y del operador punto exponente (.^) para resolver
el problema. Como pi es un simple escalar el uso del punto es irrelevante, pero
en el caso de elevar al cuadrado el vector que denominamos Radio se necesit el
uso del operador .^ y luego .* para multiplicar los valores del radio al cuadrado
con las alturas respectivas en cada cilindro; el resultado lo podemos ver en el
command window con el nombre de volumen. Preste especial atencin a la lnea 6; lo primero que se hizo fue convertir los vectores filas en vectores
columnas con el uso del operador transposicin ('), y luego se cre una matriz
utilizando como primer elemento la columna que posee los valores de la altura,
de segundo elemento la columna de radios y de tercer elemento la columna de
volmenes, todo esto dentro de corchetes (parntesis angulares); las comas
pueden ser reemplazadas por espacios en blanco.
-
Entorno MATLAB y funciones incorporadas
16
1.3 Funciones incorporadas.
Una de las caractersticas ms sobresalientes de MATLAB es la amplia gama
de funciones incorporadas que posee.
Podemos decir que toda funcin se conforma de tres partes: un nombre,
una entrada (o argumento) y una salida. Por ejemplo, si queremos calcular el
seno de un ngulo de 1.5 radianes, escribimos:
x=sin(1.5)
x =
0.9975
En este ejemplo el nombre de la funcin en cuestin es sin, la entrada es
1.5, y a la salida se le ha dado el nombre de x.
Todas las funciones matemticas elementales admiten matrices como
entradas salvo contados casos. Si queremos calcular la raz cuadrada de varios
nmeros podramos escribir, por ejemplo:
y=[2 6 5 3];
x=sqrt(y)
Que nos regresa:
x =
1.4142 2.4495 2.2361 1.7321
Las funciones tambin pueden tener ms de un valor de entrada y/o ms
de un valor de salida; as por ejemplo, la funcin polyval, evala un polinomio
proporcionado por el usuario, a partir de un vector que contiene los coeficientes
de este, ordenado de mayor a menor exponente. Por ejemplo, si queremos
evaluar el polinomio en el punto x=3, podemos hacerlo as:
x=3;
c=[2 3 0 5 0];
y=polyval(c,x)
y =
258
Note que los argumentos de entrada solo fueron dos (c y x).
-
MATLAB desde cero
17
Un ejemplo de funciones que tienen mltiples salidas es la funcin size,
que calcula las dimensiones de una matriz; por ejemplo, si escribimos:
A=[1 2 3 4; 2 5 3 9];
[a,b]=size(A)
a =
2
b =
4
Fjese que las dos salidas, a y b, son las filas y las columnas de la
matriz. Ahora como contraste el lector debe notar la diferencia entre el anterior
ejemplo, y el ejemplo de esta sesin en que se calcul la raz de un vector. En el
ejemplo ms reciente efectivamente hubo ms de una salida, sin embargo
cuando se calcul la raz del vector, la nica salida que se obtuvo fue otro vector.
A continuacin se da un listado de funciones bastante tiles.
Funcin Descripcin Ejemplo
abs(x) Valor absoluto de los
elementos de la matriz
x.
x=[-1 2 -3];
abs(x)
ans =
1 2 3
sqrt(x) Raz cuadrada de x. x=[9 16 25];
sqrt(x)
ans =
3 4 5
exp(x) Euler elevado a la x ( . exp(5) ans =
148.4132
log(x) Logaritmo natural de x
( , no confundir con logaritmo en base 10).
log(5)
ans =
1.6094
log10(x) logaritmo en base 10 de
x.
log10(5)
ans =
0.6990 Tabla 1.1 Funciones usuales.
-
Entorno MATLAB y funciones incorporadas
18
round(x) Redondea x al entero
ms cercano.
round(9.7)
ans =
10
fix(x) Redondea x al entero
ms cercano a 0.
fix(9.7)
ans =
9
floor(x) Redondea x al entero
menor.
floor(-9.7)
ans =
-10
ceil(x) Redondea x al entero
mayor.
floor(-9.7)
ans =
-9
sin(x) Seno de x (en radianes). sin(0)
ans =
0
cos(x) Coseno de x (en
radianes).
cos(pi)
ans =
-1
tan(x) Tangente de x (en
radianes).
tan(0)
ans =
0
asin(x) Arcseno de x (devuelve
la respuesta en
radianes).
asin(1)
ans =
1.5708
acos(x) Arcoseno de x (devuelve
la respuesta en
radianes).
acos(1)
ans =
0
atan(x) Arctangente de x
(devuelve la respuesta
en radianes).
atan(1)
ans =
0.7854
sind(x) Seno de x (en grados
sexagesimales).
sind(90)
ans =
1
asind(x) Seno inverso de x
(devuelve la respuesta
en ngulos
sexagesimales)
asin(1)
ans =
1.5708
roots(x) Calcula un vector
columna que tiene las
races de un polinomio a
partir de un vector x que
posee los coeficientes
ordenados de mayor a
menor potencia.
x=[1 -2 -13 14 24];
roots(x)
ans =
4.0000
-3.0000
2.0000
-1.0000
-
MATLAB desde cero
19
poly(x) Calcula un vector que
contiene los coeficientes
de un polinomio
ordenado de mayor a
menor potencia a partir
de un vector x que posee
sus races.
x=[-1 -3 4 2];
poly(x)
ans =
1 -2 -13 14 24
max(x) Calcula el valor mximo
en un vector x.
Calcula un vector fila
que contiene los valores
mximos de cada
columna de una matriz
x.
x=[-1 -3 4 2];
max(x)
ans =
4
x=[1 7 4 9; 3 5 7 8];
max(x)
ans =
3 7 7 9
[a,b]=max(x) Encuentra el valor
mximo en un vector x
y su ubicacin en ste,
donde el valor de a es el
mximo, y b su posicin
en el vector.
Construye un vector fila
a con los valores mximo de cada
columna y un vector b que contiene la posicin
de dicho mximo en la
columna
correspondiente.
x=[-1 -3 4 2];
[a,b]=max(x)
a =
4
b =
3
x=[1 7 4 9; 3 5 7 8];
[a,b]=max(x)
a =
3 7 7 9
b =
2 1 2 1
max(x,y) Crea una matriz de
igual dimensin que x e
y, en la que cada
elemento es el mayor de
cada posicin
correspondiente en la
matriz.
x=[1 7 4 9;3 5 7 8];
y=[2 5 3 1;2 5 3 8];
max(x,y)
ans =
2 7 4 9
3 5 7 8
min(x) Se comporta como
max(x), pero para hallar
mnimos.
Aplique los mismos
casos que en la funcin
max(x).
-
Entorno MATLAB y funciones incorporadas
20
mean(x) Calcula el valor
promedio de un vector x.
Crea un vector fila a
partir de una matriz x
que contiene el valor
promedio de cada
columna de la matriz.
x=[3 6 7];
mean(x)
ans =
5.3333
x=[3 6 7; 7 2 5];
mean(x)
ans =
5 4 6
sum(x) Suma los elementos de
un vector x.
Crea un vector fila a
partir de una matriz x
que contiene la suma de
los elementos de cada
columna de la matriz.
x=[3 6 7];
sum(x)
ans =
16
x=[3 6 7; 7 2 5];
sum(x)
ans =
10 8 12
prod(x) Calcula el producto de
los elementos de un
vector x.
Crea un vector fila a
partir de una matriz x
que contiene la suma de
los elementos de cada
columna de la matriz.
x=[3 6 7];
prod(x)
ans =
126
x=[3 6 7; 7 2 5];
prod(x)
ans =
21 12 35
sort(x) Ordena los valores de un
vector x de forma
ascendente.
Ordena los valores de
cada columna en una
matriz de forma
ascendente.
x=[2 7 5];
sort(x)
ans =
2 5 7
x=[8 3 5; 2 4 3];
>> sort(x)
ans =
2 3 3
8 4 5
-
MATLAB desde cero
21
sort(x, 'descend') Ordena los valores de un
vector x de forma
descendente.
Ordena los valores de
cada columna en una
matriz de forma
descendente.
x=[2 7 5];
sort(x,'descend')
ans =
7 5 2
x=[8 3 5; 2 4 3];
sort(x,'descend')
ans =
8 4 5
2 3 3
sortrows(x,n) Ordena las filas de una
matriz sobre la base de
la columna n.
x=[1 4 5;
6 3 7;
3 6 4];
sortrows(x,3)
ans =
3 6 4
1 4 5
6 3 7
size(x) Determina el nmero de
filas y columnas de en la
matriz x.
x=[8 3 5; 2 4 3];
size(x)
ans =
2 3
[a,b]=size(x) Determina el nmero de
filas y columnas de en la
matriz x y guarda estos
valores en las variables
a y b respectivamente.
x=[8 3 5; 2 4 3];
>> [a,b]=size(x)
a =
2
b =
3
length(x) Calcula la mayor
dimensin de una
matriz.
x=[8 3 5; 2 4 3];
length(x)
ans =
3
std(x) Desviacin estndar de
los valores de un vector.
Vector de desviacin
estndar de los valores
en las columnas de una
matriz.
x=[2 7 5];
std(x)
ans =
2.5166
x=[1 4 5; 6 3 7; 3 6 4];
std(x)
ans =
2.5166 1.5275 1.5275
-
Entorno MATLAB y funciones incorporadas
22
var(x) Varianza de los valores
de un vector.
Vector de varianza de
los valores en las
columnas de una matriz.
x=[2 7 5];
var(x)
ans =
6.3333
x=[1 4 5; 6 3 7; 3 6 4];
>> var(x)
ans =
6.3333 2.3333 2.3333
rand(n) Crea una matriz nxn con
valores aleatorios entre
0 y 1.
rand(2)
ans =
0.0971 0.6948
0.8235 0.3171
rand(m,n) Crea una matriz mxn
con valores aleatorios
entre 0 y 1.
rand(3,2)
ans =
0.9502 0.3816
0.0344 0.7655
0.4387 0.7952
linspace(a,b,c) Genera un vector con
valores desde a hasta b,
con c elementos
igualmente espaciados.
linspace(2,11,4)
ans =
2 5 8 11
plot(x,y) Genera una grfica de
parejas ordenadas con
elementos de posiciones
correspondientes de los
vectores x e y.
x=0:0.01:2*pi;
y=cos(x);
plot(x,y)
xlabel(S) Genera una etiqueta con
la frase S en una figura
en el eje horizontal.
xlabel('eje x')
ylabel(S) Genera una etiqueta con
la frase S en una figura
en el eje vertical.
ylabel('eje y')
title(S) Genera un ttulo con la
frase S en una figura.
title('y vs x')
hold on Permite plasmar ms de
una curva en una misma
figura.
hold on
disp(S) Genera una salida del
texto S en el command
window, donde este debe
estar dentro de
apostrofes.
texto='Hola mundo';
disp(texto)
(regresar en pantalla)
Hola mundo Tabla 1.1 Funciones usuales (fin de la tabla).
-
MATLAB desde cero
23
Ejemplo de aplicacin 1.2
El comportamiento de una variable fsica que se caracteriza por tener
una respuesta oscilatoria subamortiguada ante una perturbacin en
su estado estacionario, en algunos casos queda totalmente descrito en
el tiempo de transicin por la expresin:
Dnde:
Variable perturbada. Tiempo (s).
Amplitud de oscilacin. Constante de tiempo (s).
Velocidad angular (rad/s). Angulo de fase (rad).
Cree un script que se llame sistema_subamortiguado en el que calcule la variable perturbada para 2 valores de . Tome 1000 valores de tiempo igualmente espaciados desde 0 hasta 100 segundos y
grafique en una misma figura su respuesta usando los comandos plot
y hold on.
rad
20s
No olvide poner etiquetas a la figura y usar comentarios
significativos en el cdigo.
Solucin
El programa lo podemos observar en la figura 1.6, donde en la
lnea 13, dentro del comando plot se ha colocado un tercer argumento
dentro de apostrofes para cambiar el color de la segunda curva.
La figura desplegada se observa en la figura 1.7.
-
Entorno MATLAB y funciones incorporadas
24
Figura 1.6 Solucin al ejemplo de aplicacin 1.2.
Figura 1.7 figura generada por el cdigo de la figura 1.6.
-
MATLAB desde cero
25
Ejemplo de aplicacin 1.3
La presin de vapor de una especie qumica a una temperatura est
dada por la ecuacin de Antoine:
Dnde:
= constantes de Antoine
Presin de saturacin en kpa Temperatura en C
Se presentan valores de las constantes de Antoine en la tabla 1.2
para tres sustancias diferentes.
Etanol Etilenglicol Metanol
Tabla 1.2 Constantes de Antoine para tres sustancias.
Cree un script llamado Tabla_de_vapor que genere una tabla que contenga las presiones de vapor de los tres compuestos en un
intervalo de temperatura de 100 a 200C, con saltos de a 10, y cuya
primera columna sea la temperatura.
Luego cree otra tabla que contenga el en el mismo intervalo de temperatura usando la siguiente relacin:
Use la funcin disp para crear encabezados en el despliegue de ambas
tablas.
Solucin
La figura 1.8 muestra la solucin al problema.
-
Entorno MATLAB y funciones incorporadas
26
Figura 1.8 Ejemplo de aplicacin 1.3
Figura 1.9 Despliegue de resultados en el command window del cdigo de la figura 1.7
-
MATLAB desde cero
27
EJERCICIOS PROPUESTOS
1. La ecuacin de estado de un gas ideal se muestra a continuacin:
Cree un vector que contiene valores de presin entre 5 y 10 atmsferas con
saltos de 1 y calcule los volmenes molares para este rango de presin a una
temperatura de 600 K. Realice una tabla que contenga los valores de presin y
de volumen.
2. El calor que se transfiere a travs de una pared est dada por la ecuacin:
Dnde:
= Coeficiente de conduccin ); rea de la pared Diferencia de temperatura en las superficies de la pared
Espesor de la pared
La siguiente tabla muestra los valores para el rea y la longitud de 9 paredes.
1 2 3 4 5 6 7 8 9
60.0 73.0 55.0 47.0 78.0 36.0 60.0 20.0 49.0 0.8 1.7 2.5 1.3 0.5 2.0 3.0 2.7 1.5
La correspondencia del rea de la pared con su espesor no est dada por la
tabla anterior, sino que a mayor rea de pared, mayor longitud tambin; de
esta forma, la pared de mayor espesor tiene el rea mayor, y la de menor
espesor tiene el rea menor, as que deber ordenar la informacin usando el
comando sort.
Calcule un vector que guarde el valor del calor transferido a travs de cada
pared y cree una tabla que en su primera, segunda y tercera columna tenga los
valores de rea, longitud y calor de cada pared respectivamente, ordenada de
menor a mayor magnitud de transferencia de calor. Use la funcin sortrows
para la esta tabla.
= 15 ; =20K
-
Entorno MATLAB y funciones incorporadas
28
3. El comportamiento de un gas real est descrito por:
Donde el factor de compresibilidad est dado para bajas presiones por la ecuacin del virial truncada hasta su segundo coeficiente:
Y adems el segundo coeficiente lo podemos calcular a travs de las correlaciones Pitzer:
=Temperatura y presin crtica del gas , =Temperatura y presin reducida en el estado del gas
Factor acntrico de Pitzer
Para el ter dietlico se conocen los siguientes datos:
(K) (bar) 466.7 36.4 0.281
a) Calcular el volumen molar de ter dietlico para 20 temperaturas
igualmente espaciadas entre el rango de 600 y 800 K a una presin de 1 bar.
Construya una tabla cuya primera columna sea la temperatura, la segunda sea
el segundo coeficiente del virial, la tercera el factor de compresibilidad y la
cuarta el volumen molar. Use la funcin disp para crearle un encabezado a esta
tabla.
b) Construya grficas en diferentes scripts para el segundo coeficiente del
virial, el factor de compresibilidad y el volumen molar del ter dietlico para
temperaturas entre 100 y 800 K y una presin de 2 bar.
-
MATLAB desde cero
29
4. Cuando se conoce la composicin y la temperatura de una solucin binaria
lquida no ideal, en equilibrio con su vapor, la presin del sistema (presin de
burbuja) se puede calcular haciendo uso de la ley de Raoult modificada:
Donde y son los coeficientes de actividad de los componente 1 y 2 respectivamente, y se pueden expresar mediante la ecuacin NRTL (Non
Random Two Liquid).
[ (
) +
]
[ (
) +
]
Donde , y , son parmetros especficos para un par de especies en particular.
y
son las presiones de vapor de los componentes 1 y 2 respectivamente
y estn dadas por la ecuacin de Antoine:
Se conocen los siguientes datos para la mezcla 1-propanol (1) y agua (2)
(cal/mol)
(cal/mol)
0.5081 500.40 1636.57
Las constantes de Antoine para las sustancias son:
1-propanol (1) 16.1154 3483.67 205.807 Agua (2) 16.3872 3885.70 230.170
-
Entorno MATLAB y funciones incorporadas
30
A partir de la informacin anterior, para un rango de temperatura entre 20 y
100 C con saltos de 8C y fracciones molares y :
a) La presin total del sistema.
b) La composicin de la fase vapor usando la ley de Raoult modificada.
c) Tabule y grafique los coeficientes de actividad en funcin de la temperatura.
Etiquete su figura.