módulo 1 entorno matlab y funciones incorporadas

30
1 Módulo 1 Entorno MATLAB y funciones incorporadas. MATLAB es un pseudo-lenguaje de programación usado para realizar grandes cantidades de cálculos numéricos, visualizar gráficas, analizar datos y crear algoritmos que implican la selección de acciones entre alternativas predeterminadas por el usuario. Estos atributos hacen de este software una herramienta muy útil para el ingeniero químico a la hora de abordar procedimientos iterativos y/o que requieren soluciones numéricas con mediana precisión, sin necesidad de aprender otro lenguaje de programación como C++ o FORTRAN. MATLAB es un lenguaje de alto nivel, lo que quiere decir que sus sentencias son escritas similarmente como se haría en inglés ordinario. Generalmente, en las escuelas de ingeniería se usa MATLAB porque éste brinda un ambiente amigable de interacción, además 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 ingeniería. Cabe destacar que MATLAB no se concibe como un lenguaje de programación porque carece de algunos elementos o características importantes para una buena práctica de la programación, sobre todo en la creación de los “objetos” en el denominado “paradigma de programación orientado a objetos”; por lo que el autor de este texto optó por llamar a MATLAB pseudo-lenguaje.

Upload: jaderenriquemartinezdelarosa

Post on 10-Nov-2015

26 views

Category:

Documents


0 download

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.