You are on page 1of 106
Curso Basico de Matiab™ con Aplicaciones en Ingenieria Grupo de Investigacién en Simulacién, Diseiio, Control y Optimizacién de Procesos, SIDCOP Departamento de Ingenieria Quimica pe Gi ** Facultad de Ingenieria Curso Basico de Matlab® con | Aplicaciones en Ingenieria | ff MAURICIO ESTEBAN SANCHEZ Medellin - 2011 Mauricio Stinctee, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica. Universidad de Antioowia. (Curme Risico de Matiab™ con Aplicaciones en Ingenieria Quimica ii Agradecimientos A Oscar Dario Mufioz, monitor del Departamento de Ingenieria Quimi Franco, MSc. Ing Quimico, por su valioso aporte en el desarrollo de la versién original de este documento, Al Departamento de Ingenieria Quimica, al DRAL y al CESET por su permanente apoyo para dar continuidad a este curso. Maurielo Sanches, Grupe de mvestigacion SIDCOP, Depto, de Ing, Quiaiea. Universidad de Antiogaia. (Curso Bésico de Matlab™ con Aplicaciones on Ingonieria ‘TABLA DE CONTENIDO Tabla de contenido iii Lista de tablas Lista de geficas y figuras 1. Fundamentos de MATLAB 1 1.1 ,Qué es MATLAB? 1 1.2 Elambiente de MATLAB 2 1.2.0 La ventana de comandos 3 1.2.1 Historia de comandos (Command History) 3 1.2.2 Bot6n Start y plataforma de lanzamiento (Launch Pad) 4 1.2.3 Navegador de ayuda (Help Browse:) 4 1.2.4 Navegador del directorio active (Current Directory Browser) 4 1.2.5 Bl camino de busqueda (Search Path) 5 1.2.6 Navegador del espacio de trabajo (Woskspace Browser) y Editor de Arreglos (Array Editor) 6 1.2.7 El Editor/Depurador (Editor/Debugger) 6 1.2.8 E] Perfilador (Profiler) 7 1.3 Comandos Basicos de MATLAB vi 1.4 Variables por defecto 9 1.5 Preferencias 10 1.6 Ayuda (Help) i 1.7 Demostraciones (Demos) 13, Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing. Quimica, Universidad de Antioquia. Curso Bis je Matiab™ con Aplicaciones en Ingenieria Quimica 1.8 Herramientas de MATLAB (Toolboxes) 2. Matrices y vectores (Algebra Lineal) 2.1 Definicién de matrices 2.2 Operaciones basicas con Matrices y Vectores 2.4 Manipulacién de caracteres 2.5 Ficheros.m 2.6.1 Ficheros de comandos (Scripts) 2.6.2 Definicién de funciones 2.6 Entrada y salida de datos 2.6.1 Funeién Input 2.6.2 Funcién Disp 3. Derivadas, Integrales, Interpolacién y ajuste de datos 3.1 Manipulacién de polinomios representados per vectores 3.2 Derivadas e Integrales 3.2.1 Derivadas 3.2.2 Integrales 3.3 Interpolacién, 3.3.1 Interpolacién simple o unidimensioral 3.3.2 Interpolacién doble o bidimensional 3.4 Ajuste de datos Mauricio Sénche2, Grupo de Investigacin 1COP, Pepto. de Ing. Quimica. Universidad de Antioquia 22 28 29 30 32 32 34 35 35 35 37 37 38 39 39 40 4 Curso Bisico de Matiab™ con Aplicaciones on Ingenieria Quimica 4, Programacién en MATLAB 4.1 Bifurcaciones y bucles 4.1.1 Sentencia if 4.1.2 Sentencia switeh 4.1.3 Sentencia for 4.1.4 Sentencia while 5, Graficos 2D, grificos 3D 5.1 Graficos 2D 5.1.1 Manipulacién de los ejes de coordenadas 5.1.2 Especificacién de linea y mareadores 5.1.3 Funcién subplot 5.2 Graficos 3D 5.2.1 Lineas en 3D 5.2.2 Superficies en 3D 5.3 Comandos 5.3.1 Comando Subplot 5.3.2 Comando ezplot 5.3.3 Comando polar 5.3.4 Comando pol2cart 5.3.5 Comando plotyy 5.3.6 Otras grificas utiles 5.3.7 Graficas especiales 5.3.7.1 Comando area Mauricio Sanches, Grupe de Investigacion SIDCOP, Depto. de Ing. Quimica, Universidad de Antioquia. 44 45 46 47 49 53 53 55 37 58 59 59 60 62 62 63 65 66 67 68 68 See Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 5.3.7.2 Comando bar, barh 69 5.3.7.3 Comando pie 70 5.3.7.4 Comando plot3 1 5.3.7.5 Comando meshgtid n 5.3.7.6 Comando mesh, meshe, meshz. nR 5.3.7.7 Comando surf, surfe 4 5.3.7.8 Comando shading 8 5.3.7.9 Comando contour, cotour3, contoure, contourt 16 5.3.7.10 Comando pcolor 7 5.3.7.1 Comando clabel 8 5.3.7.12 Comando colorbar 19 $.3.7.13 Comando imread 80 5.3.8 Creacién de movimiento de Matlab 81 6. Solucién de ecuaciones diferenciales y aplicaciones de MATLAB 83 6.0 Eeuaciones diferenciales 83 6.1 Solucién de una ecuacién difere 83 Ejcmplo de aplicacién. Mezelado de soluciones 83 6.2 Solucién de varias ecuacines diferenciales sinmltaneas 85 6.2.1 Hjemplo de aplicacién. Produecién estireno a artir de etilbeneeno 85 Tools ODE para Matlab® 92 Problemas propuestos 95 Referencias 96 Sanchez, Grupo de Investigacion SIDCOP, Depto, de Ing. Quimica, Universidad de Antioquia, (Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica LISTA DE TABLAS ‘Tabla 1.3.1 Algunas funciones elementales de MATLAB 08 Tabla 1.5.1 Posibles formatos de nimeros en MATLAB ul ‘Tabla 1.8.1 Herramientas de MATLAB y sus aplicaciones 18 Tabla 2.1.1 Funciones para crear matrices especiales 2B ‘Tabla 2.2.1 Operadores matriciales 23 ‘Tabla 2.3.1 Comandos y funciones que aplican sobre matrices dispersas 30 ‘Tabla 2.4.1 Comandos que utilizan como argumentos cadenas de caracteres 31 Tabla 2.5.1 Algunas caracteristicas de los archivos .m 32 Tabla 3.1.1 Funciones que actiian sobre vectores que representan polinomios 36 Tabla 3.3.2.1 Volumen especifico de agua sobrecalentala 42 Tabla 4.1.1, Operadores légicos y relacionales. 46 Tabla 5.1. Funciones para la creacién de grifico 54 ‘Tabla 5.2. Funciones de indicadores para las gréficas 54 Tabla 5.1.1.1 Tipos de lineas, marcadores y colores. 59 ‘Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto, de Ing. Cuimics. Universiiad de Antioquia, Curso Bisico de Matiab™ con Aplicaciones on Ingenieria Quimica LISTA DE GRAFICAS Y FIGURAS Figura 1.2.1 Apariencia del escritorio de inicio de MATLAB 2 Figura 1.2.2 Apariencia de la ventana de comandos 3 Figura 1.2.3 Opciones del boton de inicio: 4 Figura 1.2.4 Apariencia de la ventan del editor y depurador de archivos 7 Figura 1.2.5 Apariencia de la ventana de un reporte del Profiler 7 Figura 1.5.1 Apariencia de la ventana para fijar algunas preferencias de MATLAB u Figura 1.6.1 Una de las opciones de acceder a la ayuda de MATLAB 12 Figura 1.6.2 Ventana de navegador de ayuda completa de MATLAB B Figura 1.7.1 Visualizacién de las posibilidades de MATLAB mediante el demo 3D-plots 17 Figura 3.4.1. Comparacién de curvas de ajuste segun diferentes funciones 44 Figura 4.1. Bifurcaciones mas comunes en programacién. 45 Figura 5.1.1. Rangos de ejes de una grifica asignados en Matlab por defeeto 55 Figura 5.1.2. Asignacién de colores por defecto para diferentes curvas en una misma grafica 56 Figura 5.1.3. Visualizacién de regibn de interés usando a funcién axis 57 Figura 5.1.4, Visualizacién de curvas en grificas (ventanas) diferentes 58 5.1.5. Visualizacién de curvas con diferentes estilos de linea y marcadores 59 Figura 5.1.6. Curvas con diferentes ejes coordenados en una misma grifica 60 Figura 5.2.1. Curva tridimensional obtenida con la funcidn plot 61 Figura 5.2.2. Superficies tridimensionales obtenida con las funciones surf y mesh eo Figura 5.3.1 Comando subplot 65 Mauricio Sanchez, Grapo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antiogui, ‘Curso Basico de Matiab™ con Aplicaciones en Ingenieria Quimica 7 Figura 5.3.2 Comando ezplot 65 Figura 5.3.3 Comando polar 66 Figura 5.3.4 Comando pol2cart 67 Figura 5.3.5 Comando plotyy 68 Figura 5.3.6 Otras graficas tiles 69 Figura 5.3.7.1 Comando area 70 Figura 5.3.7.2 Comando bar, barh 1 Figura 5.3.7.3 Comando pie R Figura 5.3.7.4 Comando plot B Figura 5.3.7.5 Comando meshgrid B Figura 5.3.7.6 Comando mesh, meshe, mesh. 4 Figura 5.3.7.7 Comando surf, surf 5 Figura 5.3.7.8 Comando shading 1 Figura 5.3.7.9 Comando contour, cotour3, contoure, contour! 78 Figura 5.3.7.10 Comando peolor 19 Figura 5.3.7.11 Comando clabel 80 Figura 5.3.7.12 Comando colorbar 80 Figura 5.3.7.13 Comando imread_ 81 Figura 5.3.8 Creacién de movimiento de Matlab 82 Figura 6.1.1 Respuesta dindmica de la cantidad de sal dentro de tanque 85 Figura 6.2.1. Apariencia del Profile report de Matlab 90 Figura 6.2.2. Perfiles de temperatura y conversién a lo largo del reactor on Mauricio Sanchez, Grupo de Investigacin SIDCOP, Depto. de Ing. Guimlca. Universidad de Antioquia, See eee eee Curso Bisico de Matiab™ con Apiicaciones en Ingenieria Quimica 1 1, FUNDAMENTOS DE MATLAB™ 1.1 Que es MATLAB™? MATLAB™ es un programa interactivo desarrollado para realizar célculos numéricos y isualizar datos. En un principio fue disefiado en FORTRAN™ como MATrix LABoratory n original parecfa ser aburrida jempos actuales, este programa ha avanzado hasta el punto de resolver problemas no lincales y sumi complejidad para describir tales problemas. Ademas de ser una ap! es muy facil de manejar gracias a todas la herramientas (Toolboxes) que lo conforman"", ‘Una de las caracteristicas principales de MATLAB™ es que ti programacién con un alto desempefio que integra cil i en un ambiente muy fécil de usar donde los problemas y las soluciones son expresadas en tuna notacién matemética muy fcil de entender para estudiantes y profesionales de las éreas de las ciencias y la ingenieria. Dentro de los usos tipicos se incluyen: CAlculo y matematicas. Desarrollo de algoritmos. jon de datos. imulacién de procesos. lizacion de datos. Graficos cientificos y de ingenicria. Desarrollo de aplicaciones, incluyendo construccién de interfaces graficas para el usuario, entre otras. Los elementos basicos de MATLAB™ estan en arreglos que no requieren dimensionamiento (niimeros de doble precisién, de coma flotante, complejos, imaginarios, etc.). Esto nos permite resolver muchos problemas de célculo, especialmente aquellos con formul vectoriales y matriciales, en una fraccién del tiempo que tomarfa escribir un programa si cn un Ienguaje escalar como C 0 FORTRAN. Este paquete de software ha evolucionado desde su inicio gracias a la ayuda de sus usuarios alrededor del mundo. En las universidades es la herramienta instructiva para cursos de introduccién y cursos avanzados de mateméticas, ingenieria y cicnci MATLAB™ es Ja eleccién para la investigacién, desarrollo y andlisis para la alta productividad. MATLAB™ offece una fa jlicaciones especificas adicionales Hamadas cajas de herramientas (toolboxes), que permiten aprender y aplicar tecn! son colecciones de funciones de MATLAB (archivos .m) que extienden el ambiente de MATLAB para resolver problemas particulares. Entre las dreas en que las cajas de Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia, (Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimica berramientas son aplicables se encuentran el procesamiento de sefiales, ajuste de curvas, adquisicion de datos, sistemas de control, enlace con Excel, herramientas financieras y estadisticas, procesamiento de imagenes, redes neuronales, logica difusa, optimizacién, ecuaciones diferenciales parciales, control robusto, malemiéticas simblicas, identificacién de sistemas, simulacién y muchas més 1.2 El ambiente de MATLAB (Figura 1.2.1) se esta Este Prowpe pestata para ir cone ee eoperande Bl ciectorio, para tas Srdenes setual obtener ‘el ‘ayuca. usuario. See Curso Basico de Matlab™ con Aplicaciones en Ingenieria Quimica 3 En el momento en que se arranca MATLAB haciendo doble clic sobre el icono, aparece el esctitorio (MATLAB desktop), que contiene las herramientas para la administracién de archivos, Variables y aplicaciones asociadas con MATLAB. El escritorio aparece como se muestra en la figura 1.2.1 La manera como se Ye el escritorio de MATLAB puede ser cambiada abriendo, cerrando, moviendo y cambiando el tamafio de sus componentes. Usando el ment View para abrir y cerrar los Componentes. Ciertas caracteristicas de los componentes de! eseritorio pueden ser personalizadas por el usuario seleccionando Preferences en el ment File. 1.2.0, La Ventana de Comandos (Command Window) Se usa para entrar variables y ejecutar funciones y archivos .m, y para visualizar los resultados, como se aprecia en la figura 1.2.2, Se pued decir que esta es Ia ventana mas importante de MATLAB y la (nica que existid en versiones anteriores"! Figura 1.2.2. Apariencia de la ventana de comandos La forma en que MATLAB muestra los resultados puede ser controlada con el comando format, que solo afecia la forma como se ven y no Ia forma de calcularlos 0 guardarlos. Adicionalmente la funcién format compact suprime las lineas en blanco que aparecen en la ventana de comandos para visualizar mejor Jos resuitados. 1.2.1 Historia de Comandos (Command History). Las instrucciones que se hayan ejecutado en la ventana de comandos son guardadas y organizadas en orden cronologico en esta ventana, por si en algtin momento se quiere tener acceso a elas, ‘Mauticio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia, Curso Résico de Matlab™ con Aplicaciones en Ingenieria Quimica 4 Estas instru ventana que aparece al hacer click derecho sobre pegadas en Ia linea de comandos, pero se copia I esta, ‘iones pueden volver a ejecutarse haciendo doble click sobre ellas, 0 con la las. También pueden ser copiadas y -a entera, y no solo un fragmento de 1.2.2. Botdn Start y Plataforma de Lanzamiento (Launch Pad). EI botén Start permite acceso répido y facil a las herramientas, demos y documentacién que hacen parte del progeama, como se observa en fa figura 1.2.3 Gl shorts IF Oeskt Tools @ wer G > » Wh Blocksets > > > » Figura 1.2.3. Opciones del botén inicio La plataforma de lanzamiento permite un acceso similar a estos componentes en forma de arbol. 1.2.3 Navegador de Ayuda (Help Browser). EI navegador de ayuda se utiliza para buscar y ver la documentacién y los demos de los componentes de MATLAB, este es un explorador integrado al escritorio de MATLAB que visualiza todos los documentos en formato HTML. Para abrir el navegador se hace click en el botén “2” en Ia barra de herramientas, o se puede tener acceso a este desde la linea de comandos digitando helpbrowser. El navegador de ayuda consiste de dos paneles, El Navegador, que se usa para buscar la informacién y el panel de visual » que es donde se ve la informacién. Help es quiz4 La palabra més importante en MATLAB, y puede usarse desde la ventana de comandos para realizar bésquedas e cas, por ejemplo para pregunar por la funcion seno como help sin 0 helpwin s cuales muestran la ayuda en la misma ventana de comandos o en una nueva ventana, respectivamente. 1.2.4 Navegador del Directorio Activo (Current Directory Browser). Mauricio Siinches, Grupo de Investigacin SIDCOP, Depto. de Ing, Culmica, Universidad de Antioquis. Curso Bésico de Matial™ con Aplicaciones on Ingenieria Quimica 5 El concepto de directorio activo 0 directorio actual es muy importante en MATLAB. Los programas de MATLAB se encuentran en ficheros con la extensién *.m, Estos ficheros se ¢jecutan tecleando su nombre en Ie Iinea de comandos (sin la extensién), seguido de los argumentos entre paréntesis, si se trata de funciones. Para que un fichero *m se pueda ejecutar es necesario que se cumpla una de las dos condiciones siguientes: © Que esté en el directorio activo. MATLAB mantiene en todo momento un inico directorio con esta condicién. Este directorio es el primer sitio en el que MATLAB ‘busca cuando desde lu Tinea de comandos se le pide que cjccute un fichero, por defecto MATLAB utiliza la carpeta “MATLAB” generalmente ubicada en ‘mis documentos\MATLAB: © Que esté en uno de los directorios indicados en e! Path de MATLAB. El Path es una lista ordenada de directorios en los que el programa busca los ficheros o las funciones que ha de ejecutar. Muchos de los directorios del Path son propios de MATLAB, pero los usuarios también pueden afiadir sus propios directorios, normalmente al principio o al final de la lista. El comando pwd (print working directory) permite saber cual es el directorio activo, Para cambiar de direotorio activo se puede utilizar el comando cd (change directory) en Ia linea de comands, seguido del nombre del directorio, para el cual se puede ul absoluto (por ejemplo cd C:\mis documentos \watlab. Para subir jerarquia de directorios se utiliza el comando cd ..,ycd ../.. para subir dos niveles. Este es el mismo sistema que se sigue para cambiar de directorio en las ventanas de MS- DOS. MATLAB permite utilizar tanto Ja barra normal (/) como la barra invertida (\), indistintamente. Fl comando ca era el tinico sistema de cambio de directorio activo hasta la version R2007a MATLAB. El Navegador del Directorio Activo permite explorar los directorios de! ordenador en forma andloga a la del Intemet Explorer u otras aplicaciones de Windows. Cuando se llega al directorio deseado se muestran los ficheros y carpetas alli contenidos; se pueden ordenar por jombre, etc. El directorio activo cambia autométicamente en funcién del explorador, y también se puede cambiar desde la propia de MATLAB. barra de herramientas del escrit ‘A partir del meni contextual que se abre al hacer click con el botén derecho en cualquier parte de la ventana Current Directory se tiene Ia posibilidad de afiadir ese directorio al Path de MATLAB") 1.2.5 FI Camino de Basqueda (Search Path). El Camino de Biisqueda se utiliza para encontrar archivos .2t y ottos archivos relacionados G mal), que estén almacenados en los directorios del sistema. Cualquier ar funcién que MATLAB este habilitado para ejecutar, dete estar almacenado en el ‘Activo o en un directorio almacenado en el Camino de Biisqueda. Los archivos incorporados Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing, Quimica, Universidad de Antioquie ‘Curso Basico de Matiab™ con Aplicaciones en Ingenieria Quimica 6 de MATLAB estén incluidos en el Camino de Biisqueda. Para ver y moditicar los directorios que estén en el camino de busqueda, hay que seleccionar Set Path en el meni File en el escritorio de MATLAB. De manera alternativa se puede utilizar el comando path para ver el camino de busqueda, addpath para agregar directorios y_rmpath para eliminarlos del camino de basqueda. 1.2.6 Navegador del Espacio de Trabajo (Workspace Browser) y Editor de Arreglos (Array Editor). El espacio de trabajo se compone del conjunto de variables creadas, modificadas y almacenadas durante una sesién en MATLAB. Estas variables se agregan al espacio de trabajo en el momento en que se ejecutan archivos .m. El navegador del espacio de trabajo se utiliza para ver el espacio de trabajo y Ia informacién acerca de cada variable creada. De forma alternativa estas variables y sus valores pueden ser visualizadas desde la ventana de comandos por medic de los comandos who (nombres de las variables) y whos (nombres, tamafio, tipo). En el momento en que se hace doble click en una variable en el navegador del espacio de trabajo se abre una ventana denominada el editor de arreglos, Este permite visualizar y modificar los valores de las variables de una y dos dimensiones. 1.2.7 EJ Editor/Depurador (Editor/Debugger). El Editor/Depurador se utiliza para crear y depurar archivos .m, que son programas que contienen conjuntos de comandos (scripts) o definicién de funciones (function), su apariencia es como la mostrada en la figura 1.2.4. 5 8 ne 2B Ae BS ROU Ne sie ‘Lineas de comentario que no son tenidas en cuando se uta wn programa, interrumpir ejecucion de ur aoe Figura de Ia ventana del editor y depuracor de archivos. Mauricio Séinche2, Grupo de Investigacion SIDCOP, Depto. de Ing, (uimica. Universidad de Antioquia. Curso Basico de Matlab™ con Aplicaciones en Ingenieria Quimica 7 Para crear archivos .m se pude utilizar cualquier editor de texto como el Bloc de notas™ de Windows™, pero la ventaja del Editor/Depurador es que permite ejecutar estos archivos paso a paso para encontrar posibles errores sin Ia necesidad de verificar linea a linca visualmente, sino simplemente detectando el punto donde se encuentra el ertor, al verificar cada paso al ¢jecutar el programa. Otra forma es ejecutando el archivo, y si hay algiin error detectable por MATLAB, en Ja linea de comandos se mostraré el tipo de error y la ubicacion (Gila y columna). 1.2.8 El Perfilador (Profiler). El perfilador es una utilidad que permite saber cémo se ka empleado el tiempo de la CPU en Ja ejecucién de un determinado programa. El perfilador es una herramienta muy detetminar las funciones y las lineas de cédigo que mas veces se Haman y que sc Hevan la mayor parte del tiempo de ejecucién. Dentro de la funcién més llamada, el perfilador proporciona informacién sobre el tiempo que se Heva cada sentencia, y da también algunas orientaciones sobre las po: les de mejorarla. La manera sencilla de utilizarlo es con los comandos profile on —detail operador antes del grupo de instrucciones y profile report justo después de terminar Ia instmcciones que se dean chequear. La figura 1.2.5. Muestra la pagina principal de un reporte Figura 1.2.5. Apariencia de la ventana de un reporte del Projiler 1.3 Comandos Bisicos de MATLAB. Como todos los lenguajes de programacién, MATLAB tiene numerosas funciones ‘matemiétticas, desde las mas elementales, hasta la de mas alto desempefio; en la tabla 1.3.1 se muestran algunas de las ms bisicas para que el lector pueda empezar a practicar con las que Ie sean titiles y fan Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica. Universidad de Antioquia, ‘Curso Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica 8 de MATLAB 4), | Fuscines igonométricas aplicadas a los valores x dados cn radianes ‘| Valor absoluto de x. Raiz cuadrada de x. ‘max(x) 2 | Maximo valor de'los elementos’ de un-vector min(x) ‘Minimo valor de “sum(x) 2 22 | Suma de tos elementos de un vector” ccumsum(x) Vector el veetor suma acumnlativa de un vector mean(x) © | Valor protiedio de los elementos de un vector de log elementos dein Vector.” producto acumulativo de un vector ‘Calcula la transpuesta con ugada de la mattiz A.” Calcula la transpuesta sin conjugar de la matriz. A v=poly(A) Devuelve un. vector con los. coefici AEE | caracteristico de la matriz cusdrada A j ae ‘THtrace(A) Devuelve la suma de los elementos de la diagonal de la Mauricio Séneher, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica, Universidad de Antioquia. ‘Curso Basi 0 Matlab™ con Aplicaciones en Ingenieria Quimica 9 || mairiz cuadrada A potyval(pol) ae Ay: convipl,p2) {x} -deconven. : iue(p polyder(pol) = polyfit(x,y.n) ‘covfcienis de un polinomio p(x) de grado n aque se ajusta alos datos p(x())~=y¢), con el minimo error Las funciones que aqui se presentan son muy pocas, si se quiere ver la totalidad de funciones de MATLAB, en Ia ventana del Help se pueden ver por orden de categoria o por orden alfabético, segiin las necesidades. 1.4 Variables por defecto. Los nombres de variables en MATLAB deben empezar con una letra, y puede ser seguida por cualquier combinacién de letras, nimeros y sublineas (_). MATLAB distingue entre maydisculas y mintisculas, de manera que A y a no son lamisma variable. La longitud de los nombres puede ser cualquiera, pero MATLAB solo usa los primeros 63 catacteres del nombre, ¢ ignora el resto, por esto es importante que cada variable declarada tenga los 63 primeros caracteres diferentes del resto de las variables y se recomienda que no comiencen por un numero o simbolo matemético. Cuando se este declarando una variable hay que tener cuidado de no usar el nombre de una funcién ya existente en MATLAB, porque el programa tendré prioridad por la funcién ya existente. Por ejemplo si se nombra una variable como exp, en el momento de lamar dicha funcidn cl programa lo que intentaré hacer es elevar el nimero neperiano (e) al argumento que se le entra a dicha funcién, Por esta hay que evitar hacer esto. Mancicio Sinchee, Grupo de Investigacion SIDCOP, Depto. de Ing. Quiica, Universidad de Antioquis. ‘Curso Résioo de Matiab™ con Aplicaciones en Ingenieria Quimica 10 En el caso particular de los nimeros imaginarios y complejos, las variables i y 3, en la ‘entrada de datos de MATLAB se pueden utilizar indistintamente la iy Ja j para representar el mimero imaginario unidad (en Ia salida, sin embargo, puede verse que siempre aparece la i. Sila i 0 la j no estén definidas como variables, puede intercalarse el signo (*). Esto no es posible en el caso de que si estén definidas, porque entonces se utiliza el valor de la variable. En general, cuando se esté trabajando con nimeros complejos, conviene no utilizar la i como variable ordinaria, pues puede dar lugar a errores y confusiones. Por ejemplo, obsérvense los siguientes resultados: >> is2 (00 + 3.00004, +34 ans = 8 >> 243%4 ans = 2.0000 + 3.00004 resultado de esta funcién. 1.5 Preferencias. Para aj las opciones que el usuario puede determinar por su cuenta MATLAB cuenta con la opci 5.1. se muestra la caja de dialogo para per ea de comandos, que nos permite modificar el tipo, el color y el tamafo de letra, inclusive se puede escoger el color del fondo, Ademés si queremos que en Ja dos, podemos escoger entre diez opciones Numeric format como se muestra en la tabla 1.5.1. Jonde se explican cada uno de estos formatos: Mauricio Sinchee, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica, Universidad de Antioquia, Curse Bisico de Matlab™ con Aplicaciones on Ingenieria Quimica nN EAE aw Neb ne Heb ews ‘pen ito ce Cone Window Chi aoe Daa ‘Save Worspac A, sePath, oo trbing Lm ample im abies con Figura 1.5.1. Apariencia de la ventana para fijar alg de MATLAB. nas prefe jes Formatos de Numeros en MATLAB ‘Niimeros con dos cifras decimales (formato de moneda). hex Cifras hexadecimales long ‘Coma fija con quince decimales ong @ | Con quince decimales en notacion cientifica o decimal segin el valor. Jonge | Notacidn cientifica con quince decimales short Coma fija con cuatro decimales. [short g | Con cuatro decimales en notacidn cientifica 0 decimal segin el valor. short | Notacién cientifica con quince decimales rat ‘Niimeros racionales expresados como cociente de enteros ! [Solo muestra ,- 0 espacio blanco como resultado. Lo que se pretende aguf es dar una breve nocién de las preféerencias, para conocer més esta til herramienta hay que explorar la caja de dialogo o utilizar la ayuda que contiene MATLAB que seré explicada en el siguiente apartado. 1.6 Ayuda (Help). Para saber todo lo que se necesite, Ia versién completa de MATLAB contiene una completisima y hay que hacer clic a a sas. Al hacer click en alguna de las cinco primeras opciones se abre una ventana, como la mostrada en la figura 1.6.1., en formato html con informacién acerca del tema que se ha escogido. euricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quitnica. Universidad de A Curto Basico de Matlab™ con Aplicaciones en Ingenieria Quimica 10 Fle ER Yew Web Minden Z Ful roduc Farly Ws i SATIRE Hele Using te Bestop Using the Conard window Figura 1.6.1, Una de las opciones de acceder a ta ayuda de MATLAB En Ia opcién Full Product Family Help se puede acceder a Ia informacién completa del subventané de navegacién en el lado izquierdo, que contiene todos los t6picos disponibles, como se ilustra en Ja figura 1.6.2. ep intone Ca om tor @)a1 send = Product Documentation + NAB Decumstain P EE Getting Help alts Hala pees comps Navegador de la ayuda. ‘Ventena que muestra el contenido. Figura 1.6.2. V de navegador de ayuda e ipleta de MATLAB En la opeién Matlab Help se encuentra toda la ayuda sobre MATLAB y sus funciones. Esta portada ne tres capitulos principales: Curso Bésico de Matlab™ con Aplicaciones on Ingenieria Quimica 13 © Learning Matlab. Contiene informacién de cémo empezar a trabajar con el ‘programa. © Finding Functions and Properties. Muestra informacion completa de cada funcién de MATLAB. «Printing The Documentation. Que permite imprimir cualquier documento contenido en la Ayuda, Estos documentos estén en formato pdf (Portable Document Format) y necesitan de Ia aplicacién Acrobat Reader 5 para acceder a ellos. En Ia opcién Using ‘The Desktop se abre una ventana de ayuda con informacion especifica sobre como utilizar y personalizar el escritorio de MATLAB. En fa opcién Using the Command Window se dispone de la ayuda necesaria para aprender a controlar la ventana de commandos que es la ventana principal de MATLAB. En la opcidn Demos se tiene acceso a demostraciones que tiene MATLAB para explicar como funcionan y para que sirven muchas de las funciones y toolboxes (ver la siguiente seccién) que contiene el programa. 1 opeién de Help, About Matlab se abre ura ventana con la versién, el afio de Ademés, se puede también recurrir al Help desde la tinea de comandos de Ja ventana de Comandos. El comando he Lpwin seguido de un nombre de comando o de funcion muestra ppcién Go to cién més completa que puede incluir ejemplos y in se ofrece ayuda. Al final de la pagina aparece una lista de enlaces (See Also) a funciones relacionadas. omando doc tecleado en Ia linea de comandos equivale a Help/Full Product Family ‘va seguido de un nombre de comando o funcién se muestra la informacién detallada iente a ese comando de modo similar a Go to online doc for ... en el parrafo [ATLAB dispone de una ayuda muy completa y accesible, estructurada en inea de comandos en la Command Window, ventanas Help, manuales en yy importante estar familiarizado, porque hasta los mas experts prngramadares tienen que acudir a ella con una cierta frecuencia, Haciendo hincapié en el comando help, que es quiz la palabra més importante y «itil que podamos encontrar en MATLAB. 1.7 Demostraciones (Demos). MATLAB posee una gran cantidad de ejemplos que ilustran su gran capacidad. Digitando el comando demo se abre el navegador de 1a ayuda. En el panel izquierdo se encuentra todos las demostraciones disponibles, lo tinico gue hay que hacer es escoger los temas especificos y ‘Mauticlo Stnchee, Grupo de Investigacién SIDCOP, Depto. de Ing. Quimica, Universidad de Antioquia. Curso Basico de Matiab™ con Aplicaciones on Ingenioria Quimica 14 hacer click en Run this demo , en el panel derecho para visualizar la demostracién, El estilo de las demostraciones varia, ya que explican las herramientas de MATLAB que trabajan de diferente forma, pero en la mayoria de ellas se puede: ‘¢ Ejecutar la demostracién. ‘+ Aprender mis acerca del tema de forma ilustrativa, © Ver el cédige fuente. ‘» Copiar y pegar contenido total o parcial de 1a demostracién para crear otros archivos .m ‘A modo de ejemplo vamos a ejecutar la demostracion mostrada en la figura 1.7.1., que permite ver algunas de las capacidades grificas de MATLAB. 1, Teclee demo en la ventana de comandos. 2. En la ventana del Help expandir la opcién Graphics 3. Hacer doble olic en 3-D Plots, y se visualizaré la siguiente ventana Diferentes opciones de visualizaci6 Informacién de la demostracién Salir La funcién mesh permite crear una malla paramétrica definida por cuatro argumentos Curso Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica 15 definida por cuatro argumentos La funcién surfl ineas de superficie, La func ntour permite creat un plano con las curvas de nivel de una gréfica en 3D, asignando valores a Mauricio Sanchez, nvestigaciin SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia. La fneién quiver permite crear una plano La funcién slice permite crear planos perpendiculares a los de referencia (xy.xz.y2) Figura 1.7.1. Visualizacién de las posibilidades de MATLAB mediante el demo 3D-plots. De esta manera podemos navegar en la gran cantidad de demostraciones que tiene MATLAB, para aprender de una manera interactiva como funciona el programa y los alcances que tiene, porque esta es solo una pequeila dernostracién de lo mucho que se puede hacer con MATLAB. ‘én se pueden correr los demos de la opcién More Demos donde se encuentran aquellos que combinan las diferentes herram/entas de MATLAB. 1.8 Herramientas de MATLAB (Toolboxes). MATLAB contiene gran cantidad de aplica creadas a fuera del alcance de herramientas y sus MATLAB y despertar interés del lector en alguna herramienta determinada. nes para tareas espectficas que han sido sigacion SIDCOP, Depto. de Ing Curso Bisico de Matlab" con Aptioneiones en Ingenieria Quimica ” Tabla 1.8.1, Herramiontas de MATLAB y sus apli 7 [MATLAB COM Builder. | Permite convertir archivos .m en archivos de otros lenguajes. MATLAB Compiler | Permite converlir archivos m en archivos de C 0 C++ MATLAB Excel Builder, | Para incorporar archivos men hojas de calculo de Excel ‘Communications Funciones que ayudan a disefiar sistemas de comunicacién. | Toolbox. | Control System Toolbox. | Conjunto de funciones muy atiles para la teoria del control, Curve Fitting Toolbox. | Funciones para aproximar datos a modelos estadisticos. ‘Suministra un completo ambiente integrado para analists| financiero e ingenierfa. Permita crear y editar sistemas de inferencias difusas (Iogica| Financial Toolbox Fuzzy Logie ifuse) | Mapping Toolbox. Pormite leer, analizar y viscalizar informacion geogralica a aoe Perite crear sistemas enlazados para modificar sus funciones por medio de los enlaces | Optimization Toolbox, | Incluye rutinas con muchostipos de Optimizacién. PDE Toolbox. ara estudiar y analizar Feuaciones Diferenciales Parciales. Signal Processing Para construir y analizar modelos de sefiales. Spline Toolbox Pormite crear y trabajar con funciones polinomiales. Tneorpora calculos simbélicos en el ambiente numérico de MATLAB. ‘Ayuda a crear y visualizar sistemas dinamicos. ‘Modela y simula sistemas dinamicos. Symbolic Math Toolbos Manticio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia, Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 18 2. MATRICES ¥ VECTORES (ALGEBRA LINEAL). Una matriz es un arreglo bidimensional de mimeros complejos o reales. Dentro del algebra lineal se definen gran cantidad de operaciones matriciales que son respaldadas por MATLAB. Dentro de estas operaciones se encuentran Ja aritmética de matrices (suma, resta, etc.), ecuaciones lineales, valores propios y vectores propios (eigenvalues, eigenvectors) y factorizacién de mat -s. Primero veremos como se pueden crear las , ¥ luego como y de que manera se pucde operar con éstas matrices ercadas no hay que predefinir el tamaiio de la matriz ido si es necesario. Estos arreglos se definen por filas, que van separadas por pulsaciones Enter 0 por el caricter punto y coma (:), mientras que los elementos de una ter coma (,). A modo de ejemplo digitese la siguiente sentencia’. >> M=[9 87 65 4; 3,2,1) 9 8 7 6 5 4 3 2 1 era fila Jos clementos estén separados por espacios, y las filas elementos de Ja tercera fila estén separados definir con funciones y operaciones dirigidas al lugar donde se desean ubit elementos. Como guardamos esta matriz con el nombre de M podemos realizar cualquier tipo de operacién con esta para cambiar su contenido o generar una nueva matriz a partir de Ja creada con anterioridad. Para acceder a Jos elementos de una matriz solo es nezesario colocar el lugar del elemento se desea manipular entre paréntesis, (a,b), después del nombre de Ia mattriz, donde a es la fila a la que pertenece el elemento y 5 la columna, ademés como las matrices se almacenan letras mayisculas para nombrar y euardat matrices y letras minisculas para vectores y Curso Bisico de Matlab™ con Aplicaolones en Ingenieria Quimica 19 por columnas, entonces se puede tener acceso a estos clementos con un solo indice entre paréntesis. A modo de ejemplo vamos a cambiar el elemento del centro de la matriz M (elemento (2,2) 6 (5)) por la operacién 2 + 3x5 y veremos el resultado. >>M(2,3)=2+3*5 é >>M (8)=2+3*5 a w 9 8 7 9 8 1 6 5 7 ecient sti 3 at ei 2 Este elemento cambio'de 4 a 17 El operador dos puntos (:) es muy importante en MATLAB y puede usarse de muchas formas para ctear matrices a partir de otras, para extraer elementos, para mover filas de una matriz, para mover filas o columnas de una matriz. Primero creemos un vector x: b> x= dd eau E Bendter Haststen-qeeteeiet jetitste Aetetee Bvestene EeReie } Como podemos ver se creo un vector fila (por defecto) que utiliza como limites los valores de los argumentos y que [os valores intermedios se incrementan en uno, que es la opeién por defecto, Si queremos podemos utilizar otro incremento o decremento entre los limites. Este operador es més util y potente con matrices, Definamos una matriz My después realicemos algunas operaciones con ell >> Me10*rand: 8.6032 0.7699 3.0209 2.9744 2.2096 7.9692 a.1g47 2.3841 9.1246 4.8196 1.2845 4.0718 8.9955 2.4641 0.9082 3.7660 4.2048 4.1139 Mauricio Sanchez, Grupo de Investigacion SIDCOP, Img. 1a, Universidad de Antioquia. ‘curso Basico de Matisb™ com Aplicaciones en Ingenieria Quimica 20 5.0895 3.7063 «3.4078 «3.5392 3.8322 9.9952 6.7972 4.3994 3.4893 5.0919 7.8776 8.8726 6.5866 7.3706 9.0736 3.0691 5.5834 «25537 «9.2391 6.7859 7.9384 8.3027 7.0241 «4.5746 0.7962 «3.4336 © 7.09075. 6600 El siguiente comando extra los elementos 3, 4, 5 y 6 dela tercera fila, >> a=M(3,3:6) 0.9082 4.7273 «3.7660 4.2048 Los dos puntos sin argumentos indican toda la fila 0 toda la columna. Vamos a extraer toda la columna 6. >> beM (2,6) b= La palabra ond indica los elementos del final. >> coMlend, 2) 8.3047 7.0241 «4.5746 0.7962 3.4336 7.0907 9.6600 El siguiente comando extrae las filas 1, 2, 3 y 4, y las columnas 4, 5, 6 y 7. >> dom (1:4, 4:end) a- 4.7782 2.9744 = 2.1096 7.9692 9.3830 4.8196 = 1.2845 4.0718 4.7273 3.7660 © 4.2048 4.1139 3.9392 3.8322 9.9952 6.7972 Este comando es muy til también en Ja sustitucién de los elementos de matrices. Creemos una matriz N de ceros y comencemos a cambiar sus elementos por los de Ia matriz M. >> N=zeros (8) Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica, Universidad de Antioguta, ‘Curso Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica mT Ne (setstct Beeeesee” Petes Esteteee treet Jistster Jeereeea) oo 0 0 © o o ( Hiaststo( peeteceet anti batsteeeesereent tated Teeetea 1 (cissistet oeeetiae) fata Botsteee tient stazter Veteita oo o G6 0 o o 6 oO o 0 9 o o 0 o o 6 © 6 o 6 0 o o 6 6 o oO 6 >> N(1:5, 6:end)=M (4:6, 327)" ne 0 0 o 0 0 3.4078 5.0919 8. 5834 9 0 0 ° 0 3.5392 7.8776 «2.5537 0 ° o ° 0 3.8322 8.8726 © 9.2397 0 0 0 ° 0 9.9952 6.5866 6.7859 0 0 ° ° 0 6.7972 «7.3706 «=—7.9384 ° 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 ° ° 0 0 ° ° 0 0 (1:3 6) 8.6022 0 0.7689 0 3.0209 3.4078 5.5834 ° ° ° ° 0 3.5392 2.5537 ° ° ° ° 3 3.8322 9.2391, . ° 0 ° 6 319952 e889 ° ° o ° a 67872 7938 g.2847 2.3841 0 8.1246 o 9 819955, 0 2.4641 © 0.9082 0 o ° a ° 0 0 0 o De forma breve describiremos algunos comandos sitiles para crear matrices especificas en la siguiente tabla, FI usuario no se debe limitar a Teer, también debe intentar crear y modificar matrices y vectores para adguirir habilidad para la programacién, manejo y solucién. de problemas lineales a medida que lee este texto. Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de ing. Quimica. Universidad de Antioquia, ‘curso Basico de Matiab™ con Aplicaciones en Ingenleria Quimlea 2 Tabla 2.1.1, Funciones para crear matrices especiales. ‘Comando 0 Funcién Descripcion Crea una matriz. nx n, con los n elementos diag(v,0) del vector v en Ia diagonal, y el resto de elementos iguales a cero. Crea una matriz identidad de a filas y b columnas, 0 una matriz cuadrada c x ¢; Crea una matriz. cuadrada de ¢ x ¢ en la cual el resultado de la suma de los elementos de sus columnas es igual, y lo mismo para las filas (ver funcién sum). Crea una matriz 2on todos sus elementos ones(a,b) 0 ones(c) iguales a 1 dea filas y b columnas o decxe Es la mairiz de Pascal de orden , una pascal (c) matriz. simétrica positiva con elementos enteros, tomados del triangulo de Pascal. Crea la matriz de niimeros aleatorios entre Oy I dea filas y t columnas o de ¢ x ¢. Crea una matriz zon todos sus elementos eye(a,b) o eye(c) magic(c) rand(a,b) 0 rand(c) zeros(a,b) © zeros(c) | iguales a 0 dea filas y b columnas 0 : decxe { AS] Matriz. vacia. 2.2 Operaciones Bisieas con Matrices y Vectores. MATLAB puede m: basicas pero de gran oe tabla 2.2.1. ular matrices con funciones u operaciones. Las operaciones més idad, que suelen realizarse con matrices son las mostradas en 1a Tab! 1. Operadores matriciales. Operador + Operacion Suma oadicion Resta 0 sustraccion Multiplication f iacion, ién izquierda AB = BJA ién derecha i a ‘Multiplicacién elmento a elenento 0 elemento a elemento Potenciacién elemento a eleriento Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing, Quionica, Universidad de Antioquia. Curso Bésico de Matlab™ con Aplicaciones on Ingenieria Quimica 23 Todos estos operadores deben ser usados de modo correcto para no obtener un error del programa. Por ejemplo las operaciones suma y resta se deben realizar con matrices del mismo tamafio, Una excepcién a la regla es el modo misto, es decir con un operando escalar En esie caso la operacién con el escalar se aplicaré a cada uno de los elementos de la matrz. Ejercicio propuesto. © Generar dos matrices cuadradas A y B de 3 x 3 y realizarcada wna de las operaciones mostradas en la tabla a excepcion de la potenciacién matricial ( * ). Una operaci6n sencilla pero muy étil de el apostrofo 0 comilla simple (‘) que es el ‘TLAB es hallar Ia transpuesta de una matriz, con \bolo de transposicién matricial. eee ans = tee suiaiaecteiae ‘Como podemos ver las filas se 84 2 volvieron eclumnas y viceversa. 7 4 1 variable en cualquier instante y MATLAB Hamaré al contenido de esta. La transpuesta de M también se hubiera podido asignar a otra matriz N: >> NeM" N= 9 6 8 47 7 4 Los operadores de dis diferentes, como lo veremos a conti ‘i6n. Considérese el sistema de ecuaciones lineales: Ax=b Donde x y b son vectores columna y A una matriz cuadrada invertible, La solucién de este sistema de ecuaciones se puede escribir en las dos formas siguientes: x=inv(A)*b x=A\b Mauricio Stinchez, Grupo de Investigaeiéin SIDCOP, Depta, de ing. Qtieniea, Universidad de Antioquia, Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimiea 24 Como podemos deducit, el operador division izquierda (|) por una matriz equivale a icar por la inversa de esa matriz. Este operador es mucho mds general y util, para remiftase al help de MATLAB. La inversa de una matriz A de n xn, ¢s aquella matriz B de n x n que al ser multi! ‘A (producto cruz) produce la matriz identidad, Obtener la matriz inversa es muy fécil con MATLAB, para esto existe la funcién inv que de inmediato nos da este resultado si y solo si Ja matriz A es no singular” (que ticue inversu). Veamus el siguiente ejemplo: bp Rell 4-3) 215; -2 8 3s Se utiliza; al final para no p> Beinw (al visualizar a A después de ingresatla. 0.1803 0.2213 -0..1885 0.1312 9.0246 0.0902 -0.098¢ 0.1066 0.9574 >> CaAtB Comprobamos que efectivamente Ja matriz identidad (unos en la diagonal). Otro término importante on Algebra Lineal es el determinante de una matriz. cuadrada, aunque este es un célculo tedioso a partir de matrices de 3 x 3, como era de esperarse, en iguiente ejemplo: >> AS[l 4-35 >> d= det 122 Una matr ‘cuadrada que es llama singul ular y su determin: Curse Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica 25 Ejemplo de aplicaci6n 2.2.1. + Paraxileno, estireno, tolueno y benceno se van a separar con el conjunto de columnas de destilacién que se muestran en la figura, con las respectivas composiciones de las corrientes. By | 6X0 | 26 Botieno HA | see tater E 359% Benceno Teno poe 24% Estireno Apt] Bee taltene - 159% Benceno Ba | isssipeno =i mol/min _ (19% Estireno fee co 54% Tolueno A 2% Benen 196 Rencano a) Calcular los flujos molares de Ay, Aa, Ei y B2, Solucién. Balances de materia para los componentes individuales. Xileno: 0.07x E14 0.18% A1+0.15x E2+0.24x A2 =0.15x70 Estireno : 0.04 x E1+0.24x Al+0.10xE2+ 0.65 A2=0.25% 70 Tolueno: 0.54% E1+0.42x Al +0.54%E2+0.10xA2=0.40«70 £0.16 A1+0.21x E2+0.01x A2 = 9.20%70 Benceno : 0.35 E! sual ¢s un sistema de ecuaciones lineales de la forma F.x = b: F Soe 0.07 0.18 0.15 0.24], EF 0.04 0.24 0.10 065]) AT 0.54 0.42 0.54 0.10{) £2 10.35 0.16 0.21 0.01], A2 gue ahora expresaremos en la linea de comandos de forma matricial para solucionar este problema: >> Fe[0.07 0.18 0.15 0.247 0.04 0,24 0.10 0.65 Mauricio Sinchez, Grupo de investigacién SIDCOP, Depts. de Ing iniversidad de Antioquia Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimica 26 0.54 0.42 0.54 0.1 0.85 0.16 0.21 0.01} Fe 0.0700 0.1800 9.1500 0.2400 0.0400 0.2400 9.10000. 6500 0.5400 0.4200 0.5400 0.1000 0.3500 0.1600 0.2100 0.0100 be W[0.1570, 0.25470; 0.404707 0.20*70] be 10.5000 17.8000 28/0000 1410000 >>KeF\b xe 26.2500 17.5000 8.7500 175000 tra forma de resolver el sistema de ecuaciones lineales es: >>Meinv (F) *b xe 26.2500 17/5000 8.7500 1715000 De donde F)=26.25 Ke-mol/min, A,=17.50 Kg.mol/min, E:=8.75 Kg.mol/min y Ay=17.50 Kg.mot/min. La forma x-#\b se recomienda porque es més eficienie que la forma x=inv(F) *» desde el punto de vista computacional b) Determinar los flujos molares A y Ey sus respectives composi Solucién. ‘De los balances de masa en las torres I y 2: Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Guinica, Universidad de Antioquia. Curso Bisico de Matlab™ con Aplicaciones on Ingenieria Quimica 27 E~E1+Al y A=E2+A2 En MATLAB: >> BI (1) ;AL-X(2) ;ESEL4AL B= 43.7500 >> EK (3) ;A2@K(4) ;AE2+AZ A= 26.2500 >> X_Ex=(0.07*E1+0.18%A1) /B SComposicion de yleno en E Kee 0.1140 >> X_Bes(0.04*E1+0.244A1) /E 8Composicion de Ratireno eo xze = 0.1200 >> X_Bt=(0.54/E110.42481) /B 4Conposicion de Tolueno en & XBL #2 0.4920 >> X_Eb=(0.354E140.16%A1) /R tComposteson de Banceno en E x Bb = 0.2740 >> K Axa (0.154E2+0.244A2)/A SComposicion de Xyleno en A KAx = 0.2100 >> X_Ae=(0.1O*E2+0.65*A2)/A SCompesicion de Estireno en A HAs - 0.4667 >> K_At=(0.54¥E2+0.10%A2)/B 8Composicion de Tolueno en A x At = Manziclo Séachez, Grupo de Investigaciin SIDCOP, Depto. de Ing. Quimica, Universidad de Antioquia, ‘Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimicn 28 0.2467 >> X_Ab=(0.21*B2#0.014A2)/A tComposicion de Benceno en A X Ab - 0.0767 1Los vectores son un caso especial de las matrices que contienen todos sus elementos en una (vector fila) 0 en una sola columna (vector columna), la definicién es la ejemplo, para definir un vector columna separamos todos sus elementos por pulsaciones Enter o por punto y coma (;) y para definir un vector fila separamos todos sus elementos por espacios 0 comas (.). Para convertir un vector fila en columna y viceversa se operador transpuesta (’), Todas las operaciones y funciones que hemos visto momento para matrices aplican igualmente para vectores, pero hay operaciones exclusivas de vectores y exclusivas de matrices’. 2.3 Matrices Dispersas. ‘Aquellas matrices de tamafio muy grande donde la gran mayoria de sus elementos son ceros se conocen como matrices dispersas. Para reducir Ja memoria y el tiempo de célculo MATLAB almacena estas matrices de manera diferente a las convencionales. Lo que hace es guardar los elementos de la matriz diferentes de cero con su respectivo indice, para ver esto miremos un ejemplo: >> M=[8.0.0-5 0; 0003 0; 17008; 02000;-600-20] m= >> sparse (M) G,5) 8 nero escalar es una matriz de 1 x 1, as{ que todas las operaciones que aplican sobre matrices, son iguaimente ejecutables sobre evealares, aunque la mayoria de las veces son absoletas. Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto, de ing, Cuimica, Universidad de Antioquia, | ‘Curso Bésico de Matisb™ con Aplicactones on Ingenieria Quimica 29 La tabla 2.3.1. muestra una breve descripcién de algunas funciones tiles con matrices dispersas, para informacion mas detallada se recomienda ver el Help de MATLAB. ‘Tabla 2.3.1, Comandos y funciones que sobre matrices dispersas Comando | Deseripcion Funcién 4 [ speye(m.n) | Matriz identidad dispersa de tamafio m*n con unos en Ja diagonal aprand(m,n)_ ‘Matriz aleatoria dispersa con distribuciép uniforme | ssprandn(m,n) Matriz aleatoria dispersa con distibuci6n normal speandsym() Mairiz aleatoria Encuentra los indices de los elementos di devuelve como si la matriz fuera ur. vector (por columnas).. cae Reemplaza los elementos distintos de cero de una matriz dispersa | Pane S por unos en uma nueva matriz. A. Sintaxis: A~spones(S) issparse(S) Devuelve frue si el argumento es una matriz dispersa 2.4 Manipulacién de Caracteres. MATLAB puede definir variables que contengan cadenas de caracteres. En MATLAB las cadenas de texto van entre apéstrofos o comillas simples como por ejemplo: vmensage = ‘esto es una cadena de caracteres! sage = esto eg una cadena de caracteres Los caracteres en MATLAB se almacenan como veeteres, y cada elemento equivale a un caricter de Ia cadena. Como se observé en el ejemplo las cadenas de caracteres deben ir entre comillas simples para caracterizarlas, Si dentro da la cadena alguna parte debe contener comillas, estas deben ser indicadas por dos comillas simples, por ejemplo: >> textes! ' "Chemica: texto ~ ‘chemical Engineering’ the best Una matriz cuyos elementos son caracteres, 0 una matriz cuyas filas son cadenas de caracteres se denomina matriz, de caracteres. Todas las filas de una matriz de caracteres deben tener el mismo niimero de elementos. Si es necesario, las cadenas cortas se deben Mauricio Sincher, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia, ‘Curso Basico de Matiab™ con Aplicaciones on Ingenieria Quimica 30 completar cuando se espacios en blanco. En la tabla 2.4.1. se observan algunos comandos iti izan caracteres. Tabla 2.4.1. Comandos que izan como argumentos cadenas de caracteres. Comando 0 | Deseripcién Funcién | char(y) Convierie ol vector de niimeros v en una cadena de caracteres. | char(el,c2) Crea una mairiz de caracteres, completando con blancos las cadenas mas cortas. deblank(e) Elimina los blancos al final de una cadena de earacteres ischan(c) Verifica si c es una cadena de caracteres letter(c) Detecta si un cardcter es una leta del alfabeto Detecta si un cardcter es un espacié en blanco stremp(e1.€2) ‘Compara las cadenas cl y €2. Si son iguales devuelve un uno, y sino devuelve un cero a sirompi(el,e2) Similar al anterior pero dejandc pasar por alto la diferencia entre maylisculas y minisculas entero en cadena de earacteres convierte un néimero real x en su expresién por medio de una cadena de caracteres, con cuatre cifras decimales por defecto | (pueden especificarse més cifras, ;gumento opeional m) sprint convierte valores numéricos en cadenas de caracteres ejemplo como titulo de un grafico como se muestra. >> T=273.15;Ve22;R=0.08206; >> PSRYT/V; >> titl a Presion del sistema es: ', numstr{P),* atm']) La Presion del sistema es: 1.0188 atm 2.5 Ficheros de MATLAB 6.5 0 7.x ejecutado en un PC bajo Windows editor de textos, que es también depurador (Debugger). lo mejor es utilizar su propio Existen dos tipos de ficheros *.m, los ficheros de comandos (llamados scripts en inglés) y las faneiones. Los primeros contienen simplemente un conjunto de comandos que se ejocutan sucesivamente cuando se teclea el nombre del fichero en la linea de comandos de MATLAB 0 se incluye dicho nombre en otto fichero *.m. Un fichero de comandos puede Mauricio Sénches, Grupo de Investigacion SIBCOP, Depto. de Ing. Quimica, Universidad de Anti Curso Basico de Matlab™ con Aplicaciones en Ingenieria Quimica 31 amar a otros ficheros de comandos; cuando se llama desde de la linea de comandos de MATLAB, las variables que crea pertenecen al espacia de trabajo base de MATLAB y permanecen en é1 cuando se termina la ejecucién de dicho fichero. Las funciones permiten definir funciones enteramente andlogas a las de MATLAB, con su nombre, sus argumentos y sus valores de retorno. Los ficheros *m que definen funciones permiten extender las posibilidades de MATLAB; de hecho existen bibliotecas de ficheros *m que se venden (toolkits) o se distribuyen gratuitamente (a través de intemet). Las funciones definidas en fichcros *7 sc caracterizan porque la primera linea que no sea un comentario comienza por la palabra funct ion, seguida por los valores de retomo (entre corchetes [] y separados por comas, si hay més de uno), el signo igual (=) y el nombre de la funcién, seguido de los argumentos (entre paréntesis y separados por comas), por ejemplo: function dCdt=ecdi£ (t,C) dcdt=6-c. /1007 La tabla 2.6.1. muestra algunas caracteristicas de los archivos *.m. ‘Tabla 2.5.1. Algunas caracteristicas de los archivos .m | Fichero de Comandos: Funciones ‘No avepta argumentos de entrada ‘Acepta arguments de entrada y retorna | \ z argumentos de salida ‘Opera con datos de el espacio de trabajo | Crea variables que son locales a Ta funcién (workspace) por defecto Son iitiles para automatizar series de| Util para extender el Tenguaje de | pasos que necesitan ser ejecutados | MATLAB para diferentes aplicaciones muchas veces Recuérdese que un fichero *.m puede lamar a otros ficheros *.m, e incluso puede lamarse a si mismo de forma recursiva. Los ficheros de comandos se pueden Hamar tambign desde funciones, en cuyo caso las variables que se crean pertenecen al espacio de trabajo de la funeién. El espacio de trabajo de una funcién es independiente del espacio de trabajo base y del espacio de trabajo de las demés funciones. Esto implica por ejemplo que no puede haber colisiones entre nombres de variables: aunque varias funciones tengan una variable Hamada A, en realidad se trata de variables completamente distintas (a no ser que A haya sido declarada como variable global). Una variable global es aquella que puede utilizar cualquier funcién y deja de ser de uso exclusivo de la funcién que la creo, Para crear estas vatiables se utiliza el comando global seguido del nombre de la variable que hard parte del espacio de trabajo de todas las Funciones y Ficheros de Comandos. Mauricio Sinchee, Grupo de Investigacion SIDCOP, Depto. de ing. Quimica, Universidad de Antioquia. ‘curso Basico de Matiab™ con Aplicaciones en Ingenteria Quimica 32 2.5.1. Ficheros de Comandos (Serips) Como ya se ha dicho, los ficheros de comandos o scripts son ficheros con un nombre tal como archivol.m que contienen una sucesién de comandos andloga a la que se teclearia en el uso interactivo del programa. Dichos comandos se ejecutan sucesivamente cuando se teclea el nombre del fichero que los contiene (sin la extensién), es decir cuando se teclea variables creadas por archive pertenecen al espacio de trabajo base de MATLAB. contrario, si se ejecuta desde una funcién, las variables que crea pertenecen al espaci trabajo de la funcién, En los ficheros de comandos conviene poner Jos puntos y coma (;) al final de cada sentencia para evitar una salida de resultados demasiado cuantiosa. No se puede hacer profile de un fichero de comandos: s6lo se puede hacer de las funciones. Las variables definidas por los ficheros de comandos son variables del espacio de trabajo desde el que se ¢jecuta el fichero, esto es variables con el mismo caricter que las que se crean interactivamente en MATLAB si el fichero se ha ejecutado desde la linea de comandos. Al terminar la ejecucion del seript, dichas variables permanecen en memoria El comando echo hace que se impriman los comandos que estin en un script a medida que van siendo ejecutados. Este comando tiene varias formes: echo on activa el echo en todos los ficheros script echo off desac ‘1 echo: echo file on donde el nombre de un fichero de funcién, activa el echo ‘en esa fiuncién echo file off desactiva el echo en la funcién echo file pasa de on a off y viceversa echo on all activa. echo en todas las funciones echo off all desactivael echo de todas ‘as funciones Mencién especial merece cl fichero de comandos startup.m. Este fichero se ejecuta cada vez gue se entra en MATLAB. En él puede introducir todos aquellos comandos gue le interesa se ejecuten siempre al iniciar la sesién, por ejemplo format compact y los comandos necesarios para modificar el path. 2.5.2. Definicion de Funciones La primera linea de un fichero llamado nombre.m que define una funcién tiene la forma: fonction [Lista de valeres de reterno] = nombre(lista de argumentos) Donde nombre es el nombre de la funcién. Entre corchetes y separados por comas van los valores de retorno (siempre que haya més de uno) y entre paréntesis también separados por Mausieio Stinehe2, Grupo de Investigac ‘Cureo Bisico de Matlab" con Aplicaciones en Ingenieria Quimica 33. comas los argumentos, Puede haber funciones sin valor de retomo y también sin argumentos. Recuérdese que los argumentos son los datos de la funcién y los valores de retorno sus resultados. Sino hay valores de retomo se omiten los corchetes y el signo igual (©); si slo hay un valor de retorno no hace falta poner eorchetes; tampoco hace falta poner paréntesis si no hay argumentos. Como ejemplo creemos la siguiente funcién para sacar laraiz n-ésima del valor v. uu: eoreizn(n,y) reo." (1/n) Una funcién puede lamar a otras funciones desde su espacio de trabajo. function valor=funfun(error) fue) estamos Iamando Ja funcién -asterr dentro de 1a funcion funfun disp (lasterr) ‘Una diferencia importante con muchos lenguajes es que en MATLAB una funcién no puede modificar nunca los argumentos que recibe, de cara al entomo que ha realizado la lamada, Los resultados de una funcién de MATLAB se obtienen siempre a través de los valores de retomo, que pueden ser multiples y matriciales. Tanto el nimero de argumentos como el de valores de retomo no tienen que ser fijos, dependiendo de cémo el usuario Hama a la funcién. Las variables definidas dentro de una fincién son variables locales, en cl sentido de que son inaccesibles desde otras partes del programa y en el de que no interfieren con variables del mismo nombre definidas en otras funciones o partes del programa. Se puede decir que pertenecen al propio espacio de trabajo de la funcién y no son vistas desde otros espacios de trabajo. Para que la funcién tenga acceso a variables que no han sido pasadas como argumnentos es necesario declarar dichas variables como variables globales, tanto en el programa principal como en las distintas fun frecuente utilizar el convenio de usar para las variables globales nombres largos (mas de 5 letras) y con maydisculas. Por razones de eficiencia, los argumentos que recibe uns funcién de MATLAB no se copian Sin embargo, si fcaciones sobre los argumentos recibidos, antes se sacan copias de dichos argumentos a variables locales y se modifican las copias. s valores de retomo deben ser céleulados en algin momento (no hay sentencia return obligatoria, como en C/C1-*/Java). De todas formas, no hace falta calcular siempre todos los posibles valores de retomo de la funcién, sino s6lo los que el usuario espera obtener en la sentencia de Hamada a la funci6a. Bn cualquier funcién existen dos variables definidas de modo automatico, lamadas margin y nargout, que representan respectivamente el niimero de argumentos y el mimero de valores de retomo con los que la Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia ‘Curso Basico de Matiab™ con Aplicaciones en Ingenieria Quimica 34 funcién ha sido Hamada, Dentro de la funcién, estas variables pueden ser utilizadas como el programador desee. La ejecucién de una funci6n termina cuando se llega ¢ su tiltima sentencia ejecutable. Si se quiere forzar el que una funcién termine de ejecutarse se puede utilizar la sentencia return, que devuelve inmediatamente el control al entomo de Tamada. 2.6, Entrada y Salida de Datos. ‘A continuacién yeremos una manera sencilla de leer variables directamente desde el teclado y escribir mensajes en la pantalla: 2A meién Input, La funcién input permite imprimir un mensaje en la Ifnea de comandos de MATLAB y recuperar como valor de retorno un valor numérico o el resultado de una expresion tecleada por el usuario. Después de imprimir el mensaje, el programa espera que el usuario teclee el valor numérico o la expresiOn. Cualquier expresién vilida de MATLAB es aceptada por este comando, El usuario puede teclear simplemente un vecror 0 una matriz. En cualquier caso, la expresiGn introducida es evaluada con los valores actuales de las variables de MATLAB y cl resultado se devuelve como valor de retorno. Véase un ejemplo de uso de esta funcién: >> n = input (‘pigite 1a cantidad de Datos’) tra posible forma de esta funcidn es la siguiente (obsé:vese el parémetro ' 3"): >> nombre - input ("Digite las dimensiones de loa datos’,'s') En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que se almacena en la cadena nombre. Asi pues, en este caso, si se teclea una formula, se almacena como texto sin evaluarse. 2.6.2. Funcién disp. La funcién disp permite imprimir en pantalla un mensaje de texto 0 el valor de una m: su nombre. En realidad, disp siempre imprime yectores y/o matrices, las cadenas de caracteres son un caso particular de vectores. Considérense los siguientes ejemplos de e6mo se utiliza: Este es un ejemplo!) Ejeciitense las sentencias anteriores en MATLAB y obsérvese la diferencia entre las dos formas de imprimir la matriz. M, Mauricio Sanchez, Grupa de Investigacion SIDCOP, Depto, de Ing, Quimica. Universi Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 35 3. DERIVADAS, INTEGRALES, INTERPOLACION Y AJUSTE DE DATOS 3.1 Manipulacién de Polinomios Representados por Vectores. En MATLAB un polinomio de grado n puede ser introducido como un vector fila de la siguiente manera: >> pH[ aq api... a3 a2 a1 aq]; que equivale algebraicamente a: PHa,x" 44, ,2! tut dx +ayx? +a,z! tay En la tabla 3.1.1. se pueden ver comandas itiles para célculos y operaciones con polinomios. ‘Tabla 3.1.1. Funciones que actiian sobre vectores que representan polinomios. ‘Comando 0 Funcién Deseripeién conv (pi, p2) Producio de convolucién de los yomios pl y p2 in poly (A) : “| Polinomio caracteristico de la matriz A polider (pol) z "| Derivada del polinomio pol polider (pl, p2) Caloula la derivada del produeto de los polyfit (x, yn) Calcula los 2oeficientes de un polinomio de grado n que mejor representa los datos x y y, en el sentido del minimo error L | cuadratico medio. polyint (pol) _ Encuentra la integral del polyval (pol, x) polyvaim(pol, A) residue (pl, p2) /Descompone el cociente entre ply p2 en ___| forma de frazciones simples. roots (pol) Encuentra las raices del polinomio pol ‘A manera de ejemplo vamos ar hallar sus raices y determinar el signi Iver un problema con una ecuacién ctibica de estado, para ado de cada una, Ejemplo de aplicacién 3.1.1. * Determinar el volumen molar y el factor de compresibilidad para amoniaco a wna temperatura de 450K y una presion de 56 atm con la ecuacién ciibica de Van der Waals. Para esta sustancia las propiedades criticus son: Te=405.5K y Pow 1113 atm Mauricio Sanches, Grupo de Investigacion SIDCOP, Depta. de Ing ‘careo Résico do Matiab™ con Aplicaciones en Ingenieria Quimica 36 Solucién: La ecuacién de Van der Waals es la siguiente: RE =f 3, e-S Ee. 31. 27 ere kre amd Dondé HRT ye BE yp =0.08206 Hea “Gh Pe spc mol.K Con Ia manipulacién matemética adecuada podemos expresar esta eouacién como un polinomio de tercer grado en V: PV) -(Pb+ RT? +aV ~ab=0 Ee. 3.2, Si remplazamos V = ar tenemos la ecuacién cibica para el factor de compresibilidad: Ee.3.3. “Ahora tenemos que hallar los valores de V y Z que hacen cero las dos ecuaciones ciibicas, o més conveniente para esto es utilizar el comando roots, que inclusive determina las raices imaginarias de cualquier polinomio, veamos: >> T=450; P=56; Te=405.5; Pos1ll.37 R-0.082067 >> a=QT*TC*2*R*2/ (64*Pc) ; b=R*Tc/ (8*Po) 7 El polinomio de la ecuacibn 3.2 puede escribirse como an vector de cocficientes: >> V3I=[ P -(P*b+R*T) a -a*b]; >> Vol=roots (V32} Vol = 0.57489 0.060945 + 0,0340234 0.960945 - 0.034023i El factor de compresibilidad puede obtenerse de la ecuacién 3.3 segin: >> Zeroots ((R°3*T*3/PA2 -(Peb+R*T) *R°Z*T02/P02 a*R*T/P ~a*b]) Mauricio Sinchez, Grupo de Investigacién SIDCOP, Depto. de Ing, Guimica, Universidad de Antioquia. Curso Bésico de Matlab™ con Aplicaciones 37 0.87193 0.092423 + 9,0515964 9.092423 = 0.0515963 Como podemos ver solo un valor de las tres raices posibles son reales, esto quiere d el amoniaco a las T y P dadas no puede existir ni como fase liquida, ni como una mezela de liquido saturado con vapor saturado, 3.2, Derivadas e Integrales. MATLAB cuenta con poderosas herramientas que nos pueden ayudar a solucionar pr de célculo con métodos numéricos que son muy aproximados a los métodos analiticos. ‘Vamos a ver algunas de las funciones que nos pueden ayudar resolver diferentes tipos de problemas en situaciones especificas. 3.2.1 Derivadas. El comando polyder calcula los coeficientes de un rolinomio que es Ia derivada de otro polinomio expresado también un vector de coeficientes. Hallemos la derivada del polinomio x5 = 2. Lats 16x? + 8.3K + 2. >> pol=[3 -2-1 -16 0 8.3 2]; >> polyder (pol) ans = 15 8.4 48 0 8.3 Entonces la derivada del anterior polinomio es 15x'—8.4x° = 48x°+ 8.3 Para expresiones que no son tan sencillas como los polinomios no podemos ei soluciones tan exacias, entonces nos vemos obligados a utilizar métodos numéricos de diferencias finitas para saber la derivada de una funcién en determinados puntos. Para hacer esto contamos con la funcién di ££ que realiza la resta entre el un elemento de un vector y el elemento siguiente ejecutindose para todos vector de diferencias de n-1 elementos. Para la ecuacién de Redlich-Kwong vamos a hallar ¢ lo largo del vector de voltimenes que creamos. >> V=1:0 00; >> Te 0. Po=111.3;R=82.06; >> T=380 >> a=0.42748.*R.*2.*T0%2.5./Por >> b=0108664*R*Tc/Pes Mauricio Sanches, Grupo de Investigacion SIDCOP, Depto. de Ing. Quine iversidaal de Antioquia. Curso Basico de Matiab™ con Apiicactones en Ingenieria Quimica 38 >> P=(R*T./(V-b. (sqrt (T).*V.* (V+b) >> dP_dV=diff (P)./di ft ( Ejercicio propuesto. i © Con el vector dP_dV hallar los mdximos y los minimos de la presién para una temperatura de 380 K. 3.2.2 Integrales. El comando intemo quad integra una funcién f() desde un limite inferior a a un limite superior 4 dentro de una tolerancia fo. La sintaxis general de este comando es: mmbreFuncion, a,b, t0,p1,p2,.) >> quad Donde NombreFuncion es el nombre de la funcién a integrar que debe ir entre comillas simples, aa, b=b, 10=fo, pl, p2, etc., son los parémetros que hacen parte de ta funcién. La funcién a integrar debe tener la forma: Function z = NombreFuncion (x,p1,p2,..) Donde x es la variable independiente sobre la que quad va a integrar. La variable independiente siempre debe estar en esta ubicacién. Ahora deberiamos mirar como funciona este comando. Dos cantidades que son de interés en el célculo son el érea de una regién entre dos funciones y la localizacién de su centro de masa, Vamos a asurnir que tenemos dos curvas y/=fi() y 2/569), y que las dos curvas se intersecan en x, y x». Entonces el rea entre los dos puntos de interseccién es: - A= fat=[(y2-y)de 'Y la ubicacién del centro de masas de esta drea es: 12 12 i ren 5 | xda=5 [ eave A a 7 2 ee Soren ase (aaa yong [dha 5 | S024 s0da~3; | oF-ydae a A A Si suponemos que yj=x? y y2=x+2 es facil deterrrinar que la interseccién de estas dos funciones es x;=1 y x:=2. Resolviendo las integrales propuestas arriba A=4.5, x.=0.5 y Ye=1.6, Digitense las siguientes lineas para comprobar esto. ccotigacin SIDCOP, Depto, de lng, Quimica. Universidad de Antioquia Curso Bésico de Matlab! con Aplicaciones en Ingenieria Quimica 39 >> area-quad(inline("x#2", y71,2)- quad(inline (*.°2", >> xo=quad (in: 171,2) ferea 0.5 >> yer quad(inLine{ am. 04)/2", )farea yor 1.6 tra forma de obtener una aproximacién de una integral es el comando t rap2. En este caso uno especifica los valores de x y los valores correspondientes de y. Aunque algunas veces puede ser menos exacto, este tiene Ia ventaja de que no hay que crear funciones como se requiere con quad. Ademés este es muy Util cuando el argumento de la integral esta solamente disponible como vector o matriz. Para resolver el mismo ejemplo que con quad digitense las siguientes sentencias: >> xostrapz (x, >> yertrapz (x yy} Jarea (42) 922.74) /(2.*area) El tea de diferentes curvas puede también ser aproximada con el comando polyarea donde los argumentos deben ser las coordenadas de las Iineas interconectadas que forman una aproximacién de estas curvas y deben formar una curva completamente cerrada (poligono), Para calcular el area de los ejemplos anteriores digitese: >> xe inspace (-1, 2,200) ¢ b> yon. 2 >> yel2 4 yl >> arearpolyarea (x, y) 4.4999 3.3. Interpolacién. La interpolacién es un proceso para estimar valores que estin entre puntos de datos conoeidos, estos métodos tienen importantes aplicaciones en muchas areas de la Ingenieria Quimica. Aqui veremos la interpol iplc y la interpolacién doble. 3.3.1. Interpolacién simple o unidimensional. wvestigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia. (Curse Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica 40 La funcién interp1 realiza interpolacién unidimensional. Esta funcién utiliza wéenicas conocides y evaluando la funcién apropiada en la interpolacién deseada. Su forma més general es: >> Virinterp|(%, ¥,Xi,método) Y es un vector que contiene los valores de la funcién, X es un vector de la misma cantidad de clementos que ¥ que contiene los datos correspondiente a los del vector X. Xi es un vector que contiene los datos que se van a interpolar. método es un arreglo de caracteres opcional especificando el método de interpolacién (‘nearest’, ‘linear’, ‘spline’, "cubic 0 pchip' o "vScubic’) Fn el caso Yi = interpl(X, ¥, Xi, método, ‘extrap') utilize el método especificado para del intervalo de X. Cabe anotar que en cualquier dos y usados con precaucién, pues en funciones predecir su comportamiento. imegulares u de cambios abruptos es Excepto VScubic, Jos métodos funcionan con datos no incrementados uniformemente. 3.3.2, Interpolacién doble o bidimensional. La fucién interp2 realiza interpolacién bidimensional, su forma més general es: >> ZisInter. (x, ¥,2,Xi, ¥i, ‘metodo’ } Zes un arreglo rectangular gue contiene los valores de una funcién bidimensional, X y ¥ son arroglos del mismo tamafio con los datos para los cuales Z es dado. Xi y Yi son matri ‘vectores que contienen Jos puntos a interpolar, metodo es un arreglo de caracteres opcional especificando el método de interpolacién. Para ver esto utilizaremos las tablas de vapor sobrecalertado, en las cuales el volumen mo! Ja entalpfa, la energia intema y la entropia estén dados como funcién de la temperatura y la presiOn del sistema. En este caso vamos a interpolar los voltimenes de vapor a diferentes temperaturas y presiones. restigacién SIDCOP, Depto. de ing. Quimica. Universidad de Antioquia, Grupo de Curso Bisico de Matiab™ con Aplicaciones en Ingenleria Quimica 41 Tabla 3.3.2.1 Volumen especifico de agua sobrecalentad = iE 180.000 175.000 200.000 225.000 —250.000 | 1910.700 2027.700 2143.800 2259.300 2374.500 1545.600 1641.000 1735.600 1829.600 — 1923.200 1285.200 1366.200 1444.400 123.000 160.300 1099.100 1166.200 1236.400 = 1304.100 1371300 959.540 1020.400 1080.400 1139.800 — 1198.900 850,970 905.440 958,060 1012.00 1064.700 746.090 613.170 661.960 909.910 957.410 693.000 736.210 782.550 826.290 869.610 Donde la temperatura estd en °C, la presién en KPa y el volumen espeeffico en emg” Pa y 160°C, 163 KPa y 213°C, 5.6 1641 1735.6 1829.6 1923.2; >> Pix(110 163 267 55 Ti=[160 213 188.6: >> Visinterp2(?,P/VeT, Pi) Vig 1820.6 1374.2 724.12 3.4. Ajuste de Datos. Como se vid anteriormente el comando polyfit es una poderosa herramienta utilizada para ajustar una setie de datos a una simple ccuacién polinomial, aqui veremos como hacer esto y que tan confiables son dichos ajustes en el momento de predecir algin valor desconocido. ‘Vamos a ajustar los datos del equilibrio Acctona(1) - Hexano(2) a una temperatura de 20°C: Sanches, Grupo de Investigacién SIDCOP, Depto. de log. Quimica. Universidad de Antioquia, Curso Basico de Matiab™ con Aplicaciones on Ingenicria Quimisa 2 Sistema Acetona-Hexano a 20°C Pymmig = XT yh 6 0 0 2 0.0913 0.3966 226.7 0.2563 0.5421 2323 0.3019 0.5595 2324 0.3543 0.5737 237.0 0.4035 0.5827 2388 0.5325 0.6092 237.7 0.6609 0.6362 2393 0.7309 0.6564 2379 0.7679 0.6722 2343 0.7862 0.6825 234.1 0.8219 0.6975 230.3 © 0.8528 ¢.75202 220.6 0.9105 0.7778 202.9 0.9619 0.8739 181.5 1 1 ‘Vamos a ajustar los datos de las composiciones del liquido (X;) y el vapor (1) a polinomios de grados 2, 3 y 4 para observar las diferencias entre estos. Digitese lo siguiente en la linea de comandos: X1=[0 .0913 .2563 .3019 .3543 .4035 .5325 6609 .7309 .7679 .7862 .8219 8528 9105 .9619 1) YA=[0 13966 5421 -5595 .5737 .5827 6092 6362 .6564 6722 .6825 .6975 15202 .7778 -8739 1 Pompolyfit (K1,Y1, 2 P3~polyfit (K1, Y1, 3] P4=polyfit (x1, Y1, 4 v2=polyval (P2,X1 y3=polyval (P3,X2. vaepolyval (P4,X1 plot (ZL, YI, "Sr", X1, ¥2, '~ob",X1,¥3, ‘=xm",X1,¥4, "4k xlabel (*Composicién’ de Acetona en la fase liguida, xi ylabel('Composicién de Acetona en la fase vazor, bitle(’Equilibrio Acetona-Hexano, datos vs ajustet legend('Datos experimentales',‘ajuste 2 polinomio Grado 2','ajuste a polinomic Grado 3',"ajuste a polinomio Grado 4", 4) Mauricio Sinches, Grupo de Investigecién SIDCOP, Depto. de Ing, Quimica. Universidad de Antioquia, ‘Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 43. Figura 3.4.1. Comparacién de curvas de ajuste segiin diferentes funciones polindmicas Como podemos observar el polinomio de grado cuatro (linea verdeazul) se ajusta mejor a la tendencia de los datos (linea azul), aunque se puede llegar a pensar que entre mayor el grado del polinomio mejor el ajuste hay éreas en Ja Ingenieria Quimica en las que hay que tener mucho cuidado con el ajuste de estos datos, ya que este se debe realizar sin que la curva presente cambios de signo de la derivada del polinomio, esto Io veremos mis adelante, Mauricio Sinchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quizaica, Universidad de Antioquia. Curse Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 44 4, PROGRAMACION EN MATLAB. MATLAB contiene un lenguaje de programacién muy completo que permite escribir series de declaraciones en un al con una simple orden. Cada programa puede ser escrito en un archivo de texto ordinario, y luego nombrindolo con la extensién de ! los archivos caracteristicos de MATLAB que es .m. El nombre que se utiliza para nombrar 3 este archivo se convierte en la nueva orden con que MATLAB asocia al programa creado. Los archivos .m pueden ser ficheros de comandes que solo ejecutan una serie de declaraciones 0 pueden ser funeiones que son archivos que aceptan argumentos y producen un resultado. Para entender mejor la forma de programar en MATLAB se comenzard con la teotia bésica f de algoritmos, como son los bucles y los ciclos. 4.1 Bifureaciones y Bucles. ‘AB pose un Ienguaje de programacién que dispone de sentencias para realizar f cumpla 0 no una determinada condicién, La figura 4.1 muestra dos de las principales formas & de bifurcacién. | Le f CONDICION Fao CONDICION f ‘Verdadero | cuerpo de estas s% fas se termina con la palabra end. las que nos permiten indicarle a los in que se cumpla, En la tabla 4.1.1 Los operadores légicos y relacionales son herrami bucles y ciclos que camino tomar de acuerdo a la con se muestran estos operadores. Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimica 45 ‘abla 4.1.1. Operadores geo yelaconles. Légicos | Funcion < ‘Menor que 5 Mayor que = ‘Menor o igual que Ed Mayor o igual que | = Igual que = Diferente que Rel: a |¥ I 0 7 ‘Negacion logica 4.1.4 Sentencia if En su forma mas simple, la sentencia if como: if condie sentencias end’ Existe también la bifurcacién miltiple, en la que puecen concatenarse tantas condiciones como se desee y que tiene la forma: if condicionl bloguel elseif condicién2 2 elseif condicién3 ued) else por defecto para cuando no se cumplan las condiciones 1,2,3 bloqueé end Donde la opeién por defecto else puede ser omitida, si no esta presente no se hace nada en caso de que no se cumpla ninguna de las condiciones que se han chequeado. Una observacién muy importante: 1a condicién del if puede ser una condicién matricial, del tipo A=B, donde A y B son matrices del mismo taruafio. Para que se considere que la condicién se cumple, es necesario que sean iguales des a dos todos los clementos de las matrices A y B (ai=bi, 1SiSm, 1SjSn). Basta que haya dos elementos ai y bi diferentes para jguales para que la condicién no se cumpliese. En resumen: Mauricio Sanchez, Grupo di nveetigacién SIDCOP, Depto. de Ing, Quimica, Universidad de Ant Curse Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 46 if AB exige que todos los elementos sean iguales dos a dos if A~=B exige que todos los elementos sean diferentes dos a dos Como se ha dicho, MATLAB dispone de funciones especiales para ayudar en el chequeo de condiciones matriciales. Por ejemplo, a funcién isequal(A, B) devuelve un uno si las dos ‘matrices son idénticas y un cero en caso de que difieran en algo. >> Aezeros >> Brey. >> isequa A pesar de que los ciclos pueden ejecutarse desde la ventana de comandos es recomendable realizarlos en un archivo de programa *.m que permite incorporarlos en un programa mas completo y ejecutarlo cuantas veces sea necesario, % Ejemplo sentencia if a-input("Ingrese un valor entero entre I y 3‘) ifa=1 . disp('El valor que ingreso fue 1’) elseif a==2 disp('E! valor que ingreso fue 2") disp(El valor que ingreso fue 3') esle disp( k end valor que ingreso NO fue entre 1 y 3") 4.1.2, Sentencia switch La sentencia switch realiza una funcién aniloga a un conjunto de if...elseif concatenados. Su forma general es la siguiente: switch switeh_expresion bioquel case (case expr2, cage_expr, case_oxpc4y...} Curso Bésico de Matiab™ con Aplicaciones en Ingenieria Quimica 47 sentencias que correspond con ese resultado. Si ninguno es igual a switeh_expresion se ejeculan las sentencias correspondientes a otherwise. Segin puede verse en el ejemplo anterior, es posible agrupar varias condiciones dentro de unas llaves (constituyendo lo que se llama un cell array o vector de celdas); basta Ja igualdad con cualquier elemento del cell array para que se ejecute ese bloque de sentencias. La “igualdad” debe entenderse en el sentido del operador de igualdad (=) para escalares y Ia funcién stremp() para cadenas de caracteres). En M. AB sélo se ¢jecuta uno de los bloques relacionado con un case. >> n='no! >> switch disp('Usted escogio si') disp (‘Usted escogio not ed no escogio ni si ni no’) Usted escogio no disp('Bl valor que ingreso fue 1") case 2 disp('EL valor que ingreso fue 2") case 3 disp('El valor que ingreso fue 3") otherwise disp('El valor gue ingreso NO fue entre 1 y 3") end 4.1.3. Sentencia for La sentencia for un conjunto de seutencias un uduero predetes siguiente construccién ejecuta sentencias con valores de ide 1a n, variando de uno en uno. for isiin sentencias end o bien, for isvectorValores Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing, Quimica. Universidad de Antioguia, ‘Curso Basico de Matlab" con Aplicaciones en Ingenieria Quimica 48 sentencias end Donde vectorValores es un vector con los distintos valores que tomaré la vari siguiente ejemplo se presenta el caso més general para la variable del bucle (valor incremento: valor_final). for isn:-0 ent Fl bucle se ejecuta por primera vez con i=n, y luego i se va reduciendo de 0.2 en 0.2 hasta que Ilega a ser menor que 1, en cuyo caso el bucle se termina, En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles anidados. La wia més répidamente (por cada valor de i, j toma todos sus posibles ina cuando se hace un barrido corapleto para el contador i. valores); el ciclo te for i-tim for jzlin end end jones MATRTZ(i,3)-i*5*n En Ia que la variable i es un vector que va tomando en cada jteracién el valor de una de las ‘columnas de A. ‘Cuando se introducen interactivamente en Ja linea de comandos, fos bucles for se ejecutan solo después de introducir la sentencia end gue los corrpleta. % Ejemplo sentencia for disp Ingrese un valor entero mayor que 3°); p=input(para realizar caleulos sobre una esfera:’), ‘Mauricio Sénchez, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica, Universidad de Antioguis. Curse Bisico de Matlab™ con Aplicaciones on Ingenieria Quimica 49 Volta)=(4/3).*pi.*2.(3); Area(r)=4.*pi.*1.4(2); end disp’ Radio Volumen Area’) IR’ Vol' Area’] 4.1.4. Sentencia while La estructura del bucle while es muy similar a la de los lenguajes de programacién més comunes. Su sintaxis es la siguiente: while condicion ond Donde condicion puede ser una expresién vectorial o matricial. Las sentencias se siguen ejecutando mientras haya elementos di mientras haya algin 0 algunos clementos true. El buele se termina cuando todos los elementos de condicion son false (es decir, cero). >> ARS; >> while A-=L disp("MATLAB 6p5") BEAL; MATLAB 6p5 MATLAB 6p5 MATLAB 6p5 MATLAB 6p5 % Ejemplo de una sentencia while Volumen Area!) Un programa que involucra algunos de los elementos més importantes vistos hasta ahora para la programacién y manejo de matrices es el gue se lista a continuacién y permite calcular repetidamente el volumen que ocupa una mol de etileno a diferentes presiones y temperaturas mediante Jas ecuaciones de Van Der Waals y Redlich-Kwong de manera interactiva, % Solucion de las ecuaciones de Van Der Waals y Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing. Quite. Universidad de Antioguta, (Curso Basico de Matiab™ con Aplicaciones en Ingenieria Quimica 50 8 Redlich Kwong para el etileno while is=1 clear all close all ele Skimmenu('a ocuacton que desea usar para el etileno es’, ‘van per Waals", 'Redlich-Kwong ReB3.14 @ bar * om*3 /ignol K) ‘Teinput ("entre la temperatura en K: Feinput ("entre la presion en bai oos0-4) $ bar rows; A i a-27sx-2e10°2/(64*P0); ——«& constantes de Van Der Haale Siatte/ioreels + Gonstantes de Von ber Wass aco 427496N°2010"(2.5)/fe: & constantes de Rod ich-fiong | 220, 0B664¥R+Te/Pe 8 constantes de Redi ich-Kwong veaensa/2, Yiaeat-¥ 4) el sa it stm while © >= 0.00001 & j<=100, V (G41) =(ROT/D) VG) -/ (VG) bd [2/P) VST e (341) abs (V(G+2) -VG) be a3; end disp('E1 volumen de Van Der Waals ea cm*3/ gnol converge disp(*presione ENTER para continuar') ik pause & para evaluar la ecuacion de VDN en forma de polinomio % la Ec VOW ea P = R*T./(V-b)~a/V.*2 y reorganizada en forma f 8 polinomial: P#V."3-(P*b+R*T) *V.42 + a¥V-etb pol_vdw =[P, ~(P*b+R*7), a, ~a*b] yol_vbW=roots {pol_vdle) ; ("La solucion del polinomio de Vow "P#Y.*3-(P¥bERT)*V.*2 + akV-atb" Curso Bisico de Matiab™ con Aplicaciones en Ingenieria Quimice 51 disp (vol_vow} disp("presione ENTER para continuac') pause 8 se puede buscar el zero de 1a funcion V con el comando FZERO segun 8 VEO =inline ("83.14*293/ (x-58.2104)~4611000/x.*2-50") que crea la £1 comands fzero(V£0,V0) busca los valores de x (volumen en nuestro caso) donde se da un cambio de signo a partir del valor VO que podria & ser el volumen de gas ideal RI/P disp(' ") disp('EL cero de la Zc de VDM a partir de un valor inicial’) disp('de tanteo Videal, para 1a temperatura ingresaca ') disp('y 35 bar de presion es:') Vo-Videal V£0_vpW=inline("83.14*293/ (x-98.2104)~4611000/x.°2-35" Vol_vpH_O=fzero0(V£0_VDW, VO); aisp(' 7 isp (Vol_Vvow_0} disp("presione ENTER para continuar') pause end Lf SEL==2 while © >= 0.00001 & 3<=100; Vege =(R*T/P) #915) (VG) e(j41)=abs (¥ G41) -VG) UAL (B*T(1/2))) (VG BD 5-341; ena Vv disp('presione ENTER para continuar') pause % para evaluar la ecuacion de RK: BB = RAT/(V-B) ~ A/(V*(V4B)*T™(1/2)) % en forma de polinomio % ALAVAS-ADAV*2-R3*V-AdeO % donde: & Al=peTs (1/2) & AZ-RETS (3/2) % -ABeDYBADHD" (1/2]-4+9*RAT*(3/2)-A a AbeaYB pol_RK =[P*T*0,5, -R*P*1.5, ~(P*BS2AT*O. SFBARAT™L.S-A}, ~AYB] vol RK=roots (pol_RE) ; @isp('ha solucion del polinomio de RK "AL*V*3-A2*V°2-A3*¥-Ad=0" e5:") disp") Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto. de Ing, Quimica. Universidad de Antioquia, Curso Bésico de Matlab" con Aplicaciones on Ingenieria Quimica 52 disp (vol_RK) disp('presione ENTER para continuar") pause 8 se puede buscar el zero de la funcion V con el comando 2BRO sequn & VEO-inline(*83.14#0/(x- 40,3468) ~7.85026-007/ (x.* (x+40.3468) (1/2) )-8 BY) ® que crea 1a funcion V£0(x), donde x es el volumen que se busca & El comando fzero{Vf0,V0) busca los valores de x (volumen en nuestro caso) donde se da un cambio de signo a partir del valor VO que podria & ser el volumen de gas ideal RT/P disp(t ') diap(*El cero de la Ec de RK a partir de un valor inicial") disp('de tanteo de 400 L, para una temperatura de 293K ") disp('y 35 bar de presion es:") vO=R*T/P; V£0_RK="B3.14*293/(x- 40.3468)-7.85026+007/ (z.* (x+40.3468) *293*(1/2))-35"; Vol_RK_0=f2er0(VE0_RK, VO) ; disp) disp (Vol_RK 0) disp) disp('presione ENTER para continuar') pause end disp(* disp disp('desea continuar los calculos?') disp(t'} diap(‘teclee (1) y enter para continuar ) diap(! ') isinput (‘teclee (2) y enter para terminar disp) ') end Mancicio Sanchez, Gripe de Investigacion SIDCOP, Depto. de Ing. Cuimlca, Universidad de Antioquia. : (Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 53 5. GRAFICOS 2D, GRAFICOS 3D Y OTROS GRAFICOS. 5.1 Graficos 2D. MATLAB cuenta con cinco funciones principales para crear gréficos en dos dimensiones. La principal diferencia entre estas es el tipo de escala que utiliza cada una de ellas. En la tabla 5.1 se muestran estas funciones y la manera en que presentan los griificos. ‘Tabla 5.1. Funciones para la creacién de gréficos ‘Comentario | Las escalas de los ejes son totalmente fineales plotyy() ‘Traza dos funciones que comparten e. parametro de la abscisa con dos escalas diferentes en las ordenadas, una a la derecha y otra a la izquierda ‘Toglog 1) — | Crea una grafiea con eseale logritmica en ambos ees ‘Crea una grafica con escala logaritmica en el ‘Crea una grafica con escala logaritmica en el de abscisas ie de ordenadas ‘Ademis de la curva una grafica necesita indicadores para entender de que se trata, para esto MATLAB ticne funciones especificas que se encargan de dar la informacién precisa para poder interpretar lo que se esta viendo, algunas de estas pueden verse en la tabla 5.2. ‘Tabla 5.2. Funciones de indicadores para las grificas Funcion __| Comentario title (figura) xlabel {‘abscisa ') el tuo abscisa en 7 parte inferior de la grafica ylabel (‘ordenada el titulo ordenada en la parte lateral dela grafica | text (a,b, aje") |Ubica mensaje en el lugar especificado por las ____| coordenadas xy y__ see gtext ('mesaje_raton') ‘mensaje_raton en la posicién que indique el ____| puntero inmediatamen:e se haga click | legend |) Pone rotulos para las diferentes curvas creadas en una misma ventana grid Pone una malla ala ventana de grdficas para hacer mas legible los valores de las curvas De la misma manera que se utiliza la funcién plot se pueden utilizar las otras cuatro, por eso de aqui en adelante se trabajara con plot. La funciér plot se puede usar de diferentes formas dependiendo de los argumentos de entrada. Por ejemplo, si y es un vector, plot (y) produce un gréfico lineal de los elementos de y versus el niimero de la ubicacién de esos elementos dentro del vector ). Si se especifican como argumentos dos vectores, plot (x, y) produce un grafico de y vs x. Por ejemplo, las siguientes sentencias crean un vector Je valores de volumen en el rango [0,200] (cm') con incrementos de 0.5 y usa este vector para evaluar la presién de amoniaco Mauricio Stniches, Grupo de Investigacién SIDOOP, Depto, de ing. Quimica, Universidad de Antioguia, Curso Bésico de Matiab™ con Aplicaciones en Ingenieria Quimica 54. sobre este rango con la ecuacién de estado de Redlich-Kwong para una temperatura de 380 K. MATLAB grafica cl vector de volimenes en la azscisa y el valor de la presién en la ordenada, como se puede observar en la figura 5.1.1. >> Wo1:0.5:200; >> To=405.5;Poml11. 3; R82. >> T=3807 55 an0.42748.4R.°2.*7C°2.5./Poz >> b=. 0B564*R*TC/Pes Do PE{RIT. / (Vel) ) mae / ((sqt UP) AV. (Vib) E >> plot (V, P) >> grid on Figura 5.1.1. Rangos de ejes de una grifica asignados en Matlab por defecto MATLAB automaticamenmte selecciona los rangos apropiados para lus ejes. MATLAB puede ttazar miiltiples grificos con una so.a Hamada a la funcién plot usando pares x-y. Autométicamente se asignan colores predeterminados a cada grafico para permitir {én entre cada conjunto de datos. Trazando tres curvas como funcién de t se observado en la figura 5.1.2. >> T2ad00; P2=(R*TZ./(V-b})-a./{ (sart (12) .*V.> (Vb) >> 7323907 P3=(RAT3./{¥-b) )-a./{ (sqrt (73) .*V.* (Vb) Curso Bésico de Matlab™' con Aplicaciones en Ingenieria Quimica 55 >> plot (V, P/V, P2,V, P3) figura 5.1.2. para diferentes curvas| 5.1.1, Manipulacién de los ejes de coordenadas. ‘También en este punto MATLAB tiene sus opciones por defecto, que en algunas ocasiones puede interesar cambiar. EI comando basico es el comando axis. Por defecto, MATLAB ajusta la escala de cada uno de los ejes de modo que varie entre el minimo y el de los vectores a representar. Este es el llamado modo "auto", 0 modo automético. Para definir de modo explicito los valores méximo y minimo segin cada eje, se utiliza el comando: >> axis({xmin, xmax, ymin, ymax]} Mientras que: >> axia(‘auro') Devuelve el escalado de los ejes al valor por defecto 0 auromitico. Para notar mas la diferencia entre las gréficas utilizames la funcién axis para determinar una regién de mayor interés, como se ejemplifica en la figura 5.1.3. >> axis{10 150 0 120)) Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia. 56 La funcién plot tam 1¢ la capacidad de graficar matrices, dependiendo del tipo y del orden de los argumentos este arrojara un grafico con ciertas earacteristicas. Continuando con el ejemplo formamos una matriz cuyas filas son los elementos de los veetores P, P2 y P3. >> pre=[P; 22/231; >> figure (1) >> plot (¥, Pre) Si queremos graficar varias lineas en una misma ventana conservando las que ya se tienen graficadas, el comando hold on es muy itil, ya que grafica encima de la informacién ya existente en Ia ventana de graficos. Si se quiere desactivar este comando se utiliza el comando hold off, esto puede verse en la figura 5.1.4. Mauricio Sanchez, Grupo de Investigacién SIDCOP, Depto, de Ing, Quimica. Universidad de Antioquie. ‘Curse Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica 37 ae 5 Como podemos ver MATLAB siempre_tigne_una_ventana_activa y cualquier comando ejecutado para | - modificar caracteristicas que) se |) aplicarén sobre esta ventana activa. 5.1.2. Especificacién del estilo de linea y mareadores. ‘Ademis de los veetores a graficar a la funcién plot se le puede pasar un tercer argumento donde se indica el tipo de linea, el marcador y se puede omitir cualquiera de estos pero deben ser colocados en este orden estricto. A las lincas de los diferentes grificos se pueden asignar diferentes estilos, pasando una cadena de caracteres como argumento a la funcién plot, los diferentes tipos de lineas, marcadores y colores se muestran en la tabla la figura 5.1.5 se implementan las siguientes caracterfsticas: 1V,B2,'~-0k' /V,P3, "380") 1201) enperature 38) K', "Temperatura 400 K', "Temperatura 390 K',4) ‘Mauricio Sénchez, Grupo de Investigacion SIDCOP, Depto. de ing. Quimica. Universidad de Antioquia. Curse Bésico de Matlab™ con Aplicaciones en Ingenieria Quimica 58. Figura 5.1.5. Visualizacién de curvas con diferentes estilos de linea y marcadores Tabla 5.1.1.1 Tipos de lineas, marcadores y colores, Simbolo | Color Simbolo | Marcadores Y_| Amarillo Gellow) puntos M__| Magenta © _|[circulos | Werdeazul (cyan) x__| marcas en x Rojo (red) + __| marcas en + ‘Verde (green) =| mareasen * ‘Azul (blue) 3__| mareas euadradas (square) Blanco (white) d ‘en diamante (diamond) ‘Negro (black ) x \gu.o apuntando arriba ¥___| tridngu.o apuntando abajo ‘Simbolo > nguo apuntando ala deha - ~_| tridngwo apuntando a la izda P_| estrella de 5 puntas ~ h__{ estrella se seis puntas 5.1,3, Funcién subplot. or el comendo subplot que es utilizado para a ventana, Cada una de estas subventanas tiene plot puede estar prec jas subventanas en uni Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Ouitnica, Universidad de Antioquia Curso Bésico de Matiab™ con Aplicaciones en Ingenieria Quimica 59 propiedades independientes de las otras (ejes, titulos, etc). Los argumentos de este eomando son tres niimeros separados por comas que indican la centidad de columnas, 1a cantidad de filas y la posicién de la grafica en ia ventana, esta posiciéa se asigna de izquierda a derecha y de arriba hacia abajo. Para entender esto veamos el ejemplo mostrado en la figura 5.1.6. ‘Asignacién de la posicion Figura 5.1.6. Curvas con diferentes ejes coordenados en una vnisma gréfica >> subplot >> subplot >> subplot (2,2, >> subplot (2, 2,4); plot (V, exp(V}), title(*s plot (V,P), title (‘Temperatura 360 5.2 Graficos 3D. Dentro de las grandes caracteristicas de MATLAB, su gran capacidad para crear y manipular graficos en tres dimensiones tal vez. sea la mas admirada entre los usuarios no técnicos. 5.2.1, Lineas en 3D ', Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 60 La version en 3D de la funcién plot es plot 3, veamos su sintaxis y Io que indica cada uno de sus argumentos: >> plot3 (ul, vi, wi, cl, v2, v2, w2,02)...) uy, ¥) yw son las coordenadas (x.y ,2), respectivamente, de un punto o de una serie de puntos. Estos pueden ser tripletas de niimeros, veetores del mismo tamafio, matrices de mismo orden © expresiones que al ser evaluadas resulien una de estas ues. Bl arguiuenlu Gj © un(os) cardcter(es), donde el primero especifica el color, el que sigue el tipo de marcadot y el ‘iltimo el tipo de linea. Muchos de los comandos aplicables con p1ot, también lo son con plot3, a excepcién del comando text que cambiaria por text3 y ademas de las etiquetas de los ejes x y y también esta la etiqueta del eje z. Para tener una idea de estas capacidades lo mejor es hacer un ejemplo inmediatamente como el de la figura 5.2.1. >> fi = O:pi/20:64piz >> plot3 (cos (fi >> ylabel { Figura 5.2.1. Curva tridimensional obtenida con Ia funciéa plot3 5.2.2, Superficies en 3D. Un conjunto de funciones 3D aun mas potentes son aquellas para crear superficies, contomos, voliimenes, y variaciones de estas formas bisicas. Los dos comandos bisicos para crear superficies son surf ymesh. Mauricio Sanches, Grupo de Investigacin SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia, Curso Bisico de Matlab" con Aplicaciones en Ingenieria Quimica 61 La funcién sur£ dibuja una superficie compuesta de parches coloreados, mientras que mesh dibuja parches blancos que estin definidos en los limites por lineas. En surf, los colores de los parches son determinados por la magnitud de z, mientras que en mesh los. colores de las Iineas son determinadas por la magnitud de z. Para ilustrar esto crearemos superficies con la funcién: ve: oe net ryaan ate? tt af K_ xs ys ery Lot fondennicn (3 } 3 En el rango -3> XeLinspace (-3,3,15 >> Yelinspace (3 >>_[X1, ¥1] =meshg) 142) ~(¥141) .42) -LO# (XL. /5-K1.A3-¥1.95) 0 (1/3) Sexp (> (142) 42-7. 42)5 Con el comando surf podemos ver como | | Con el comando mesh podemos ver como los patches son los que cambian de color. Jas lineas son los que cambian de color. Figura 5.2.2. Superficies tridimensionales obtenida con las finciones surf y mesh La funcién meshgrid crea dos matrices de 17 x 15 de manera que Z, pueda ser evaluada en ‘todas jas combinaciones de X y Y. Mauricio Sanche2, Grupo de Investigacion SIDCOP, Depto, de Ing. Quimica Universidad de Antioquia, Cureo Bisico de Matiab™ con Aplicaciones en Ingenleria Quimica to) MATLAB contiene todavfa mas fimciones para la manipulacidn de estos objetos, si quiere saber més al respecto por favor referitse al HELP. 5.3 Comandos 5.3.1. Comando Subplot Crea miltiples ejes y grificas en una figura, Syntax: subplot (mp) Donde m= nimero de filas, n= nimero de columnas, P = posicién de la gréfica dadas m yn. Ejemplo: figure (1) 4 2 graficas en la primera subplot (2, 2,1), ep y una en la segunda 1502") Figure (2) subplot (2,2, subplot (2,1, Figure (3) subplot (2,2, subplot (2, subplot (1, (Curso Bisico de Matiab™ con Aplicaciones en Ingenterfa Quimica 63 Pig.1 TAN seer ea eae si eos) os as o| | 95 / oF nua Fig.3 Figura 5.3.1.3. Aplicacion de comando subplot 5.3.2, Comando ezplot Permite graficar fécilmente una funcién explot(f) grafica la expresién f= f(x) por defecto en el dominio -2n > ode (odefun, tspan, yO) Donde odefun es una funcién que evaltia el lado derecho de las ecuaciones diferenciales. Todos los comandos resuelven ecuaciones de la forma y’=f(¢)), tspan es un vector que cl intervalo de integracién y y0 es un vector con las condiciones iniciales del problema. 6.1 Solucién de una ecuacién diferencial 6.1.1. Ejemplo de aplicacién, Mezelado de soluciones salinas * La mezcla de dos soluciones salinas de distintas concentraciones da lugar a una ecuacién diferencial de primer orden, que define la cantidad de sal que contiene la ‘mezcla. Supongamos que un tangue mezclador grande contiene 300 galones de salmuera, Otra solucién de salmuera se bombea al tanque a razén de 3 galones por la concentracién de sal en esta corriente es de 2 libras por galén La es el tanque es 50 lib (C()=50). Solucién: 3 gal/min, 2 lib/gal V=300 gal 3 gal/min, — 5 300 gal La razén con la cambia C(t), es la raz6n neta; s = (Razon de entrada de sal) ~(Razon de salida de sal) = Ri-Ro Entonces la raz6n Ri con la que entra sal sale tanque es: ni=3- 28h er 6 min™ gal min Ahora bien, como a solucién se bombea sacdndola del tanque con la misma rapidez. con la {que entra, la cantidad de galones de salmuera en el tanque en cualquier tiempo t es constante, igual a 300 galones. Por consiguiente, la concentracién de la sal en el tanque y en la salida es €(0/300, por lo que la rapider. de salida Ro de la sal es: Entonces: Ahora tenemos que escribir una funcién en MATLAB que contenga a anterior ecuacién: function dcdt=ecdi f|t,C) acae=6-C. /200; Hay que tener en cuenta que ef orden de los argumentos de la funcién son muy estrictos, y primero debe ir la variable independiente (1), y luego la variable dependiente que es nuestra solucién. ‘Tenemos que guardar esta funcién con el nombre ecd:£ en el directorio actual y ejecutar las siguientes Grdenes en la linea de comandos: p> b= 0 >> Co = >> {teol, (@ecdif, t,Co) >> plet{ ty >> Eitle('Solucién de una ecuacién difezen ah ordinaria') Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antioguia, ‘Curso Bisico de Matiab™ con Aplicaciones on Ingonierla Quimica 85 >> xlabel ("Tiempo (min) ") >> ylabel(‘Libras de sal dentro del tanque') >> grid on Figura 6.1.1. Respuesta dinmica de ia cantidad do sal dentro de tanque Como podemos ver la curva muestra la respuesta dindmica del sistema donde se logra ver il que puede haber en el tanque 5 600 libras para lo cual se requiere un tiempo de unos 550 minutos. Como ya hemos podide ver las posi problemas matem: idades que nos oftece MATLAB para resolver ica, en cada seccién se van a plantear los problemas y veremos el eddigo fuente de un script de comandos o funcién, algunos comandos y funciones que no se han explicado en los capitulos anteriores. se expondran levemente con el objetivo de alentar al lector a utilizar el Help, ya que los alcances de estas son mucho mayores a lo expuesto aqui. 6.2 Solucién de varias ecuacines diferenciales simultaneas 6.2.1 Kjemplo de aplicacién, Produccién estireno a partir de etilbenceno Wenner y Dybal (Wenner, RR. y Dybal, EC. Chem. Eng. Progr, 44, 275 (1948) estudiaron la deshidrogenacién de etilbenceno, haciendo pasar ima mezela gascosa de etilbenceno y vapor de agua a través de un reactor tubular cat Mauricio Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing. Quimica. Universidad de Antiogwa, (Curso Basico de Matiab™ con Aplicaciones en Ingenieria Quimiea 86 CeHsCoHs = CeHsC2Hs + He Ellos encontraron que la velocidad de reaccién puede expresarse adecuadamente mediante la ecuacién: PoP, Re =k} Py - : (* ra Donde P se refiere a Ja presién parcial en atmésferas y Jos subindices E, referencia al etilbenceno, estireno e hidrdgeno, respectivamente. y H hacen La constante de velocidad de reaccién viene dada por: k = 12600 -exp(-11000/T) y la constante de equilibrio por: K = 0,027 -exp(0.021-(T -273) Con la temperatura en K. La reaccién se leva a cabo en un reactor con tubos de 10.16 cm de didmetro intemo y se alimentan 0.0688 kgmol / h de etilbenceno por cada 9.688 kgmol / h de vapor de agua a 600°C y 1.2 atmésferas de presién (El exceso de vapor tienen como fin mantener una temperatura alta y asi velocidades de reacci6n significativas). La. velocidad msiea total es 2438 Kg ‘hm’. Bl tubo se calienta mediante gas de chimenea que circula en contracorriente a la mezela reaccionante con un caudal R=130 kg/h y sale a 620°C. Se sabe ademas que la densidad del catalizador es 1442 kg/m’; El calor de reaccién del etilbenceno es 33300 keal / kgmol; el calor especifico de la, mezcla reaccionante es 0.52 keal / Kg °C; y el flux de entrada (Uo x Co) es 8.5325 kgmol / m? h. Se desean conocer los requerimientos de cat ud del reactor para conseguir \dricas son: or ke Z “Ge,\a ax Pop aK 1 Ox . PBR, az a2 or or ‘Mauricio Sanchez, G de lovestigacion SIDCOP, D Quimica. Universiiad de Antioquia, Curso Basico de Matia™ con Aplicaciones en Ingenieria Quimica 87 oe vedo Ca Re =15100-exp(—11000/ T }-) ———— = : crsimeyt-tiom/7)| LA | enZ=0, T=873K mZ=0, xK-0 Consideraciones = Se asume modelo pseudo-homogéneo, es decir nc hay gradientes al interior de las particulas de catalizador - Se asume que la caida de presién a través del lecho es despreciable = Se desprecia la dispersién térmica y de masa en direccién radial (modelo reccional) = Se considera estado estacionario, reactor tubular catalitico Bajo tales consideraciones el modelo se convierte en: i Re =15100- (11000/7). Lax! ae ae KA1Ex)! enZ=0, T=R73K enZ=0, x=0 sistema de ecuaciones diferenciales puede resolverse en Matlab utilizando el comando ode45 con un archivo de funcién llamado estireno que defina las ecuaciones diferent asi: function d¥ = estireno(t,¥) Mauricio Sinchce, Grupo de Envestigacién SIDCOP, Depto, de ing. Quimica, Universidad de Antioquia, Curso Bisioo de Matlab™ con Aplicaciones en Ingenieria Quimies 88 DH = 33300; ® kcal / kmol do = 1442; B kg / m3 G = 2438 ekg fh m2 cp = 0.52; 8 kcal / kg °C Voto = 8.5325; 8 kgmol / m2 h AY1 = (de/UoCo) + (15100*exp (-11000/¥ (2)) }* ((1-¥(1)) / (114 (1) )- (1.2*¥ (1) °2) /((114¥ (1) )92*0.027*exp (0.021% (¥(2)-773)))) 7 G¥2 = (~DH*de) / (G*Cp) * (18100*exp (-11000/¥(2))]*((1~ Y(1))/ (114¥(1)) = (1.28 (1992) / ((LL4Y (11) 42*0.027*exp (0.021* (¥(2)-773))))¢ a¥ = [d¥l;av2}; La solucién del sistema de ecuaciones puede hacerse con un nuevo archivo estireno_sol.m,el cual se lista enseguida: clear all cle Ztot~input ("la longitud total de reactor en metros es:'}; XO=input ('La conversion inicial es:'); TO=input ("la temperatura inicial del reactor en K es % Para saber el tiempo de calculo gastedo en cada linea se usa el PROFILE... if XO <= 1.0 & XO >=0.0 profile on -detail operator; [posic, sol]=ode45("estireno!, ztot, (X0 T0}) profile report; else disp(‘!PRECAUCTON! El valor de la conversion debe ser 0 <= x0 <= 1.0 dispit '); X0=input ("la conversion inicial es [posic, sol]=ode45(‘estixeno', ztot, [x0 TC]) end disp('Ahora decida como quiere la presentacion de los perfiles'); disp(‘1. Bn un mismo plano'); disp('2. en planos separados"); Mauricio Siehes, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica. Universidad de Antioquia. ‘Curso Bésico de Matiab™ eon Aplicaciones en Ingenieria Quimica 89 disp(''); aainput(* if aa == plot (posic, 1000*s02 (:,1), "0", posic, sol(:,2),'s', "hineWidth',1, 'MarkerFaceColer',rand(1,3), 'MarkerSize', 10); grid xlabel("Posicion en el reactor, m!' ylabel('Conversion*1000 ; Temperature en K'); title("Perfiles de conversion y temperatura para la produccion de estireno'} text (0.5,50,'Preparedo por Mauricio Sanchez"); legend(*&Conversion’, 'Temperatura', 4) colorbar(‘vert'); colormap('default else subplot (2,1, 1), plot (posic, sol (:,1),'0", "LineWidth', 1, 'MerkerFaceColor', rand (1,3), "Marke xSize',10); grid ylabel(‘Conversion, fraccion'); title('Perfil de conversion para la produccion de estireno') text (0.5,50,'Preparado por Mauricio Sanchez"); Legend ("8Conversion', 4) axis({0 Ztot 0 1] subplot (2,1,2), plot (posic, sol(:,2),'s',"LineWidth’ ,2, MarkerFaceColor', rand(1,3), 'MarkerSize', 15)7 grid xlabel('Posicion en el reactor, m| ylabei ("Temperatura en K'); bitle('Perfil de temperatura para la produccion de estireno') text (0.5,50,"Preparado por Mauricio Sanchez"); Jegend("Temperatura', 1) axis({0 Ztot (T0-200) (T0+100)]); colorbar ("vert") and Al entrar como parimetros una longitud de reactor de 5.0 metros, una conversién inicial de etilbencenmo de 0.0 y una temperatura de entrada de 873K, se obtienen el informe Mauricio Sinches, Grupo de Investigacién SIDCOP, Depto. de Ing. Quimica. Universidad de Antioquia, Summary Lem eS ¢ > asl aoed Figura 6.2.1. Apariencia del Profile report de Matlab Los perfiles de temperatura y conversién respectivos scn, para las opciones de gratis un mismo plano y en planos separados: Mousicio Sanchez, Grupa de Investigacion SIDCOP, Depto, de Ing. Cuimica, Universidad de Antioquia Curso Bisico de Matlab™ con Aplicaciones en Ingenieria Quimica 91 Bnisef LAS oh | ws al wc) Soe eps | Shc | ind al. PAROLE tian Figura 6.2.2. Perfiles de temperatura y conversién a lo largo del reactor Mauricio Siinchez, Grupo de Investigacion SIDCOP, Depto, de Ing. Quinica, Universidad de Antioquia, (Curso Basico de Matlab” con Aplicaciones en Ingenieria Quimica 0 En Jos perfiles puede verse que para la temperatura de entrada de 600°C (873K) la maxima conversién alcanzable es de 40%, para obtener conversiones mayores se hace necesario modificar el equilibrio lo cual puede lograrse cambiando la temperatura de entrada, Como ejercicio practico muy itil para el entendimiento del problema haga un estudio de simulacién variando los valores de temperatura de entrada, Que ocurre con la longitud del reactor necesaria para la maxima conversién a cada temperatura? Como se comporta Ia temperatura a lo largo del reactor? Tools ODE para Matlab” El professor John C. Polking, (Department of Mathematics, Rice University) hi des una interfaz. para resolver ecuaciones diferenciales. Aunque no son de dominio piiblico se hhan puesto al servicio de las instituciones educativas; para el uso comercial o particular contactarse con poiking@rice. El programa dfield y algunos resolvedores adicionales no se distribuyen con Matlab y son funciones que pueden descargarse desde internet en la URL: http://math.rice.c Descargue el archivo dfield de acuerdo a su versién de Matlab® y asegurese de guardarlo como un archivo .m en la carpeta odefools creada en un lugar de su disco duro donde lo ‘Curso Basico de Matlab™ con Aplicaciones en Ingenieria Quimica 93 las instrucciones para adicionar el directorio odetools a la ruta (path). save y si Matlab® pregunta si desea hacer los cambios permanentes, acéptelo. Una vez instalada Ja herramicnta puede Hamarse desde la ventana de comandos de Matlab*® simplemente digitando dfield8 (en el caso de que haya sido instalado el dfield8 0 segim la versién de Matlab) y una ventana como la que aparece a zontinuacién aparecerd, Aqui es suficiente con escribir la ecuacién en el primer recuadro di lo la variable independiente, Si la ecuacién tiene parimetros pueden edicionarse en la segunda seccién y finalmente en la tercera parte de Ja herramienta los rangos de las variables dependiene e independiente, Al seleccionar la opeién Proceed se genera un campo de vectores como el mostrado a continu: Las soluciones particulares pueden obtenerse al ingresar las mucho més exactos puede hacerse a través de options + keyboard imput e ingrasar alli los valores deseados. Pueden construirse tantas soluciones como se desee en el mismo campo. ‘Mauricio Sinchez, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica. Universidad de Antioquia Curso Bisico de Matiab™ con Aplicaciones en Ingenieria Quimica 94 Por defecto dffeld resuelve 1a ecuacion hacia adelante y luego hacia atrés del valor inicial, Para cambiar esto puede hacerse desde option —> solution direction donde puede seleciionarse entre both, forward y back. Ahora sélo queda explorar la herramienta y sus ments file, edit, options, view, insert, desktop, window y help. ‘Maurielo Sanchez, Grupo de Investigacion SIDCOP, Depto. de Ing, Quimica, Universidad de Antioguia, Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimice 95 Problemas propuestos En esta seccién se han recopilado algunos problemas bisicos que buscan enfrentar al estudiante con situaciones tipicas cuando se usa Matlab como herramietna de computo, algebra y célculo bésico, hasta solucién de ecuacions y sistemas de ecuaciones dife Cundo lo considere necesario noolvide la palabra mas importante en Matlab: ELI 1, Genere dos vectores cuyos elementos son 2n +2 y 3n-1 con n= 1,2 ...7y Hamelos a y b. {Cuil es la suma de a y b?, {cual es la diferencia de ay b?, gel producto a’b y su dcterminante son?, gel producto ab’ es? ga divisién wb es? 2, Evalue Jos limites: *~ y 3. Evalue las derivadas de 4. Consulte Tas funciones paradifi) y simoled t= f Sa, t= 5. Caloue las integrates Le Y [is 6. Programe los métodos de Euler y RK orden 4 y compare las soluciones obtenidas en la solucién de la ecuacién diferencial dx/dt =x? — 1. 7. Grafique en un mismo plano tres curvas en columna con diferentes escalas, rptulos y propiedades. Hagalo ahora en filas, jone un problema de su rea de interés 0 de uno de sus cursos actuales y halla una de soluciones utilizando al menos dos de los ciclos vistos. 9. Resuelva la ecuacién de Peng y Robinson para el volumen de metano a 25°C y presiones entre 40 y 100 bar. Grafique Z contra P. 10. Haga un diagrama de Z para el etileno en funcién de Pr y Tr como parimetro para valores entre 0.1 y 2. herramienta dfield para resolver el problema dinémico de vaciado de un tanque \drico de 3 ft” de area, densidad 62.4 Ibmv/f?, con un flujo de entrada de 30 Lbm/s y constante de valvula de salida de 9. 12. Utilice la ecuacién de antoine para el benceno y evalue la presién de vapor en mm Hg, peraturas entre -35°C y 80°C. ¢Podrian ajustarse los datos a funciones polinémicas de tercer y cuarto grado? 13. Resuelva el sistema de ecuaciones 1 i de = Oy + 24a + Boost — gan t, yi(0) = 7 dea “2 ir = ~2Ay: ~ Blue — 9eost +z sint, yo(0) = 5 14, Resuelya en simulink, condiciones iniciales: y(0)=1, 7’ ()=y""(0)=1/2, y"(0)=0.2 y?) + dy + 65 + 4y ty =e He sine + Mauricio Sinchez, Grupo de Investigacion SIDCOP, Depto, de Ing. Quimica. Universidad de Antioquia, Curso Basico de Matisb™ con Aplicaciones en Ingenieria Quimica 96 REFERENCIAS. 1, Franco, A. y Sanchez, M. Curso bsico de Matlab™ con aplicaciones en Ingenieria Quimica. Facultad de Ingenieria, Ceset, 2007. | 2. Bequette W, B. “PROCESS DYNAMICS: Modeling, Analysis, and Simulation”, McGraw Hill 1999, Getting Started with MATLAB, The Mathworks, Inc. 4, Gareia de J., Javier, Aprenda MATLAB como si estuviera en primero., Escuela ‘Técnica Superior de Ingenieros, Universidad Politécnica de Madrid. 5. Nakurama, Shoichiro. “Anélisis Numérico y Visualizacién Grafica con MATLAB”.1* edici6n, Prentice Hall, México, 1997. t 6. Grossman, Stanley L “ALGEBRA LINEAL”. McGraw Hill 1996, 7. Magrab, dwar B. “An Engineer's Guide To MATLAB” Dennos G. Ecuaciones Diferenciales con aplicaciones de modelado. 7° edicién. | ‘Thomson Learning, México 2002. 10. F.P, Incropera, D.P, DeWitt, Fundamentals of Heat and Mass Transfer, 4° edicién, I John Wiley & Sons, New York,1996, Mauricio Sinehet, Grupo de lnvestigaciin SIDCOP, Dept. de Ing. Quimice. Universidad de Antioquia, Curso Bésico de Matlab™ con Aplicaciones en Ingenieria Quimica 97 REFERENCIAS. 1, Franco, A. y Sénchez, M. Curso basico de Matlab™ con aplicaciones en Ingenicria Quimica, Facultad de Inge Ceset, 2007. 2, Bequette W, B. “PROCESS DYNAMICS: Modeling, Analysi McGraw Hill 1999, and Simulation”, 3. Getting Started with MATLAB, The Mathworks, Ine. 4. Garcia de J., Javier, Aprenda MATLAB como si estuviera en primero., Escuela ‘Técnica Superior de Ingenicros, Universidad Politécnica de Madrid, 5. Nakurama, Shoichiro. “Andi edicién, Prentice Hall, Mé Numérico y Visualizacién Grafica con MATLAB”.1* 1997. 6. Grossman, Stanley I. “ALGEBRA LINEAL”. McGraw Hill 1996, 7. Magrab, Edwar E. “An Engineer’s Guide To MATLAB” 8. Smith, J.M., Van Ness, N.C., Abbot, M.M., “Introduccién a la Termodindmica en Ingenieria Quimica”. s* Edicién. McGraw Hill, Mexico 1997 9. Zill, Dennos G. Ecuaciones Diferenciales con aplicaciones de modelado, 7* edicién. Thomson Learning, México 2002. 10. F-P, Incropera, D.P, DeWitt, Fundamentals of Heat and Mass Transfer, 4* edicién, John Wiley & Sons, New York,1996. Mauricto Sénchez, Grupo de Investigacién SIDCOP, Depto, de Ing, Quinica. Universidad de Antioquia

You might also like