Source: https://www.scribd.com/doc/160733130/Tutorial-Matlab
Timestamp: 2016-12-11 11:00:02+00:00

Document:
BrowseInterestsBiography & MemoirBusiness & LeadershipFiction & LiteraturePolitics & EconomyHealth & WellnessSociety & CultureHappiness & Self-HelpMystery, Thriller & CrimeHistoryYoung AdultBrowse byBooksAudiobooksArticlesSheet MusicBrowse allUploadSign inJoinTUTORIAL DE MATLABTUTORIAL DE MATLAB
análisis de series temporales para el proceso digital de señal. posee además una extraordinaria versatilidad y capacidad para resolver problemas en matemática aplicada. como una importante herramienta para la impartición de cursos universitarios. Los usos más característicos de la herramienta los encontramos en áreas de computación y cálculo numérico tradicional. física. 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. MATLAB se ha convertido en una herramienta básica. Está basado en un sofisticado software de matrices para el análisis de sistemas de ecuaciones. álgebra lineal.
. Permite resolver complicados problemas numéricos sin necesidad de escribir un programa. Basic o C. MATLAB integra análisis numérico. cálculo matricial. 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. 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. ingenierí a. finanzas y muchas otras aplicaciones. E n e n t o r n o s universitarios. 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. 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. señal. sin necesidad de hacer uso de la programación tradicional. 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 . por ejemplo. química. En el mundo industrial. prototipaje algorítmico. Es ampliamente usado por Ingenieros de Control en el análisis y diseño. proceso digital de imagen. etc. ¿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.1. las cuales representan hoy en dia dos de las librerías más importantes en computación y cálculo matricial. tanto para los profesionales e investigadores de centros docentes. 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. estadística. teoría de c o n t r o l a u t o m á tico. tales como sistemas e ingenieria de control. MATLAB goza en la actualidad de un alto nivel de implantación en escuelas y centros universitarios.
denominados Toolboxes. VAXstation y HP. Gould. En este último sentido. destacando entre ellos el 'toolbox' de proceso de imágenes. modelizar y simular la dinámica de sistemas no lineales.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. Una matriz de fluctuaciones de una señal puede ser un sonido o una voz humana. Al pasar de los años fue complementado y reimplementado en lenguaje C.MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializados. una matriz puede describir el comportamiento de un sistema extremadamente complejo. MicroVAX. señal. identificación de sistemas.
1. Una matriz de pixeles puede ser una imagen o una película. etc.2 Origen de MatLab
MatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en computadoras mainframe. Fue el resultado de los proyectos Linpack y Eispack desarrollados en el Argonne National Laboratory. control robusto. T a m b i é n o f r e c e S i m u l i n k
. simulación de sistemas dinámicos. Actualmente la licencia de MatLab es propiedad de MathWorks Inc . Opera bajo sistemas operativos UNIX. redes neurales.3 Plataformas
MatLab está disponible para una amplio número de plataformas: estaciones de trabajo SUN.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 . Apple Macintosh y PC AT compatibles 80386 o superiores.
1. VAX. que extienden significativamente el número de funciones incorporadas en el programa principal. Macintosh y Windows.
1. Por ejemplo una matriz puede representar el vuelo de una avión a 40. Además también se dispone del programa Simulink que es un entorno gráfico interactivo con el que se puede analizar. lógica difusa. una matriz puede describir una relación lineal entre los componentes de un modelo matemático. matemáticas simbólicas. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación. Y tal vez más significativamente. análisis financiero.000 pies de altura. Su nombre proviene de MATrix LABoratory. o un filtro digital de procesamiento de señales.
1. Apollo. estadística. 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 .
procesamiento de señales. por ejemplo control. Simulink es usado para simulación modelado no lineal avanzado. Se ofrecen además numerosas herramientas especiales en "Toolboxes" para resolver problemas de aplicaciones específicas. redes neurales.como un anexo a MatLab y que interactua con él en lenguaje de MatLab y lenguaje de bajo nivel C.
. etc. Estas herramientas son colecciones de rutinas escritas en MatLab.
Junto con el compilador de MATLAB. Librería de Aplicaciones de MATLAB
2. Butterworth.2. El objetivo principal de la C Math Library es soportar el desarrollo de aplicaciones 'stand alone' utilizando MATLAB y su compilador.
Diseño de filtros FIR mediante el algorítmo ó p t i m o d e P a r k s -McClellan. y transformada para no potencias de dos. 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. Funciones matemáticas elementales y especializadas. Implementación de filtros. La MATLAB C Math Library proporciona una amplia gama de funciones clásicas del programa MATLAB.1 SIGNAL P ROCESSING TOOLBOX
MATLAB tiene una gran colección de funciones para el procesamiento de señal en el Signal Processing Toolbox. Operadores lógicos y aritméticos. la C Math Library permitirá a los programadores de aplicaciones utilizar MATLAB para la creación de aplicaciones 'stand alone'.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. proporcionadas como libreri a s o b j e t o . 7
. retardo de grupo. Chebyschev tipo I. Para los usuarios clásicos de MATLAB. Para aquellos usuarios que sean nuevos en la tecnología MATLAB.
2. esta tecnología ofrece una nueva vía para la reducción del tiempo de desarrollo y puesta a punto de aplicaciones. Diseño de filtros IIR. Procesamiento de la transformada rápida de Fourier FFT. se elimina así cualquier necesidad de volver a reescribir algoritmos en lenguaje C para ser utilizada por programas externos. Puede ser utilizada independientemente de MATLAB por programadores avezados en lenguaje C que necesiten prestaciones computacionales robustas y de alto rendimiento. incluyendo la transformación para potencias de dos y su inversa. tanto directo como usando técnicas en el dominio de la frecuencia basadas en la FFT. retardo de fase. Este incluye funciones para: • • • • • Análisis de filtros digitales incluyendo respuesta en frecuencia. incluyendo Chebyshebv tipo II y elíptico.
2. 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). Gestión de cadenas de caracteres. lógico y utilidades.
(Nota: Las funciones del tipo Handle Graphics no están incluidas en la C Math Library). 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).2. Entradas y Salidas. análisis de datos y funciones de acceso a ficheros y matrices. 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. Respecto al mundo PC.
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. 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.
. 3. deberán seguirse los pasos siguientes: 1. estas librerías pueden obtenerse como DLL's en el entorno Microsoft Windows o como librerias compartidas en equipos Apple MacIntosh. Estadística básica y análisis de datos. Matrices especiales. Polinomios e interpolación. Gestión de memoria y errores.• • • • • • •
Matrices elementales y manipulación de vectores.2. Compilar el código C fuente en código objeto utilizando un compilador ANSI C.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 .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.
rangos. Multiplicación y división de polinomios. Diferenciación de polinomios.
Valores propios y descomposición de matrices.2.
Interpolación 1 . Las funciones de álgebra lineal han sido obtenidas de las librerias mundialmente reconocidas LINPACK y EISPACK. Determinantes. Interpolación por splines cúbicos. etc. La MATLAB C Math Library contiene más de 300 funciones numéricas. Residuos de polinomios y residuos. logarítmica y raíces cuadradas. Funciones trigonomé tricas y de potencias. Matrices de Hilbert. Partes reales. beta y elíp ticas. lógicas y de utilidad. Construcción polinomial.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). Matrices inversas y factorización de matrices.
. Todas estas funciones le permitirán operar en datos de tipo escalar. Hadamard.D y 2 .2. imaginarias y complejas conjugadas. Vandermonde. Matriz identidad y otras matrices elementales.
2. Ma triz exponencial. Funciones generales de evaluación de matrices. Transformación de sistemas de coordenadas. etc.2. Evaluación de polinomios.D. vectorial o matricial con la misma facilidad sintáctica.4 Lista parcial de funciones
Funciones gamma. Toeplitz. normas.
NOT y XOR.5 Utilidades
Gestión y mantenimiento de errores. que vienen
. resta. 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 .6 Requerimientos
La libreria MATLAB C Math Library cumple con la normativa estándar ANSI para compiladores C. multiplicación. división y potencias de matric e s . Filtros digitales 1.
Suma. Resolución numérica de integrales. Transformadas de Fourier 1 . Minimización de funciones de una o más variables. Finalmente. Clasificación de matrices. Deconvolución.
2. Matrix traspuesta.
Convolución 1 . la librería trabajará con aquellos enlazadores suministrados con la mayoría de compiladores ANSI C. 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 . OR. Funciones max. Solución numérica de ecuaciones diferenciales ordinarias. mean y otras funciones de estadística básica.2. sum. Conversión de tipos de datos Fortran.D y 2 .2.Métodos numéricos no lineales
Búsqueda de ceros en funciones de una única variable.D y 2 -D . Magnitudes y ángulos de fase.D.D y 2 . min. Operadores lógicos AND.D y s u i n v e r s a . Funciones de fecha y hora.
Como un generador MEX automático.The MATLAB Compiler . Pueden convertirse ficheros M en funciones C ejecutables que se ejecutaran desde dentro de MATLAB. El proceso en cuestión se realiza en tres pasos: 1. Estas aplicaciones externa s requieren de la MATLAB C Math Library. Los desarrollos 11
. La instrucción MATLAB cmex llama al compilador y al enlazador del sistema para construir un fichero MEX objeto.
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 . El intérprete de MATLAB enlaza automáticamente la función de MATLAB como 'runtime'. T o d o e l p r o c e s o d e c o n v e r s i ó n .
2.1 Generación Automática de ficheros MEX.de MATLAB.M files . incluyendo las rutinas 'Handle Graphics'.
2.2.3. que está disponible separadamente. compilación y enlazado se inicia a través de una simple instrucción de MATLAB. el compilador MATLAB elimina consumo de tiempo y la conversión manual de código. si ese es el caso. Pueden convertirse convenientemente ficheros M en código fuente C para incorporarlos posteriormente en los ficheros externos desarrollados en lenguaje C. 3. Como un generador de código C fuente.p e r m i t e c r e a r c ó d i g o C optimizado procedente de ficheros M . El compilador de MATLAB traduce las funciones MATLAB en sus funciones equivalente en lenguaje C. Este compilador puede ser utilizado de dos modos: 1. Existen algunas funciones. Mientras se efectúa una conversión de los ficheros M en ficheros MEX.
Mediante la conversión automática de ficheros M en código C fuente. Pueden construirse aplicaciones que se ejecutaran independientemente de MATLAB. el compilador realiza llamadas a las rutinas de la libreria C para muchas de las instrucciones contenidas en el propio núcleo de MATLAB. 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. 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.3 THE MATLAB COMPILER TOOLBOX
2. Ud.del tipo 'stand-alone' requieren para ello de la MATLAB C Math Library. depende fuertemente de cada aplicación.0 o superior Power MacIntosh MetroWer ks CodeWarrior C V.10.
2.2c y tener instalado uno de los siguientes compiladores de lenguaje C: PC/Microsoft Windows Metaware High C/C++ V.
2. 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.e. entera. Obsérvese que las funciones gráficas de MATLAB no están incluidas.4 Requerimientos del sistema
Para utilizar el compilador de MATLAB para crear ficheros MEX se necesita la versión de MATLAB 4. Watcom C V.3. mediante la utilización del compilador se obtendrán significativas mejoras. Utilizar una variable concreta como variable escalar. Las opera ciones matriciales y vectoriales ejecutadas desde MATLAB ya están fuertemente optimizadas en su diseño. Para construir aplicaciones 'stand-alone' se debería seguir los siguientes pasos: 1. Sin embargo.7
.3.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. 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.
2. real o una combinación de estas. Por ejemplo. puede directamente: • • • Tratar todas las variables en ficheros como datos enteros y/o reales.2 Rendimiento del compilador
Mediante la compilación de los ficheros M se puede obtener un rendimien to significativo. La velocidad de mejora de este rendimiento. 3. Utilizar el compilador de MATLAB para convertir ficheros M en C con la instrucción externa mcc .0 o superior. vectorial. Desactivar el control de parámetros de entrada y el redimensionamiento dinámico de vectores. 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 .3.3.
determinantes. que se tengan las MATLAB C Math Library y un compilador ANSI C. además del compilador de MATLAB.X no es un compilador ANSI C). Entre o t r o s .0. Algebra lineal exacta: Inversas.
Existen dos versiones del mismo Toolbox. 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. y los programas realizados para este último.4 SYMBOLIC MATH TOOLBOX
El Toolbox de Matemática Simbólica.3. como load y eval.0b2 o PPCC version 1. Cualquiera que sea el equipo informático que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere. 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. no están soportadas por el compilador de MATLAB .1.
2.5 680x0 MacIntosh MPW C Versión 3.1. integración y simplificación de expresiones matemáticas.
2. Este no puede generar código de los diagramas de bloques de SIMULINK.5 Limitaciones del código compilado
Ciertas instrucciones. Resolución de ecuaciones: Resolución numérica y simbólica de ecuaciones algebraicas y diferenciales. canónicas de matrices simbólicas. autovalores y formas
Aritmética de precisión variable: Evaluación de expresiones matemáticas con diversos grados de precisión. The Basic Symbolic Math Toolbox es una colección de más de 50 funciones MATLAB las cuales permiten acceder al
.4 UNIX y VMS
Cualquier compilador ANSI C (Nota: El compilador de SunOS 4. 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. Los toolboxes de MATLAB pueden incluir ficheros MEX y otros componentes que no son compilables.MPW MrC V.
de funciones reales las cuales son generalmente multivariables y no lineales.5 OPTIMIZATION TOOLBOX
El toolbox de optimización consta de un conjunto de funciones que resuelven problemas de extremos. 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 . Es posible utilizar este Toolbox sin conocimiento previos de MAPLE. 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). no lineales. Solución de problemas minimax.
. sin imponer ninguna restricción o condición a la solución. Problemas de aproximación a un conjunto de objetivos. si lo que se desea es obtener toda la potencia de cálculo del entorno. Resulta conveniente para una comprensión y mejor manejo de la toolbox poseer conocimientos básicos previos de análisis de funciones reales. 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. posee funciones para la resolución de algunos tipos de problemas matriciales en extremos. condicionado a que la solución satisfaga ciertas condiciones de desigualdad (g(x)<=0) y/o igualdad (g(x)=0). con o sin condiciones. Como caso particular. Programación lineal. The Extended Symbolic Math Toolbox aumenta esta funcionalidad incluyendo todas las características de programación de MAPLE.kernel de MAPLE utilizand o l a S i n t a x i s y el estilo del lenguaje MATLAB. en general. en general multivariable y no lineal. Programación cuadrática. Cálculo de soluciones de un sistema de ecuaciones continuas y. ya que los ficheros contenidos en él son totalmente autónomos. en general multivariable y no lineal. Asimismo. Problemas de mínimos cuadrados no negativos. matrices y teoría de extremos. Sin embargo.
aquellos usuarios de las librerías Fortran de NAG que a la vez sean usuarios de MATLAB. Por ejemplo. Actualmente.9 NAG FOUNDATION TOOLBOX
Este toolbox proporciona un acceso interactivo. problemas de cuadratura adaptativa multidimensional. los diseñadores podrán beneficiarse de muchos de los toolboxes desarrollados para este entorno en materia de diseño de sistemas lineales. Por ello. 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. encontraran bastante cómodo acceder a las rutinas NAG utilizando la nomenclatura original. 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. este toolbox incorpora 250 rutinas matemáticas. posteriormente.siempre que se detecten determinadas variaciones en los componentes del sistema. 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. 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. podrán utilizarse modelos no lineales más sofisticados utilizando SIMULINK. 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 . cuadratura. Como resultado de esto. El toolbox NCD es un componente avanzado del entorno integrado de desarrollo que ofrecen a los especialistas los programas MATLAB y SIMULINK. numerosas estaciones UNIX y ordenadores Digital VAX VMS.
2. estadística. destacando ordenadores personales tipo PC o Apple MacIntosh. etc. los cuales cubren un amplio espectro de áreas d e i n t e r é s . ajuste de curvas y superficies y el acceso a los algoritmos LAPACK para la resolución de ecuaciones lineales. desde dentro de MATLAB. Este toolbox se encuentra actualmente disponible para una amplia va riedad de plataformas informáticas. 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. Además. puede invocarse NCD para un mejor ajuste paramétrico y para la optimización de los controladores. podrán utilizarse toolboxes para el análisis de sistemas lineales para el diseño inicial. 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.
Rutinas de clasificación. Factorización de matrices. Ecuaciones lineales (LAPACK). Análisis de series temporales. Ecuaciones diferenciales ordinarias. Generación de números aleatorios. Aproximación de funciones especiales. Valores y vectores propios. Maximización y minimización de funciones. Aproximación de curvas y superficies. Métodos multivariantes. Cuadraturas.
. Resolución de ecuaciones lineales simultáneas. Estadística no paramétrica.• • • • • • • • • • • • • • • • • •
Suma de series. Estadística básica. Ecuaciones diferenciales en derivadas parciales. Análisis de correlación y regresiones.
Después de ejecutar el programa MatLab desde el sistema operativo empleado. aparece el indicador de comandos el cual está listo para recibir instrucciones en lenguaje MatLab. muestre el final de cada fila con .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. USO DE COMANDOS
La primera forma de interactuar con MatLab es a través de la línea de comandos. Puede ejecutarse un comando si este está escrito después del símbolo >> y se presiona la tecla Enter. [ ].
Ejemplo: A = [ 1 2 3. (punto y coma). por ejemplo haciendo doble click sobre el icono de MatLa b e n a m b i e n t e s Windows. Si la matriz a introducir es muy grande se puede utilizar el siguiente formato:
. 4 5 6. Para cerrar o finalizar el uso de MatLab se usa el comando quit . MATLAB trabaja esencialmente con matrices numéricas rectangulares. >>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. 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. >>quit
4. Por ejemplo: >>help permite obtener una ayuda sobre los diferentes comandos de MatLab. Este indicador es de la siguiente forma: >> Al iniciar el uso de MatLab están disponibles dos comandos de ayuda y demostración. 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. l os elementos estén cerrados entre corchetes.
) al final del comando. ) o c o n retorno (Enter). A(2)=2 y A(3)=3. por ejemplo: >>A=[1 2 3] define A como un vector de tres elementos. 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 ( . Al definir A automáticamente MatLab presenta en pantalla su valor. >>A=[1 2 3.). Después de crear una variable. >>A=1 define A como un escalar de valor 1. Ya que MatLab se basa en el álgebra de matrices como ejemplo crearemos una matriz. debe agregarse punto y coma (. A(1)=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
. Estas pueden estar formadas por un sólo elementos (escalar). puede presentarse escri biendo la variable después del prompt (>>). por una fila o una columna (vector) o por una serie de filas y columnas (matriz propiamente dicha). >>A Se pueden redefinir variables. A= 1 Para no presentar el valor de la variable creada. Estos elementos deben separase con espacios en blanco o comas (.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.
7 3 2 1 4 .8000 0 1.7321 4. 3 0 0 0 1 .3000 1. A = [A.
Para añadir otra fila a la matriz A de arriba podemos hacer lo siguiente: r = [10 11 12]. r] y resultaría A= 1 2 3 4 5 6 7 8 9 10 11 12
4. Ejemplo: x = [-1.sqrt(3).2 Instrucciones de MATLAB y Variables
Si omites el nombre de la variable y e l s i g n o " = " . 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. 8 0 0 0
Nos podemos referir a elementos individuales de la matriz con índices entre paréntesis.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 . Ejemplo: En el ejemplo anterior x(4) = abs(x(1)) resultaría x= -1.3.(1+2+3) *4/5] resultaría en x = -1 . Todos los nombres de funciones deben ser en letras minúsculas. 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 .4.
Si deseas guardar tu espacio de trabajo escribes s a v e . A d e m á s d e éstas funciones todo usuario también puede crear otras funciones. Para listar las variables en el espacio de trabajo se utiliza el comando who .4. Su valor inicial es la distancia de 1.
Para salir de MATLAB se escribe quit ó exit . Y.
4. y que no se pueden eliminar. Estas son por ejemplo las variables a n s y e p s . Al terminar una sesión de MATLAB.
. Para ver información adicional acerca de estas variables se utiliza el c o m a n d o w h o s . 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 . Z en el archivo temp. Se puede utilizar s a v e y load con otros nombres de archivos.5 Funciones
Las funciones que utiliza MATLAB son intrínsecas al procesador de éste. Ejemplo: x = sqrt(log(z))
4. Usando el comando load temp las obtienes nuevamente del archivo temp. La variable e p s es una tolerancia para determinar.mat. 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. Puedes combinar las funciones de acuerdo a tu necesidad.mat.4 Variables Permanentes
Las variables permanentes son aquellas con significado especial.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. ó para guardar solo variables seleccionadas Ejemplo: save temp X Y Z Este ejemplo guarda las variables X.mat. las variables en el espacio de trabajo se borran. Por ejemplo la singula r i d a d y el rango.0 al próximo número de punto flotante mayor.
.. 3) = A(1. pueden ser decimales. Ejemplo: A= 1 2 3 4 5 6 7 8 9
A(3. x(v(2)).. :. 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.4.
.. son importantes en MATLAB. los índices de vectores permiten acceso a submatrices contiguas y no -con t i g u a s .7 Manipulación de Vectores y Matrices Generando Vectores
Los dos puntos. entonces x(v) es [x(v(1)).x(v(n))].
Índices Podemos referirnos a elementos individuales de matrices encerrando sus índices en paréntesis. Si x y v son vectores. 3) + A(3. números negativos ó constantes. 1) resultaría A= 1 2 3 4 5 6 7 8 10
extrae ó crea una diagonal t r i l . es decir. ó vector columna. suponga que A es una matriz 10 por 10. 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. También A(1:5.
Manipulación de Matrices diag . entonces A + B se puede calcular.transposición
4. una matriz 1 x 1. si A y B son matrices 3 x 3. 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 .parte inferior triangular triu . Las operaciones suma y resta también está definidas si uno de los operandos es un escalar. Si tenemos la matriz A y llamamos B = A'. [3 5 10]) = B(:. Es decir.parte superior triangular ' .
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. Entonces A(1:5. quinta y décima columna de A con las primeras tres columnas de B. Podríamos tener una instrucción como: A(:. 3) especifica la submatriz 5 x 1. B es la transpuesta de la matriz A. Ejemplo: x= -1 0 2
. 1:3) que reemplaza la tercera.Por ejemplo.8 Operaciones de Matrices Matrices Transpuestas
El caracter ' (apóstrofe) denota la transpuesta de la matriz.
B=[6 5 4.y = x . 3 2 1].1 resultaría y = -2 -1 1
Ejemplo: >>A=[1 2 3.4 5 6]. 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
. define las matrices A y B.
Si A no es cuadrada. un escalar como pi. donde k es el rango efectivo de A.
L a e x p r e s i ó n A ^ n e l e v a A a l a n. Si A es cuadrada. El resultado es una matriz X con las mismas dimensiones que B.
A \B es definido cuando B tiene la misma cantidad de filas que A. 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. ó ser multiplicado por. puede multiplicar.
En división de matrices. 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.s i n g u l a r . cualquier matriz. d e f i n i d a s e n los elementos individuales de A. si A es una matriz cuadrada no.Producto de una matriz por un vector
El producto de una matriz y un vector es un caso especial del producto matrizmatriz y naturalmente. como la matriz exponencial y la matriz
. También puede calcular funciones trascendentales de matrices. El resultado es obtenido directamente sin la computación del inverso. 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. Cada columna de X tiene. inv(A) * B y B * inv(A) respectivamente.
B/A esta definido en términos de A\B p o r B / A = ( A ' \B ' ) ' . el método usado es la Eliminación Gaussiana.é 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. esto es. al menos. k componentes diferentes de cero. se factoriza utilizando la ortogonalización de Householder con pivoteo de columnas.
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 .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. Ejemplo: z = x.5000 2. las operaciones de arreglos y las operaciones de matrices son iguales.calcula los valores propios de la matriz
4.logarítmica.0000 2.) antes de un operador indica una operación de arreglos elemento por elemento.* denota multiplicación de arreglos elemento por elemento.determinante trace .
Para suma y resta. Ejemplo: x = [1 2 3]. y = [4 5 6].
El símbolo ./B y A. *y resulta z = 4 10 18 Las expresiones A.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 .traza kron .\ y resulta z= 4. Un punto (.0000
. Estas operaciones matrices cuadradas. z = x. \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 .
Ejemplos: >> 1/2 ans = 0.2.2] a= 2 1 2
>> b=[1.5000
El símbolo .3] b= 1 2 3
>> 2\ 1 ans = 0.
4.^ denota exponenciación elemento por elemento.
>> a.>> a*b ??? Error using ==> * Inner matrix dimensions must agree.*b' ??? Error using ==> .*3 ans = 3 6 9
3333 0.
./3 ans = 0.
>> 2^a ??? Error using ==> ^ Matrix must be square.6667
>> a^b ??? Error using ==> ^ Matrix dimensions must agree.>> a/3 ans = 0.^b ans = 2 1 8
>> a^2 ??? Error using ==> ^ Matrix must be square.6667 0.6667 0.6667
>> a.3333 0.
4/3 a) format short 1.33333333333333 d) format long e 1.3333e+00 c) format long 1. El rango aproximado es: 1 0 ^-3 0 8 a 1 0 ^ 3 0 8 .^a ans = 4 2 4
Aproximadamente 16 dígitos significativos computadoras utilizando aritmética flotante IEEE.>> 2.33333333333333e00 e) format bank 1.
.3333 b) format short e 1.
M: los de comandos y las funciones.M. Los archivos de comandos. resolver problemas.1 Generalidades
Programar en MatLab es usar una serie de comandos que permitan realizar una tarea o función específica.4 5 6.7 8 9] define la matriz A y el siguiente comando A' calcula y presenta en pantalla la transpuesta de A.5.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. automatizan secuencias largas de comandos. son archivosordinarios de texto ASCII.1. PROGRAMANDO CON M ATLAB 5. Esto es así porque siempre tienen una extención de ". MATLAB simplemente ejecuta los comandos encontrados en dicho archivo. Ambos. 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.M se puede llamar a sí mismo recursivamente.4 5 6.
5. Los archivos de funciones. Un archivo . permiten añadir a MATLAB funciones adicionales expandiendo asi la capacidad de este programa.m" como la última parte de su nombre de archivo. Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo.M utilizando un editor de texto ó procesador de palabras. Estos pueden ser escritos uno por uno a través de la línea de comandos: >>A=[1 2 3.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 .M. Los comandos son utilizados para hacer análisis. comandos y funciones. Puedes crear archivos.1 Archivos -M: Comandos y Funciones
Archivos de Comandos Cuando un archivo de comandos es invocado. ó diseñar secuencias
. Un archivo . Hay dos tipos de archivos .
i = 1. % Para matrices. En una función. Para utilizar estos escriba demos en el "prompt" de MATLAB.e.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 . crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB. 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.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 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]. n] = size(x). Luego que la ejecución del archivo es completada. Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar comandos para hacer tareas más complicadas. 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. % Para vectores. while f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1).
Archivos de Funciones Un archivo . se deben de pasar los argumentos.
.. [m. las variables f y i permanecen en el espacio de trabajo. Las variables definidas y manipuladas dentro de la función son locales a esta y no operan globalmente en el espacio de trabajo. El archivo m e a n . y luego grafica estos. suponga que el archivo f i b o . a diferencia de un comando. i = i + 1. Por ejemplo. if m == 1 m = n. m contiene las instrucciones: function y = mean(x) % Valor medio. e s un archivo de función. i. end y = sum(x)/m. Los archivos de funciones se utilizan para extender a MATLAB.
(O si existen. el valor promedio es encontrado escribiendo m e a n ( z) que resultaría ans = 50
Veamos algunos detalles de m e a n . Utilizamos mean con una variable llamada z. Las variables m.) No es necesario asi gnar los enteros de 1 al 99 en la variable x. por ejemplo. entonces. en la línea de comandos se debe escribir el nombre del archivo: >>ejemplo x = 1 4 9 16 25
.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.m tipo comando. % indica que el resto de la línea es un comentario. La existencia de este archivo en el disco duro define una nueva función en MATLAB llamada m e a n . permanecen sin cambios. Sin esta línea sería un archivo de comando. n. Las primeras líneas documentan el archivo . los argumentos de entrada. 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. Para ejecutarlo. 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 . end x % Fin del archivo-m Este ejemplo es un archivo . for i=1:n x(i)=i^2.(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). e y son locales a mean y no existen en el espacio de trabajo. z = 1:99. m: La primera línea declara el nombre de la función. y los argumentos de salida. 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.
plot(x). >>A=[1 2 4 3 7 5 6 1 2 0 8 5]. p=0.6667
MatLab presenta las imágenes en una ventana de figuras. 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. se tiene:
P a r a e j e c u t a r l a f u n c i ó n . Al observar el contenido de dicha ventana luego de ejecutar la función promedio.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). Este vector debe ser definido previamente. >>promedio(A) ans = 3. La función promedio usa por parámetro un vector. end p=p/n. for i=1:n p=p+x(i).
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.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. 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 . todos ceros
.tangente asin . Puede agregársele archivos .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.coseno t a n .seno cos .coseno inverso a t a n .2 Otras funciones
Funciones Matemáticas Algunas funciones trigonométricas utilizadas por MATLAB son: sin .1.m i n c o r p o r a d o s ( b u i l t-in).Esta imagen es el resultado del comando plot(x) al ejecutar la función promedio.m definidos por el usuario almacenando los mismos en el directorio principal de MatLab. 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.n) FFT de n puntos muestrales ifft(x) Transformada inversa rápida de Fourier del vector x ifft(x.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. >>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.seno inverso a c o s .
Para obtener la factorización LU de A escribimos. También es la base para la solución de sistemas lineales.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
P r o d u c t o d e d o s matrices triangulares. Esta factorización se utiliza para obtener el inverso y el determinante. [L.
. U] = lu(A).
Las Funciones de norma. Un ejemplo de una función es el archivo -M l l a m a d o h u m p s .M l l a m a d o h u m p s .
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. que generan bases orto normales para el espacio nulo y rango de una matriz rectangular dada.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.rango rcond . de tipo
Ejemplo: El archivo. La función s v d ( A ) devuelve solamente los elementos de la diagonal de S.
Descomposición de Valores Singulares La descomposición de Valores Singulares es importante para el análisis de problemas que envuelvan matrices. V ] = s v d ( A ) produce los tres factores en la descomposición de valores singulares A = U*S*V'. norma F.norma 1. norma rank . Esta factorización también es la base para las funciones n u l l y orth . norma 2. que son los valores singulares de A. La función e i g ( A ) devuelve los valores propios de A en un vector columna. S . Las matrices U y V son ortogonales y la matriz S es diagonal. Esta factorización se utiliza para resolver sistemas lineales con más ecuaciones que desconocidas. rango y acondicionamiento asociadas son: c o n d . 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.número de condición en la norma 2 nor m . La asignación triple [ U .Factorización Ortogonal ó Factori z a c i ó n Q R . m contiene las siguientes instrucciones: function y = humps(x)
. La asignación [ X .M función. Se utiliza para matrices cuadradas ó rectangulares.
0.método Runge. 1) q= 29.1:. i.01) + 1..9). es una función que opera en otras funciones. plot(x.04) .e.^2 +.
Ecuaciones No -lineales y Funciones de Optimización Las funciones de funciones para ecuaciones no -lineales y optimización incluyen: fmin .y = 1 .mínimo restricciones) de una función multi .mínimo de una función de una variable fmins ./((x.variable (minimización no-l i n e a l sin
fzero .. ode45 . P o r e s t o q u a d se llama una función de función.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 .
. y para la gráfica de la función escribimos x = .c u a d r a d o s m í n i m o s n o-lineales
ode23 .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.01:2.3).6.Kutta de largo de paso variable que combina un método de orden dos con uno de orden tres.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 . 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'. 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.solución de ecuación no-l i n e a l l e a s t s q . / ( ( x..minimización con restricciones fsolve .^2 +. Para integrar la función definida por h u m p s .
xo).> 1.x]=ode23(`deriv'.3 Declaración function
Sintaxis: function nombre_1=nombr e_2(parametro_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 .x]=ode23(`edif'. xpunto(1)=x(1). .Ejemplo to=0.0 6
5.trace).1.v) function xpunto=vdpol(t.*(1 -x ( 2 ) . parametro_n) Ejemplos: function y=promedio(x) function i=inodal(t.x] =ode23(`deriv'.. tf=10.
5.to.to. ode45 trace => 0 .0 3 ode45 .to1. ode45
[t.xo).1).0e . xpunto(2)=x(1)..x) xpunto=zeros(2.resultados intermedios
default tol: ode23 -> 1. [t.to.xo. ^ 2 )-x(2)..tf.
[t.oe.tf.2 Operadores relacionales
Las funciones relacionales y lógicas en MATLAB son: any . a menos que una sea un escalar. | y ~ son los operadores de lógica "y". a menos que una de ellas sea un escalar.. Estas funciones se usan en cláusulas i f .condiciones lógicas find . end
5.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 . A y B deben de ser matrices con las mismas dimensiones. y ceros donde ambas tienen elementos cero. y ceros donde A tiene elementos diferentes de cero.
F u n c i ó n e s any. any(any(A)).verifica si existen variables isinf .Ejemplo: if n< maxn . Aplicando la función dos veces. siempre reduce la matriz a una condición escalar. . Por ejemplo: if all(A <. . A y B deben de ser matrices con las mismas dimensiones. all La función any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero.condiciones lógicas all . 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. 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.d e t e c t a i n f i n i t o s
. end Para argumentos matriciales. respectiv a m e n t e .3 Operadores lógicos
Los operadores &. y ceros donde A ó B sean cero.. "ó" y "no"
El resultado de C = A & B es una matriz cuyos elementos son unos donde A y B sean ambos distintos de cero.5) . El resultado de B = ~A es una matriz cuyos elementos son uno donde A tiene un elemento cero. if n>=0. de lo contrario devuelve 0. break. 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.
Termina filas 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. separador de declaraciones % Comentario de funciones y
Ejemplos: [6.0 9. argumentos declaraciones en líneas con declaraciones múltiples . end for i=1:n. Encierra argumentos de funciones en forma usual . a(i)=0. Separador de elementos de una matriz.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.finite . a(i)=0.4 ] sqrt(2) for i=1:n.0 3. end % inicia vector a en 0
El ciclo FOR permite que una instrucción.. Si n es menor de 1. 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 . declaración n.. . end
for variable=inicio:final declaración 1.5. P o r e j e m p l o . ó grupo de instrucciones. for i = 1:n. ó si tiene menos de n elementos..
. c(i)=a(i)*b(i). entonces un espacio adicional es localizado automáticamente a x cada vez que sea necesario. x(i) = 0.. declaración n. end asigna 0 a los primeros n elementos de x.1 Declaración FOR simple
Sintaxis for variable=incio:paso:final declar ación 1. . el ciclo sigue siendo válido pero MATLAB no ejecuta la instrucción intermedia.5. end o for i=1:n.5 Control de flujo 5. Si x no esta definido. end
Ejemplo: for i=1:n c(i)=a(i)*b(i).
j) = 1/(i+j.1:1 for t2=1: .1).0 . . Es importante que para cada for halla un e n d .. end
Ejemplo for i = 1:m for j = 1:n A(i. declaración n.5.2 Declaración FOR anidada .
Sintaxis for variable 1 = inicio1:paso1:fin1 for variable2 = inicio2:paso2:fin2 declaración 1..5.
. 1 : 0 y(1)=sin(t1*t2) end i=i+1. end end A La "A" al terminar el ciclo muestra en la pantalla el resultado final. en d end
Ejemplo y=1 for t1=0:0.
..t=t+dt.. ut=sin(wo*t). proposición 2..3 Declaración WHILE
Sintaxis: while expresion proposición 1. while prod(1:n) < 1. ó g r u p o d e i n s t r u c c i o n e s . end n
Un cálculo más práctico ilustrando el ciclo while es en el cómputo del exponencial de una matriz.0. n = n+1. t=0.0+e)>1. end
it=1.0. en la precisión finita la de computadora. .end
El ciclo WHILE permite a una instrucción .
La idea es sumar todos los términos necesarios hasta producir un resultado que. r e p e t i r s e u n número indefinido de veces.5. no cambie aunque más términos sean añadidos.0e100. llamado e x p m ( A ) en MATLAB. bajo el control de una condición lógica. while (1.0001 e=e/2.0. while it<=npts. wo=2. El siguiente ciclo while halla el primer entero n para el cual n! es un número de 100 digitos:
n = 1.0*pi*60. Para esto procedemos de la forma siguiente:
. Una posible definición de la función exponencial es mediante la serie:
expm(A) = I + A + A^2/2! + A^3/3! + . end
Ejemplos e=1.5.
w h i l e n o r m ( E + F.. else proposición 1. y k es el índice de este término.. 1) > 0 E = E + F. .. proposición m.4 Declaraciones IF.. proposición n.E. k = 1. F = eye(size(A)). end Aqui A es la matriz dada. F = A*F/k k = k+1..E = zeros(size(A)).
5. . end
. F es un término individual en la serie. ELSE.. end
b) if expresión proposición 1. ELSEIF y BREAK
Sintaxis a) if expresió n proposición 1. . E representa la suma parcial de la serie. proposición n.5.
. interrumpe con valor negativo `).0. else sum=sum+n/10. proposición m.. while i<=so n=input(`Introduzca n. if n<0. if n==0 sum=sum+n. end
sum=0... nmaxe=i. break. end
d) if expresión. end. . proposición n. . break. elseif proposición 1. else proposición 1. end end
. proposición r.. y=1. . end
Ejemplos if dv(i) > maxer maxer=dv(i).c) if expresión proposición 1.. elseif n<=10 sum=sum+n/2.
se divide entre dos. dependiendo del signo ó paridad de un entero n:
if n < 0 A = negative(n) else if rem(n. partiendo de un entero positivo n. break. se multiplica por tres y se le suma uno. 2) == 0 n = n/2 else n = 3*n+1 end end end
. que provee salidas abruptas de los ciclos. negativo termina. if n <= 0. 2) == 0 A = even(n) else A = odd(n) end
En el segundo. y el enunciado b r e a k .A continuación se muestra como un cálculo se puede dividir en tres casos. while 1 n = input('Entre n. si este es par. si es impar. Veamos:
% Problema "3n+1" clásico de la teoria de números. ¿Habrá algún entero para el cual el proceso nunca termine? Aquí se ilustran los enunciados while y i f . también se muestra la función input (en este caso es una entrada del teclado). end while n > 1 if rem(n. ').
6. columnas) Ejemplo >> A=[1 4 7 10.2 Cambio del orden de una matriz: reshape
Sintaxis: matriz_modificada = reshape(matriz_origin al.5.1 Creación de una matriz
Ejemplo >> A=[1 2 3.1) A = 5 2 3 4
.1)=A(1.6 Algebra Matricial 5. 7 8 9] A= 1 2 3 4 5 6 7 8 9
5. 2 5 8 11. 4 5 6.6. filas.2)+A(2. 3 6 9 12] A= 1 4 7 10 2 5 8 11 3 6 9 12
>> B=reshape(A. 3 4] A= 1 2 3 4
>> A(1.6) B= 1 3 5 7 9 11 2 4 6 8 10 12
5.2.6.3 Modificación individual de elementos
Ejemplos >> A=[1 2.
>> A(1.2)=A(2. 5 6 ] A= 1 2 3 4 5 6
. 3 4.1) A= 5 3 3 4
>> A(2. 3 4.4 Modificaciones adicionales de una matriz
Ejemplo >> A=[1 2.6. 5 6 ] A= 1 2 3 4 5 6
Conversión de una matriz en un vector >> A=[1 2.2)=10 A= 5 3 3 10
>> x=5:.1:2) primeras de A remplaza la cuarta y sexta columnas de A con las dos
.5) quinta columna de A A(1:5. 5:9) matriz de 3x4 que tiene los tres primeros filas y las columnas de 5 a 9 de A A(:.7500 1.1 : 1 x = 5 4 3 2 1
>> x=0:0.0000
Acceso a submatrices contiguas y no contigua s Ejemplos Si la matriz original A es de 10*10.5000 0. entonces: A(1:3.2500 0.25:1 x = 0 0.5) de A matriz de 3x1 que tiene los tres primeros elementos de la columna 5
A(1:3.[4 6])=B(:.:) primeras cinco filas de A A(:.
[3. 3 4] + i*[5 6 .0000 0.2:3. > > y = e x p ( .Matrices vacias La declaración x = [ ] asigna una matriz de dimensión 0x0 a x
Para la matriz A considerada previamente A(:.0000 + 8. >> [x.4000 0.3096 0. 3+7i 4+8i] A = 1.0000 + 7.0000i 2.5 ].2000 2.0:0.6000 0.4000 2.1231 0.4000 1.:)=[ ] borra filas 3 y 5 de A
Declaración de matrices complejas A=[1 2.0000i
Generación de tablas >> x=(0.1610 0.0000 + 5.0000 + 6. 3 4] + i*[5 6 .2018 0.0000 2.y] ans = Columns 1 through 7 0 0.x).6000 0.5])=[ ] borra columnas 3 y 5 de A A([3.0383 Columns 15 through 16 2.3223 0. 7 8] o A=[1+5i 2+6i.2610 0.8000 3.0896 0.0000i 3.0000 1.6000 1.8000 2.2430 0.0).0613 0.2000 0.2000 0 0.0000i 4. 7 8] o A=[1 2.1627 0.0204 0.8000 1.3099 0.0070
.*sin(x).2807 C ol um ns 8 thr ough 14 1.
v . 1 0 0.0 1 0] A= 0 7 -6 1 0 0 0 1 0
>> eig(A) ans = -3 .0000 1. 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 .D e t e r m i n a n t e d e A: det(A) >> A=[1 2 3.4 5 6. 0 0 0 0 2.valores característicos
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 .0000 U = 1.0000 0 0 0 7.0000 0 1.0000
.8007 2.8571
.2686 . 1 0 0.9435 -0.8729 0. 8 0 4 4 0. 0 0 0 0 0 0 0 2.2686 5.0000 0 0 0 1.0 .5774 d= -3 .0000 .>> [v d]=eig(A) v= 0.0000 0 0 0.Factori z a c i ó n L U d e A : l u ( A ) >> [L U]=lu(A) L= 0 1.1048 -0.5774 -0 .1429 1.4 . 5 7 7 4 0.2182 0. 3 5 1 0
.0 1 0] A= 0 7 -6 1 0 0 0 1 0
>> expm(A) ans = 5. 3 1 4 5 .0757 . 6 1 1 5 2.6.2541 .1 3 . 4 3 6 4 0 .2541 11.6.0.0000 0 0 0 0.
0000 .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. 0 0 0 0 2.0000 6.. 1 6 6 7 .I n v e r s a d e A: inv(A) >> inv(A) ans = 0 1.0000 1.7. 1 6 6 7 0 1 .0000
.0000 -0 .0000 .0000 0 0 0 1.0000 0.
7. lectura/escritura normal [fid.'precision') registros `char' o `uchar' `short' o `long' `float' o `double'
Lee un archivo abierto con una precisión indicada Sintaxis fread(fid.7.5.registros.'r ' )
5. `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. error 0. mensaje = fopen(`archivo.7 Archivos de E/S 5.cierra todos los archivos abiertos
5.1 Declaración fopen
Sintaxis id = fopen(`nombre.2 Declaración fclose
Sintaxis status = fclose(fid) o status = fclose (`all') .7.dat'.dat'.dat'.'r') fid = -1.
7 f\ n'.10.5 Declaración fprintf
Salida con formato Ejemplos: fprintf(fid.número decimal % f . .0. global ka. . Sintaxis: global variable1.formato g
5.7. f p r i n t f ( f i d .
.A.'titulo \ n').10.[1:1]).. Forma to %s .x(2)+kb*x(1)*x(2)].02 [t. variable_N
Ejemplo function x=ccdifs(t....kb ka=0.punto flotante % g .01 kb=0. .x]=ode23('ccdifs'.7.4 Declaración fwrite Sintaxis
fwrite(fid. y).'float')
5.x) global ka. de las cuales una sola copia es compartida por el programa principal y sus funciones.ka*x(1)*x(2).Ejemplo: A = fread(fid.'short')
5.. ' % f % 1 2 .kb x p = [ x ( 1 ).8 Variables globales
Son variables.c a d e n a d e c i m a l %d .
100). el interpretador de MATLAB irá aumentando el tamaño de "y" por uno cada vez que se itera en el ciclo.5. y = sin(t). for i = 1:100 y(i) = det(X^i). end Una versión vectorizada del mismo código es t = 0:. while)
Para que los programas en MATLAB ejecuten más rá p i d o . mientras que el segundo tomó 0. for t=0:dt:per f(i)=sin(wo*t).
V e c t o r e s P r e. d e b e m o s v e c t o r i z a r estos siempre que sea posible. end ó t=0:dt:per.01:10. Permite incrementar la velocidad de proceso de MATLAB Sintaxis variable=inicio:incremento:final Ejemplo i=1. el primer ejemplo tomó 15 segundos. Por ejemplo. debemos convertir los ciclos for y while a operaciones de vectores ó de matrices. fi=sin(wo*t).9 Vectorización de algoritmos y estructuras (for. wo=2*pi*fo. y(i) = sin(t). Esto es. podemos hacer que los ciclos for vayan más rápido pre -asignando cualquier vector en el cual el resultado de salida sea guardado.A s i g n a d o s Si no podemos vectorizar un pedazo de código. un modo de calcular la función "sin" para 1001 números entre 1 y 10 es: i = 0. for t = 0:.6 segundos. end Si no pre -asignamos el vector "y".01:10 i = i + 1. i= i+1. Veamos un ejemplo: y = zeros (1.
. En una computadora lenta.
crea una gráfica de vectores ó columnas de matrices..añade una cadena de texto en una localización específica g t e x t . s e m i l o g y ..y. xn.5.'tipo_línea_n') Si y es un vector.'tipo_línea_1'. líneas entre cortadas y texto a tus gráficas utilizando: tittle . encabezamien tos de ejes.1 Funciones elementales para graficar
p l o t .añade encabezamiento al eje-x ylabel .a ñ a d e t í t u l o a l a g r á f i c a xlabel .y2.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 .'tipo_línea_2'.x2.10 Gráficas en Dos Dimensiones 5.crea una gráfica utilizando una escala logarítmica para el eje-x y u n a escala lineal para el eje-y .a ñade texto a la gráfica utilizando el ratón grid . plot(x.'tipo_línea') d) plot(x1.y) c) plot(x. Puedes añadir títulos. loglog . y) produce una gráfica de y versus x .2 Creando una gráfica
Sintaxis: a) plot(y) b) plot(x. semi l o g x .crea líneas entrecortadas
5. .10.y1. 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.crea una gráfica utilizando una escala logarítmica para el eje -y y u n a escala lineal para el eje-x .
. . Si especifica dos vectores como argumentos.añade encabezamiento al eje-y text .10.yn.
Los pares diferentes pueden ser de dimensiones diferentes.x=sin(t). si X y Y son ambas matrices del mismo tamaño..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 . Y2.'g--'). .s e g m e n t o
t=0:pi/200:2*pi. generando líneas múltiples.5).
plot (X1. xlabel('x=sin(t)'). Y) grafica las columnas de X versus las columnas de Y. X2.x. plot(X.) Cada par X -Y es graficado.Y) grafica las filas ó columnas de Y versus el vector x.y1=sin(t+0. Y1.sólido : punteado -. punto o circulo x marca + mas * asterisco .y) grafica cada fila ó columna de X versus el vector y. ylabel('y=sin(t+)')
5. donde m es el número de filas en Y.. plot(X. plot(x. E l e j e -x es encabezado por el vector índice de fila. .10. si X es una matriz y y es un vector. plot(x.y2.3 Graficando Matrices
plot(Y) .b azul w blanco k negro Símbolo Estilo de línea .y2=sin(t+1.'r-'. 1:m. y x es un vector..0). entonces: si Y es una matriz. s e g m e n t o p u n t o -. Si plot es usado con dos argumentos y si X ó Y tienen más de una fila ó columna.
.. title('Angulo difuso').y1.
Ahora la instrucción fplot('fofx'. 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. Una de estas formas es evaluar la función en miles de puntos en el intervalo de interés.4 Importando Datos
Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load . p lot(x.
5. [0 1]) prod u c e l a g r á f i c a :
P a r a e v a l u a r u n a f u n c i ó n .10.10. 0 x 1.5 Graficando Funciones Matemáticas
Hay diferen tes formas de graficar funciones y = f(x). La siguiente función oscila infinitamente rápido en el intervalo. 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. Este archivo se guarda con el nombre de f o f x . Podemos gráficarla como sigue: x = (0:1/2000:1)'.5. m. function y = fofx(x) y = cos(tan(pi*x)). El siguiente archivo -M de tipo función define la función anterior como fofx.
hold on. xn. 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.':').y.3).y) b) loglog(x.10.')
loglog Sintaxis a) loglog(x.y1'.Aquí.b.'tipo_línea_n') Ejemplo x = l o g s p a c e (.. Es decir.n) a. semilog(y) Sintaxis a) semilogx(x.exp(x)) donde l o g s p a c e tiene las formas: l o g s pa c e ( a . 10^a y 10^b
semilog(x).'-. semilogy(x.y) b) semilogy(x.
5.. loglog(x.b exponentes de los límites.10.'tipo_línea_1'.plot(yz. b ) logspace(a.'tipo_línea') c)loglog(x1'.1..^x)
. plot(y'.1:20.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).yn.y) Ejemplo x=0:..
y. b) bar(x.5:2*pi. fill(y.yb]=bar(y).1).y). plot(vt) subplot(2. c) [xb. subplot(2.4) plot(ikd)
bar Crea una gráfica de ba r r a s Sintaxis: a) bar(y). 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. => plot(xb.yn.n.cn) Ejemplo t=0:0. ikd=smvars(:.fill Dibuja el area interior de una curva en determinado color Sinta x i s: a) fill(x. fill(t. x=sin(t).'r')
subplot Dibuja la pantalla en mxn subdivisioens. rang=smvars(:.2).'c1'.xn..yb) d) [xb.p) Ejemplo: vt=smvars(:. de izquierda a derecha. x=sin(t). y=cos(t). numeradas por el parámetro p.1). => plot(xb.x.2.x.5:2*pi.3) plot(rang) subplot(2.y1. it=smvars(:.yb]=bar(x.2) plot(it) suplot(2.3)..yb)
.4).'c') b) fill(x1.'b') t=0:0..2.2..y).2.
x.[ -2 2 ] ) function y=func(x) y=200*sin(x(:)). [inicio.final].radio) b) polar(ángulo.01:2*pi. únicamente sin líneas in ternas
fplot Dibuja la gráfica de una función Sintaxis: a) fplot(`función'.3 0 3 0 ] .2:2.sin(5*t))
. [inicio. [inicio.n.2.[0.final]) => plot(x. 2 )
polar Dibujo en coordenadas polares Sintaxis: a) polar(ángulo. [inicio. radio./x(:). fplot(`func'.ángulo entre segmentos sucesivos de la función
Ejemplo fplot(`sin'.8:0.número de puntos á n gulo .y) n .[.final]) b) fplot(`función'. polar(t.y]=fplot(`función'.8 b a r ( x . 6 0 .Ejemplo x= .*x) Nota: Los valores de x deben estar igualmente espaciados
stairs Igual que b a r.ángulo) d) [x. e x p (.final].n) c) fplot(`función'. `tipo_línea')
Ejemplo t=0:0.pi]) fplot(`tanh'.
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. y ) => sombreado vertical
5.z) c) plot3(x.y1.05:10*pi. x=sin(t)..x.z. y=cos(t).z) b) plot3(x.y.xn.. x .'tipo_línea') Ejemplo t=0:0. Nota: 130 es opcional el rango 0.y.n)
.11 Gráficos en 3 dimensiones
plot3 Dibuja líneas y puntos en 3 dimensiones Sintaxis: a) plot3(x.t)
contour.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..z1..'tipo_línea) d) plot3(x1.zn.x) => sombreado horizontal f i l l ( y . plot3(sin(t). colormap(hot(130)).cos(t).'tipo_línea'.05:2*pi. .yn..255 fill(y..
.8. [x..y).n)
E j e mplo contour3(peaks..z) d) contour(x.5..y.c) contour(x.. -2 < = y < = 2 [ X .y) b) [X..y.30)
contour3 Igual función de contour en 3 dimensiones Sintaxis: a) contour3(z) b) contour3(z. y=x. Evalue y dibuje la funcion z=x*exp( -x^2 -y^2) sobre el rango -2 < = x < = 2 .n)
Ejemplo contour(peeks) contour(peeks. Y ] = meshgrid(-2 : 2 : 2 ) . * e x p (.^2)+0.Y] = meshgrid(x./R. z = x .y)
Ejemplo.30)
meshgrid Genera arreglos X y Y para dibujos en 3 dimensiones Sintaxis: a) [X. mesh(z)
.z) d) contour3(x.z. .y.x ^ 2 -y^2).n) c) contour3(x. mesh(Z)
x= .001.y. R=sqrt(x..Y] = meshgrid(x) => meshgrid(x.y]=meshgrid(x.z..^2+y. z=sin(R).8:0.
y.y.z) c) mesh(x.y.y).z) e) surf(z.) => mismo que mesh
Ejemplo: [x. z=peaks(x.c) b) surf(x. Sintaxis: a) mesh(x.y)..c) f) surf(z) g) surfc(. crando una perspectiva del dibujo.y.z) c) surf(x. meshz(x.y] = meshgrid(-3:2:3).y.. meshc(x. meshc y meshz Dibujan una superficie de malla tridimensional..z.) => mismo que mesh h) meshc(..y] = meshgrid(-3:2:3).c) d) mesh(x. sobre y bajo el plano de referencia..mesh.c) b) mesh(x.y.z)
surf..c) f) mesh(z) g) meshc(.z.z. surfc Crean superficies sombreadas en 3 dimensiones Sintaxis: a) surf(x.z) [x. z=peaks(x.y.c) d) surf(x.z.y.z) e) mesh(z.) => misma S i n t a x i s que surf
. mesh(x. .y]=meshgrid(. z ] = s p h e r e ( n ) .2:3).y.y.z.y.z.y. c = h a d a m a r d ( 2 ^ k ) .y.Ejemplo [x.y. surf(x.número de meridianos
Ejemplo [x. n = 2 ^ k -1 .z) k = 5 .3:. z=peaks(x.z]=sphere(20).z) d) surfl(x.s) c) surfl(x. surf(x.dirección de la luz
.y. 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. [ 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 . 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.y).c).z] = sphere(n) n .s) s . .
shading flat .y).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 . añadiendo: shading interp y posteriormente: colormap(gray).y. xmax. zmax]) c) axis(`auto') d) axis(`ij') e) axis(`xy') f) axis(`square') g) axis(`equal' ) h) axis(`off') 70
.y]=meshgrid(.3:0.
axis Escala y apariencia de los ejes Sintaxis: a) axis([xmin. z=peaks(x. ymax]) b) axis([xmin.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.01:3). surfl(x. xmax. ymin. ymin. zmin.Ejemplo [x. ymax.
.n) ..zn)
Ejemplo colormap(hot) fill3(rand(3.m a t r i z d e m x n
Ejemplo fill3(rand(20). a x i s ( ` i j ' ) dibuja nuevamente la gráfica. rand(3. rand(3. axis(`xy') regresa la forma de ejes cartesianos que existe por defecto .y1.3 3 . rand(3.. 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 . El eje y es vertical y es numerado de arriba hacia abajo.'c') b) fill3(x1..xn.. rand(20). 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.z.4)..matriz de nxn b) rnad(m.y. El eje x es horizontal y se numera de izquierda a derecha.4). rand(20).3 3 .4). axis([ .4))
fill3 colorea polígonos de 3 dimensiones a) fill3(x.z1.yn. rand(20))
.i) axis(`on') donde: axis(`auto') realiza el escalamiento de ejes a su modo de autoescalamiento por defecto. 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: .
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. etc) Sintaxis a) load archivo b) l o a d a r c h i v o . brighten(0. 6 ) ó brighten(. e x t donde: ext .. datos..e x t e n s i ó n
image crea un objeto imagen y lo presenta Sintaxis: a) image(x) b) image(x.load carga en el area de trabajo un archivo (imagen.alfa) donde: 0<alfa<1 más brillante -1<alfa<0 más obscuro Del ejemplo anterior: .y. 6 )
.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.0 . En b) . sonido.
L u e g o q u e e s t e programa sea completado. Si la extención no se especifica. También puedes hacer que tus programas manipulen datos directamente en archivos. Por ejemplo.m automáticamente. 73
.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.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 .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. type.1 Manipulación de Archivos de Disco
Algunos comandos utilizados para la manipulación de archivos de disco son dir.
5.m.12 Archivos de disco 5.12. plot(t. el sistema operativo devuelve el control a MATLAB. ! edt darwin. Para más información utiliza la Guía de Referencia de MATLAB ó el comando help. MATLAB utiliza .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.Fs) donde: Fs frecuencia especificada en Hz
Ejemplo load train sound(y.12. El comando diary c r e a un diario de tu sesión de MATLAB en un archivo de disco. Similarmente.y)
5.12.MAT. puedes exportar datos de MATLAB a otros programas.
5.1 ) / F s .Fs) t=(0:length(y). delete y c d .
. contour3. f il l .el cúal es el formato de archivo utilizado por MATLAB. all. sphere. subplot. contour. imag. reshape. ifft. shading (flat interp faceted). 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. peaks. pascal. bar. surfl. f o p e n . hold. tril. rand. e xp m. toplitz. real. ylabel. hadamard. grid. f f t n . surf. f u n ct io n . f cl o s e. m e s h . fplot. plot. meshc. gtext. surfc. ode23. conj. colormap. reshape. ode45. f il l 3 . rot90.13 INDICE ALFABETICO
axis. semilogy. e i g . sound. xlabel. meshz. if.
5. d ia g . while. size. f f t . poly. fwrite. brighten. plot3. for. d et . zeros. text. clf. break. ifftn. stairs. meshgrid. l o a d . l u . semilog. fread. polar. i n v . l o g l o g . any. e lse . image. triu. e lse i f. title.
tal como. 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. Simulink tiene dos fases de uso: la definición del modelo y el análisis del modelo. sino un anexo a él. 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. linealización y determinar el punto de equilibrio de un modelo previamente definido. 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. Como una extensión de MatLab. 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. 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. En esta nueva ventana se colocarán todos los bloques interconectados que formarán el sistema deseado . 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. En estas ventanas se puede crear y editar un modelo gráficamente usando el ratón. Esto significa que se puede modelar sistemas continuos en el tiempo.
. integradores. mientras conserva toda la funcionalidad de propósito g e n e r a l d e M a t L a b . bloques de ganancia o servomotores. discretos en el tiempo o sistemas híbridos. 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. Simulink adiciona muchas características específicas a los sistemas dinámicos.6. SIMULINK
Simulink es una herramienta para el modelaje. La definición del modelo significa construir el modelo a partir de elementos básicos construidos previamente. 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. Para simplificar la definición del modelo Simulink usa diferentes clases de ventanas llamadas ventanas de diagramas de bloques. inclusive aquellos con elementos no lineales y aquellos que hacen uso de tiempos continuos y discretos. Simulink usa un ambiente gráfico lo que hace sencillo la creación de los modelos de sistemas. La ventana principal de Simulink se activa escribiendo simulink en la línea de comandos de MatLab. El análisis del modelo significa realizar la simulación.
m.m creado. al generador seno se le puede modificar su amplitud. 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. Para ejecutar el programa se usa la opción simulation en el menú de la ventana del archivo . 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. El contenido de dicho bloque se obtiene haciendo doble click sobre él. frecuencia y fase. se puede observar la respuesta al hacer doble click en el osciloscopio.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". A continuación se muestra el bloque PID:
. Existen numerosos bloques y funciones incorporados en las librerías de simulink que pueden ser empleados para simular cualquier sistema.m creado mediante simulink. Este sistema se almacena como un archivo . En este submenú está la opción start que permite ejecutar el programa. tal como se muestra a continuación: Al ejecutar el programa seno. Por ejemplo. Por ejemplo. Haciendo doble click so bre cada elemento del sistema se pueden ver y modificar sus características.
Este puede ser útil para varios propósitos: puede ser usado para control en tiempo real. El acelerador trabaja generando y compila n d o u n c ó d i g o . etc. control de procesos. equipos médicos. El código-C es diseñado tal que puede ser ejecutado en tiempo real. El acelerador puede ser usado sobre modelos continuos.C para un modelo dado. 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. 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. discretos en el tiempo y híbridos. sistemas automotores.6. Una vez se completa la compilación.1 Acelerador de Simulink
Para incrementar la velocidad de Simulink se debe instalar el acelerador "Accelerator".2 Generador de código-C en Simulink
Una vez se ha creado un modelo dinámico en Simulink. simulación en tiempo real o simulación acelerada en tiempo no real. 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.
. No requiere ser escrito manualmente por un programador pues es creado a nivel de diagramas de bloques en Simulink. El propósito del acelerador es aumentar la velocidad de simulació n . PC o microprocesadores.
6. robótica. El código generado puede correr sobre un amplio rango de hardware ubicado en estaciones de trabajo. se puede invocar el generador de código-C que permite convertir el diagrama de bloques implementado en un código C. Sus aplicaciones pueden ser control de movimiento. 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.
On -l i n e d o c u m e n t a t i o n .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 . dir .L o c a t e f u n c t i o n s a n d f i l e s .
. clear .Run demos.Get environment value.Delete file. diary .C l e a r variables and functions from memory. size . MAT .Retrieve variables from disk. COMANDOS DE MATLAB 7. load .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 . type .Control MATLAB's search path. getenv . path .List current variables.Keyword search through the HELP entries.a n d M E X -files. d emo .L i s t M-f i l e .Size of matrix. ! .
Working with files and the operating system: cd .Display matrix or text. pack . whos . which .Execute operating system command & return result. long form. disp .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 . length . lookfor .Length of vector. delete .
Managing variables and the workspace: who .Save text of MATLAB session. unix .Change current working directory. save .List current variables.Directory listing of M-.Execute operating system command.7.Directory l i s t i n g . what .
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 .M A T L A B . more .* Array multiplication arith ^ Matrix power arith .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 .Send cursor home./ Array division slash
. format .MATLAB server host identificati o n n u m b e r .S e t c o m m a n d l i n e e d it/recall facility parameters.
General information: info . matlabrc .Clear command window. 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 .Master startup M-f i l e . whatsnew .Set output format. hostid .Information about new features not yet documented. ver .
Starting and quitting from MATLAB: quit .^ Array power arith \ Backslash or left division slash / Slash or right division slash .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 .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 .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 .
Operators and special characters: Char Name HELP topic + Plus arith .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 . I n c .Minus arith * Matrix multiplication arith . subscribe . echo . home .T e r m i n a t e MATLAB. clc . S I M U L I N K . startup .
True for global variables.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 .kron Kronecker tensor product kron : Colon colon ( ) Parentheses paren [ ] Brackets paren . Comma punct .T r u e f o r f i n i t e e l e m e n t s . issparse . Parent directory punct . any .F i n d i n d i c e s o f n o n . isglobal . 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 . a l l .True for sparse matrix. isnan . isempty ..Number.True if all elements of vector are true..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 .T r u e f o r e m p t y m a t r i x .T r u e f o r t e x t s t r i n g .zero elements.A.True for infinite elements.T r u e f o r N o t. isstr . Continuation punct . Decimal point p u n c t . finite .. isinf .
. f i n d .
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 .Convolution of two polynomials.G e n e r a t e A .Delete inputs.A u g m e n t s t a t e s a s o u t p u t s .Select subsystem from larger system. parallel . reg . ssselect .P a r t i a l f r a c t i o n e x p a n s i o n . D f o r a s e c o n d-order system. rmodel . b l k b u i l d . dreg . poly . connect . series . drmodel . outputs.C l o s e l o o p s o f s y s t e m .F e e d b a c k s y s t e m c o n n e c t i o n . destim . d2cm . c2dt .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 . ord2 . pade . or states from model.Discrete to continuous. residue . C . B .Continuous to discrete .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 .
Model conversions>: c2d . augstate .Append system dynamics. feedback . ssdelete .D i s c r e t e t o c o n t i n u o u s. cloop .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 . conv .Build state -space system from block diagram.time conversion with method.S e r i e s s y s t e m c o n n e c t i o n .time conversion.Pade approximation to time delay.t i m e c o n v e r s i o n .Form discrete controller/estimator from gain matrices. c2dm .Generate random continuous mod e l .
.Continuous to discrete. d2c .Generate random discrete model.Block diagram modeling. estim .Roots to polynomial conversion.P a r a l l e l s y s t e m c o n n e c t i o n .Form continuous state estimator from gain matrix.time conversion w i t h m e t h o d .
Z e r o. ctrbf .Balanced realization.) gain. damp . dsort . tf2zp . ddamp .State .ss2tf . ddcgain .S t a t e .Controllability staircase form.Z e r o.zero cancellation.space to transfer function conversion.Discrete steady state (D.
. ctrb . dbalreal . tf2ss .Transfer function to state.
Model properties : covar .C.s p a c e c o n v e r s i o n .C. zp2tf . ss2ss .Model order reducti o n .Observability staircase form. esort .C o n t r o l l a b i l ity matrix.) gain.C a n o n i c a l f o r m .Transfer function to zero -p o l e c o n v e r s i o n .
M o d e l r e a l i z a t i o n s: canon .
Model reduction : balreal .Continuous covariance response to white noise.Eigenvalues and eigenvectors. minreal .Continuous steady state (D.Sort continuous eigenvalues by real part. obsvf .space to zero -pole conversion. dgram .Apply similarity transform.Damping factors and natural frequencies. dcovar .Discrete controllability and observability gramians. modred .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 . dmodred .Discrete covariance response to white noise.pole to state.Discrete model order reduction. zp2ss . eig .Discrete balanced realization.pole to transfer function conversion.s p a c e c o n v e r s i o n . dcgain .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.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 . ss2zp .
Low level frequency response f u n c t i o n .T r a n s m i s s i o n z e r o s . stepfun .
. initial .Discrete singular value frequency plot.Z.Continuous initial condition response.
Frequency response: bode . freqs .gram . o b sv .Discrete Nichols plo t.Low level time response function.C o n t i n u o u s s i m u l ation to arbitrary inputs.Discrete initial condition response. nichols . dnyquist . dinitial .Observability matrix. fbode .Discrete Bode plot (frequency response). margin . ltitr . printsys .Discrete step response. dnichols . 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 .P o l y n o m i a l r o o t s . dstep .S t e p f u n c t i o n . step .Impulse response.Discrete Nyquist plot.Nichols plot. filter .Controllability and observability gramians.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 .Step response. tzero2 .Laplace .Display system in formatted form.transform simulation.S I S O z . impulse .transform frequency response. roots . lsim .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 . dsigma .Discrete simulation to arbitrary inputs.
Time response: dimpulse .Discrete unit sample response. dbode . tzero . dlsim .Gain and phase margins.Bode plot (frequency response). ltifr .
L i n e a r.
Gain selection: acker .Linear quadratic regulator design using Schur method.Interactive root locus gain determina tion.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 .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 .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 .Lyapunov equa tion solution using diagonalization.L i n e a r-quadratic estimator design.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 . zgrid .Algebraic Riccati equation solution.SISO pole placement. sigma .D r a w d i s c r e t e r o o t l o c u s w n .G e n e r a l l i n e a r-quadratic estimator design.E v a n s r o o t-locus. place . lqr .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 .P o l e.Discrete estimator design from continuous cost function. lyap .Linear quadratic estimator design using Schur method. rlocfind . dlqe . lqry .zero map.quadratic regulator design.General discrete linear quad ratic estimator design. rlocus . lyap2 .Discrete Lyapunov equation solution. l q e w . lqed .
. lqe2 .Singular value frequency plot.Discrete regulator design from continuous cost function.P o l e p l a c e m e n t .
Equation solution: are .Nyquist plot. dlyap .
R o o t l o c u s: pzmap . z g r i d . dlqr . d l q e w . z g r i d . nyquist . lqr2 . lqrd .ngrid . sgrid . lqe . dlqry .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 .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 .
c. 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].B. » impulse(y.C.6 1 0 0 0 1 0
.B.b.den]=ss2tf(a.b. Se deben especificar los vectores para almacenar los coeficientes del polinomio numerador y del denominador. » u=[1 6 11 6].u) del numerador y
Si por el contrario el sistema se defin e en MatLab por las ecuaciones de estado: » [A.2500 1.den]=ss2tf(a.C.0000 0.Se puede hacer la conversión de una ecuación de estado a su equivalente función de transferencia.d)
Ejemplo >>[num. Su Sintaxis e s : [num.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.u) A= -6 .D]=tf2ss(y.D)
Ejemplo >>step(a.c. mediante el comando ss2tf.c.1 1 .d) num = 0 0 1.0000 den = 1.b.d)
B.B= 1 0 0 C= 1 5 4 D = 0 » impulse(A.C. MatLab presenta la respuesta en el tiempo en la ventana de figuras:
MatLab permite. >>[Y.T) usando las matrices de estado o lsim(NUM. 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. además de obtener la respuesta en el tiempo para una entrada escalón o impulso. T es el vector de tiempo variando desde 0 hasta 10 s e g .1:10 >>U=T. también obtener respuesta para otras entradas tal como rampas o sinusoides. La Sintaxis de este comando es: lsim(A.T) usando la función de transferencia.DEN.B.Y. 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.U. donde u se define como una función del tiempo. En la variable Y se almacena la salida del sistema en función del tiempo T.D.T).T.X]=lsim(NUM. obteniéndose:
. >>NUM=[1]. Para obtener la respuesta en el tiempo para una función rampa.C.DEN.25 1].U. >>DEN=[1 0. >>PLOT(T. se define U de la siguiente forma: >>T=0:0. El comando lsim permite obtener la respuesta en el tiempo para un sistema con una entrada u.U.U)
Al hacer U=T se está definiendo la función rampa.
den). se definen dos vectores cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S. de Nyquist y de Nichols.u)
. 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.25 1]. >>u=[1 0. >>bode(y. 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.8. Se define la función de transferencia:
Ejemplo >>y=[1].
el incremento y la frecuencia final. es a través de las ecuaciones de estado representadas por las matrices de estado (A.1:100. >>nichols(y.C.C.B.D. cuya Sintaxis es idéntica a la del comando bode: nichols(A.u)
.C. se emplea un vector de frecuencias en el que se especifica la frecuencia inicial.B.u. >>u=[0. 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.D).Otro formato mediante el cual el comando bode presenta el diagrama de bode.04 1 0].B. Por ejemplo: >>W=0:0.D). >>bode(y.W) si se emplea la función de transferencia.W) Este comando muestra el diagrama de Bode entre 0 y 100 rad/s.W) si se emplean las matrices de estado o nichols(num. den. Para obtener el diagrama de Nichols se utiliza el comando nichols. Para especificar un rango deseado de frecuencias en las cuales se desea obtener el diagrama de Bode. Su Sintaxis e s : bode(A.
Si se define y como el vector de los coeficientes del polinomio del numerador y u como el deldenominador: >>y=[0 0 100].
>>nyquist(y.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:
. cuya Sintaxis es idéntica a la del comando bode y nichols: nyquist(A.den.W) si se emplea la función de transferencia.B.C. Si se define y como el vector de los coeficientes del polinomio del numerador y u como el del denominador: >>y=[1].D.W) si se emplean las matrices de estado o nyquist(num. >>u=[1 6 5]. Para obtenerlo se utiliza el comando nyquist.Otra herramienta de análisis en el dominio en la frecuencia que ofrece MatLab es el diagrama de Nyquist.
Wcg.Para obtener el margen de ganancia.den)
.D) retorna los valores de margen de ganancia (Gm).3114 >>margin(num.Pm.Pm.Pm. >>den=[1 0. B . D E N ) cuando se trabaja con la función de transferencia. [Gm.PHASE.Wcp] = MARGIN(MAG.C.D).25 1]. M A R G I N ( A . C .Pm. >>[Gm.Wcp] =margin(num.Wcg. [Gm.C.Wcg.den) Gm = Inf Pm = 4.Wcp] = MARGIN(A. Las diferentes formas de utilizar este comando son: [Gm. el margen de fase. 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 .7487 Wcg = NaN Wcp = 3. fase y frecuencia del diagrama de Bode.W) toma los vectores de magnitud.Wcg. la frecuencia de cruce de ganancia y la frecuencia de cruce de fase MatLab dispone del comando margin. margen de fase (Pm).
>>num=10. frecuencia de cruce de ganancia (Wcg) y la frecuencia de cruce de fase (Wcp) cuando se trabaja con las matrices de estado (A.Wcp] = MA R G I N ( N U M .B.B.
la localización de las raíces. MatLab g enerará automáticamente un conjunto de valores de la ganancia K. estas pueden además ser complejas.D) son equivalentes a las Sintaxis anteriores pero empleando las matrices de estado para hallar el lugar de las raíces.B. o [R. la cual es de la forma:
Para obtener el lugar de las raíces. 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).K) 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. Las diferentes Sintaxis para utilizar este comando son: r l o c u s ( N U M .B. MatLab dispone del comando rlocus. Por ejemplo de 0 a 100 co n incrementos de 10: k=0:10:100 R = rlocus(NUM.DEN. de longitud igual al número de elementos de K. R tendrá tantas columnas como raíces existan. rlocus(A.K). rlocus(NUM.C.DEN) no dibuja el lugar de las raíces pero almacena en la matriz R.8.C.K]=rlocus(A.C.
. R=rlocus(A.B.D).3 Lugar de las raíces
Se debe determinar su ecuación característica.D.DEN.K] = rlocus(NUM.
4 6 2 5 -0 . 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.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.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. Su Sintaxis e s : [K. Por medio del curso en el lugar de las raíces se selecciona una localización. 2 6 8 8 . Este debe ser el punto o los puntos en donde se desea tomar el valor de k.6655 poles = -2 .2.0.0]. >>den=[1. las Sintaxis para el comando rlocfind es: [ K . MatLa b retorna el valor de k para esta localización y los polos asociados a esta ganancia.0 . d e n ) Select a point in the graphics window selected_point = -2 . 0 1 3 2 e n l a p a r t e i m a g i n a r i a . 2 6 8 8 + 0 . 7 7 7 3 i -0 . 5 5 5 i .C. >>rlocus(num. La nueva Sintaxis es: [K. P O L E S ] = r l o c f i n d ( A .
Cuando se trabaja con las matrices de estado.P) o [K.POLES] = rlocfind(num. 0 1 3 2 i k = 1.POLES] = rlocfind(A. 4 6 2 3 .B. cuando se trabaja con la función de transferencia.4623 en la parte real y . 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. Por ejemplo: P=3+0i o P=1 -0 .
.3. D ) .den) MatLab dispone del comando rlocfind que permite determinar los polos del sistema para una valor dete rminado de k. C . B .1].p o l e s ] = r l o c f i n d ( n u m . » [k.D.0.0 .POLES] = rlocfind(num.P) P debe definirse previamente indicando la parte real e imaginaria del mismo.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. En este caso el punto seleccionado fue 2.den.
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. PI. mientras que C(S) es la función de transferencia del controlador. Por ejemplo un G(S) puede ser:
. Para el caso del controlador proporcional. C(S)=Kp.4 Controladores PID
Para implementar los diferentes tipos de controladores (P. 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. 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.8. que es una constante o valor es c a l a r . Si dicho sistema es de la forma:
donde G(S) es la función de transferencia de la planta o proceso. Los coeficientes decrec i e n t e s en potencias de S de estos polinomio pueden ser almacenados en vectores en MatLab. PID) en MatLab se hace uso de la función de transferencia propia del sistema a objeto de estudio .
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 ) . >>Kd=10. >>step(numc.den. . >>Ki=1. >>num2=1. >>den=[1 10 20 0 0].numd]=cloop(conv(num1.1). S u Sintaxis es: [numc. >>num1=[Kd Kp Ki].den2). >>num=[Kd Kp Ki]. tenemos: >>Kp=500.Para obtener la respuesta en lazo abierto ante una entrada escalón unitario tenemos: >>Kp=50. >>den1=[1 0].conv(den1. >>step(num. > > [numc. La salida obtenida mediante el comando s t e p se muestra a continuación:
. >>Ki=1.num2).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. 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. >>Kd=100.sign) El signo de la realimentación viene dado por sign.denc]=cloop(num. >>den2=[1 10 20 0].
^2 (notar el espacio después del primer 2) y no >>A.
Ejemplo: Para .
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 .
Escribimos >>bode([158.'Visible'.811].[1 5 0])
Precaución: El punto ".11 15. 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 .^2." puede significar operación elemento -p o r -e l e m e n t o o punto decimal. C u a n d o e s c r i b i m o s un dígito pegado al punto como "2.9. 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.^2
Para remover ejes de la gráfica: >>set(gca.elemento).". el interpretador cree que es el número "2.*B.m
Para cotejar sus diagramas de Bode: >>bode(num. Entonces si queremos calcular A2B2.^2 . 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.'off') o simplemente >>axis off
.*B.0".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. debemos escribir >>A. TRUCOS EN MATLAB® Paper semilogarítmico gratis: papelbod.
3) (En el momento de creación) >>set(get(gca.'children'). >>plot(x.Para cambiar el color de trasfondo de la gráfica: >> whitebg('c') donde c es el código del color descrito en help plot. para graficar con una línea gruesa.3) ( D e s p u é s d e c r e a d a )
.y.'linewidth'. es más fácil hacerlo al crearla que después. Por ejemplo.
Para establecer propiedades de la gráfica.'linewidth'.
More From This UserLa Temperatura en Grados2Ensayo Sustancias Deletereas en El Concreto Asb1.factores que determinan en la resistencia a la compresióndaños inviasCOMPACTACIONConflicto, Violencia en Lo Economico08_empujesEscuche a Sus HijosPRUEBA DE CARGA- ConstrudataMalba Tahan - El Hombre Que Calculaba018151_Anex
Tutorial Matlab by Amanda Sepulveda1 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
RelatedMatlabby car2332matlab-100228223411-phpapp01by carrasco.pablo9953Tutorial MATLABby Miguel FloresPerceptronSimpleby David RicardoMÉTODOS NUMÉRICOS EN MATLABby eLeCienciaproyecto+matlabIby LightDanMatlab Aplicado a Robotica y Mecatronicaby UldoricoGraficar 3d Matlabby dilor19Matlab Para Ing. Civilby Yuri Abraham Paniagua Segoviamatlab70primeroby dabs230Programas en Matlabby geophyslabneural network- toolbox de matlabby Franco Ramos Vilchezmanual-matlabby Chan LegendarioAdquisicion Audio Matlabby Manuel Alejandro Rejón SosaMatlab Perceptronby fenixjb6LabControlAnaI_Practica06 (1)by Elizabeht Escobar VerdinatzziMatlab Libreby Frans Yoany PachecoPROCESAMIENTO DIGITAL DE SEÑALES CON MATLABby Percy Julio Chambi PaccoPráctica+laboratorio+CI+#+2by rickyriccardiMetodos Numericos Chapra 5 Edicionby Mario CruzMatlab Tutorialby lilizhitahsaraviaSoluciones.de.problemas.de.ingenieria.con.MatLabby the_Dog666Matlab Tutorialby Agustin DugaroMatlabby Gilver CutipaClass c2 Denavit-hartenberg Parametersby Emiliano Nava MoralesManual Matlabby api-3693527Trazador de Curvas Para Transistoresby Tavo Gomez BarcoINFORME DE LABORATORIO 10by byo_sdq1284Similar to manual matlabMatlabmatlab-100228223411-phpapp01Tutorial MATLABPerceptronSimpleMÉTODOS NUMÉRICOS EN MATLABproyecto+matlabIMatlab Aplicado a Robotica y MecatronicaGraficar 3d MatlabMatlab Para Ing. Civilmatlab70primeroProgramas en Matlabneural network- toolbox de matlabmanual-matlabAdquisicion Audio MatlabMatlab PerceptronLabControlAnaI_Practica06 (1)Matlab LibrePROCESAMIENTO DIGITAL DE SEÑALES CON MATLABPráctica+laboratorio+CI+#+2Metodos Numericos Chapra 5 EdicionMatlab TutorialSoluciones.de.problemas.de.ingenieria.con.MatLabMatlab TutorialMatlabClass c2 Denavit-hartenberg ParametersManual MatlabTrazador de Curvas Para TransistoresINFORME DE LABORATORIO 10Tutorial MatlabManual Matlabmanual matlab

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