Source: https://www.scribd.com/doc/181442936/Tutorial-Matlab
Timestamp: 2016-09-28 06:12:32+00:00

Document:
BrowseBrowseInterestsBiography & MemoirBusiness & LeadershipFiction & LiteraturePolitics & EconomyHealth & WellnessSociety & CultureHappiness & Self-HelpMystery, Thriller & CrimeHistoryYoung AdultBrowse byBooksAudiobooksComicsSheet MusicBrowse allUploadSign inJoinBooksAudiobooksComicsSheet MusicWelcome to Scribd! Start your free trial and access books, documents and more.Find out moreTUTORIAL DE MATLABTUTORIAL DE MATLAB
1. ¿QUÉ ES MATLAB? 1.1 Uso de Matrices 1.2 Origen de MatLab 1.3 Plataformas 1.4 Productos
2. LIBRERÍA DE APLIC ACIONES DE MATLAB
2 . 1 S I G N A L P R O C E S S I N G TOOLBOX 2.2 THE MATLAB C MATH L I B R A R Y 2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math Library 2.2.2 Utilización de MATLAB y de su compilador 2.2.3 Velocidad y Precisión 2.2.4 Lista parcial de funciones Funciones matemáticas Funcionales especiales y elementales Algebra lineal numérica Polinomios e interpolación Métodos numéricos no lineales Estadística y análisis de Fourier Operaciones algebráicas y lógicas 2.2.5 Utilidades 2.2.6 Requerimientos 2.3 THE 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 MATLAB COMPILER TOOLBOX Generación Automática de ficheros MEX. Rendimiento del compilador Opciones de ajuste del rendimiento Requerimientos del sistema Limitaciones del código compilado
7 7 8 8 9 9 9 9 9 9 10 10 10 10 10 11 11 12 12 12 13 13 14 15 16 17 18 20
2.4 SYMBOLIC MATH TOOLBOX 2 . 5 O P T I M I Z A T I O N T O O LBOX 2 . 6 I M A G E P R O C E S S I N G TOOLBOX 2.7 Neural Network Toolbox 2.8 NON LINEA R C O N T R O L D E S I G N T O O L B O X 2.9 NAG FOUNDATION TOOLBOX 3. INICIANDO MATLAB
4. USO DE COMANDOS 4 . 2 I n s t r u c c i o n e s d e M A T L A B y V a r i a b les 4.3 Obteniendo Información del Espacio de Trabajo 4.4 Variables Permanentes 4.6 Saliendo y Guardando el Espacio de Trabajo 4. 7 M a n i p u l a c i ó n d e V e c t o r e s y M a t r i c e s 4.8 Operaciones de Matrices 4.9 Operaciones de Arreglos 4.10 Ejemplos: Operaciones Aritméticas 5 . P R O G R A M A N D O C O N MATLAB 5.1 Generalidades 5.1.1 A r c h i v o s -M : C o m a n d o s y F u n c i o n e s 5.1.2 Otras funciones 5.1.3 Declaración function 5.2 Operadores relacionales 5.3 Operadores lógicos 5.4 Caracteres especiales 5.5 Control de flujo 5.5.1 Declaración FOR simple 5.5.2 Declaración FOR anidada. 5.5.3 Declaración WHILE 5.5.4 D e c l a r a c i o n e s I F , E L S E , E L S E I F y B R E A K 5.6.1 C r e a c i ó n d e u n a m a t r i z 5.6.2 C a m b i o d e l o r d e n d e u n a m a t r i z : reshape 5.6.3 M o d i f i c a c i ó n i n d i v i d u a l d e e l e m e n t o s 5.6.4 M o d i f i c a c i o n e s a d i c i o n a le s d e u n a m a t r i z 5.7.1 Declaración f o p e n Ejemplo 5.7.2 Declaración f c l o s e 5.7.3 Declaración f r e a d 5.7.4 Declaración fwrite 5.7.5 Declaración f p r i n t f 5.8 Variables globales 5.9 Vectorización de algoritmos y estructuras (for, while) 5.10 Gráficas en Dos Dimensiones
20 22 23 23 23 24 25 28 29 33 33 33 37 41 41 42 43 44 44 45 46 47 50 50 50 51 57 57 57 57 58 58 58 59 60
Símbolo Color Símbolo Estilo de línea 5.10.6 Comandos gráficos 5.11 Gráficos en 3 dimensiones 5.12 Archivos de disco 5.12.1 M a n i p u l a c i ó n d e A r c h i v o s d e D i s c o 5.12.2 Ejecutando Programas Externos 5.12.3 I m p o r t a n d o y E x p o r t a n d o D a t o s 5.13 INDICE ALFABETICO 6. S I M U L I N K 6.1 Acelerador de Simulink 6 . 2 Ge n e r a d o r d e c ó d i g o - C en Simulink 7. COMANDOS DE MATLAB 7.1 General purpose commands: C o n t r o l S y s t e m T o o l b o x C o m m a n d s:
60 61 63 66 73 73 73 73 74 75 77 77 78 78 81 2
8. APLICAN D O M A T L A B A L C O N T R O L DE PROCESOS 8.1 Respuesta en el dominio del tiempo 8.2 Respuesta en el dominio de la frecuencia 8.3 Lugar de las raíces 8.4 Controladores PID 9. TRUCOS EN MATLAB® Paper semilogarítmico gratis: papelbod.m
86 86 91 95 97 99 99
Es ampliamente usado por Ingenieros de Control en el análisis y diseño. El programa permite realizar de un modo rápido la resolución numérica de problemas en un tiempo mucho menor que si se quisiesen resolver estos mismos problemas con lenguajes de programación tradicionales como pueden ser los lenguajes Fortran. teoría de c o n t r o l a u t o m á tico. tanto para los profesionales e investigadores de centros docentes. En el mundo industrial. etc. cálculo matricial. E n e n t o r n o s universitarios. proceso de señal y visualización gráfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribirían tradicionalmente. tales como sistemas e ingenieria de control. ¿QUÉ ES MATLAB?
MatLab e s u n p r o g r a m a i n t e r a c t i v o p a r a c o m p u t a c i ó n n u m é r i c a y v i s u a l i z a c i ó n d e datos. como una importante herramienta para la impartición de cursos universitarios. proceso digital de imagen. por ejemplo. MATLAB integra análisis numérico. así como en departamentos de investigación y desarrollo de muchas c o m p a ñ í a s i n d u s t r i a l e s n a c i o n a l e s e i n t e r n a c i o n a l e s . Permite resolver complicados problemas numéricos sin necesidad de escribir un programa. estadística. física. análisis de series temporales para el proceso digital de señal. MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos matemáticos y la visualización gráfica de los mismos.1. MATLAB se ha convertido en una herramienta básica. señal. álgebra lineal. MATLAB está siendo utilizado como herramienta de investigación para la resolución de complejos prob l e m a s planteados en la realización y aplicación de modelos matemáticos en ingeniería. El nombre de MATLAB proviene de la contracción de los términos MATrix LABoratory y fue inicialmente concebido para proporcionar fácil acceso a las librerías LINPACK y EISPACK.
. MATLAB goza en la actualidad de un alto nivel de implantación en escuelas y centros universitarios. posee además una extraordinaria versatilidad y capacidad para resolver problemas en matemática aplicada. M AT L A B e s u n s i s t e m a d e t r a b a j o i n t e r a c t i v o c u y o e l e m e n t o b á s i c o d e t r a b a j o son las matrices. Está basado en un sofisticado software de matrices para el análisis de sistemas de ecuaciones. ingenierí a. prototipaje algorítmico. química. las cuales representan hoy en dia dos de las librerías más importantes en computación y cálculo matricial. Basic o C. finanzas y muchas otras aplicaciones. Los usos más característicos de la herramienta los encontramos en áreas de computación y cálculo numérico tradicional. sin necesidad de hacer uso de la programación tradicional.
MatLab está disponible para una amplio número de plataformas: estaciones de trabajo SUN.
1. destacando entre ellos el 'toolbox' de proceso de imágenes. simulación de sistemas dinámicos. Apple Macintosh y PC AT compatibles 80386 o superiores. Una matriz de pixeles puede ser una imagen o una película. Por ejemplo una matriz puede representar el vuelo de una avión a 40.
1. Fue el resultado de los proyectos Linpack y Eispack desarrollados en el Argonne National Laboratory. Actualmente la licencia de MatLab es propiedad de MathWorks Inc . Al pasar de los años fue complementado y reimplementado en lenguaje C. que extienden significativamente el número de funciones incorporadas en el programa principal.1 Uso de Matrices
MatLab emplea matrices porque con ellas se puede describir infinidad de cosas de una forma altamente flexible y matemáticamente eficiente. Macintosh y Windows. En este último sentido. una matriz puede describir una relación lineal entre los componentes de un modelo matemático. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación. Gould. T a m b i é n o f r e c e S i m u l i n k
. una matriz puede describir el comportamiento de un sistema extremadamente complejo. análisis financiero.
1.2 Origen de MatLab
MatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en computadoras mainframe. control robusto. Opera bajo sistemas operativos UNIX. Además también se dispone del programa Simulink que es un entorno gráfico interactivo con el que se puede analizar.4 Productos
La empresa MathWorks ofrece MatLab como su principal producto para c o m p u t a c i ó n n u m é r i c a . denominados Toolboxes. estadística. señal. matemáticas simbólicas. VAXstation y HP.MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializados. redes neurales.
1. Y tal vez más significativamente. Apollo. Una matriz de fluctuaciones de una señal puede ser un sonido o una voz humana. a n á l i s i s y v i su a l i z a c i ó n d e d a t o s . etc. MicroVAX.000 pies de altura. Su nombre proviene de MATrix LABoratory. VAX. modelizar y simular la dinámica de sistemas no lineales. identificación de sistemas. o un filtro digital de procesamiento de señales. lógica difusa.
redes neurales.como un anexo a MatLab y que interactua con él en lenguaje de MatLab y lenguaje de bajo nivel C. Se ofrecen además numerosas herramientas especiales en "Toolboxes" para resolver problemas de aplicaciones específicas. procesamiento de señales. etc. Simulink es usado para simulación modelado no lineal avanzado.
. Estas herramientas son colecciones de rutinas escritas en MatLab. por ejemplo control.
Para aquellos usuarios que sean nuevos en la tecnología MATLAB. retardo de grupo. El objetivo principal de la C Math Library es soportar el desarrollo de aplicaciones 'stand alone' utilizando MATLAB y su compilador. Operadores lógicos y aritméticos. Librería de Aplicaciones de MATLAB
. Junto con el compilador de MATLAB. Chebyschev tipo I. tanto directo como usando técnicas en el dominio de la frecuencia basadas en la FFT. incluyendo la transformación para potencias de dos y su inversa. Procesamiento de la transformada rápida de Fourier FFT. y transformada para no potencias de dos. incluyendo Chebyshebv tipo II y elíptico. Butterworth.2. i n c l u y e n d o básicamente las siguientes categorías de funciones presentes en MATLAB y ficheros M compilados:
Algebra lineal. proporcionadas como libreri a s o b j e t o . Diseño de filtros IIR. esta tecnología ofrece una nueva vía para la reducción del tiempo de desarrollo y puesta a punto de aplicaciones. La MATLAB C Math Library proporciona una amplia gama de funciones clásicas del programa MATLAB.
Diseño de filtros FIR mediante el algorítmo ó p t i m o d e P a r k s -McClellan. se elimina así cualquier necesidad de volver a reescribir algoritmos en lenguaje C para ser utilizada por programas externos. Este incluye funciones para: • • • • • Análisis de filtros digitales incluyendo respuesta en frecuencia. Puede ser utilizada independientemente de MATLAB por programadores avezados en lenguaje C que necesiten prestaciones computacionales robustas y de alto rendimiento. Para los usuarios clásicos de MATLAB. retardo de fase. Implementación de filtros. la C Math Library permitirá a los programadores de aplicaciones utilizar MATLAB para la creación de aplicaciones 'stand alone'. Funciones matemáticas elementales y especializadas.2 THE MATLAB C MATH LIBRARY
La MATLAB C Math Library proporcio n a a l u s u a r i o l a c a p a c i d a d c o m p u t a c i o n a l d e MATLAB en una libreria en formato objeto enlazable.1 SIGNAL P ROCESSING TOOLBOX
MATLAB tiene una gran colección de funciones para el procesamiento de señal en el Signal Processing Toolbox.
3. El producto está dividido en dos categorías (como librerías objeto): la librería (built-in library) contiene versiones de las funciones de MATLAB en lenguaje C del tipo numérico.2 Utilización de MATLAB y de su compilador
Para construir una aplicación del tipo 'stand alone' que incorpore código originalmente desarrollado como ficheros M de MATLAB .
2. Estadística básica y análisis de datos. Utilizar el compilador de MATLAB para convertir ficheros M en C mediante la utilización de la instrucción mcc -e (la cual es externa a MATLAB). Entradas y Salidas. Polinomios e interpolación.2.
2. Por otra parte la librería de toolboxes (toolbox library) contiene versiones compiladas de la mayoría de ficheros M de MATLAB para cálculo numérico.
2. Respecto al mundo PC. Gestión de memoria y errores.• • • • • • •
Matrices elementales y manipulación de vectores. lógico y utilidades. Compilar el código C fuente en código objeto utilizando un compilador ANSI C. Enlazar el código resultante con la MATLAB C Math Library y con cualquier tipo de ficheros y prog ramas específicos que hayan sido previamente definidos por el usuario.
. En equipos UNIX estas librerias pueden ser igualmente obtenidas como librerías de tipo estáti c o ( s t a t i c l i b r a r i e s ) o b i e n c o m o l i b r e r í a s c o m p a r t i d a s ( s h a r e d libraries). Matrices especiales. deberán seguirse los pasos siguientes: 1. análisis de datos y funciones de acceso a ficheros y matrices.1 Desarrollo de aplicaciones utilizando la MATLAB C Math Library
La construcción y desarrollo de aplicaciones utilizando esta librería es un proceso de amplias perspectivas una vez se tiene un dominio adecuado de su operativa. Gestión de cadenas de caracteres.2.
(Nota: Las funciones del tipo Handle Graphics no están incluidas en la C Math Library). estas librerías pueden obtenerse como DLL's en el entorno Microsoft Windows o como librerias compartidas en equipos Apple MacIntosh.
Matrices inversas y factorización de matrices. Toeplitz.2. Residuos de polinomios y residuos. lógicas y de utilidad.2.
2.2. Matriz identidad y otras matrices elementales.D y 2 . rangos. etc. imaginarias y complejas conjugadas. Transformación de sistemas de coordenadas. Evaluación de polinomios. vectorial o matricial con la misma facilidad sintáctica. logarítmica y raíces cuadradas.D. La MATLAB C Math Library contiene más de 300 funciones numéricas. Construcción polinomial.4 Lista parcial de funciones
Funcionales especiales y elementales
Funciones gamma.
.3 Velocidad y Precisión
Los algoritmos utilizados en la MATLAB C Math Library han sido desarrollados por un grupo de renombrados expertos en programación algorítmica de funciones de tipo matemático (algebra lineal y cálculo numérico). normas. Multiplicación y división de polinomios. Vandermonde. Diferenciación de polinomios. Ma triz exponencial. etc. Las funciones de álgebra lineal han sido obtenidas de las librerias mundialmente reconocidas LINPACK y EISPACK. Funciones trigonomé tricas y de potencias. Matrices de Hilbert. Hadamard. Partes reales. Todas estas funciones le permitirán operar en datos de tipo escalar. beta y elíp ticas. Interpolación por splines cúbicos. Determinantes. Funciones generales de evaluación de matrices.
Algebra lineal numérica
Valores propios y descomposición de matrices.
Polinomios e interpolación
Interpolación 1 .
Coeficientes de correlación y m a t r i c e s d e c o v a r i a n z a .6 Requerimientos
La libreria MATLAB C Math Library cumple con la normativa estándar ANSI para compiladores C. Minimización de funciones de una o más variables.
2. mean y otras funciones de estadística básica. Finalmente. Conversión de tipos de datos Fortran. NOT y XOR.
Operaciones algebráicas y lógicas
Suma.5 Utilidades
Gestión y mantenimiento de errores. OR. Resolución numérica de integrales.
2.2. multiplicación. Clasificación de matrices. Operadores lógicos AND. Matrix traspuesta. Magnitudes y ángulos de fase. Funciones max.
Estadística y análisis de Fourier
Convolución 1 . min. la librería trabajará con aquellos enlazadores suministrados con la mayoría de compiladores ANSI C. Funciones de fecha y hora. Transformadas de Fourier 1 .D. Solución numérica de ecuaciones diferenciales ordinarias. sum. que vienen
. Deconvolución.Métodos numéricos no lineales
Búsqueda de ceros en funciones de una única variable. Filtros digitales 1.D y 2 .D y s u i n v e r s a .D y 2 .D y 2 -D . división y potencias de matric e s . Conversión de n ú m e r o s a c a d e n a s y v i c e v e r s a .2. resta.
Pueden construirse aplicaciones que se ejecutaran independientemente de MATLAB.The MATLAB Compiler .de MATLAB.
Mediante la conversión automática de ficheros M en código C fuente. Estas aplicaciones externa s requieren de la MATLAB C Math Library. Este compilador puede ser utilizado de dos modos: 1.M files . La instrucción MATLAB cmex llama al compilador y al enlazador del sistema para construir un fichero MEX objeto. el compilador MATLAB elimina consumo de tiempo y la conversión manual de código. el compilador realiza llamadas a las rutinas de la libreria C para muchas de las instrucciones contenidas en el propio núcleo de MATLAB. Esta opción es ideal para usuarios que quieren sacar la m á x i ma ventaja de MATLAB desde cualquier otra aplicación o producir código C eficiente a partir de los algoritmos desarrollados con MATLAB. compilación y enlazado se inicia a través de una simple instrucción de MATLAB. El proceso en cuestión se realiza en tres pasos: 1. incluyendo las rutinas 'Handle Graphics'.2. T o d o e l p r o c e s o d e c o n v e r s i ó n . 3. Pueden convertirse convenientemente ficheros M en código fuente C para incorporarlos posteriormente en los ficheros externos desarrollados en lenguaje C. El intérprete de MATLAB enlaza automáticamente la función de MATLAB como 'runtime'. si ese es el caso. Existen algunas funciones.p e r m i t e c r e a r c ó d i g o C optimizado procedente de ficheros M . L o s f i c h e r o s M E X c o n t i e n e n c ó d i g o o b j e to q u e e s d i n á m i c a m e n t e e n l a z a d o c o m o 'runtime' en el entorno MATLAB por el intérprete del programa.
2. Los desarrollos 11
2. Pueden convertirse ficheros M en funciones C ejecutables que se ejecutaran desde dentro de MATLAB. que está disponible separadamente. Como un generador MEX automático.3.1 Generación Automática de ficheros MEX. Mientras se efectúa una conversión de los ficheros M en ficheros MEX. El compilador de MATLAB traduce las funciones MATLAB en sus funciones equivalente en lenguaje C.
2. para las cuales se generan de nuevo llamadas 'c a l l b a c k s ' a M A T L A B . Como un generador de código C fuente.3 THE MATLAB COMPILER TOOLBOX
E l n u e v o c o m p i l a d o r d e M A T L A B .
El compilador de MATLAB automatiza la creación de ficheros MEX de C (MATLAB Ejecutables).
del tipo 'stand-alone' requieren para ello de la MATLAB C Math Library. Las opera ciones matriciales y vectoriales ejecutadas desde MATLAB ya están fuertemente optimizadas en su diseño. real o una combinación de estas.3.2 Rendimiento del compilador
Mediante la compilación de los ficheros M se puede obtener un rendimien to significativo. E n l a z a r e l c ó d i g o r e s u l t a n t e c o n l a s l i b r e r í a s m a t e m á t i c a s C d e M A T L A B y los ficheros específicos que dispongamos.3. 3. En algunos casos el rendimiento puede mejorar hasta en 200 veces la ejecución si la comparamos con el modo de trabajo interpretado del programa.4 Requerimientos del sistema
Para utilizar el compilador de MATLAB para crear ficheros MEX se necesita la versión de MATLAB 4. vectorial. La velocidad de mejora de este rendimiento. entera.2c y tener instalado uno de los siguientes compiladores de lenguaje C: PC/Microsoft Windows Metaware High C/C++ V.
2. Watcom C V. depende fuertemente de cada aplicación. Obsérvese que las funciones gráficas de MATLAB no están incluidas.3.0 o superior Power MacIntosh MetroWer ks CodeWarrior C V.7
. Desactivar el control de parámetros de entrada y el redimensionamiento dinámico de vectores. Utilizar el compilador de MATLAB para convertir ficheros M en C con la instrucción externa mcc .
2.e.3 Opciones de ajuste del rendimiento
E l c o m p i l a d o r d e M A T L AB ofrece varias opciones que permiten generar el programa final de la forma más eficiente.
2.3. Compilar el código C fuente en código ob j e t o u t i l i z a n d o u n c o m p i l a d o r C . puede directamente: • • • Tratar todas las variables en ficheros como datos enteros y/o reales.10. Por ejemplo. mediante la utilización del compilador se obtendrán significativas mejoras. Utilizar una variable concreta como variable escalar. Para construir aplicaciones 'stand-alone' se debería seguir los siguientes pasos: 1. Ud.0 o superior.
0. integración y simplificación de expresiones matemáticas. añade a MATLAB la capacidad de realizar cálculos simbólicos basados en MAPLE V © soportando además (The Extended Symbolic Math Toolbox) las librerías especializadas.X no es un compilador ANSI C). Entre o t r o s . como load y eval.4 SYMBOLIC MATH TOOLBOX
El Toolbox de Matemática Simbólica.MPW MrC V. l o s p r i n c i p a l e s t i p o s d e o p e r a c i o n e s s o p o r t a d o s son los siguientes: • • • • • Algebra simbólica: Derivación. The Basic Symbolic Math Toolbox es una colección de más de 50 funciones MATLAB las cuales permiten acceder al
. Resolución de ecuaciones: Resolución numérica y simbólica de ecuaciones algebraicas y diferenciales.1.
Existen dos versiones del mismo Toolbox. Algebra lineal exacta: Inversas. no están soportadas por el compilador de MATLAB .5 680x0 MacIntosh MPW C Versión 3.
2.0b2 o PPCC version 1.
2.1. Este no puede generar código de los diagramas de bloques de SIMULINK. Los toolboxes de MATLAB pueden incluir ficheros MEX y otros componentes que no son compilables. Funciones matemáticas especiales: E v a l u a c i ó n d e l a m a y o r í a d e l a s f u n c i o n e s utilizadas en matemáticas aplicadas. y los programas realizados para este último.5 Limitaciones del código compilado
Ciertas instrucciones. además del compilador de MATLAB. Cualquiera que sea el equipo informático que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere. determinantes. canónicas de matrices simbólicas.4 UNIX y VMS
Cualquier compilador ANSI C (Nota: El compilador de SunOS 4. autovalores y formas
Aritmética de precisión variable: Evaluación de expresiones matemáticas con diversos grados de precisión. que se tengan las MATLAB C Math Library y un compilador ANSI C.3.
Problemas de mínimos cuadrados no negativos. Sin embargo.
. Programación cuadrática.kernel de MAPLE utilizand o l a S i n t a x i s y el estilo del lenguaje MATLAB. The Extended Symbolic Math Toolbox aumenta esta funcionalidad incluyendo todas las características de programación de MAPLE. Como caso particular.5 OPTIMIZATION TOOLBOX
El toolbox de optimización consta de un conjunto de funciones que resuelven problemas de extremos. no lineales. Algunas de las áreas básicas que cubre este toolbox para MATLAB son las siguientes: • Cálculo de un extremo local (máximo o mínimo) de una función real f(x). y el acceso a los paquetes de funciones de más de veinte campos de las matemáticas e s p e c i a l e s a p l i c a d a s . se incluye una rutina especial para problemas de mínimos cuadrados no lineales. será necesario un a mplio conocimiento del manejo y la programación de MAPLE
2. Es posible utilizar este Toolbox sin conocimiento previos de MAPLE. ya que los ficheros contenidos en él son totalmente autónomos. condicionado a que la solución satisfaga ciertas condiciones de desigualdad (g(x)<=0) y/o igualdad (g(x)=0). sin imponer ninguna restricción o condición a la solución. Resulta conveniente para una comprensión y mejor manejo de la toolbox poseer conocimientos básicos previos de análisis de funciones reales. Cálculo de soluciones de un sistema de ecuaciones continuas y. posee funciones para la resolución de algunos tipos de problemas matriciales en extremos. de funciones reales las cuales son generalmente multivariables y no lineales. Programación lineal. en general. matrices y teoría de extremos. Cálculo de un extremo local (máximo o mínimo) de una función real f(x). con o sin condiciones. en general multivariable y no lineal. Solución de problemas minimax. en general multivariable y no lineal. si lo que se desea es obtener toda la potencia de cálculo del entorno. Asimismo. Problemas de aproximación a un conjunto de objetivos.
2.6 IMAGE PROCESSING TOOLBOX
Este Toolbox proporciona a MATLAB de un conjunto de funciones que amplia las capacidades del producto para realizar desarrollo de aplicaciones y de nuevos algoritmos en el campo del proceso y análisis de imagenes. El entorno matemático y de creación de MATLAB es ideal para el procesado de imágenes, ya que estas imágenes son, al fin y al cabo, matrices. Este toolbox incorpora funciones para: • • • • • Diseño de filtros. Mejora y retocado de imágenes. Análisis y estadística de imágenes. Operaciones morfológicas, geométricas y de color. Transformaciones 2D.
E l p r o c e s o d e i m á g e n e s e s u n c a m p o d e t r a b a j o a b s o l u t a m e n te c r u c i a l p a r a aquellos colectivos e industrias que estén trabajando en áreas como diagnóstico médico, astronomía, geofísica, ciencia medioambientales, análisis de datos en laboratorios, inspección industrial, etc. Los programas actuales de procesado y análisis de imágenes se clasifican actualmente en dos categorías: librerías de bajo nivel para programadores profesionales y paquetes de aplicación con capacidades limitadas de personalización. Ambos tipos de aplicaciones están, generalmente, pensados para ta reas básicas de visualización de datos y 'rendering'. Sin embargo, muchos de ellos adolecen de la posibilidad de efectuar análisis numéricos de los mismos. El Image Processing Toolbox entra dentro de la categoría de familias de funciones que, desde el ento rno de trabajo de MATLAB , permitirá al profesional efectuar una exploración exhaustiva y desde un punto de vista matemático de las imágenes y gráficos que se deseen tratar o analizar. Algunas de las funciones más importantes incluidas dentro de este toolbo x s o n las siguientes: • • • • • • • • Análisis de imágenes y estadística. Diseño de filtros y recuperación de imágenes. Mejora de imágenes. Operaciones morfológicas. Definición de mapas de colores y modificación gráfica. Operaciones geométricas. Transformación de imágenes. Proceso de bloques
2.7 Neural Network Toolbox
Este toolbox proporciona funciones para el diseño, inicialización, simulación y entrenamiento de los modelos neuronales de uso más extendido en la actualidad: Perceptrón, redes lineales, redes de retropropagación, redes de base radial, aprendizaje asociativo y competitivo, aplicaciones autoorganizativas, aprendizaje de cuantización vectorial, redes de Elman y redes de Hopfield. Mediante la inclusión de un amplio abanico de funciones y procedimientos escritos para MATLAB, el usuario puede mediante el Neural Network Toolbox efectuar el diseño de arquitecturas complejas, combinando los modelos que ya estan proporcionados por defecto en el toolbox. Asimismo, el usuario puede definir sus propias funciones d e transferencia e inicialización, reglas de aprendizaje, funciones de entrenamiento y estimación de error para usarlas posteriormente con las funciones básicas. El toolbox, aporta las facilidades y prestaciones gráficas de MATLAB para el estudio del compor tamiento de las redes: visualización gráfica de la matriz de pesos y vector de desplazamiento mediante diagramas de Hinton, representación de errores a lo largo del entrenamiento, mapas de superficie de error en función de pesos y vector de desplazamiento, etc. Estos gráficos resultan muy útiles en el estudio de la convergencia y estabilidad de los algoritmos de aprendizaje. Este toolbox incluye un manual de introducción al campo de las redes neuronales junto con una colección de demostraciones y aplicaciones muy didácticas, útiles para el estudio y la profundización en las cuestiones fundamentales de los paradigmas de redes neuronales básicos. Asimismo, se proporcionan las referencias bibliográficas más significativas referidas a los distintos modelos que aparecen en la aplicación. A pesar de que el estudio de las redes neuronales se inició ya hace algunas decadas, las primeras aplicaciones sólidas dentro de este campo no han tenido lugar hasta hace unos doce años y aun ahora constituyen un área de investigación en rápido desarrollo. Este toolbox tiene por tanto una orientación diferente a aquellos destinados a campos como el de sistemas de control u optimización donde la terminología, fundamentos matemáticos y procedimientos de diseño estan ya firmemente establecidos y se han aplicado durante años. Este toolbox pretende que sea utilizado para la valoración y diseño de diseños neuronales en la industria y sobre todo en educación e investigación. Esta herramienta tiene el soporte de MATLAB 4.2c y SIMULINK. La librería de SIMULINK contiene modelos de capas de redes neuronales de cada tipo de neurona implementada en el toolbox de redes neuronales. Es posible por tanto diseñar sistemas SIMULINK para simular redes neuronales creadas usando esta herramienta. Simplemente, las capas se conectan de acuerdo con la arquitectura de la red y se proporcionan como entrada a la caja de diálogo de cada capa la matriz de pesos apropiada y el vector de desplazamiento. Usando el generador de código C de SIMULINK es posible generar a u t o m á t i c a m e n t e e l c ó d i g o correspondiente a un diseño neuronal. 16
Dentro de las aplicaciones básicas de este toolbox, cabe destacar aquellas que están orientadas a aquellas que se enmarcan dentro del campo de la industria aeroespacial y automoción (simulación, sistemas de control, autopilotaje), banca, defensa (reconocimiento de patrones, procesamiento de señales, identificación de imágenes, extracción de características, compresión de datos), electrónica (control de procesos, análisis de errores, modelado no lineal, síntesis de voz, visión por ordenador), economía (análisis financiero, análisis predictivo), industria (control de procesos, identificación en tiempo real, sistemas de inspección), medicina, robótica (control de trayectorias, sistemas de visión), reconocimiento y síntesis del habla, telecomunicaciones (control de datos e imágenes, servicios de información automatizada, traducción del lenguaje hablado en tiempo real, diagnosis, sistemas de enrutamiento), etc. El toolbox contiene muchos ejemplos de al g u n a s d e e s t a s a p l i c a c i o n e s .
2.8 NON LINEAR CONTROL DESIGN TOOLBOX
Se trata del primer producto comercialmente disponible en la actualidad para el diseño de controladores automáticos en entornos de sistemas no lineales. Este n u e v o t o o l b o x e s t á p e n s a d o pa r a s e r u t i l i z a d o e x h a u s t i v a m e n t e p o r i n g e n i e r o s que diseñan controladores para industrias avanzadas, destacando el sector del automóvil, ingenieria aeroespacial, control de procesos y empresas petroquímicas. Según indica Jim Tung, Vicepresidente del área d e d e s a r r o l l o d e The MathWorks Group, Inc. "El proceso de aproximación tradicional en el diseño de controladores en sistemas no lineales ha sido hasta la fecha linealizarlos de algún modo para aplicar posteriomente un método de diseño lineal que requiere d e importantes ajustes manuales. El toolbox NCD permite por primera vez a los ingenieros de control diseñar directamente sus controladores en un ambiente no lineal, obviando la aproximación lineal y otros procedimientos auxiliares que antes se necesitaban de m o d o i m p e r a t i v o . Los resultados ahora son de elevada calidad, controladores más robustos y un ciclo de diseño mucho más rápido. El toolbox NCD extiende, además, las prestaciones que incorpora SIMULINK, el e n t o r n o d e d e s a r r o l l o d e d i a g r a m a s d e b l o q u e s p a ra l a m o d e l a c i ó n y a n á l i s i s d e sistemas dinámicos de The MathWorks, Inc. El usuario puede incluir uno o más bloques NCD en el sistema y describir posteriormente de modo totalmente gráfico las restricciones, tolerancias y límites de permisividad de cada uno d e estos bloques. Los métodos avanzados de optimización y la simulación del proceso son posteriormente analizados y ajustados mediante la inclusión de unas ciertas variables de contorno para poder obtener los tiempos de respuesta d e s e a d o s . E s t e t o o l b o x p u ed e s e r u t i l i z a d o p a r a a j u s t a r u n a a m p l i a v a r i e d a d d e controladores que se utilicen en un sistema, destacando los controladores PID, LQR, LQG y estructuras H infinito. El diseñador de sistemas puede utilizar el método de Montecarlo para el diseño y análisis de controladores robustos,
aquellos usuarios de las librerías Fortran de NAG que a la vez sean usuarios de MATLAB. destacando ordenadores personales tipo PC o Apple MacIntosh. podrán utilizarse toolboxes para el análisis de sistemas lineales para el diseño inicial. numerosas estaciones UNIX y ordenadores Digital VAX VMS. ajuste de curvas y superficies y el acceso a los algoritmos LAPACK para la resolución de ecuaciones lineales. los diseñadores podrán beneficiarse de muchos de los toolboxes desarrollados para este entorno en materia de diseño de sistemas lineales. a u n amplio conjunto de funciones matemáticas y estadísticas contenidas en las clásicas NAG Fortran Libraries de la empresa The Numerical Algorithms Group Incorpora más de 200 ficheros M. cuadratura. La NAG Foundation Toolbox añade también rutinas concretas para campos específicos tales como la resolución de problemas con condicion es de contorno.siempre que se detecten determinadas variaciones en los componentes del sistema. este toolbox incorpora 250 rutinas matemáticas. desde dentro de MATLAB. e c u a c i o n e s d i f e r e n c i a l e s ordinarias y en derivadas parciales. Por ejemplo. Además.9 NAG FOUNDATION TOOLBOX
Este toolbox proporciona un acceso interactivo. Los nombre de las funciones han sido directamente tomados de las especificaciones de función clásica que añade The Numerical Algorithms Group para sus librerías. Como resultado de esto. Por ello. podrán utilizarse modelos no lineales más sofisticados utilizando SIMULINK. Algunas de las áreas de cobertura de la NAG Foundation Toolbox son las siguientes: • • Ceros de polinomios Raíces de una o más ecuaciones de tipo trascendental. encontraran bastante cómodo acceder a las rutinas NAG utilizando la nomenclatura original. puede invocarse NCD para un mejor ajuste paramétrico y para la optimización de los controladores. El toolbox NCD es un componente avanzado del entorno integrado de desarrollo que ofrecen a los especialistas los programas MATLAB y SIMULINK.
2. e n t r e l a s qu e c a b e d e s t a c a r o p t i m i z a c i ó n . Este toolbox se encuentra actualmente disponible para una amplia va riedad de plataformas informáticas. Actualmente.
. posteriormente. etc. estadística. los cuales cubren un amplio espectro de áreas d e i n t e r é s . La NAG Foundation Toolbox es resultado de la colaboración corporativa que actualmente están llevando a cabo The MathWorks Group y The Numerical Algoriths Group para proporcionar un rápido acceso desde MATLAB a un importante de rutinas matemáticas contenidas en la NAG Foundation Library. problemas de cuadratura adaptativa multidimensional.
Generación de números aleatorios. Valores y vectores propios. Ecuaciones diferenciales ordinarias. Aproximación de funciones especiales. Estadística no paramétrica. Análisis de series temporales. Cuadraturas. Estadística básica. Ecuaciones diferenciales en derivadas parciales. Factorización de matrices. Ecuaciones lineales (LAPACK).
. Análisis de correlación y regresiones.• • • • • • • • • • • • • • • • • •
Suma de series. Rutinas de clasificación. Aproximación de curvas y superficies. Métodos multivariantes. Resolución de ecuaciones lineales simultáneas. Maximización y minimización de funciones.
3. [ ]. (punto y coma). >>quit
4. l os elementos estén cerrados entre corchetes.
Ejemplo: A = [ 1 2 3. Para e j e c u t a r l o s s e e s c r i b e e l c o m a n d o e n l a l í n e a d e c o m a n d o s después del símbolo >> y se presiona la tecla Enter. MATLAB trabaja esencialmente con matrices numéricas rectangulares. Por ejemplo: >>help permite obtener una ayuda sobre los diferentes comandos de MatLab. INICIANDO MATLAB
Después de ejecutar el programa MatLab desde el sistema operativo empleado. 4 5 6. Puede ejecutarse un comando si este está escrito después del símbolo >> y se presiona la tecla Enter. Este indicador es de la siguiente forma: >> Al iniciar el uso de MatLab están disponibles dos comandos de ayuda y demostración. La manera más fácil de entrar matrices pequeñas es enumerando los elementos de ésta de tal manera que: • • • los elementos estén separados por blancos ó comas. Si la matriz a introducir es muy grande se puede utilizar el siguiente formato:
. USO DE COMANDOS
La primera forma de interactuar con MatLab es a través de la línea de comandos. muestre el final de cada fila con . 7 8 9 ] resultaría en la matriz A= 1 2 3 4 5 6 7 8 9 MATLAB guarda esta matriz para utilizarla luego bajo el nombre de A. por ejemplo haciendo doble click sobre el icono de MatLa b e n a m b i e n t e s Windows. Para cerrar o finalizar el uso de MatLab se usa el comando quit . aparece el indicador de comandos el cual está listo para recibir instrucciones en lenguaje MatLab. >>demo h a c e u n a d e m o s t r a c i ó n d e l a s d i f e r e n t e s a p l i c a c i o n es de MatLab.
). A(2)=2 y A(3)=3. Al definir A automáticamente MatLab presenta en pantalla su valor. Después de crear una variable. Para definir una m a t r i z s e d e b e n s e p a r a r l a s f i l a s c o n p u n t o y c o m a ( . por ejemplo: >>A=[1 2 3] define A como un vector de tres elementos. >>A=1 define A como un escalar de valor 1. 4 5 6] o >>A=[1 2 3 4 5 6] ambos comandos producen el mismo efecto: A= 1 2 3 4 5 6 su valor en pantalla
.) al final del comando. A(1)=1. >>A Se pueden redefinir variables. Estas pueden estar formadas por un sólo elementos (escalar). ) o c o n retorno (Enter). por una fila o una columna (vector) o por una serie de filas y columnas (matriz propiamente dicha). >>A=[1 2 3. A= 1 Para no presentar el valor de la variable creada. Estos elementos deben separase con espacios en blanco o comas (. Ya que MatLab se basa en el álgebra de matrices como ejemplo crearemos una matriz.A = [1 2 3 4 5 6 7 8 9] El comando load y la función fread p u e d e n l e e r m a t r i c e s g e n e r a d a s e n s e s i o n e s anteriores ó generadas por otros programas. puede presentarse escri biendo la variable después del prompt (>>). debe agregarse punto y coma (.
. Todos los nombres de funciones deben ser en letras minúsculas.sqrt(3). T a m b i é n d i s t i n g u e l a s l e t r a s mayúsculas de las minúsculas. Ejemplo: x = [-1. M A T L A B a u t o m á t i c a m e n t e c r e a la variable a n s p a r a g u a r d a r e l r e s u l t a d o . 7 3 2 1 4 .3000 1. Ejemplo: En el ejemplo anterior x(4) = abs(x(1)) resultaría x= -1.4. 8 0 0 0
Nos podemos referir a elementos individuales de la matriz con índices entre paréntesis.3000
Para añadir otra fila a la matriz A de arriba podemos hacer lo siguiente: r = [10 11 12].3.8000 0 1.7321 4. 3 0 0 0 1 . A = [A.2 Instrucciones de MATLAB y Variables
Si omites el nombre de la variable y e l s i g n o " = " .(1+2+3) *4/5] resultaría en x = -1 .1 Elementos de matrices
Los elementos de una matriz pueden ser cualquier expr e s i ó n d e M A T L A B . r] y resultaría A= 1 2 3 4 5 6 7 8 9 10 11 12
Se puede utilizar s a v e y load con otros nombres de archivos. Estas son por ejemplo las variables a n s y e p s . load y s a v e también pueden impor tar y exportar información de archivos ASCII. s a v e guarda todas las variables en un archivo llamado matlab. La variable e p s es una tolerancia para determinar. Su valor inicial es la distancia de 1. Ejemplo: x = sqrt(log(z))
4.3 Obteniendo Información del Espacio de Trabajo
Los ejemplos que hemos dado se han guardado en variables que están en el espacio de trabajo de MATLAB.0 al próximo número de punto flotante mayor.mat. Usando el comando load temp las obtienes nuevamente del archivo temp. Para listar las variables en el espacio de trabajo se utiliza el comando who .6 Saliendo y Guardando el Espacio de Trabajo
Para salir de MATLAB se escribe quit ó exit . Por ejemplo la singula r i d a d y el rango. y que no se pueden eliminar. Puedes combinar las funciones de acuerdo a tu necesidad. Al terminar una sesión de MATLAB.
4. Para ver información adicional acerca de estas variables se utiliza el c o m a n d o w h o s .mat.4 Variables Permanentes
Las variables permanentes son aquellas con significado especial. Otras f u n c i o n e s e s t á n d i s p o n i b l e s e n l a l i b r e r í a e x t e r n a d e a r c h i vo s -M . ó para guardar solo variables seleccionadas Ejemplo: save temp X Y Z Este ejemplo guarda las variables X. Y. A d e m á s d e éstas funciones todo usuario también puede crear otras funciones.
.5 Funciones
Las funciones que utiliza MATLAB son intrínsecas al procesador de éste.4. Si deseas guardar tu espacio de trabajo escribes s a v e . las variables en el espacio de trabajo se borran.mat. Z en el archivo temp.
son importantes en MATLAB.. los índices de vectores permiten acceso a submatrices contiguas y no -con t i g u a s .. x(v(2)). Si x y v son vectores. 1) resultaría A= 1 2 3 4 5 6 7 8 10
Un índice puede ser un vector.
Índices Podemos referirnos a elementos individuales de matrices encerrando sus índices en paréntesis. entonces x(v) es [x(v(1)). :. 3) = A(1. números negativos ó constantes. Por ejemplo x = 1:5 genera un vector fila que contiene los números enteros del 1 al 5: x = 1 2 3 4 5 No necesariamente se tiene que incrementar por números enteros. . Para matrices..x(v(n))]. 3) + A(3.4.7 Manipulación de Vectores y Matrices Generando Vectores
Los dos puntos. pueden ser decimales. Ejemplo: A= 1 2 3 4 5 6 7 8 9
7:10) es la submatriz 5 x 4 de las pr i m e r a s c i n c o f i l a s y l a s ú l t i m a s c u a t r o c o l u m n a s .Por ejemplo. ó vector columna.
Sumando y Restando Matrices
Las operaciones suma (+) y resta (-) son definidas para las matrices siempre y c u a n d o é s tas tengan la misma dimensión.extrae ó crea una diagonal t r i l . Ejemplo: x= -1 0 2
. Si tenemos la matriz A y llamamos B = A'. que consiste de los primeros cinco elementos en la tercera columna de A. Utilizando solo los dos puntos denota todo lo correspondiente a la fila ó columna. si A y B son matrices 3 x 3. 3) especifica la submatriz 5 x 1. suponga que A es una matriz 10 por 10. quinta y décima columna de A con las primeras tres columnas de B. es decir. [3 5 10]) = B(:. También A(1:5.transposición
4.8 Operaciones de Matrices Matrices Transpuestas
El caracter ' (apóstrofe) denota la transpuesta de la matriz.parte inferior triangular triu . Entonces A(1:5. entonces A + B se puede calcular.
Manipulación de Matrices diag . Las operaciones suma y resta también está definidas si uno de los operandos es un escalar. Podríamos tener una instrucción como: A(:. B es la transpuesta de la matriz A. 1:3) que reemplaza la tercera.parte superior triangular ' . una matriz 1 x 1. Es decir.
Note que y' * x produce el mismo resultado.y = x .
El producto interior (producto escalar ó producto punto) se consigue de la siguiente manera: x' * y asumiendo que x y y son vectores columnas. 3 2 1]. B=[6 5 4.4 5 6].
. define las matrices A y B.1 resultaría y = -2 -1 1
Ejemplo: >>A=[1 2 3. Para sumarlas se escribe la operación: >>A+B El resultado de la operación es por defecto almacenado en la variable ans e inmediatamente presentado en pantalla: ans = 7 7 7 7 7 7 Para almacenar la suma de A y B en la variable C: >>C=A+B C= 7 7 7 7 7 7
Multiplicando Matrices
La operación de multiplicación de matrices está definida siempre que el número de columnas de la primera matriz sea igual a el número de filas de la segunda matriz.
ó ser multiplicado por. e n t o n c e s A\B y B/A corresponden a la multiplicación izquierda y derecha de B por el inverso de A. k componentes diferentes de cero.é s i m a p o t e n c i a y e s t a d e f i n i d o s i A e s u n a matriz cuadrada y n un escalar. como la matriz exponencial y la matriz
.Producto de una matriz por un vector
El producto de una matriz y un vector es un caso especial del producto matrizmatriz y naturalmente. d e f i n i d a s e n los elementos individuales de A. Si A es cuadrada. al menos. puede multiplicar. esto es.s i n g u l a r . También puede calcular funciones trascendentales de matrices.
X = A\B es una solución a A * X = B X = B/A es una solución a X * A = B
A \B es definido cuando B tiene la misma cantidad de filas que A.
Usando Exponentes con Matrices
L a e x p r e s i ó n A ^ n e l e v a A a l a n.
Dividiendo Matrices
En división de matrices. Los factores son usados para resolver sistemas de ecuaciones sub-d e t e r m i n a d o s y sobre -determinados.
Funciones Matriciales Trascendentales y Elementales
MATLAB considera expresiones como exp(A) y sqrt(A) como operaciones de a r r e g l o s . si A es una matriz cuadrada no. un escalar como pi. Cada columna de X tiene. El resultado es obtenido directamente sin la computación del inverso. El resultado es una matriz X con las mismas dimensiones que B.
B/A esta definido en términos de A\B p o r B / A = ( A ' \B ' ) ' . se factoriza utilizando la ortogonalización de Householder con pivoteo de columnas. inv(A) * B y B * inv(A) respectivamente. cualquier matriz. el método usado es la Eliminación Gaussiana. donde k es el rango efectivo de A. Si A no es cuadrada. El resultado es una matriz X m-p o r -n donde m es el número de columnas de A y n es el número de columnas de B.
*y resulta z = 4 10 18 Las expresiones A.
Multiplicación y División de Arreglos
El símbolo .* denota multiplicación de arreglos elemento por elemento./B y A.\ y resulta z= 4. Un punto (.5000 2.p r o d u c t o t e n s o r i a l d e K r o n e c k e r eig .
Otras funciones elementales de matrices son:
poly . Estas operaciones matrices cuadradas. las operaciones de arreglos y las operaciones de matrices son iguales. Ejemplo: z = x.0000
.traza kron .9 Operaciones de Arreglos
El término operaciones de arreglo se refiere a las operacio n e s d e a r i t m é t i c a elemento por elemento. \B d a n l o s c o c i e n t e s d e l o s e l e m e n t o s i n d i v i d u a l e s .) antes de un operador indica una operación de arreglos elemento por elemento.p o l i n o m i o c a r a c t e r í s t i c o d e t . z = x.logarítmica. y = [4 5 6].calcula los valores propios de la matriz
4.determinante trace .0000 2.
Suma y Resta de Arreglos
Para suma y resta. Ejemplo: x = [1 2 3].
4.2.3] b= 1 2 3
>> a' ans = 2 1 2
>> b' ans = 1 2 3
.1.5000
>> 2\ 1 ans = 0.10 Ejemplos: Operaciones Aritméticas
Ejemplos: >> 1/2 ans = 0.5000
>> a=[2.Exponentes con Arreglos
El símbolo .^ denota exponenciación elemento por elemento.2] a= 2 1 2
>> b=[1.
* Matrix dimensions must agree.*b ans = 2 2 6
>> a*b' ans = 2 4 6 1 2 3 2 4 6
>> a.*b' ??? Error using ==> .
>> a*3 ans = 6 3 6
>> b.*3 ans = 3 6 9
.>> a*b ??? Error using ==> * Inner matrix dimensions must agree.
>> a.>> a/3 ans = 0.^2 ans = 4 1 4
>> 2^a ??? Error using ==> ^ Matrix must be square.6667 0.6667
>> a./3 ans = 0.3333 0.
>> a.3333 0.6667 0.6667
>> a^b ??? Error using ==> ^ Matrix dimensions must agree.^b ans = 2 1 8
>> a^2 ??? Error using ==> ^ Matrix must be square.
33 f) format hex 3ff5555555555555
. El rango aproximado es: 1 0 ^-3 0 8 a 1 0 ^ 3 0 8 .33333333333333 d) format long e 1.33333333333333e00 e) format bank 1.^a ans = 4 2 4
Aproximadamente 16 dígitos significativos computadoras utilizando aritmética flotante IEEE.-
Formatos de salida :
4/3 a) format short 1.
utilizada .3333e+00 c) format long 1.>> 2.3333 b) format short e 1.
Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo. ó diseñar secuencias
. Los archivos de funciones. Ambos.M se puede llamar a sí mismo recursivamente.M: los de comandos y las funciones. Esto es así porque siempre tienen una extención de ".1.5.4 5 6.7 8 9] A= 1 2 3 4 5 6 7 8 9 >>A' ans = 1 4 7 2 5 8 3 6 9 El primer comando A=[1 2 3. Hay dos tipos de archivos . Puedes crear archivos. permiten añadir a MATLAB funciones adicionales expandiendo asi la capacidad de este programa. MATLAB simplemente ejecuta los comandos encontrados en dicho archivo.1 Generalidades
Programar en MatLab es usar una serie de comandos que permitan realizar una tarea o función específica. comandos y funciones.
5.7 8 9] define la matriz A y el siguiente comando A' calcula y presenta en pantalla la transpuesta de A.M. Los comandos son utilizados para hacer análisis.m" como la última parte de su nombre de archivo. Estos pueden ser escritos uno por uno a través de la línea de comandos: >>A=[1 2 3.M utilizando un editor de texto ó procesador de palabras.1 Archivos -M: Comandos y Funciones
Los archivos de disco que contienen instrucciones de MATLAB se llaman a r c h i v o s.4 5 6. Un archivo .M.
Archivos de Comandos Cuando un archivo de comandos es invocado. Los archivos de comandos. son archivosordinarios de texto ASCII.M c o n s i s t e d e u n a s e c u e n c i a d e i n s t r u c c i o n e s n o r m a l e s d e M A T L A B . automatizan secuencias largas de comandos. resolver problemas. Un archivo . PROGRAMANDO CON M ATLAB 5. q u e p r o b a b l e m e n t e i n c l u y e n r e f e r e n c i a s a o t r o s a r c h i v o s.
Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar comandos para hacer tareas más complicadas.M q u e c o n t i e n e l a p a l a b r a f u n c ti o n a l p r i n c i p i o d e l a p r i m e r a l í n e a . Los archivos de funciones se utilizan para extender a MATLAB. a diferencia de un comando.l a r g a s d e c o m a n d o s q u e s e c o n v i e r t a n e n interactivas. [m. m contiene los siguientes comandos de MATLAB:
% U n a r c h i v o -M p a r a c a l c u l a r l o s e l e m e n t o s d e l a s e r i e d e F i b o n a c c i f = [1 1]. suponga que el archivo f i b o . i = i + 1. Para utilizar estos escriba demos en el "prompt" de MATLAB. end y = sum(x)/m.
. las variables f y i permanecen en el espacio de trabajo.
Archivos de Funciones Un archivo . n] = size(x).. end plot(f)
S i e s c r i b i m o s fibo e n u n a v e n t a n a d e M A T L A B s e g u i d o d e " e n t e r " v e m o s q u e MATLAB calcula los primeros 16 números de Fibonacci. Luego que la ejecución del archivo es completada. mean(x) retorna el valor medio de los elementos del vector x. mean(x) es un vector fila conteniendo el valor medio de cada columna. se deben de pasar los argumentos. e s un archivo de función. En una función. crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB. y luego grafica estos. m contiene las instrucciones: function y = mean(x) % Valor medio.e. Por ejemplo. i. while f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1). El archivo m e a n . Las variables definidas y manipuladas dentro de la función son locales a esta y no operan globalmente en el espacio de trabajo. % Para vectores. i = 1. % Para matrices. if m == 1 m = n.
y los argumentos de salida.M y a p a r e c e n e n l a p a n t a l l a c u a n d o escribimos help mean. for i=1:n x(i)=i^2. el valor promedio es encontrado escribiendo m e a n ( z) que resultaría ans = 50
Veamos algunos detalles de m e a n . Para ejecutarlo. Utilizamos mean con una variable llamada z. m: La primera línea declara el nombre de la función. z = 1:99.) No es necesario asi gnar los enteros de 1 al 99 en la variable x.(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). permanecen sin cambios. Las primeras líneas documentan el archivo . end x % Fin del archivo-m Este ejemplo es un archivo . La existencia de este archivo en el disco duro define una nueva función en MATLAB llamada m e a n . en la línea de comandos se debe escribir el nombre del archivo: >>ejemplo x = 1 4 9 16 25
. % indica que el resto de la línea es un comentario. (O si existen. los argumentos de entrada. S i z e s u n v e c t o r d e l o s e n t e r o s d e s d e 1 a 9 9 . Las variables m. Este vector que contenía los enteros de 1 a 99 fue pasado ó copiado a mean donde se convirtió en una variable local llamada x. entonces. n.m tipo comando. Ejemplo % Ejemplo de un archivo-m % Cre a c i ó n d e l v e c t o r x u s a n d o e l c o m a n d o f o r n=5. por ejemplo. Sin esta línea sería un archivo de comando. e y son locales a mean y no existen en el espacio de trabajo.
P a r a e j e c u t a r l a f u n c i ó n . >>A=[1 2 4 3 7 5 6 1 2 0 8 5]. >>promedio(A) ans = 3. Este vector debe ser definido previamente. Al observar el contenido de dicha ventana luego de ejecutar la función promedio. end p=p/n.6667
MatLab presenta las imágenes en una ventana de figuras. for i=1:n p=p+x(i). La función promedio usa por parámetro un vector. s e h a c e l a l l a m a d a en l a l í n e a d e c o m a n d o s i n c l u y e n d o el parámetro.Ejemplo % C a lc u l a e l p r o m e d i o d e l o s e l e m e n t o s d e u n v e c t o r y d i b u j a d i c h o v e c t o r % Sintaxis : p r o m e d i o ( x ) d o n d e x e s e l v e c t o r a p r o m e d i a r function p = promedio(x) n=length(x). se tiene:
. p=0. plot(x).
Funciones Matemáticas Algunas funciones trigonométricas utilizadas por MATLAB son: sin . >>help promedio Calcula el promedio de los elementos de un vector y dibuja dicho vector Sintaxis : p r o m e d i o ( x ) d o n d e x e s e l v e c t o r a p r o m e d i a r
P a r a v e r e l c o n t e n i d o d e u n a r c h i v o.coseno inverso a t a n .tangente inversa
Algunas funciones elementales son: real(a) Pa rte real imag(a) Parte imaginaria conj(a) C o n j u g a d o d e a fft(x) Transformada discreta de Fourier del vector x fft(x. Puede agregársele archivos . M a t L a b p o s e e u n c o n j u n t o d e a r c h i v o s. Los comentarios incluidos en estos scripts y funciones se visualizan al usar el comando h e l p s e g u i d o d e l n o m b re d e l a r c h i v o .n) M a t r i z d e m x n d e c e r o s y=zeros(size(A) Matriz del tamaño de A.seno cos .n) FFT inversa de n puntos muestrados zero s Inicializa a ceros zeros(n) M a t r i z d e n x n d e c e r o s zeros(m.m definidos por el usuario almacenando los mismos en el directorio principal de MatLab.Esta imagen es el resultado del comando plot(x) al ejecutar la función promedio. todos ceros
.m se usa el comando t y p e s e g u i d o d e l n o m b r e del archivo.seno inverso a c o s .n) FFT de n puntos muestrales ifft(x) Transformada inversa rápida de Fourier del vector x ifft(x.tangente asin .m i n c o r p o r a d o s ( b u i l t-in).1.
5.coseno t a n .
. También es la base para la solución de sistemas lineales. Esta factorización se utiliza para obtener el inverso y el determinante. U] = lu(A). [L.Ejemplo size R e g r e s a e l n ú m e r o d e f i l a s y c o l u m n a s A= 0 7 -6 1 0 0 0 1 0
>> [m n]=size(A) m = 3 n= 3 F u n c i o n e s ma t r i c i a l e s tril(A) Matriz triangular inferior triu(A) Matriz triangular superior p a s c a l Triangulo de Pascal t o c p l i t z Tocplitz
Ejemplos >> A = 0 7 -6 1 0 0 0 1 0 >> toeplitz(A) ans = 0 1 0 7 0 1 -6 0 0 1 0 1 0 7 0 1 -6 0 0 1 0 1 0 7 0 1 -6
P r o d u c t o d e d o s matrices triangulares. Para obtener la factorización LU de A escribimos.
La asignación triple [ U .
Descomposición de Valores Singulares La descomposición de Valores Singulares es importante para el análisis de problemas que envuelvan matrices. norma F. de tipo
Ejemplo: El archivo. La asignación [ X .M l l a m a d o h u m p s . m .
Las Funciones de norma. que son los valores singulares de A.
Descomposición de Valores Propios La Descomposición de Valores Propios se utiliza para obtener los valores y vectores propios de una matriz cuadrada A. La función e i g ( A ) devuelve los valores propios de A en un vector columna. norma rank . Esta factorización también es la base para las funciones n u l l y orth . S . D ] = e i g ( A ) p ro d u c e u n a m a t r i z d i a g o n a l D c u y o s e l e m e n t o s diagonales son los valores propios de A y las columnas de X son los vectores propios correspondientes. Un ejemplo de una función es el archivo -M l l a m a d o h u m p s . Esta factorización se utiliza para resolver sistemas lineales con más ecuaciones que desconocidas.e s t i m a d o d e l n ú m e r o d e c o n d i c i ó n
Funciones de Funciones MATLAB representa funciones matemáticas mediante archivos. m contiene las siguientes instrucciones: function y = humps(x)
.número de condición en la norma 2 nor m .rango rcond .M función. que generan bases orto normales para el espacio nulo y rango de una matriz rectangular dada. norma 2.norma 1. Las matrices U y V son ortogonales y la matriz S es diagonal. Se utiliza para matrices cuadradas ó rectangulares. rango y acondicionamiento asociadas son: c o n d .Factorización Ortogonal ó Factori z a c i ó n Q R . La función s v d ( A ) devuelve solamente los elementos de la diagonal de S. V ] = s v d ( A ) produce los tres factores en la descomposición de valores singulares A = U*S*V'.
. y para la gráfica de la función escribimos x = . 1) q= 29. plot(x.8583
N o t e q u e e l a rg u m e n t o d e q u a d c o n t i e n e u n n o m b r e d e u n a f u n c i ó n .9).Kutta de largo de paso variable que combina un método de orden dos con uno de orden tres.solución de ecuación no-l i n e a l l e a s t s q . ode45 .
./((x.variable (minimización no-l i n e a l sin
fzero . P o r e s t o q u a d se llama una función de función.1:.método Runge -Kutta -F e h l b e r g d e l a r g o d e p a s o v a r i a b l e q u e c o m b i n a u n método de orden cuatro con uno de orden cinco.6.01:2.3).c e r o d e u n a f u n c i ó n d e u n a v a r i a b l e c o n s t r .minimización con restricciones fsolve .
Ecuaciones No -lineales y Funciones de Optimización Las funciones de funciones para ecuaciones no -lineales y optimización incluyen: fmin . Para integrar la función definida por h u m p s .mínimo de una función de una variable fmins .^2 +.método Runge.04) . es una función que opera en otras funciones.y = 1 .01) + 1.c u a d r a d o s m í n i m o s n o-lineales
Funciones para Ecuaciones Diferenciales Las funciones de MATLAB para resolver ecuaciones diferenciales ordinarias son: problemas de valor inicial para
ode23 .^2 +. m d e s d e 0 h a s t a 1 e s c r i b i m o s : q = quad('humps'. 0...mínimo restricciones) de una función multi .e. i. / ( ( x. humps(x))
Integración Numérica (Cuadratura) El área bajo la gráfica de la función f(x) se puede aproximar integrando f(x) numéricamente mediante una regla de cuadratura.
default tol: ode23 -> 1.0 6
5. ode45
[t.> 1.2 Operadores relacionales
Los operadores relacionales de MatLab son: < menor que <= menor o igual a > mayor que >= mayor o igual a == igual a =~ no igual a
.*(1 -x ( 2 ) .xo).tf.0e .xo).x] =ode23(`deriv'.to. xpunto(1)=x(1).0 3 ode45 . tf=10.tf.1).tf..1.
[t.trace). .oe.to.3 Declaración function
Sintaxis: function nombre_1=nombr e_2(parametro_1..to1.v) function xpunto=vdpol(t.
5.x]=ode23(`deriv'.xo. [t.x) xpunto=zeros(2. xpunto(2)=x(1).n o r e s u n t a d o s i n t e r m e d i o s 1 .to. ^ 2 )-x(2)..x]=ode23(`edif'. parametro_n) Ejemplos: function y=promedio(x) function i=inodal(t.Ejemplo to=0. ode45 trace => 0 .
condiciones lógicas find . Estas funciones se usan en cláusulas i f . La función all(x) d e v u e l v e 1 s o l a m e n t e s i t o d o s l o s e l e m e n t o s d e x s o n d i f e r e n t e s de cero. siempre reduce la matriz a una condición escalar. El resultado d e C = A | B e s u n a m a t r i z c u y o s e l e m e n t o s s o n u n o s d o n d e A ó B tienen un elemento diferentede cero. respectiv a m e n t e . break. all La función any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero. Por ejemplo: if all(A <. end
5..d e t e c t a i n f i n i t o s
. y ceros donde A ó B sean cero. end Para argumentos matriciales. . "ó" y "no"
El resultado de C = A & B es una matriz cuyos elementos son unos donde A y B sean ambos distintos de cero.verifica si existen variables isinf . any(any(A)).3 Operadores lógicos
Los operadores &.
F u n c i ó n e s any. a menos que una de ellas sea un escalar. a n y y a l l t r a b a j a n p o r c o l u m n a s p a r a d e v o l v e r u n v e c tor fila con el resultado para cada columna. A y B deben de ser matrices con las mismas dimensiones.condiciones lógicas all . if n>=0.halla í n d i c e s d e a r r e g l o s d e v a l o r e s l ó g i c o s exist . y ceros donde ambas tienen elementos cero. de lo contrario devuelve 0. | y ~ son los operadores de lógica "y". Aplicando la función dos veces. El resultado de B = ~A es una matriz cuyos elementos son uno donde A tiene un elemento cero.5) . A y B deben de ser matrices con las mismas dimensiones. Las funciones relacionales y lógicas en MATLAB son: any . .. a menos que una sea un escalar.Ejemplo: if n< maxn . y ceros donde A tiene elementos diferentes de cero.
a(i)=0. end % inicia vector a en 0
.finite .4 ] sqrt(2) for i=1:n. Encierra argumentos de funciones en forma usual .0 3. argumentos declaraciones en líneas con declaraciones múltiples .0 9. separador de declaraciones % Comentario de funciones y
Ejemplos: [6.4 Caracteres especiales
Los caracteres especiales de MatLab son: [ ] Se utilizan para formar vectores y ma t r i c e s ( ) Define precedencia en expresiones aritméticas. Separador de elementos de una matriz.v e r i f i c a p a r a l o s v a l o r e s f i n i t o s
5. Termina filas de una matriz. end for i=1:n. a(i)=0.
. el ciclo sigue siendo válido pero MATLAB no ejecuta la instrucción intermedia. c(i)=a(i)*b(i). Si n es menor de 1. P o r e j e m p l o . x(i) = 0.. entonces un espacio adicional es localizado automáticamente a x cada vez que sea necesario. declaración n. pueda repetirse un n ú m e r o d e t e r m i n a d o d e v e c e s . . end
Ejemplo: for i=1:n c(i)=a(i)*b(i).1 Declaración FOR simple
Sintaxis for variable=incio:paso:final declar ación 1..5 Control de flujo 5. end
El ciclo FOR permite que una instrucción. for i = 1:n.
. Si x no esta definido. end
for variable=inicio:final declaración 1. declaración n.5. ó grupo de instrucciones.5. end o for i=1:n. .. ó si tiene menos de n elementos. end asigna 0 a los primeros n elementos de x.
1:1 for t2=1: . declaración n.5.5. 1 : 0 y(1)=sin(t1*t2) end i=i+1. end
Ejemplo for i = 1:m for j = 1:n A(i.. en d end
Ejemplo y=1 for t1=0:0.2 Declaración FOR anidada . .
Sintaxis for variable 1 = inicio1:paso1:fin1 for variable2 = inicio2:paso2:fin2 declaración 1.0 . end end A La "A" al terminar el ciclo muestra en la pantalla el resultado final. Es importante que para cada for halla un e n d . j) = 1/(i+j.
..1).
r e p e t i r s e u n número indefinido de veces. while it<=npts.0*pi*60. Para esto procedemos de la forma siguiente:
. .3 Declaración WHILE
Sintaxis: while expresion proposición 1. no cambie aunque más términos sean añadidos. llamado e x p m ( A ) en MATLAB. bajo el control de una condición lógica. end n
Un cálculo más práctico ilustrando el ciclo while es en el cómputo del exponencial de una matriz. while prod(1:n) < 1. en la precisión finita la de computadora.0001 e=e/2.0.. n = n+1.5.0...t=t+dt.0+e)>1. wo=2. while (1. t=0. ó g r u p o d e i n s t r u c c i o n e s .5.. Una posible definición de la función exponencial es mediante la serie:
expm(A) = I + A + A^2/2! + A^3/3! + .
La idea es sumar todos los términos necesarios hasta producir un resultado que.0e100. end
Ejemplos e=1.end
El ciclo WHILE permite a una instrucción . end
it=1. proposición 2.0. El siguiente ciclo while halla el primer entero n para el cual n! es un número de 100 digitos:
n = 1. ut=sin(wo*t).
proposición m. w h i l e n o r m ( E + F.. ELSE. .4 Declaraciones IF.. F es un término individual en la serie. . end
. E representa la suma parcial de la serie. ELSEIF y BREAK
Sintaxis a) if expresió n proposición 1.5. F = eye(size(A)). proposición n. ..E = zeros(size(A)).E..
5.. k = 1. proposición n. F = A*F/k k = k+1.. else proposición 1. y k es el índice de este término. end
b) if expresión proposición 1. end Aqui A es la matriz dada. 1) > 0 E = E + F.
sum=0.c) if expresión proposición 1. . if n<0.. end
d) if expresión. elseif n<=10 sum=sum+n/2.0. y=1. end.... . end
Ejemplos if dv(i) > maxer maxer=dv(i)... break. else sum=sum+n/10. proposición n. elseif proposición 1. break. while i<=so n=input(`Introduzca n. if n==0 sum=sum+n. proposición m. proposición r. else proposición 1. interrumpe con valor negativo `). nmaxe=i. .
if n <= 0.A continuación se muestra como un cálculo se puede dividir en tres casos. negativo termina. end while n > 1 if rem(n. también se muestra la función input (en este caso es una entrada del teclado). si es impar. dependiendo del signo ó paridad de un entero n:
if n < 0 A = negative(n) else if rem(n. ¿Habrá algún entero para el cual el proceso nunca termine? Aquí se ilustran los enunciados while y i f . 2) == 0 A = even(n) else A = odd(n) end
En el segundo. Veamos:
% Problema "3n+1" clásico de la teoria de números. partiendo de un entero positivo n. se divide entre dos. que provee salidas abruptas de los ciclos. y el enunciado b r e a k . se multiplica por tres y se le suma uno. while 1 n = input('Entre n. '). break. 2) == 0 n = n/2 else n = 3*n+1 end end end
. si este es par.
6.6.6) B= 1 3 5 7 9 11 2 4 6 8 10 12
5.1 Creación de una matriz
Ejemplo >> A=[1 2 3. 3 6 9 12] A= 1 4 7 10 2 5 8 11 3 6 9 12
>> B=reshape(A. columnas) Ejemplo >> A=[1 4 7 10.2.3 Modificación individual de elementos
Ejemplos >> A=[1 2. filas.5.6 Algebra Matricial 5.1)=A(1.2 Cambio del orden de una matriz: reshape
Sintaxis: matriz_modificada = reshape(matriz_origin al.2)+A(2. 3 4] A= 1 2 3 4
>> A(1. 4 5 6.1) A = 5 2 3 4
.6. 2 5 8 11. 7 8 9] A= 1 2 3 4 5 6 7 8 9
4 Modificaciones adicionales de una matriz
Ejemplo >> A=[1 2. 5 6 ] A= 1 2 3 4 5 6
Conversión de una matriz en un vector >> A=[1 2. 3 4. 3 4.1) A= 5 3 3 4
>> A(2.6. 5 6 ] A= 1 2 3 4 5 6
>> b=A(:) b= 1 3 5 2 4 6
.>> A(1.2)=10 A= 5 3 3 10
5.2)=A(2.
:) primeras cinco filas de A A(:.1 : 1 x = 5 4 3 2 1
>> x=0:0. 5:9) matriz de 3x4 que tiene los tres primeros filas y las columnas de 5 a 9 de A A(:.[4 6])=B(:.7500 1. entonces: A(1:3.1:2) primeras de A remplaza la cuarta y sexta columnas de A con las dos
.Modificación de los elementos >> A(:)=10:15 A= 10 13 11 14 12 15
Generación de vectores: Ejemplos >> x=1:5 x = 1 2 3 4 5
>> x=5:.5) quinta columna de A A(1:5.25:1 x = 0 0.0000
Acceso a submatrices contiguas y no contigua s Ejemplos Si la matriz original A es de 10*10.2500 0.5000 0.5) de A matriz de 3x1 que tiene los tres primeros elementos de la columna 5
A(1:3.
.3099 0.8000 2.0). 3+7i 4+8i] A = 1.4000 1.0000 + 6.2000 0 0. 7 8] o A=[1+5i 2+6i.[3. 7 8] o A=[1 2.0000i 4. 3 4] + i*[5 6 .6000 0.3223 0.0383 Columns 15 through 16 2.*sin(x).4000 2.6000 0.0613 0.0:0.2430 0.0204 0.5])=[ ] borra columnas 3 y 5 de A A([3.1627 0.4000 0.2807 C ol um ns 8 thr ough 14 1. 3 4] + i*[5 6 .0000i
Generación de tablas >> x=(0.1610 0.8000 3.5 ].0896 0.0000 2.Matrices vacias La declaración x = [ ] asigna una matriz de dimensión 0x0 a x
Para la matriz A considerada previamente A(:.0000i 3.6000 1.0000 + 7.2000 0.0000i 2.2610 0.1231 0.x).0000 1.0000 0. >> [x.0000 + 8.0000 + 5.8000 1.:)=[ ] borra filas 3 y 5 de A
Declaración de matrices complejas A=[1 2.2000 2.y] ans = Columns 1 through 7 0 0.2:3.3096 0.2018 0. > > y = e x p ( .
v .Vectores característicos d .6.valores característicos
. 0 0 0 0 2.0000 1.D e t e r m i n a n t e d e A: det(A) >> A=[1 2 3. 1 0 0.4 5 6.0 1 0] A= 0 7 -6 1 0 0 0 1 0
>> eig(A) ans = -3 . 7 8 9] A= 1 2 3 4 5 6 7 8 9 >> det(A) ans =0
D i a g o n a l d e A: diag(A) >> diag(A) ans = 1 5 9 Valores y vectores característicos : e i g ( A ) >> A=[0 7 .
5774 -0 . 0 0 0 0 0 0 0 2.0000 0 0 0.0000 0 0 0 7.6.0000
.6.0000 U = 1.8571
.1 3 .0000 0 0 0 0.0000 0 0 0 1.5774 d= -3 .2182 0.0 1 0] A= 0 7 -6 1 0 0 0 1 0
>> expm(A) ans = 5.4 .1429 1.2686 5. 3 1 4 5 .2686 .0 .0. 5 7 7 4 0.>> [v d]=eig(A) v= 0.2541 . 1 0 0.8007 2.0000 . 6 1 1 5 2.E x p o n e n c i a l d e u n a m a t r i z: e x p m ( A ) >> A=[0 7 .1048 -0. 3 5 1 0
.8729 0.0000 0 1. 4 3 6 4 0 .2541 11.9435 -0.Factori z a c i ó n L U d e A : l u ( A ) >> [L U]=lu(A) L= 0 1.0757 . 8 0 4 4 0.
1 6 6 7 .0000 0 0 0 1.I n v e r s a d e A: inv(A) >> inv(A) ans = 0 1.0000 0.0000
.7.0000 -0 .0000 .0000 1. 0 0 0 0 2.0000 . 1 6 6 7 0 1 ..Raices de la ecuación característica : roots(p) >> r=roots(p) r = -3 .E c u a c i ó n c a r a c t e r í s t i c a d e l a m a t r i z A: poly(A) >> p = p o l y ( A ) p= 1.0000 6.
lectura/escritura normal [fid. `permiso') donde p e r m i s o puede ser: `r' Abre archivo para lectura `r+ Abre archivo para lectura y escritura `w' Borra el contenido del archivo existente o crea un nuevo archivo y lo abre para escritura `w+' Idem que `w' únicamente que el archivo se abre para lectura y escritura `a ' Crea y abre un nuevo archivo o abre un archivo ` a + ' I d e m que `a' únicamente que el archivo es abierto para lectura y escritura
Ejemplo fid = fopen(`archivo.7.dat'.5.'r') fid = -1. error 0.1 Declaración fopen
Sintaxis id = fopen(`nombre.cierra todos los archivos abiertos
5. mensaje = fopen(`archivo.dat'.dat'.7.2 Declaración fclose
Sintaxis status = fclose(fid) o status = fclose (`all') .'r ' )
5.7.'precision') registros `char' o `uchar' `short' o `long' `float' o `double'
.7 Archivos de E/S 5.registros.3 Declaración fread
Lee un archivo abierto con una precisión indicada Sintaxis fread(fid.
.10. Sintaxis: global variable1.01 kb=0.formato g
5..kb ka=0.'titulo \ n').número decimal % f .'short')
5.x) global ka. f p r i n t f ( f i d .7.. ' % f % 1 2 .10.x]=ode23('ccdifs'. variable_N
Ejemplo function x=ccdifs(t..A.ka*x(1)*x(2).x(2)+kb*x(1)*x(2)].[1:1]). de las cuales una sola copia es compartida por el programa principal y sus funciones. Forma to %s .. y).8 Variables globales
Son variables.0.punto flotante % g .Ejemplo: A = fread(fid.c a d e n a d e c i m a l %d . . 7 f\ n'. .. global ka.7.02 [t.'float')
5.5 Declaración fprintf
Salida con formato Ejemplos: fprintf(fid.kb x p = [ x ( 1 ).4 Declaración fwrite Sintaxis
fwrite(fid.
el interpretador de MATLAB irá aumentando el tamaño de "y" por uno cada vez que se itera en el ciclo.A s i g n a d o s Si no podemos vectorizar un pedazo de código. d e b e m o s v e c t o r i z a r estos siempre que sea posible.5.01:10. mientras que el segundo tomó 0.
. un modo de calcular la función "sin" para 1001 números entre 1 y 10 es: i = 0. y(i) = sin(t). while)
Para que los programas en MATLAB ejecuten más rá p i d o . Esto es. debemos convertir los ciclos for y while a operaciones de vectores ó de matrices. y = sin(t).6 segundos.
V e c t o r e s P r e. for t=0:dt:per f(i)=sin(wo*t). Por ejemplo. Veamos un ejemplo: y = zeros (1. end Si no pre -asignamos el vector "y". Permite incrementar la velocidad de proceso de MATLAB Sintaxis variable=inicio:incremento:final Ejemplo i=1.9 Vectorización de algoritmos y estructuras (for.01:10 i = i + 1. for i = 1:100 y(i) = det(X^i).100). fi=sin(wo*t). el primer ejemplo tomó 15 segundos. i= i+1. En una computadora lenta. podemos hacer que los ciclos for vayan más rápido pre -asignando cualquier vector en el cual el resultado de salida sea guardado. end Una versión vectorizada del mismo código es t = 0:. end ó t=0:dt:per. for t = 0:. wo=2*pi*fo.
crea una gráfica utilizando una escala logarítmica para el eje -y y u n a escala lineal para el eje-x .10 Gráficas en Dos Dimensiones 5. encabezamien tos de ejes..'tipo_línea_n') Si y es un vector. líneas entre cortadas y texto a tus gráficas utilizando: tittle .2 Creando una gráfica
Sintaxis: a) plot(y) b) plot(x. p l o t ( y ) p r o d u c e u n a g r á f i c a l i n e a l d e l o s e l e m e n t o s d e y v e r s u s el índice de estos.a ñade texto a la gráfica utilizando el ratón grid .añade una cadena de texto en una localización específica g t e x t . xn.crea una gráfica de vectores ó columnas de matrices.y1.c r e a u n a g r á f i c a u t i l i z a n d o u n a e s c a l a l o g a r í t m i c a p a r a a m b o s e j e s .yn.10.'tipo_línea_2'. plot(x.crea una gráfica utilizando una escala logarítmica para el eje-x y u n a escala lineal para el eje-y .5. s e m i l o g y . . semi l o g x .a ñ a d e t í t u l o a l a g r á f i c a xlabel .x2.1 Funciones elementales para graficar
p l o t .añade encabezamiento al eje-x ylabel . y) produce una gráfica de y versus x .'tipo_línea') d) plot(x1.
Símbolo Color y amarillo m magenta c cyan (azul claro) r rojo g verde
.y..y) c) plot(x.y2. Puedes añadir títulos. loglog . Si especifica dos vectores como argumentos.10. .crea líneas entrecortadas
5.añade encabezamiento al eje-y text .'tipo_línea_1'.
sólido : punteado -.5). Y) grafica las columnas de X versus las columnas de Y. 1:m. Y2. si X es una matriz y y es un vector. donde m es el número de filas en Y.s e g m e n t o
t=0:pi/200:2*pi. . s e g m e n t o p u n t o -..y2. plot(X..y1.. plot(x.3 Graficando Matrices
plot(Y) .d i b u j a u n a l í n e a p a r a c a d a c o l u m n a d e Y . ylabel('y=sin(t+)')
5. Si plot es usado con dos argumentos y si X ó Y tienen más de una fila ó columna. Los pares diferentes pueden ser de dimensiones diferentes.x=sin(t). entonces: si Y es una matriz. Y1.) Cada par X -Y es graficado.
También puedes matriciales:
plot (X1.y2=sin(t+1.'r-'. punto o circulo x marca + mas * asterisco .x.y) grafica cada fila ó columna de X versus el vector y.y1=sin(t+0. si X y Y son ambas matrices del mismo tamaño.0).b azul w blanco k negro Símbolo Estilo de línea . X2. E l e j e -x es encabezado por el vector índice de fila.Y) grafica las filas ó columnas de Y versus el vector x. title('Angulo difuso').. plot(x. y x es un vector. generando líneas múltiples. xlabel('x=sin(t)'). plot(X.
. .10.'g--').
5 Graficando Funciones Matemáticas
Hay diferen tes formas de graficar funciones y = f(x). Ahora la instrucción fplot('fofx'. Este archivo se guarda con el nombre de f o f x . p lot(x. m.
P a r a e v a l u a r u n a f u n c i ó n .4 Importando Datos
Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load . function y = fofx(x) y = cos(tan(pi*x)). Una de estas formas es evaluar la función en miles de puntos en el intervalo de interés. 0 x 1.10. La siguiente función oscila infinitamente rápido en el intervalo.5.10. s e c r e a u n a r c h i v o d e e s t a f u n c i ó n y se le pasa el nombre del archivo a fplot.
5. Podemos gráficarla como sigue: x = (0:1/2000:1)'. cos(tan(pi*x))) Para hacer esto más eficiente podemos usar la función fplot la cual concentra su evaluación sobre las regiones donde la rapidez de cambio de la función es más grande. El siguiente archivo -M de tipo función define la función anterior como fofx. [0 1]) prod u c e l a g r á f i c a :
. loglog(x.b exponentes de los límites.':')...yn. Es decir.'tipo_línea_1'. semilog(y) Sintaxis a) semilogx(x.b.'tipo_línea') c)loglog(x1'. semilogy(x.6 Comandos gráficos
h o l d Permite añadir líneas al dibujo previo o n Activa hold off Desactiva h o ld Ejemplo plot(x).'-.10.')
loglog Sintaxis a) loglog(x.y.plot(yz.y1'.exp(x)) donde l o g s p a c e tiene las formas: l o g s pa c e ( a .'tipo_línea_n') Ejemplo x = l o g s p a c e (.3)..1:20.y) b) loglog(x. xn. plot(y'.Aquí.10.1. hold on. fplot usa menos puntos para evaluar la misma función a intervalos más cerrados en la región donde la rapidez de cambio es mayor. 10^a y 10^b
semilog(x).y) Ejemplo x=0:.y) b) semilogy(x..n) a.
5. b ) logspace(a.
'c') b) fill(x1.1).y).4) plot(ikd)
bar Crea una gráfica de ba r r a s Sintaxis: a) bar(y).y1. numeradas por el parámetro p. fill(t.x.. de izquierda a derecha.4).. => plot(xb.fill Dibuja el area interior de una curva en determinado color Sinta x i s: a) fill(x..3) plot(rang) subplot(2. c) [xb.cn) Ejemplo t=0:0.yb]=bar(y).x.yb)
.'r')
subplot Dibuja la pantalla en mxn subdivisioens.2.2.yb) d) [xb.2) plot(it) suplot(2. x=sin(t). fill(y. rang=smvars(:. x=sin(t). ikd=smvars(:.2. ini c i a n d o p o r l a f i l a s u p e r i o r Sintaxis: subplot(m..5:2*pi. => plot(xb.2). plot(vt) subplot(2.y. b) bar(x.'c1'.n.3).1).p) Ejemplo: vt=smvars(:.xn.yb]=bar(x.'b') t=0:0.yn.5:2*pi. it=smvars(:. y=cos(t).2. subplot(2.y).
final].Ejemplo x= . radio.8:0.3 0 3 0 ] . `tipo_línea')
Ejemplo t=0:0. [inicio. 2 )
polar Dibujo en coordenadas polares Sintaxis: a) polar(ángulo. polar(t. e x p (. [inicio.n.01:2*pi. únicamente sin líneas in ternas
fplot Dibuja la gráfica de una función Sintaxis: a) fplot(`función'.ángulo) d) [x.ángulo entre segmentos sucesivos de la función
Ejemplo fplot(`sin'.*x) Nota: Los valores de x deben estar igualmente espaciados
stairs Igual que b a r.y]=fplot(`función'.2:2. [inicio.2.[. [inicio.radio) b) polar(ángulo.[0.8 b a r ( x .final]) b) fplot(`función'./x(:).final].número de puntos á n gulo . fplot(`func'.pi]) fplot(`tanh'.n) c) fplot(`función'.x. 6 0 .[ -2 2 ] ) function y=func(x) y=200*sin(x(:)).sin(5*t))
.y) n .final]) => plot(x.
y.y1. colormap(hot(130)).xn.cos(t).x) => sombreado horizontal f i l l ( y .x. contour3 Genera dibujos compuestos de líneas de valores de datos constantes obtenidos de una matriz de entrada S i n ta x i s: a) contour(z) b) contour(z. y=cos(t).. . plot3(sin(t). y ) => sombreado vertical
5.z) b) plot3(x. Nota: 130 es opcional el rango 0.'tipo_línea'.255 fill(y...05:10*pi.n)
.'tipo_línea) d) plot3(x1..z.yn.z) c) plot3(x..z1.y. x=sin(t).'tipo_línea') Ejemplo t=0:0.t)
contour.05:2*pi.. x .zn.colormap Colorea con sombreado el interior de una curva o polígono Sintaxis colormap(colorbase) donde colorbase es: gray hot cool copper pink Ejemplo t=0:0.y.11 Gráficos en 3 dimensiones
plot3 Dibuja líneas y puntos en 3 dimensiones Sintaxis: a) plot3(x.
R=sqrt(x.30)
meshgrid Genera arreglos X y Y para dibujos en 3 dimensiones Sintaxis: a) [X.y.Y] = meshgrid(x) => meshgrid(x.y.8. * e x p (.8:0..y) b) [X.y]=meshgrid(x.z) d) contour(x. [x.z.^2)+0.Y] = meshgrid(x.y.c) contour(x. y=x.n)
Ejemplo contour(peeks) contour(peeks.x ^ 2 -y^2). z = x .n)
E j e mplo contour3(peaks.z) d) contour3(x. -2 < = y < = 2 [ X .^2+y.001..../R.y). .y)
Ejemplo...5. mesh(z)
. mesh(Z)
x= .. Y ] = meshgrid(-2 : 2 : 2 ) .y. Evalue y dibuje la funcion z=x*exp( -x^2 -y^2) sobre el rango -2 < = x < = 2 .n) c) contour3(x.. z=sin(R).30)
contour3 Igual función de contour en 3 dimensiones Sintaxis: a) contour3(z) b) contour3(z.z.
y. meshc(x.. crando una perspectiva del dibujo..c) b) surf(x.c) f) surf(z) g) surfc(.z) c) surf(x. meshc y meshz Dibujan una superficie de malla tridimensional. meshz(x.z. sobre y bajo el plano de referencia.) => misma S i n t a x i s que surf
.) => mismo que mesh
meshc Añade un plano de contorno debajo del dibujo
meshz Añ a d e u n p l a n o d e r e f e r e n c i a o c o r t i n a a l d i b u j o
Ejemplo: [x.z) e) mesh(z..y. surfc Crean superficies sombreadas en 3 dimensiones Sintaxis: a) surf(x. Sintaxis: a) mesh(x.mesh..c) d) surf(x.y.z) e) surf(z.y. z=peaks(x.z)
surf..y.c) b) mesh(x.y] = meshgrid(-3:2:3).z.y).y.y] = meshgrid(-3:2:3).c) d) mesh(x.y.) => mismo que mesh h) meshc(.z.y.y.z) c) mesh(x.z.c) f) mesh(z) g) meshc(.y. z=peaks(x..y).z) [x.
y. surf(x.número de meridianos
Ejemplo [x.s) s . .c). n = 2 ^ k -1 . z ] = s p h e r e ( n ) .y.3:.z] = sphere(n) n .z. colormap(hot)
hadamar d M a t r i z h a d a m a r d c o m p u e s t a d e 1 ' s y -1's. surf(x.y).z) d) surfl(x.z) o con : colormap(hot)
surfl Superficie sombreada tridimensioanl con efecto de reflexión de luz Sintaxis: a) surfl(z) b) surfl(z.y. .s) c) surfl(x.y.y.Ejemplo [x.y.z. .dirección de la luz
.y. z=peaks(x. empleada en procesamiento de señales y análisis numérico Ejemplo (matriz de 4*4) 1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 1
sphere Genera una esfera Sintaxis [x.2:3). c = h a d a m a r d ( 2 ^ k ) . y .y]=meshgrid(.z]=sphere(20).z) k = 5 . mesh(x. [ x .
surfl(x. ymax. zmax]) c) axis(`auto') d) axis(`ij') e) axis(`xy') f) axis(`square') g) axis(`equal' ) h) axis(`off') 70
. añadiendo: shading interp y posteriormente: colormap(gray).01:3). xmax.3:0. z=peaks(x. xmax. ymin. ymin.z)
shading Establece las propiedades de sombreado con color Sintaxis shading faceted shading interp shading flat
shading flat .y.Ejemplo [x.y]=meshgrid(.
axis Escala y apariencia de los ejes Sintaxis: a) axis([xmin. zmin.y).el color en cada segmento varia linealmente e interpolo los valores extremos o esquinas shading faceted superpuestas utiliza sombreado "flat" con líneas de malla negras
Para el ejemplo anterior.cada segmento de la superficie tiene un valor constante determinado por el color de los puntos extremos del segmento o sus esquinas s h a d i n g i n t e r p . ymax]) b) axis([xmin.
rand(3..z.m a t r i z d e m x n
Ejemplo fill3(rand(20).matriz de nxn b) rnad(m.3 3 . axis([ . El eje y es vertical y se numera de abajo hacia arriba a x i s ( ` s q u a r e ' ) d e t e r m i n a q u e l a r e g i ó n de los ejes es cuadrada axis(`equal') indica que los factores de escalamiento y marcas incrementales a lo largo de los ejes x y y son iguales.. El eje j es horizontal y es n u m e r a d o d e i z q u i e r d a a d e r e c h a .zn)
Ejemplo colormap(hot) fill3(rand(3. axis(`xy') regresa la forma de ejes cartesianos que existe por defecto .z1.4). El eje y es vertical y es numerado de arriba hacia abajo. a x i s ( ` i j ' ) dibuja nuevamente la gráfica..4). rand(3. rand(20).xn. rand(3..y..'c') b) fill3(x1. rand(20))
.n) .3 3 . axis(`off') d e s a c t i v a l a s e t i q u e t a s d e l o s e j e s y l a s m a r c a s a x i s ( ` o n ' ) activa las etiquetas de los ejes y las marcas Para el ejemplo último: .i) axis(`on') donde: axis(`auto') realiza el escalamiento de ejes a su modo de autoescalamiento por defecto.4).4))
r a n d matrices y números aleato rios distribuidos uniformemente Sintaxis: a) rand(n) .8 8])
fill3 colorea polígonos de 3 dimensiones a) fill3(x. rand(20)..y1. El eje x es horizontal y se numera de izquierda a derecha.yn.
En b) . brighten(0. e x t donde: ext .load carga en el area de trabajo un archivo (imagen. sonido. 6 ) ó brighten(.0 . etc) Sintaxis a) load archivo b) l o a d a r c h i v o . datos... 6 )
.e x t e n s i ó n
Ejemplo load clown
image crea un objeto imagen y lo presenta Sintaxis: a) image(x) b) image(x. x e y son vectores Ejemplo load clown colormap(map) image(x)
brighten hace más brillante o más obscura la imagen Sintaxis: a) brighten(alfa) b) brighten(map.alfa) donde: 0<alfa<1 más brillante -1<alfa<0 más obscuro Del ejemplo anterior: .x) c) presenta la matriz c como una imagen d) especifica los límites de los datos de la imagen en los ejes x e y.y.
! edt darwin.1 Manipulación de Archivos de Disco
Algunos comandos utilizados para la manipulación de archivos de disco son dir.m. El comando diary c r e a un diario de tu sesión de MATLAB en un archivo de disco.12 Archivos de disco 5.m automáticamente.m invoca un editor llamado e d t e n u n a r c h i v o l l a m a d o darwin.
5.12. type.1 ) / F s .2 Ejecutando Programas Externos
El simbolo "!" le indica a MATLAB que el resto de la línea de entrada es un coma ndo para el sistema operativo. MATLAB utiliza . plot(t.12.
5. También puedes hacer que tus programas manipulen datos directamente en archivos. Si la extención no se especifica.3 Importando y Exportando Datos
Puedes i n t r o d u c i r d a t o s d e o t r o s p r o g r a m a s a M A T L A B p o r v a r i o s m é t o d o s .12.Fs) donde: Fs frecuencia especificada en Hz
Ejemplo load train sound(y.Fs) t=(0:length(y). L u e g o q u e e s t e programa sea completado.y)
5.MAT. delete y c d .c l f borra la figura
s o u n d convierte un vector en sonido (en computadoras sparc y macintosh) Sintaxis a) sound(y) b) sound(y. Por ejemplo. puedes exportar datos de MATLAB a otros programas. Similarmente. Para más información utiliza la Guía de Referencia de MATLAB ó el comando help. el sistema operativo devuelve el control a MATLAB. 73
ode23. f f t . any. e xp m. contour. fwrite. title. clf. semilogy. triu. colormap. poly. f u n ct io n . f o p e n . xlabel. d et . plot3. if.13 INDICE ALFABETICO
axis. contour3. peaks. size. gtext. image. text. subplot. pascal. fplot. ifft. l o a d . rand. i n v . imag. e i g . break. bar. all. polar. surfc. semilog. stairs. e lse . conj. rot90. grid. l u . toplitz. l o g l o g . ifftn. f il l 3 . fread. m e s h . shading (flat interp faceted). hold. f f t n . brighten.
5. reshape. f il l . surfl.el cúal es el formato de archivo utilizado por MATLAB. surf. ode45. real. for. zeros. reshape. while. e lse i f. f cl o s e. plot. meshgrid. hadamard. sound. tril. meshz.
. ylabel. meshc. Para información acerca de las técnicas utilizadas para importar y exportar datos consulte la sección de Importando y Exportando Datos de la guía de MATLAB ó utilice al comando help de MATLAB. d ia g . sphere.
Simulink es una herramienta para el modelaje. bloques de ganancia o servomotores. linealización y determinar el punto de equilibrio de un modelo previamente definido. Esto significa que se puede modelar sistemas continuos en el tiempo. A s í S i m u l i n k n o e s c o m p l e t a m e n t e u n p r o g r a m a s e p a r a d o de MatLab. S i m u l i n k u s a d i a g r a m a s d e b l o q u e s p a ra representar sistemas dinámicos. Después de definir un modelo este puede ser analizado seleccionando una opción desde los menús de Simulink o entrando comandos desde la línea de comandos de MatLab. El ambiente de MatLab está siempre disponible mientras se ejecuta una simulación en Simulink. análisis y simulación de una amplia variedad de sistemas físicos y matemáticos. En esta nueva ventana se colocarán todos los bloques interconectados que formarán el sistema deseado . tal como. mientras conserva toda la funcionalidad de propósito g e n e r a l d e M a t L a b .6. Mediante una interface gráfica con el usuario se pueden arrastrar los componentes desde una librería de bloques existentes y luego interconectarlos mediante conectores y alambre.
. El análisis del modelo significa realizar la simulación. Simulink usa un ambiente gráfico lo que hace sencillo la creación de los modelos de sistemas. y se muestra a continuación: Haciendo doble click en cualquiera de las librerías presentes en esta ventana se abrirá otra ventana conteniendo una cantidad de bloques relativos a dicha librería. Simulink adiciona muchas características específicas a los sistemas dinámicos. La ventana principal de Simulink se activa escribiendo simulink en la línea de comandos de MatLab. integradores. sino un anexo a él. Como una extensión de MatLab. Simulink tiene dos fases de uso: la definición del modelo y el análisis del modelo. En estas ventanas se puede crear y editar un modelo gráficamente usando el ratón. La definición del modelo significa construir el modelo a partir de elementos básicos construidos previamente. inclusive aquellos con elementos no lineales y aquellos que hacen uso de tiempos continuos y discretos. Para realizar un sistema debe abrirse una nueva ventana de diagrama de bloques seleccionando la opción file del menú principal del Simulink y allí la opción new. Simulink puede simular cualquier si s t e m a q u e p u e d a s e r d e f i n i d o p o r e c u a c i o n e s diferenciales continuas y ecuaciones diferenciales discretas. discretos en el tiempo o sistemas híbridos. Para simplificar la definición del modelo Simulink usa diferentes clases de ventanas llamadas ventanas de diagramas de bloques.
se puede observar la respuesta al hacer doble click en el osciloscopio. ambos se unieron mediante un conector usando el ratón. También está la opción parameters que activa el panel de control de Simulink en donde se definen los métodos y parámetros usados para la simulación. Al osciloscopio se le definen las escalas horizontal y vertical. para implementar un sistema que emplea un controlador PID tenemos:
En este diagrama se tiene al bloque llamado PID que fue definido previamente y agrupado como uno solo. frecuencia y fase.m creado mediante simulink.Como ejemplo se ha tomado un generador de ondas seno de la librería de fuentes "sources" y un osciloscopio de la librería "sinks". Haciendo doble click so bre cada elemento del sistema se pueden ver y modificar sus características. Por ejemplo.m creado. Para ejecutar el programa se usa la opción simulation en el menú de la ventana del archivo . Existen numerosos bloques y funciones incorporados en las librerías de simulink que pueden ser empleados para simular cualquier sistema. El contenido de dicho bloque se obtiene haciendo doble click sobre él. Por ejemplo. tal como se muestra a continuación: Al ejecutar el programa seno. En este submenú está la opción start que permite ejecutar el programa. A continuación se muestra el bloque PID:
. Este sistema se almacena como un archivo . al generador seno se le puede modificar su amplitud.m.
6.C para un modelo dado. No requiere ser escrito manualmente por un programador pues es creado a nivel de diagramas de bloques en Simulink. El código generado puede correr sobre un amplio rango de hardware ubicado en estaciones de trabajo. Este pe rmite automáticamente generar una versión mejorada de los modelos los cuales correrán diez veces más rápido que el original. El propósito del acelerador es aumentar la velocidad de simulació n . simulación en tiempo real o simulación acelerada en tiempo no real. El acelerador puede ser usado sobre modelos continuos.6. discretos en el tiempo y híbridos. equipos médicos. sistemas automotores.2 Generador de código-C en Simulink
Una vez se ha creado un modelo dinámico en Simulink. se puede invocar el generador de código-C que permite convertir el diagrama de bloques implementado en un código C. Este puede ser útil para varios propósitos: puede ser usado para control en tiempo real. la simulación es ejecutada en la ventada de modelos de Simulink exactamente igual que antes sólo que más rápidamente. Este código es la forma en la que puede usare el Simulink para adquisición de datos.1 Acelerador de Simulink
Para incrementar la velocidad de Simulink se debe instalar el acelerador "Accelerator". Sus aplicaciones pueden ser control de movimiento. Esta acción es totalmente t r a n s p a r e n te en el sentido de que el incremento de la velocidad se presenta sin ningún otro requerimiento por parte del usuario.
. Una vez se completa la compilación. Si el programa MatLab posee instalado el "Accelerator" podrá iniciarse la acción aceleradora seleccionando la opción simulation en el menú principal del Simulink y dentro de esta seleccionando la opción Accelerate. robótica. PC o microprocesadores. etc. El código-C es diseñado tal que puede ser ejecutado en tiempo real. El acelerador trabaja generando y compila n d o u n c ó d i g o .
Get environment value.Change current working directory.Retrieve variables from disk.7.Control MATLAB's search path.L o c a t e f u n c t i o n s a n d f i l e s .On -l i n e d o c u m e n t a t i o n .Display matrix or text. COMANDOS DE MATLAB 7.
.Keyword search through the HELP entries.Execute operating system command. type . unix . dir .List current variables. save . length .Run demos.Length of vector. load .Delete file.a n d M E X -files. long form. MAT . disp .L i s t M-f i l e .S a v e w o r k s p a c e v a r i a b l e s t o d i s k . getenv .C o n s o l i d a t e w o r k s p a c e m e m o r y . what . pack . clear . d emo . delete .1 General purpose commands:
M a n a g i n g c o m m a n d s a n d f u n c t i o n s: help . path .C l e a r variables and functions from memory.Save text of MATLAB session. size .Directory l i s t i n g . diary . which .
Working with files and the operating system: cd . whos . ! .Directory listing of M-. lookfor .
Managing variables and the workspace: who .Size of matrix.List current variables.Execute operating system command & return result.
C o n t r o l l i n g t h e c o m m a n d w i n d o w: cedit .E c h o c o m m a n d s i n s i d e s c r i p t f i l e s . I n c .Send cursor home. S I M U L I N K .
General information: info .
Starting and quitting from MATLAB: quit . more .I n f o r m a t i o n a b o u t M A T L A B a n d T h e M a t h W o r k s . startup .B e c o m e s u b s c r i b i n g u s e r o f M A T L A B . echo .Minus arith * Matrix multiplication arith . matlabrc .^ Array power arith \ Backslash or left division slash / Slash or right division slash . home .* Array multiplication arith ^ Matrix power arith .M A T L A B .Master startup M-f i l e . hostid . format . whatsnew .T e r m i n a t e MATLAB.S e t c o m m a n d l i n e e d it/recall facility parameters. a n d T O O L B O X v e r s i o n i n f o r m a t i o n .
Operators and special characters: Char Name HELP topic + Plus arith . ver .C o n t r o l p a g e d o u t p u t i n c o m m a n d w i n d o w .Information about new features not yet documented./ Array division slash
.Set output format.M -f i l e e x e c u t e d w h e n M A T L A B i s i n v o k e d . clc .Clear command window. subscribe .MATLAB server host identificati o n n u m b e r .
C h e c k i f v a r i a b l e s o r f u n c t i o n s a r e d e f i n e d .. isempty . issparse .T r u e f o r N o t. isstr . isglobal .A.True for global variables..kron Kronecker tensor product kron : Colon colon ( ) Parentheses paren [ ] Brackets paren . Continuation punct .zero elements. isinf .True if all elements of vector are true. Decimal point p u n c t .
.True for infinite elements.Number.T r u e f o r t e x t s t r i n g .T r u e f o r f i n i t e e l e m e n t s . Comma punct . Semicolon punct % Comment punct ! Exclamation point punct ' Transpose and quote punct = Assignment punct == Equality relop < > Relational operators relop & Logical AND relop | Logical O R relop ~ Logical NOT relop xor Logical EXCLUSIVE OR xor
Logical characteristics: exist .T r u e i f a n y e l e m e n t o f v e c t o r i s t r u e . any . a l l .T r u e f o r e m p t y m a t r i x . f i n d .True for sparse matrix. Parent directory punct . isnan . finite .F i n d i n d i c e s o f n o n ..
Build state -space system from block diagram. b l k b u i l d . dreg .Convolution of two polynomials. augstate .t i m e c o n v e r s i o n . series .A u g m e n t s t a t e s a s o u t p u t s . rmodel . C .Continuous to discrete.time conversion w i t h m e t h o d .D i s c r e t e t o c o n t i n u o u s.G e n e r a t e A .S e r i e s s y s t e m c o n n e c t i o n . D f o r a s e c o n d-order system. ord2 .Form continuous state estimator from gain matrix.P a r t i a l f r a c t i o n e x p a n s i o n .Pade approximation to time delay. outputs.Select subsystem from larger system. feedback . cloop .Generate random continuous mod e l . or states from model.Discrete to continuous. poly . d2c .C o n t i n u o u s t o d i s c r e t e c o n v e r s i o n w i t h d e l a y . drmodel .F o r m c o n t i n u o u s c o n t r o l l e r / e s t i m a t o r f r o m g a i n m a t r i c e s .Generate random discrete model. c2dt .Block diagram modeling. c2dm .Roots to polynomial conversion. destim . B .Con t r o l S y s t e m T o o l b o x C o m m a n d s: Model building : append .Form discrete controller/estimator from gain matrices.Append system dynamics. d2cm . connect .F o r m d i s c r e t e s t a t e e s t i m a t o r f r o m g a i n m a t r i x . residue .
.Continuous to discrete . ssselect . conv . parallel .time conversion. estim . pade . reg .C l o s e l o o p s o f s y s t e m .P a r a l l e l s y s t e m c o n n e c t i o n . ssdelete .Delete inputs.
Model conversions>: c2d .F e e d b a c k s y s t e m c o n n e c t i o n .time conversion with method.
D i s c r e t e d a m p i n g f a c t o r s a n d n a t u r a l f r e q u e n c i e s .Eigenvalues and eigenvectors.S o r t d i s c r e t e e i g e n v a l u e s b y m a g n i t u d e .
Model properties : covar .zero cancellation.) gain. tf2zp .
.Z e r o. modred .s p a c e c o n v e r s i o n .Continuous covariance response to white noise.C. ddamp .Controllability staircase form.C. obsvf .Transfer function to zero -p o l e c o n v e r s i o n .Damping factors and natural frequencies. minreal . dcovar . zp2ss .Continuous steady state (D. ss2ss .Discrete steady state (D. dmodred .Discrete model order reduction. zp2tf . ctrb . tf2ss .space to zero -pole conversion. dcgain .) gain.Observability staircase form. esort .s p a c e c o n v e r s i o n . ddcgain . dsort .Balanced realization. dbalreal . damp .space to transfer function conversion.Transfer function to state.Discrete controllability and observability gramians.Z e r o.
M o d e l r e a l i z a t i o n s: canon .S t a t e . eig .M i n i m a l r e a l i z a t i o n a n d p o l e.
Model reduction : balreal .C a n o n i c a l f o r m .Apply similarity transform.Discrete covariance response to white noise. dgram .Discrete balanced realization.C o n t r o l l a b i l ity matrix.ss2tf .Sort continuous eigenvalues by real part. ctrbf .pole to transfer function conversion. ss2zp .pole to state.State .Model order reducti o n .
.t r a n s f o r m f r e q u e n c y r e s p o n s e . fbode . dnichols .Z. dlsim . dbode . dsigma .Bode plot (frequency response). ltifr .
Time response: dimpulse . margin .S I S O z . dinitial . step . ltitr .Display system in formatted form. freqs .Observability matrix. lsim .Discrete step response. impulse .Low level time response function.Impulse response.Discrete Bode plot (frequency response).Discrete Nichols plo t. printsys .C o n t i n u o u s s i m u l ation to arbitrary inputs.Discrete unit sample response. filter .T r a n s m i s s i o n z e r o s . dnyquist .S t e p f u n c t i o n . freqz .T r a n s m i s s i o n z e r o s u s i n g r a n d o m p e r t u r b a t i o n m e t h o d . o b sv .F a s t B o d e p l o t f o r c o n t i n u o u s s y s t e m s . tzero . nichols . tzero2 .Discrete initial condition response.Controllability and observability gramians. initial . dstep .P o l y n o m i a l r o o t s .Step response. roots .Discrete Nyquist plot. stepfun .
Frequency response: bode .transform frequency response.Laplace .Gain and phase margins.Continuous initial condition response.gram .transform simulation.Discrete simulation to arbitrary inputs.Nichols plot.Low level frequency response f u n c t i o n .Discrete singular value frequency plot.
quadratic regulator design.G e n e r a l l i n e a r-quadratic estimator design.P o l e.
. z g r i d . dlyap .D r a w d i s c r e t e r o o t l o c u s w n .Lyapunov equa tion solution using diagonalization.D r a w c o n t i n u o u s r o o t l o c u s w n .Discrete regulator design from continuous cost function. rlocus . sgrid . lyap . dlqry .D i s c r e t e l i n e a r -q u a d r a t i c e s t i m a t o r d e s i g n . nyquist . lqry .R e g u l a t o r d e s i g n w i t h w e i g h t i n g o n o u t p u t s . zgrid .zero map.Linear quadratic regulator design using Schur method.P o l e p l a c e m e n t .L i n e a r. dlqe . rlocfind .Nyquist plot. lqe2 . d l q e w .D r a w g r i d l i n e s f o r N i c h o l s p l o t .
Equation solution: are .
Gain selection: acker . lyap2 .Linear quadratic estimator design using Schur method.
R o o t l o c u s: pzmap .D i s c r e t e r e g u l a t o r d e s i g n w i t h w e i g h t i n g o n o u t p u t s . lqed . lqr .Algebraic Riccati equation solution. dlqr . z g r i d .Singular value frequency plot.C o n t i n u o u s L y a p u n o v e q u a t i o n s o l u t i o n .Interactive root locus gain determina tion.D i s c r e t e l i n e a r -q u a d r a t i c r e g u l a t o r d e s i g n . lqrd .E v a n s r o o t-locus. sigma .ngrid . lqe .Discrete Lyapunov equation solution.Discrete estimator design from continuous cost function. lqr2 .General discrete linear quad ratic estimator design. l q e w . place .SISO pole placement.L i n e a r-quadratic estimator design.
Demonstrations: ctrldemo - Introduction to the Control Toolbox. boildemo - LQG design of boiler system. jetdemo - Classical design of jet transport yaw damper. diskdemo - Digital control design of hard disk controller. kalmdemo - K a l m a n f i l t e r d e s i g n a n d s i m u l a t i o n .
8. APLICANDO MATLAB AL CONTROL DE PROCESOS 8.1 Respuesta en el dominio del tiempo
Para obtener la respuesta de un sistema en el tiempo ante una entrada estándar, debe primero definirse el sistema. Para el lo puede definirse en MatLab la función de transferencia propia del sistema o las ecuaciones de estado. La función de transferencia de un sistema es una relación formada por un numerador y un denominador:
En MatLab debe definirse el numerado r Y(s) y el denominador U(s) como vectores, cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S. Por ejemplo, para definir la función de transferencia:
>>y=[1]; >>u=[1 0.25 1];
Para d e t e r m i n a r l a r e s p u e s t a e n e l t i e m p o p a r a u n a e n t r a d a e s c a l ó n u n i t a r i o d e este sistema se usa el comandos step indicando el vector del numerador y del denominador entre paréntesis. step(num,den) >>step(y,u)
MatLab presenta la respuesta en el tiempo en la ventana de figuras:
Puede definirse el tiempo en el cual se desea la respuesta al escalón, mediante un vector de tiempo T, step(num,den,T) >>t=0:0.1:20; >>step(y,u,t)
Se define t como un vector cuyo elemento inicial es 0, su elemento final es 20 y existen elementos que son el incremento desde 0 hasta 20 de 0.1 en 0.1. Al ejecutar el comando step para y y u se obtiene en la ventana de figuras la respuesta escalón para los primeros 20 segundos. Otra forma de definir el sistema en MatLab es usando las ecuaciones de estado de la forma: x = Ax + Bu y = Cx + Du
MatLab permite hacer la conversión de una función de transferencia a su equivalente en ecuaciones de estado, mediante el comando tf2ss. Se deben especificar las cuatro matrices de estado de la forma: [A,B,C,D]=tf2ss(num,den)
Para el ejemplo anterior tenemos: >>[a,b,c,d]=tf2ss(y,u) a = -0 . 2 5 0 0 -1 . 0 0 0 0 1.0000 0 b = 1 0 c = 0 1 d = 0
Ejemplo >>step(a.den]=ss2tf(a.d)
Ejemplo >>[num. » u=[1 6 11 6].6 1 0 0 0 1 0
.b. mediante el comando ss2tf. con Sin taxis idéntica a la utilizada con el comando step: Si se define el sistema en MatLab por los polinomios denominador de la función de transferencia tenemos: » y=[1 5 4].1 1 .u) A= -6 .b.D]=tf2ss(y.den]=ss2tf(a.u) del numerador y
Si por el contrario el sistema se defin e en MatLab por las ecuaciones de estado: » [A.Se puede hacer la conversión de una ecuación de estado a su equivalente función de transferencia.0000 0.C. Su Sintaxis e s : [num.2500 1.c.c.0000 den = 1.d) num = 0 0 1.0000
P a r a o b t e n e r l a respuesta escalón de un sistema a partir de las ecuaciones de estado se usa el comando step con la Sintaxis: step(A. » impulse(y.B.c.C. Se deben especificar los vectores para almacenar los coeficientes del polinomio numerador y del denominador.b.B.d)
Para obtener la respuesta en el tiempo para una entrada impulso unitario se usa el comando impulse.
B= 1 0 0 C= 1 5 4 D = 0 » impulse(A.D)
En ambos casos.C. MatLab presenta la respuesta en el tiempo en la ventana de figuras:
>>PLOT(T.D. obteniéndose:
.U. donde u se define como una función del tiempo. El comando plot permite presentar en la ventana de figuras la variable Y (salida) y la entra da U (rampa) en función del tiempo.T).MatLab permite.U)
Al hacer U=T se está definiendo la función rampa.U. T es el vector de tiempo variando desde 0 hasta 10 s e g .T) usando las matrices de estado o lsim(NUM. también obtener respuesta para otras entradas tal como rampas o sinusoides.C.Y. En la variable Y se almacena la salida del sistema en función del tiempo T.B. >>DEN=[1 0.1:10 >>U=T.25 1]. N U M y D E N s o n l o s v e c t o r e s d e l o s c o e f i c i e n t e s d e c r e c i e n tes en potencia de S de los polinomios del numerador y del denominador respectivamente.T) usando la función de transferencia.X]=lsim(NUM.DEN.DEN. >>NUM=[1]. Para obtener la respuesta en el tiempo para una función rampa. además de obtener la respuesta en el tiempo para una entrada escalón o impulso.U. La Sintaxis de este comando es: lsim(A. se define U de la siguiente forma: >>T=0:0. >>[Y.T. El comando lsim permite obtener la respuesta en el tiempo para un sistema con una entrada u.
Se define la función de transferencia:
Ejemplo >>y=[1]. >>u=[1 0.den).8. de Nyquist y de Nichols. Estos vectores son usados en el comando b o d e c o n l a s i g u i e n t e Sintaxis: bode(num.25 1]. Para obtener el diagrama de Bode de una función de transferencia.2 Respuesta en el dominio de la frecuencia
Para el estudio de un sistema en el dominio de la frecuencia existen tres herramientas disponibles en MatLab como son: los diagramas de Bode.u)
MatLab presenta el diagrama de bode en la ventana de figuras:
. se definen dos vectores cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S. >>bode(y.
B.D).W) si se emplean las matrices de estado o nichols(num.1:100.D). cuya Sintaxis es idéntica a la del comando bode: nichols(A.C.W) si se emplea la función de transferencia.
Si se define y como el vector de los coeficientes del polinomio del numerador y u como el deldenominador: >>y=[0 0 100].D. >>u=[0.Otro formato mediante el cual el comando bode presenta el diagrama de bode.W) Este comando muestra el diagrama de Bode entre 0 y 100 rad/s. se emplea un vector de frecuencias en el que se especifica la frecuencia inicial. Otra herramienta de análisis en el d o m i n i o e n l a f r e c u e n c i a q u e o f r e c e M a t L a b es el diagrama de Nichols. >>bode(y. Para especificar un rango deseado de frecuencias en las cuales se desea obtener el diagrama de Bode. >>nichols(y.u. el incremento y la frecuencia final. Para obtener el diagrama de Nichols se utiliza el comando nichols. den.B. Por ejemplo: >>W=0:0. es a través de las ecuaciones de estado representadas por las matrices de estado (A.C. Su Sintaxis e s : bode(A.C.u)
MatLab presenta en la ventana de figuras el diagrama de Nichols:
.04 1 0].B.
cuya Sintaxis es idéntica a la del comando bode y nichols: nyquist(A. >>nyquist(y.W) si se emplean las matrices de estado o nyquist(num.C. Para obtenerlo se utiliza el comando nyquist.B.den.W) si se emplea la función de transferencia. Si se define y como el vector de los coeficientes del polinomio del numerador y u como el del denominador: >>y=[1]. >>u=[1 6 5].u) M a t L a b p r e s e n t a e n l a ventana de figuras el diagrama de Nyquist:
.Otra herramienta de análisis en el dominio en la frecuencia que ofrece MatLab es el diagrama de Nyquist.D.
D) retorna los valores de margen de ganancia (Gm). [Gm.B. margen de fase (Pm). D E N ) cuando se trabaja con la función de transferencia.Wcg.Wcg. D ) dibuja el diagrama de Bode y muestra con líneas verticales los m á rg e n e s d e g a n a n c i a y d e f a s e . frecuencia de cruce de ganancia (Wcg) y la frecuencia de cruce de fase (Wcp) cuando se trabaja con las matrices de estado (A. >>[Gm.Pm.den)
. la frecuencia de cruce de ganancia y la frecuencia de cruce de fase MatLab dispone del comando margin.PHASE.Wcp] = MA R G I N ( N U M . [Gm.Pm.C.Wcg.Para obtener el margen de ganancia.7487 Wcg = NaN Wcp = 3.den) Gm = Inf Pm = 4. fase y frecuencia del diagrama de Bode. M A R G I N ( A .D).25 1].
>>num=10.C.Pm.Wcp] =margin(num. el margen de fase. C .B.Wcp] = MARGIN(MAG.3114 >>margin(num. Las diferentes formas de utilizar este comando son: [Gm. >>den=[1 0.Wcg.W) toma los vectores de magnitud.Pm. B .Wcp] = MARGIN(A.
D E N ) c a l c u l a y dibuja el lugar de las raíces cuando se trabaja con la función de transferencia donde NUM y DEN son los vectores de los coeficientes en potencia descendiente de S de los polinomios del numerador y denominador de la función de transferencia G(S).
. estas pueden además ser complejas. de longitud igual al número de elementos de K. rlocus(A.D.K) o [R.8.C.DEN. o [R.K): calcula y dibuja el lugar de las raíces cuando se trabaja con la función de transferencia y ha sido previamente definido el rango de valores de K. R tendrá tantas columnas como raíces existan. R=rlocus(A.3 Lugar de las raíces
Se debe determinar su ecuación característica.K). la cual es de la forma:
Para obtener el lugar de las raíces. la localización de las raíces.K] = rlocus(NUM.D) son equivalentes a las Sintaxis anteriores pero empleando las matrices de estado para hallar el lugar de las raíces.B. Las diferentes Sintaxis para utilizar este comando son: r l o c u s ( N U M .B.K]=rlocus(A. Por ejemplo de 0 a 100 co n incrementos de 10: k=0:10:100 R = rlocus(NUM.C.DEN) no dibuja el lugar de las raíces pero almacena en la matriz R.B.D). MatLab g enerará automáticamente un conjunto de valores de la ganancia K.C. MatLab dispone del comando rlocus.DEN. rlocus(NUM.
0. 2 6 8 8 + 0 . >>rlocus(num.den.C. D ) . B .0. 4 6 2 3 .POLES] = rlocfind(num. 7 7 7 3 i Para seleccionar el punto en el cual calcular los polos del lugar de las raíces sin usar el cu rsor se agrega un parámetro al comando rlocfind. cuando se trabaja con la función de transferencia.POLES] = rlocfind(num.P) P debe definirse previamente indicando la parte real e imaginaria del mismo.den) p e r m i t e d e t e r m i n a r l o s p o l o s p a r a u n v a l o r determinado de k.D.den) MatLab dispone del comando rlocfind que permite determinar los polos del sistema para una valor dete rminado de k.Para la siguiente forma modificada de la ecuación característica de un sistema se desea hallar el lugar de las raíces mediante MatLab: >>num=[0.POLES] = rlocfind(A. MatLa b retorna el valor de k para esta localización y los polos asociados a esta ganancia. 0 1 3 2 i k = 1.
. A l e j e c u t a r e l c o m a n d o r l o c f i n d c o n l a f u n c i ó n d e transferencia anterior. 5 5 5 i . >>den=[1.3.4623 en la parte real y . Su Sintaxis e s : [K. 7 7 7 3 i -0 . Por ejemplo: P=3+0i o P=1 -0 . MatLab activa la ventana de figuras en espera de que el usuario seleccione un punto del lugar de las raíces mediante el cursor.1]. En este caso el punto seleccionado fue 2. Este debe ser el punto o los puntos en donde se desea tomar el valor de k. Por medio del curso en el lugar de las raíces se selecciona una localización.B. las Sintaxis para el comando rlocfind es: [ K . » [k.P) o [K. d e n ) Select a point in the graphics window selected_point = -2 .p o l e s ] = r l o c f i n d ( n u m .0 .0 . La nueva Sintaxis es: [K.2.
Cuando se trabaja con las matrices de estado.6655 poles = -2 . 4 6 2 5 -0 .0 . 0 1 3 2 e n l a p a r t e i m a g i n a r i a .0]. C . 2 6 8 8 . P O L E S ] = r l o c f i n d ( A .
C(S)=Kp. Para el caso del controlador proporcional.8. E l c o n t r o l a d o r P I e s C ( S ) = K p + K i / S q u e p u e d e r e p r e s e n t a r s e c o m o u n a relación ente dos polinomios. PD. PI. Si dicho sistema es de la forma:
donde G(S) es la función de transferencia de la planta o proceso. Si se multiplica el controlador C(S) por la función de transferencia del proceso o planta G(S) se formará la función de transferencia de lazo abierto. mientras que C(S) es la función de transferencia del controlador. que es una constante o valor es c a l a r . PID) en MatLab se hace uso de la función de transferencia propia del sistema a objeto de estudio .4 Controladores PID
Para implementar los diferentes tipos de controladores (P. Los coeficientes decrec i e n t e s en potencias de S de estos polinomio pueden ser almacenados en vectores en MatLab. El controlador PID es C(S)=Kp + Ki/S + Kd S que se representa como:
que es de nuevo una relación entre dos polinomios. Por ejemplo un G(S) puede ser:
> > [numc. tenemos: >>Kp=500.sign) El signo de la realimentación viene dado por sign. >>Ki=1. >>num=[Kd Kp Ki]. >>Kd=10.denc)
Se usa el comando c o n v p a r a o b t e n e r l a c o n v o l u c i ó n y m u l t i p l i c a c i ó n p o l i n o m i a l d e dos vectores.denc]=cloop(num. >>step(numc. >>Ki=1. >>den2=[1 10 20 0]. >>den=[1 10 20 0 0]. >>num2=1. . el cual genera los polinomios del numerador (numc) y denominador (denc) de la función de transferencia de lazo cerrado con realimentación unitaria a partir de los polinomios de la función de transferencia de l a z o a b i e r t o ( n u m y d e n ) .num2). >>Kd=100.numd]=cloop(conv(num1.den. Para el ejemplo anterior.den)
Para obtener la respuesta de lazo cerrado en el tiempo para una entra da escalón unitario se emplea el comando cloop.Para obtener la respuesta en lazo abierto ante una entrada escalón unitario tenemos: >>Kp=50. >>num1=[Kd Kp Ki]. >>step(num. >>den1=[1 0].1).den2). S u Sintaxis es: [numc.conv(den1. La salida obtenida mediante el comando s t e p se muestra a continuación:
Escribimos >>bode([158.
Ejemplo: Para .den) donde n u m y d e n son vectores que contienen los coeficientes del numerador y denominador de H(s) en orden de potencias descendentes de s. donde A y B son a r r e g l o s y n o m a t r i c e s ( o s e a .'Visible'.elemento).811].[1 5 0])
Precaución: El punto ".^2.*B.9.'off') o simplemente >>axis off
. Entonces si queremos calcular A2B2. TRUCOS EN MATLAB® Paper semilogarítmico gratis: papelbod.m
Para cotejar sus diagramas de Bode: >>bode(num."." puede significar operación elemento -p o r -e l e m e n t o o punto decimal.^2 .^2
Para remover ejes de la gráfica: >>set(gca.11 15.
N o t a : E s t o da l a s c u r v a s e x a c t a s . debemos escribir >>A.*B. el interpretador cree que es el número "2.0". n o l a s a p r o x i m a c i o n e s a s i n t ó t i c a s c o n l í n e a s rectas.^2 (notar el espacio después del primer 2) y no >>A. C u a n d o e s c r i b i m o s un dígito pegado al punto como "2. q u e r e m o s o p e r a c i ó n e l e m e n t o -p o r.
'linewidth'.'linewidth'. es más fácil hacerlo al crearla que después.
Para establecer propiedades de la gráfica.Para cambiar el color de trasfondo de la gráfica: >> whitebg('c') donde c es el código del color descrito en help plot.'children'). para graficar con una línea gruesa.3) (En el momento de creación) >>set(get(gca.y. >>plot(x. Por ejemplo.3) ( D e s p u é s d e c r e a d a )
AboutBrowse booksSite directoryAbout ScribdMeet the teamOur blogJoin our team!Contact UsPartnersPublishersDevelopers / APILegalTermsPrivacyCopyrightSupportHelpFAQAccessibilityPressPurchase helpAdChoicesMembershipsJoin todayInvite FriendsGiftsCopyright © 2016 Scribd Inc. .Terms of service.Accessibility.Privacy.Mobile Site.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaTutorial Matlab by caroro2013 viewsEmbedDownloadRead on Scribd mobile: iPhone, iPad and Android.Copyright: Attribution Non-Commercial (BY-NC)List price: $0.00Download as PDF, TXT or read online from ScribdFlag for inappropriate contentMore informationShow less
Documents similar to manual matlabMatlabby car2332matlab-100228223411-phpapp01by carrasco.pablo9953Tutorial MATLABby Miguel FloresMore from agalarzagdiariby agalarzag138 Modby agalarzagPlan Desplegue 5Sby agalarzag

References: resolución 
 resolución 
 Resolución 
 Resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 Resolución