Source: https://www.scribd.com/doc/162220318/Tutorial-Matlab
Timestamp: 2016-02-14 21:21:58+00:00

Document:
UploadSign inJoinBooksAudiobooksComicsSheet MusicScribd Selects BooksHand-picked favorites from our editorsScribd Selects AudiobooksHand-picked favorites from our editorsScribd Selects ComicsHand-picked favorites from our editorsScribd Selects Sheet MusicHand-picked favorites from our editorsTop BooksWhat's trending, bestsellers, award-winners & moreTop AudiobooksWhat's trending, bestsellers, award-winners & moreTop ComicsWhat's trending, bestsellers, award-winners & moreTop Sheet MusicWhat's trending, bestsellers, award-winners & moreCategoriesArts & IdeasBiography & MemoirBusiness & LeadershipChildren'sComputers & TechnologyCooking & FoodCrafts & HobbiesFantasyFiction & LiteratureHappiness & Self-HelpHealth & WellnessHistoryHome & GardenHumorLGBTMystery, Thriller & CrimePolitics & EconomyReferenceReligionRomanceScience & NatureScience FictionSociety & CultureSports & AdventureTravelYoung AdultCategoriesArts & IdeasBiography & MemoirBusiness & LeadershipChildren'sComputers & TechnologyCooking & FoodFantasyFiction & LiteratureHappiness & Self-HelpHealth & WellnessHistoryHome & GardenHumorLGBTMystery, Thriller & CrimePolitics & EconomyReferenceReligionRomanceScience & NatureScience FictionSociety & CultureSports & AdventureTravelYoung AdultCategoriesAdaptationsChildren’sCrime & MysteryFictionHumorMangaNonfictionRomanceSciFi, Fantasy & HorrorSuperheroesYoung AdultPublishersArcanaArchie ComicsBOOM! StudiosDynamiteIDW PublishingKingstone ComicsMarvel ComicsSpace Goat ProductionsTop Cow ComicsTop Shelf ProductionsValiant Comics ZenescopeDifficultyBeginnerIntermediateAdvancedMixedInstrumentBrassDrums & PercussionGuitar, Bass, and FrettedPianoStringsVocalWoodwindsGenreClassicalCountryFolkJazz & BluesMovies & MusicalsPop & RockReligious & HolidayStandardsP. 1Tutorial MatlabTutorial Matlab|Views: 0|Likes: 0Published by Victor Solis BrevisMore info:Published by: Victor Solis Brevis on Aug 22, 2013Copyright:Attribution Non-commercialAvailability:Read on Scribd mobile: iPhone, iPad and Android.download as PDF, TXT or read online from ScribdFlag for inappropriate content|Add to collectionSee moreSee lesshttps://www.scribd.com/doc/162220318/Tutorial-Matlab02/20/2014pdftextoriginalSectionsTUTORIAL DE MATLABTUTORIAL DE MATLAB 12. Librería de Aplicaciones de MATLAB2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math
Library2.2.2 Utilización de MATLAB y de su compiladorFunciones matemáticasFuncionales especiales y elementalesAlgebra lineal numéricaPolinomios e interpolaciónMétodos numéricos no linealesEstadística y análisis de FourierOperaciones algebráicas y lógicas2.3.1 Generación Automática de ficheros MEX2.3.3 Opciones de ajuste del rendimiento2.3.5 Limitaciones del código compilado4. USO DE COMANDOS4.2 Instrucciones de MATLAB y Variables4.3 Obteniendo Información del Espacio de Trabajo4.4 Variables Permanentes4.6 Saliendo y Guardando el Espacio de Trabajo4.7 Manipulación de Vectores y Matrices4.8 Operaciones de Matrices4.9 Operaciones de Arreglos4.10 Ejemplos: Operaciones Aritméticas5. PROGRAMANDO CON MATLAB5.1 Generalidades5.1.1 Archivos-M: Comandos y Funciones5.1.2 Otras funciones5.1.3 Declaración function5.2 Operadores relacionales5.3 Operadores lógicos5.4 Caracteres especiales5.5 Control de flujo5.5.1 Declaración FOR simple5.5.2 Declaración FOR anidada5.5.3 Declaración WHILE5.5.4 Declaraciones IF, ELSE, ELSEIF y BREAK5.6.1 Creación de una matriz5.6.2 Cambio del orden de una matriz: reshape5.6.3 Modificación individual de elementos5.6.4 Modificaciones adicionales de una matriz5.7.1 Declaración fopenEjemplo5.7.2 Declaración fclose5.7.3 Declaración fread5.7.4 Declaración fwrite5.7.5 Declaración fprintf5.8 Variables globales5.9 Vectorización de algoritmos y estructuras (for, while)5.10 Gráficas en Dos DimensionesComando PlotSímbolo ColorSímbolo Estilo de línea5.10.6 Comandos gráficos5.11 Gráficos en 3 dimensiones5.12 Archivos de disco5.12.1 Manipulación de Archivos de Disco5.12.2 Ejecutando Programas Externos5.12.3 Importando y Exportando Datos5.13 INDICE ALFABETICO6. SIMULINK6.1 Acelerador de Simulink6.2 Generador de código-C en Simulink7. COMANDOS DE MATLAB7.1 General purpose commands:Control System Toolbox Commands:8. APLICANDO MATLAB AL CONTROL DE PROCESOS8.1 Respuesta en el dominio del tiempo8.2 Respuesta en el dominio de la frecuencia8.3 Lugar de las raíces8.4 Controladores PID9. TRUCOS EN MATLAB®Paper semilogarítmico gratis: papelbod.mTUTORIAL DE MATLABTUTORIAL DE MATLAB
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. E n e n t o r n o s universitarios. En el mundo industrial. Basic o C. sin necesidad de hacer uso de la programación tradicional. Permite resolver complicados problemas numéricos sin necesidad de escribir un programa. por ejemplo. 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. posee además una extraordinaria versatilidad y capacidad para resolver problemas en matemática aplicada. MATLAB goza en la actualidad de un alto nivel de implantación en escuelas y centros universitarios.
. 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. estadística. señal. 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. etc. proceso digital de imagen. ¿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. 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. álgebra lineal. 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. ingenierí a. física. finanzas y muchas otras aplicaciones. tales como sistemas e ingenieria de control. Es ampliamente usado por Ingenieros de Control en el análisis y diseño. las cuales representan hoy en dia dos de las librerías más importantes en computación y cálculo matricial. prototipaje algorítmico. 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. teoría de c o n t r o l a u t o m á tico. cálculo matricial. 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 .1. MATLAB integra análisis numérico. MATLAB se ha convertido en una herramienta básica. tanto para los profesionales e investigadores de centros docentes. Está basado en un sofisticado software de matrices para el análisis de sistemas de ecuaciones. análisis de series temporales para el proceso digital de señal. química.
Su nombre proviene de MATrix LABoratory. control robusto.
1. T a m b i é n o f r e c e S i m u l i n k
1.MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializados. Fue el resultado de los proyectos Linpack y Eispack desarrollados en el Argonne National Laboratory. destacando entre ellos el 'toolbox' de proceso de imágenes. 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 . o un filtro digital de procesamiento de señales.
1. Gould. Por ejemplo una matriz puede representar el vuelo de una avión a 40.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 . que extienden significativamente el número de funciones incorporadas en el programa principal. En este último sentido. redes neurales. análisis financiero. VAXstation y HP. lógica difusa. estadística. MicroVAX. Apple Macintosh y PC AT compatibles 80386 o superiores. matemáticas simbólicas. Al pasar de los años fue complementado y reimplementado en lenguaje C. Opera bajo sistemas operativos UNIX.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. Además también se dispone del programa Simulink que es un entorno gráfico interactivo con el que se puede analizar.3 Plataformas
MatLab está disponible para una amplio número de plataformas: estaciones de trabajo SUN.000 pies de altura. identificación de sistemas. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación. simulación de sistemas dinámicos.
1. una matriz puede describir el comportamiento de un sistema extremadamente complejo. modelizar y simular la dinámica de sistemas no lineales. una matriz puede describir una relación lineal entre los componentes de un modelo matemático. denominados Toolboxes. VAX. Una matriz de pixeles puede ser una imagen o una película. Actualmente la licencia de MatLab es propiedad de MathWorks Inc . Apollo. Y tal vez más significativamente. etc.2 Origen de MatLab
MatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en computadoras mainframe. señal. Macintosh y Windows. Una matriz de fluctuaciones de una señal puede ser un sonido o una voz humana.
procesamiento de señales. etc. Simulink es usado para simulación modelado no lineal avanzado. redes neurales. por ejemplo control. Se ofrecen además numerosas herramientas especiales en "Toolboxes" para resolver problemas de aplicaciones específicas. Estas herramientas son colecciones de rutinas escritas en MatLab.como un anexo a MatLab y que interactua con él en lenguaje de MatLab y lenguaje de bajo nivel C.
Diseño de filtros FIR mediante el algorítmo ó p t i m o d e P a r k s -McClellan. Procesamiento de la transformada rápida de Fourier FFT. Puede ser utilizada independientemente de MATLAB por programadores avezados en lenguaje C que necesiten prestaciones computacionales robustas y de alto rendimiento. retardo de fase. 7
. Funciones matemáticas elementales y especializadas. la C Math Library permitirá a los programadores de aplicaciones utilizar MATLAB para la creación de aplicaciones 'stand alone'. Chebyschev tipo I. retardo de grupo. Butterworth. Para los usuarios clásicos de MATLAB.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. El objetivo principal de la C Math Library es soportar el desarrollo de aplicaciones 'stand alone' utilizando MATLAB y su compilador. proporcionadas como libreri a s o b j e t o . Implementación de filtros. y transformada para no potencias de dos. Operadores lógicos y aritméticos. tanto directo como usando técnicas en el dominio de la frecuencia basadas en la FFT. Diseño de filtros IIR. Junto con el compilador de MATLAB. Librería de Aplicaciones de MATLAB
2. i n c l u y e n d o básicamente las siguientes categorías de funciones presentes en MATLAB y ficheros M compilados:
Algebra lineal.2. Para aquellos usuarios que sean nuevos en la tecnología MATLAB. Este incluye funciones para: • • • • • Análisis de filtros digitales incluyendo respuesta en frecuencia. 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. incluyendo la transformación para potencias de dos y su inversa. esta tecnología ofrece una nueva vía para la reducción del tiempo de desarrollo y puesta a punto de aplicaciones. incluyendo Chebyshebv tipo II y elíptico. se elimina así cualquier necesidad de volver a reescribir algoritmos en lenguaje C para ser utilizada por programas externos.
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 . deberán seguirse los pasos siguientes: 1.
2. Respecto al mundo PC. Matrices especiales. Compilar el código C fuente en código objeto utilizando un compilador ANSI C.
2. Estadística básica y análisis de datos. Polinomios e interpolación.2. 3.
(Nota: Las funciones del tipo Handle Graphics no están incluidas en la C Math Library). 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.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. análisis de datos y funciones de acceso a ficheros y matrices.2. Entradas y Salidas. 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.
. 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). Gestión de cadenas de caracteres. 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. estas librerías pueden obtenerse como DLL's en el entorno Microsoft Windows o como librerias compartidas en equipos Apple MacIntosh.
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).• • • • • • •
Matrices elementales y manipulación de vectores. lógico y utilidades. Gestión de memoria y errores.
imaginarias y complejas conjugadas. Diferenciación de polinomios.2. Toeplitz.D.2. vectorial o matricial con la misma facilidad sintáctica. La MATLAB C Math Library contiene más de 300 funciones numéricas. Interpolación por splines cúbicos. Evaluación de polinomios. Ma triz exponencial.
Interpolación 1 . lógicas y de utilidad. etc. etc. Matrices de Hilbert. Funciones generales de evaluación de matrices.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). Residuos de polinomios y residuos. Todas estas funciones le permitirán operar en datos de tipo escalar.
2. Las funciones de álgebra lineal han sido obtenidas de las librerias mundialmente reconocidas LINPACK y EISPACK. Vandermonde. Construcción polinomial.4 Lista parcial de funciones
Funciones gamma. Partes reales. Matrices inversas y factorización de matrices.
. normas.2. Funciones trigonomé tricas y de potencias. Matriz identidad y otras matrices elementales. beta y elíp ticas. rangos. Transformación de sistemas de coordenadas.
Valores propios y descomposición de matrices.D y 2 . Multiplicación y división de polinomios. Determinantes. logarítmica y raíces cuadradas. Hadamard.
resta. Funciones max. 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 . Conversión de tipos de datos Fortran. Solución numérica de ecuaciones diferenciales ordinarias. Magnitudes y ángulos de fase. min. OR.D y 2 . la librería trabajará con aquellos enlazadores suministrados con la mayoría de compiladores ANSI C.
2. Funciones de fecha y hora. multiplicación. Deconvolución. NOT y XOR.
Convolución 1 . Clasificación de matrices.Métodos numéricos no lineales
2. división y potencias de matric e s . mean y otras funciones de estadística básica.6 Requerimientos
La libreria MATLAB C Math Library cumple con la normativa estándar ANSI para compiladores C. Finalmente.2.D y 2 -D . Resolución numérica de integrales. que vienen
.2. Operadores lógicos AND. Matrix traspuesta.D y s u i n v e r s a .
Suma.D. Filtros digitales 1. Minimización de funciones de una o más variables.D y 2 . 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 . sum.5 Utilidades
Gestión y mantenimiento de errores. Transformadas de Fourier 1 .
3. 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.The MATLAB Compiler . el compilador MATLAB elimina consumo de tiempo y la conversión manual de código.
El compilador de MATLAB automatiza la creación de ficheros MEX de C (MATLAB Ejecutables). compilación y enlazado se inicia a través de una simple instrucción de MATLAB. El compilador de MATLAB traduce las funciones MATLAB en sus funciones equivalente en lenguaje C. 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. Pueden construirse aplicaciones que se ejecutaran independientemente de MATLAB. Como un generador de código C fuente.M files . el compilador realiza llamadas a las rutinas de la libreria C para muchas de las instrucciones contenidas en el propio núcleo de MATLAB.2. El proceso en cuestión se realiza en tres pasos: 1. Pueden convertirse convenientemente ficheros M en código fuente C para incorporarlos posteriormente en los ficheros externos desarrollados en lenguaje C.de MATLAB.1 Generación Automática de ficheros MEX. La instrucción MATLAB cmex llama al compilador y al enlazador del sistema para construir un fichero MEX objeto. Los desarrollos 11
. para las cuales se generan de nuevo llamadas 'c a l l b a c k s ' a M A T L A B . Existen algunas funciones. si ese es el caso. Mientras se efectúa una conversión de los ficheros M en ficheros MEX. Pueden convertirse ficheros M en funciones C ejecutables que se ejecutaran desde dentro de MATLAB. que está disponible separadamente.
2. El intérprete de MATLAB enlaza automáticamente la función de MATLAB como 'runtime'. 3. incluyendo las rutinas 'Handle Graphics'.
Mediante la conversión automática de ficheros M en código C fuente. Este compilador puede ser utilizado de dos modos: 1. Estas aplicaciones externa s requieren de la MATLAB C Math Library. Como un generador MEX automático. 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.p e r m i t e c r e a r c ó d i g o C optimizado procedente de ficheros M .
entera. Por ejemplo.7
.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. Sin embargo. depende fuertemente de cada aplicación. Para construir aplicaciones 'stand-alone' se debería seguir los siguientes pasos: 1. Obsérvese que las funciones gráficas de MATLAB no están incluidas. puede directamente: • • • Tratar todas las variables en ficheros como datos enteros y/o reales.4 Requerimientos del sistema
Para utilizar el compilador de MATLAB para crear ficheros MEX se necesita la versión de MATLAB 4. 3.3.
2.2c y tener instalado uno de los siguientes compiladores de lenguaje C: PC/Microsoft Windows Metaware High C/C++ V. Desactivar el control de parámetros de entrada y el redimensionamiento dinámico de vectores. La velocidad de mejora de este rendimiento. Watcom C V.del tipo 'stand-alone' requieren para ello de la MATLAB C Math Library.2 Rendimiento del compilador
Mediante la compilación de los ficheros M se puede obtener un rendimien to significativo.
2. mediante la utilización del compilador se obtendrán significativas mejoras.3. Utilizar el compilador de MATLAB para convertir ficheros M en C con la instrucción externa mcc . Ud.
2. Utilizar una variable concreta como variable escalar.10. 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.3. real o una combinación de estas.0 o superior Power MacIntosh MetroWer ks CodeWarrior C V.3. Las opera ciones matriciales y vectoriales ejecutadas desde MATLAB ya están fuertemente optimizadas en su diseño. 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 .0 o superior. 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. vectorial.
4 UNIX y VMS
Cualquier compilador ANSI C (Nota: El compilador de SunOS 4. determinantes. Algebra lineal exacta: Inversas.MPW MrC V. 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. que se tengan las MATLAB C Math Library y un compilador ANSI C.0. Resolución de ecuaciones: Resolución numérica y simbólica de ecuaciones algebraicas y diferenciales. 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.5 680x0 MacIntosh MPW C Versión 3. Este no puede generar código de los diagramas de bloques de SIMULINK. canónicas de matrices simbólicas. no están soportadas por el compilador de MATLAB . The Basic Symbolic Math Toolbox es una colección de más de 50 funciones MATLAB las cuales permiten acceder al
. autovalores y formas
Aritmética de precisión variable: Evaluación de expresiones matemáticas con diversos grados de precisión.X no es un compilador ANSI C). y los programas realizados para este último.3.0b2 o PPCC version 1. además del compilador de MATLAB.
2. como load y eval.1.5 Limitaciones del código compilado
Ciertas instrucciones. integración y simplificación de expresiones matemáticas. Los toolboxes de MATLAB pueden incluir ficheros MEX y otros componentes que no son compilables. 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.
Existen dos versiones del mismo Toolbox.
2. Cualquiera que sea el equipo informático que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere.4 SYMBOLIC MATH TOOLBOX
El Toolbox de Matemática Simbólica. Entre o t r o s .1.
se incluye una rutina especial para problemas de mínimos cuadrados no lineales. Resulta conveniente para una comprensión y mejor manejo de la toolbox poseer conocimientos básicos previos de análisis de funciones reales. sin imponer ninguna restricción o condición a la solución. si lo que se desea es obtener toda la potencia de cálculo del entorno. no lineales. 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). Asimismo. Programación cuadrática.kernel de MAPLE utilizand o l a S i n t a x i s y el estilo del lenguaje MATLAB.
. con o sin condiciones. en general. será necesario un a mplio conocimiento del manejo y la programación de MAPLE
2. Problemas de mínimos cuadrados no negativos. Programación lineal. Sin embargo. matrices y teoría de extremos. Solución de problemas minimax. condicionado a que la solución satisfaga ciertas condiciones de desigualdad (g(x)<=0) y/o igualdad (g(x)=0). ya que los ficheros contenidos en él son totalmente autónomos. de funciones reales las cuales son generalmente multivariables y no lineales. Como caso particular. posee funciones para la resolución de algunos tipos de problemas matriciales en extremos. 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 . en general multivariable y no lineal. The Extended Symbolic Math Toolbox aumenta esta funcionalidad incluyendo todas las características de programación de MAPLE.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). en general multivariable y no lineal. Problemas de aproximación a un conjunto de objetivos. Cálculo de soluciones de un sistema de ecuaciones continuas y.
Además. los cuales cubren un amplio espectro de áreas d e i n t e r é s . podrán utilizarse modelos no lineales más sofisticados utilizando SIMULINK. etc. Actualmente.
2. aquellos usuarios de las librerías Fortran de NAG que a la vez sean usuarios de MATLAB. 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. estadística. destacando ordenadores personales tipo PC o Apple MacIntosh. 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 . 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. Este toolbox se encuentra actualmente disponible para una amplia va riedad de plataformas informáticas. 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. problemas de cuadratura adaptativa multidimensional. ajuste de curvas y superficies y el acceso a los algoritmos LAPACK para la resolución de ecuaciones lineales. posteriormente. este toolbox incorpora 250 rutinas matemáticas. desde dentro de MATLAB. numerosas estaciones UNIX y ordenadores Digital VAX VMS. 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. 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.
. Por ello. Por ejemplo. podrán utilizarse toolboxes para el análisis de sistemas lineales para el diseño inicial. puede invocarse NCD para un mejor ajuste paramétrico y para la optimización de los controladores. encontraran bastante cómodo acceder a las rutinas NAG utilizando la nomenclatura original. El toolbox NCD es un componente avanzado del entorno integrado de desarrollo que ofrecen a los especialistas los programas MATLAB y SIMULINK.9 NAG FOUNDATION TOOLBOX
Este toolbox proporciona un acceso interactivo. Como resultado de esto. 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. los diseñadores podrán beneficiarse de muchos de los toolboxes desarrollados para este entorno en materia de diseño de sistemas lineales. cuadratura.siempre que se detecten determinadas variaciones en los componentes del sistema.
Maximización y minimización de funciones.• • • • • • • • • • • • • • • • • •
Suma de series. Cuadraturas. Valores y vectores propios. Análisis de series temporales. Ecuaciones lineales (LAPACK). Análisis de correlación y regresiones. Métodos multivariantes. Generación de números aleatorios. Estadística no paramétrica. Resolución de ecuaciones lineales simultáneas. Ecuaciones diferenciales en derivadas parciales. Factorización de matrices. Rutinas de clasificación. Aproximación de curvas y superficies. Aproximación de funciones especiales.
. Ecuaciones diferenciales ordinarias. Estadística básica.
Este indicador es de la siguiente forma: >> Al iniciar el uso de MatLab están disponibles dos comandos de ayuda y demostración. Por ejemplo: >>help permite obtener una ayuda sobre los diferentes comandos de MatLab. >>quit
4. 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. 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. INICIANDO MATLAB
Después de ejecutar el programa MatLab desde el sistema operativo empleado.3. Si la matriz a introducir es muy grande se puede utilizar el siguiente formato:
. 4 5 6. l os elementos estén cerrados entre corchetes. Puede ejecutarse un comando si este está escrito después del símbolo >> y se presiona la tecla Enter. aparece el indicador de comandos el cual está listo para recibir instrucciones en lenguaje MatLab. muestre el final de cada fila con . (punto y coma). 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. 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. Para cerrar o finalizar el uso de MatLab se usa el comando quit . [ ]. por ejemplo haciendo doble click sobre el icono de MatLa b e n a m b i e n t e s Windows.
Ejemplo: A = [ 1 2 3. USO DE COMANDOS
La primera forma de interactuar con MatLab es a través de la línea de comandos.
Estas pueden estar formadas por un sólo elementos (escalar). por ejemplo: >>A=[1 2 3] define A como un vector de tres elementos.) al final del comando. 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
. puede presentarse escri biendo la variable después del prompt (>>).). >>A=[1 2 3. >>A Se pueden redefinir variables. Al definir A automáticamente MatLab presenta en pantalla su valor. >>A=1 define A como un escalar de valor 1. A(1)=1. debe agregarse punto y coma (. 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. por una fila o una columna (vector) o por una serie de filas y columnas (matriz propiamente dicha). A(2)=2 y A(3)=3. ) o c o n retorno (Enter). A= 1 Para no presentar el valor de la variable creada. 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 ( . Después de crear una variable. Ya que MatLab se basa en el álgebra de matrices como ejemplo crearemos una matriz.
7321 4. 7 3 2 1 4 . 3 0 0 0 1 .(1+2+3) *4/5] resultaría en x = -1 .1 Elementos de matrices
Los elementos de una matriz pueden ser cualquier expr e s i ó n d e M A T L A B . A = [A.3. T a m b i é n d i s t i n g u e l a s l e t r a s mayúsculas de las minúsculas.2 Instrucciones de MATLAB y Variables
Si omites el nombre de la variable y e l s i g n o " = " .3000 1.sqrt(3). Ejemplo: x = [-1. Ejemplo: En el ejemplo anterior x(4) = abs(x(1)) resultaría x= -1. M A T L A B a u t o m á t i c a m e n t e c r e a la variable a n s p a r a g u a r d a r e l r e s u l t a d o .4. r] y resultaría A= 1 2 3 4 5 6 7 8 9 10 11 12
4. 8 0 0 0
Nos podemos referir a elementos individuales de la matriz con índices entre paréntesis.8000 0 1.
Para añadir otra fila a la matriz A de arriba podemos hacer lo siguiente: r = [10 11 12]. Todos los nombres de funciones deben ser en letras minúsculas.
Usando el comando load temp las obtienes nuevamente del archivo temp. Y. y que no se pueden eliminar.mat. s a v e guarda todas las variables en un archivo llamado matlab.mat.
4. Puedes combinar las funciones de acuerdo a tu necesidad. Si deseas guardar tu espacio de trabajo escribes s a v e . Para ver información adicional acerca de estas variables se utiliza el c o m a n d o w h o s .4. Z en el archivo temp.6 Saliendo y Guardando el Espacio de Trabajo
Para salir de MATLAB se escribe quit ó exit . Su valor inicial es la distancia de 1. Se puede utilizar s a v e y load con otros nombres de archivos. A d e m á s d e éstas funciones todo usuario también puede crear otras funciones. Al terminar una sesión de MATLAB. Para listar las variables en el espacio de trabajo se utiliza el comando who .5 Funciones
Las funciones que utiliza MATLAB son intrínsecas al procesador de éste.0 al próximo número de punto flotante mayor. load y s a v e también pueden impor tar y exportar información de archivos ASCII. ó para guardar solo variables seleccionadas Ejemplo: save temp X Y Z Este ejemplo guarda las variables X. las variables en el espacio de trabajo se borran.
.4 Variables Permanentes
Las variables permanentes son aquellas con significado especial. Por ejemplo la singula r i d a d y el rango.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. Ejemplo: x = sqrt(log(z))
4.mat. La variable e p s es una tolerancia para determinar. 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 .
4. Estas son por ejemplo las variables a n s y e p s .
Si x y v son vectores.x(v(n))].. 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. pueden ser decimales. 3) + A(3. 3) = A(1.. son importantes en MATLAB.
. Ejemplo: A= 1 2 3 4 5 6 7 8 9
A(3.. números negativos ó constantes.4.
Índices Podemos referirnos a elementos individuales de matrices encerrando sus índices en paréntesis. 1) resultaría A= 1 2 3 4 5 6 7 8 10
Un índice puede ser un vector. :. entonces x(v) es [x(v(1)). los índices de vectores permiten acceso a submatrices contiguas y no -con t i g u a s . . x(v(2)).7 Manipulación de Vectores y Matrices Generando Vectores
8 Operaciones de Matrices Matrices Transpuestas
El caracter ' (apóstrofe) denota la transpuesta de la matriz. si A y B son matrices 3 x 3. entonces A + B se puede calcular. 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 . Entonces A(1:5. que consiste de los primeros cinco elementos en la tercera columna de A. B es la transpuesta de la matriz A. ó vector columna. 3) especifica la submatriz 5 x 1. También A(1:5. Las operaciones suma y resta también está definidas si uno de los operandos es un escalar. [3 5 10]) = B(:. Ejemplo: x= -1 0 2
. quinta y décima columna de A con las primeras tres columnas de B. Utilizando solo los dos puntos denota todo lo correspondiente a la fila ó columna.transposición
4.parte superior triangular ' .extrae ó crea una diagonal t r i l .
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.Por ejemplo. suponga que A es una matriz 10 por 10. una matriz 1 x 1. Si tenemos la matriz A y llamamos B = A'. Podríamos tener una instrucción como: A(:.
Manipulación de Matrices diag . es decir. Es decir.parte inferior triangular triu . 1:3) que reemplaza la tercera.
Note que y' * x produce el mismo resultado. 3 2 1].
El producto interior (producto escalar ó producto punto) se consigue de la siguiente manera: x' * y asumiendo que x y y son vectores columnas.y = x . 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
La operación de multiplicación de matrices está definida siempre que el número de columnas de la primera matriz sea igual a el número de filas de la segunda matriz.1 resultaría y = -2 -1 1
Ejemplo: >>A=[1 2 3.
. define las matrices A y B. B=[6 5 4.4 5 6].
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. el método usado es la Eliminación Gaussiana. 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. Si A es cuadrada. 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. cualquier matriz.Producto de una matriz por un vector
El producto de una matriz y un vector es un caso especial del producto matrizmatriz y naturalmente.
A \B es definido cuando B tiene la misma cantidad de filas que A. k componentes diferentes de cero. Cada columna de X tiene.é 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. al menos.s i n g u l a r . El resultado es una matriz X con las mismas dimensiones que B. También puede calcular funciones trascendentales de matrices. esto es. inv(A) * B y B * inv(A) respectivamente.
MATLAB considera expresiones como exp(A) y sqrt(A) como operaciones de a r r e g l o s .
B/A esta definido en términos de A\B p o r B / A = ( A ' \B ' ) ' . d e f i n i d a s e n los elementos individuales de A. 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. un escalar como pi. se factoriza utilizando la ortogonalización de Householder con pivoteo de columnas. Si A no es cuadrada. ó ser multiplicado por. como la matriz exponencial y la matriz
En división de matrices. El resultado es obtenido directamente sin la computación del inverso. si A es una matriz cuadrada no. puede multiplicar.
./B y A. las operaciones de arreglos y las operaciones de matrices son iguales.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.\ y resulta z= 4.
poly .traza kron .* denota multiplicación de arreglos elemento por elemento.
Para suma y resta. z = x.determinante trace . Ejemplo: z = x. Estas operaciones matrices cuadradas.5000 2.) antes de un operador indica una operación de arreglos elemento por elemento. Un punto (. \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 . y = [4 5 6]. *y resulta z = 4 10 18 Las expresiones A.
El símbolo . Ejemplo: x = [1 2 3].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 .logarítmica.calcula los valores propios de la matriz
4.0000 2.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 .
10 Ejemplos: Operaciones Aritméticas
Ejemplos: >> 1/2 ans = 0.^ denota exponenciación elemento por elemento.5000
>> a=[2.2.3] b= 1 2 3
4.Exponentes con Arreglos
El símbolo .1.2] a= 2 1 2
*3 ans = 3 6 9
.*b' ??? Error using ==> .*b ans = 2 2 6
>> a.>> a*b ??? Error using ==> * Inner matrix dimensions must agree.
>> a.* Matrix dimensions must agree.
^2 ans = 4 1 4
.3333 0.6667 0.6667
>> a.>> a/3 ans = 0./3 ans = 0.6667 0.3333 0.6667
^a ans = 4 2 4
4/3 a) format short 1.33333333333333e00 e) format bank 1.33333333333333 d) format long e 1.
utilizada .33 f) format hex 3ff5555555555555
.3333 b) format short e 1. El rango aproximado es: 1 0 ^-3 0 8 a 1 0 ^ 3 0 8 .>> 2.3333e+00 c) format long 1.
Los archivos de funciones.M se puede llamar a sí mismo recursivamente.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 .7 8 9] define la matriz A y el siguiente comando A' calcula y presenta en pantalla la transpuesta de A. Esto es así porque siempre tienen una extención de ". Un archivo . MATLAB simplemente ejecuta los comandos encontrados en dicho archivo.m" como la última parte de su nombre de archivo. PROGRAMANDO CON M ATLAB 5.M: los de comandos y las funciones. q u e p r o b a b l e m e n t e i n c l u y e n r e f e r e n c i a s a o t r o s a r c h i v o s. Los archivos de comandos.M. permiten añadir a MATLAB funciones adicionales expandiendo asi la capacidad de este programa. Estos pueden ser escritos uno por uno a través de la línea de comandos: >>A=[1 2 3.5. son archivosordinarios de texto ASCII.
5. ó diseñar secuencias
. resolver problemas. automatizan secuencias largas de comandos.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.1. Los comandos son utilizados para hacer análisis.1 Generalidades
Programar en MatLab es usar una serie de comandos que permitan realizar una tarea o función específica. comandos y funciones.M.1 Archivos -M: Comandos y Funciones
Los archivos de disco que contienen instrucciones de MATLAB se llaman a r c h i v o s.
Archivos de Comandos Cuando un archivo de comandos es invocado.M utilizando un editor de texto ó procesador de palabras. Ambos. Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo.4 5 6.4 5 6. Hay dos tipos de archivos . Puedes crear archivos. Un archivo .
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]. En una función. while f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1). 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. suponga que el archivo f i b o . y luego grafica estos. crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB. n] = size(x). Las variables definidas y manipuladas dentro de la función son locales a esta y no operan globalmente en el espacio de trabajo.. if m == 1 m = n. a diferencia de un comando.l a r g a s d e c o m a n d o s q u e s e c o n v i e r t a n e n interactivas. i = i + 1. Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar comandos para hacer tareas más complicadas. Luego que la ejecución del archivo es completada. end y = sum(x)/m. Por ejemplo.
Archivos de Funciones Un archivo . [m. mean(x) es un vector fila conteniendo el valor medio de cada columna. e s un archivo de función. Los archivos de funciones se utilizan para extender a MATLAB. % Para matrices. m contiene las instrucciones: function y = mean(x) % Valor medio.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 .e. Para utilizar estos escriba demos en el "prompt" de MATLAB. se deben de pasar los argumentos. i. i = 1. El archivo m e a n . las variables f y i permanecen en el espacio de trabajo. mean(x) retorna el valor medio de los elementos del vector x. % Para vectores.
Las primeras líneas documentan el archivo . por ejemplo. entonces. end x % Fin del archivo-m Este ejemplo es un archivo . permanecen sin cambios. y los argumentos de salida. for i=1:n x(i)=i^2.) No es necesario asi gnar los enteros de 1 al 99 en la variable x. (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. Sin esta línea sería un archivo de comando. 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.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. n. Para ejecutarlo. % indica que el resto de la línea es un comentario. Las variables m. e y son locales a mean y no existen en el espacio de trabajo. m: La primera línea declara el nombre de la función. 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.(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). los argumentos de entrada. La existencia de este archivo en el disco duro define una nueva función en MATLAB llamada m e a n . en la línea de comandos se debe escribir el nombre del archivo: >>ejemplo x = 1 4 9 16 25
.m tipo comando. 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 . z = 1:99.
plot(x). Este vector debe ser definido previamente. La función promedio usa por parámetro un vector.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). p=0. >>promedio(A) ans = 3. se tiene:
. >>A=[1 2 4 3 7 5 6 1 2 0 8 5]. Al observar el contenido de dicha ventana luego de ejecutar la función promedio.
P a r a e j e c u t a r l a f u n c i ó n . 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. end p=p/n. for i=1:n p=p+x(i).6667
MatLab presenta las imágenes en una ventana de figuras.
Puede agregársele archivos .tangente asin .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.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.n) FFT inversa de n puntos muestrados zero s Inicializa a ceros zeros(n) M a t r i z d e n x n d e c e r o s zeros(m.m i n c o r p o r a d o s ( b u i l t-in).seno cos .2 Otras funciones
Funciones Matemáticas Algunas funciones trigonométricas utilizadas por MATLAB son: sin .seno inverso a c o s .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. 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 .coseno inverso a t a n .m definidos por el usuario almacenando los mismos en el directorio principal de MatLab.
5.coseno t a n .n) FFT de n puntos muestrales ifft(x) Transformada inversa rápida de Fourier del vector x ifft(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. 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. todos ceros
.Esta imagen es el resultado del comando plot(x) al ejecutar la función promedio.1.
También es la base para la solución de sistemas lineales. [L.
.Ejemplo size R e g r e s a e l n ú m e r o d e f i l a s y c o l u m n a s A= 0 7 -6 1 0 0 0 1 0
P r o d u c t o d e d o s matrices triangulares. U] = lu(A). Esta factorización se utiliza para obtener el inverso y el determinante. Para obtener la factorización LU de A escribimos.
Un ejemplo de una función es el archivo -M l l a m a d o h u m p s . Esta factorización se utiliza para resolver sistemas lineales con más ecuaciones que desconocidas. V ] = s v d ( A ) produce los tres factores en la descomposición de valores singulares A = U*S*V'. La función s v d ( A ) devuelve solamente los elementos de la diagonal de S. m contiene las siguientes instrucciones: function y = humps(x)
.norma 1.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. Se utiliza para matrices cuadradas ó rectangulares. que son los valores singulares de A.M l l a m a d o h u m p s . rango y acondicionamiento asociadas son: c o n d . norma 2. Las matrices U y V son ortogonales y la matriz S es diagonal. La asignación [ X . 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.
Las Funciones de norma.rango rcond .
Descomposición de Valores Propios La Descomposición de Valores Propios se utiliza para obtener los valores y vectores propios de una matriz cuadrada A. La función e i g ( A ) devuelve los valores propios de A en un vector columna. La asignación triple [ U . norma F.
Descomposición de Valores Singulares La descomposición de Valores Singulares es importante para el análisis de problemas que envuelvan matrices.Factorización Ortogonal ó Factori z a c i ó n Q R . norma rank .número de condición en la norma 2 nor m . S . m . de tipo
Ejemplo: El archivo. Esta factorización también es la base para las funciones n u l l y orth . que generan bases orto normales para el espacio nulo y rango de una matriz rectangular dada.M función.
^2 +.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 .e.9). y para la gráfica de la función escribimos x = ... m d e s d e 0 h a s t a 1 e s c r i b i m o s : q = quad('humps'. 0./((x.8583
N o t e q u e e l a rg u m e n t o d e q u a d c o n t i e n e u n n o m b r e d e u n a f u n c i ó n .
Ecuaciones No -lineales y Funciones de Optimización Las funciones de funciones para ecuaciones no -lineales y optimización incluyen: fmin .mínimo restricciones) de una función multi . P o r e s t o q u a d se llama una función de función.c u a d r a d o s m í n i m o s n o-lineales
ode23 .y = 1 .minimización con restricciones fsolve .
.01) + 1.1:.^2 +.04) .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.3). plot(x.Kutta de largo de paso variable que combina un método de orden dos con uno de orden tres.01:2. Para integrar la función definida por h u m p s ..6. es una función que opera en otras funciones.variable (minimización no-l i n e a l sin
fzero .método Runge.solución de ecuación no-l i n e a l l e a s t s q .mínimo de una función de una variable fmins . i. / ( ( x. humps(x))
Integración Numérica (Cuadratura) El área bajo la gráfica de la función f(x) se puede aproximar integrando f(x) numéricamente mediante una regla de cuadratura. 1) q= 29. ode45 .
xpunto(1)=x(1).trace).resultados intermedios
default tol: ode23 -> 1. [t.v) function xpunto=vdpol(t.x] =ode23(`deriv'.*(1 -x ( 2 ) .xo).1.to. ^ 2 )-x(2).to.3 Declaración function
Sintaxis: function nombre_1=nombr e_2(parametro_1.. parametro_n) Ejemplos: function y=promedio(x) function i=inodal(t.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'.x]=ode23(`deriv'.0 6
5.x) xpunto=zeros(2.
5.> 1.oe.1). xpunto(2)=x(1).0 3 ode45 . ode45
[t. ode45 trace => 0 ...2 Operadores relacionales
.Ejemplo to=0.xo.tf. tf=10.0e .tf.
[t.xo).tf.to. .to1.
. Estas funciones se usan en cláusulas i f . El resultado de B = ~A es una matriz cuyos elementos son uno donde A tiene un elemento cero. y ceros donde ambas tienen elementos cero. . if n>=0. end
5. any(any(A)). y ceros donde A ó B sean cero.
F u n c i ó n e s any. 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. "ó" y "no"
El resultado de C = A & B es una matriz cuyos elementos son unos donde A y B sean ambos distintos de cero. A y B deben de ser matrices con las mismas dimensiones. siempre reduce la matriz a una condición escalar.5) .condiciones lógicas find . 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. Aplicando la función dos veces. Las funciones relacionales y lógicas en MATLAB son: any . 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.. a menos que una sea un escalar. a menos que una de ellas sea un escalar. break. y ceros donde A tiene elementos diferentes de cero. de lo contrario devuelve 0.d e t e c t a i n f i n i t o s
. . | y ~ son los operadores de lógica "y". 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.3 Operadores lógicos
Los operadores &.Ejemplo: if n< maxn .verifica si existen variables isinf . Por ejemplo: if all(A <. respectiv a m e n t e .condiciones lógicas all .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 . end Para argumentos matriciales.
end % inicia vector a en 0
. a(i)=0.4 ] sqrt(2) for i=1:n. a(i)=0. end for i=1:n. 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. argumentos declaraciones en líneas con declaraciones múltiples .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.0 9. Separador de elementos de una matriz.0 3.finite . separador de declaraciones % Comentario de funciones y
Ejemplos: [6. Encierra argumentos de funciones en forma usual .
Ejemplo: for i=1:n c(i)=a(i)*b(i). ó si tiene menos de n elementos. declaración n. end asigna 0 a los primeros n elementos de x. end o for i=1:n. Si n es menor de 1. x(i) = 0.. Si x no esta definido. end
El ciclo FOR permite que una instrucción.5 Control de flujo 5. ó grupo de instrucciones. pueda repetirse un n ú m e r o d e t e r m i n a d o d e v e c e s . end
for variable=inicio:final declaración 1. c(i)=a(i)*b(i). .5. entonces un espacio adicional es localizado automáticamente a x cada vez que sea necesario...
.5. P o r e j e m p l o .. for i = 1:n.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. declaración n. .
Sintaxis for variable 1 = inicio1:paso1:fin1 for variable2 = inicio2:paso2:fin2 declaración 1. declaración n. .5. j) = 1/(i+j..5.
.0 . end
Ejemplo for i = 1:m for j = 1:n A(i.2 Declaración FOR anidada . 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.1:1 for t2=1: .1). 1 : 0 y(1)=sin(t1*t2) end i=i+1. Es importante que para cada for halla un e n d ..
Una posible definición de la función exponencial es mediante la serie:
expm(A) = I + A + A^2/2! + A^3/3! + . llamado e x p m ( A ) en MATLAB.3 Declaración WHILE
Sintaxis: while expresion proposición 1. en la precisión finita la de computadora.0. ut=sin(wo*t).
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. wo=2. while prod(1:n) < 1. end n
Un cálculo más práctico ilustrando el ciclo while es en el cómputo del exponencial de una matriz. n = n+1.0+e)>1. ó g r u p o d e i n s t r u c c i o n e s . proposición 2.0*pi*60.end
El ciclo WHILE permite a una instrucción ... bajo el control de una condición lógica. t=0. while (1.5.0e100.. Para esto procedemos de la forma siguiente:
. no cambie aunque más términos sean añadidos.0.5.t=t+dt. end
it=1.0. El siguiente ciclo while halla el primer entero n para el cual n! es un número de 100 digitos:
n = 1. .. while it<=npts.0001 e=e/2. end
Ejemplos e=1.
E. 1) > 0 E = E + F... F = eye(size(A)). ELSE. proposición m... . else proposición 1. .4 Declaraciones IF. . w h i l e n o r m ( E + F. k = 1. ELSEIF y BREAK
Sintaxis a) if expresió n proposición 1. E representa la suma parcial de la serie. y k es el índice de este término. F = A*F/k k = k+1.5. proposición n. F es un término individual en la serie.E = zeros(size(A))..
b) if expresión proposición 1. end Aqui A es la matriz dada. proposición n. end
0.. end..c) if expresión proposición 1.. end end
.. proposición n. while i<=so n=input(`Introduzca n.. proposición r. else proposición 1. if n==0 sum=sum+n. y=1. . . break. . nmaxe=i. if n<0. end
sum=0. end
d) if expresión. else sum=sum+n/10. proposición m. break.. end
Ejemplos if dv(i) > maxer maxer=dv(i). elseif proposición 1. interrumpe con valor negativo `). elseif n<=10 sum=sum+n/2.
break. Veamos:
% Problema "3n+1" clásico de la teoria de números. también se muestra la función input (en este caso es una entrada del teclado).A continuación se muestra como un cálculo se puede dividir en tres casos. 2) == 0 n = n/2 else n = 3*n+1 end end end
. end while n > 1 if rem(n. ¿Habrá algún entero para el cual el proceso nunca termine? Aquí se ilustran los enunciados while y i f . que provee salidas abruptas de los ciclos. 2) == 0 A = even(n) else A = odd(n) end
En el segundo. y el enunciado b r e a k . if n <= 0. se multiplica por tres y se le suma uno. '). si es impar. se divide entre dos. dependiendo del signo ó paridad de un entero n:
if n < 0 A = negative(n) else if rem(n. while 1 n = input('Entre n. negativo termina. partiendo de un entero positivo n. si este es par.
6.2 Cambio del orden de una matriz: reshape
Sintaxis: matriz_modificada = reshape(matriz_origin al. 2 5 8 11. 3 6 9 12] A= 1 4 7 10 2 5 8 11 3 6 9 12
>> B=reshape(A. filas.6) B= 1 3 5 7 9 11 2 4 6 8 10 12
5. columnas) Ejemplo >> A=[1 4 7 10.5.2.6. 7 8 9] A= 1 2 3 4 5 6 7 8 9
5.3 Modificación individual de elementos
Ejemplos >> A=[1 2.6 Algebra Matricial 5.1)=A(1.2)+A(2.6. 3 4] A= 1 2 3 4
>> A(1.1) A = 5 2 3 4
. 4 5 6.1 Creación de una matriz
Ejemplo >> A=[1 2 3.
>> A(1. 5 6 ] A= 1 2 3 4 5 6
Conversión de una matriz en un vector >> A=[1 2. 3 4.2)=10 A= 5 3 3 10
5.1) A= 5 3 3 4
>> A(2.2)=A(2. 5 6 ] A= 1 2 3 4 5 6
.6. 3 4.4 Modificaciones adicionales de una matriz
Ejemplo >> A=[1 2.
7500 1.5) de A matriz de 3x1 que tiene los tres primeros elementos de la columna 5
A(1:3.[4 6])=B(:.1 : 1 x = 5 4 3 2 1
>> x=0:0.Modificación de los elementos >> A(:)=10:15 A= 10 13 11 14 12 15
>> x=5:. 5:9) matriz de 3x4 que tiene los tres primeros filas y las columnas de 5 a 9 de A A(:.25:1 x = 0 0.:) primeras cinco filas de A A(:. entonces: A(1:3.2500 0.0000
Acceso a submatrices contiguas y no contigua s Ejemplos Si la matriz original A es de 10*10.5000 0.1:2) primeras de A remplaza la cuarta y sexta columnas de A con las dos
.5) quinta columna de A A(1:5.
0000i 4.0000 2.Matrices vacias La declaración x = [ ] asigna una matriz de dimensión 0x0 a x
Para la matriz A considerada previamente A(:.6000 0.2000 2.2000 0.y] ans = Columns 1 through 7 0 0.5])=[ ] borra columnas 3 y 5 de A A([3.0000i 3.0000i
Generación de tablas >> x=(0. >> [x. > > y = e x p ( .6000 1.3096 0.0204 0.6000 0.2430 0.1231 0.1627 0.8000 1.0383 Columns 15 through 16 2.:)=[ ] borra filas 3 y 5 de A
Declaración de matrices complejas A=[1 2.2:3.0000 0.0:0.3223 0. 7 8] o A=[1+5i 2+6i. 7 8] o A=[1 2.0000i 2.4000 2.[3.8000 3.2610 0.0000 + 8. 3 4] + i*[5 6 .4000 1.8000 2.2807 C ol um ns 8 thr ough 14 1.2018 0.0896 0.x). 3 4] + i*[5 6 .*sin(x).0000 + 5.5 ].0000 + 7.0000 1.0070
.2000 0 0. 3+7i 4+8i] A = 1.1610 0.3099 0.0000 + 6.4000 0.0613 0.0).
v .0000 1. 1 0 0.6. 0 0 0 0 2.0 1 0] A= 0 7 -6 1 0 0 0 1 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 .4 5 6.D e t e r m i n a n t e d e A: det(A) >> A=[1 2 3.valores característicos
.Vectores característicos d .
1 3 .8007 2.6.8729 0. 5 7 7 4 0.0.0 .9435 -0.0 1 0] A= 0 7 -6 1 0 0 0 1 0
>> expm(A) ans = 5.0000 0 0 0.0000 0 1. 3 1 4 5 . 8 0 4 4 0.2541 11.5774 -0 .6.0000 0 0 0 0.>> [v d]=eig(A) v= 0. 6 1 1 5 2.0757 . 1 0 0.0000 U = 1.Factori z a c i ó n L U d e A : l u ( A ) >> [L U]=lu(A) L= 0 1.2686 5. 0 0 0 0 0 0 0 2.0000 . 4 3 6 4 0 .0000 0 0 0 7.5774 d= -3 .2182 0.2541 .8571
.E x p o n e n c i a l d e u n a m a t r i z: e x p m ( A ) >> A=[0 7 .1048 -0.0000
. 3 5 1 0
.1429 1.4 .2686 .0000 0 0 0 1.
0000 0. 1 6 6 7 .0000 .E c u a c i ó n c a r a c t e r í s t i c a d e l a m a t r i z A: poly(A) >> p = p o l y ( A ) p= 1.0000 6.I n v e r s a d e A: inv(A) >> inv(A) ans = 0 1.0000 1.0000 .7.0000 0 0 0 1.Raices de la ecuación característica : roots(p) >> r=roots(p) r = -3 . 0 0 0 0 2.0000 -0 . 1 6 6 7 0 1 .0000
7.2 Declaración fclose
Sintaxis status = fclose(fid) o status = fclose (`all') .dat'.dat'.7. `permiso') donde p e r m i s o puede ser: `r' Abre archivo para lectura `r+ Abre archivo para lectura y escritura `w' Borra el contenido del archivo existente o crea un nuevo archivo y lo abre para escritura `w+' Idem que `w' únicamente que el archivo se abre para lectura y escritura `a ' Crea y abre un nuevo archivo o abre un archivo ` a + ' I d e m que `a' únicamente que el archivo es abierto para lectura y escritura
Ejemplo fid = fopen(`archivo.7.'precision') registros `char' o `uchar' `short' o `long' `float' o `double'
.3 Declaración fread
Lee un archivo abierto con una precisión indicada Sintaxis fread(fid.dat'. error 0. lectura/escritura normal [fid. mensaje = fopen(`archivo.5.'r ' )
5.7 Archivos de E/S 5.cierra todos los archivos abiertos
5.registros.'r') fid = -1.1 Declaración fopen
Sintaxis id = fopen(`nombre.
global ka.kb x p = [ x ( 1 ). Forma to %s .x) global ka.0.02 [t..7. de las cuales una sola copia es compartida por el programa principal y sus funciones.'short')
5.número decimal % f .10.x(2)+kb*x(1)*x(2)].
.[1:1]).01 kb=0.. .5 Declaración fprintf
Salida con formato Ejemplos: fprintf(fid. ' % f % 1 2 . .'float')
5..8 Variables globales
Son variables.formato g
5.A.Ejemplo: A = fread(fid. . 7 f\ n'...4 Declaración fwrite Sintaxis
fwrite(fid. variable_N
Ejemplo function x=ccdifs(t.7. y).'titulo \ n'). Sintaxis: global variable1.ka*x(1)*x(2). f p r i n t f ( f i d .x]=ode23('ccdifs'.10.c a d e n a d e c i m a l %d .kb ka=0.punto flotante % g .
end ó t=0:dt:per.
. Esto es.100). for i = 1:100 y(i) = det(X^i). for t = 0:. Por ejemplo. y(i) = sin(t).5. y = sin(t). debemos convertir los ciclos for y while a operaciones de vectores ó de matrices. Veamos un ejemplo: y = zeros (1. En una computadora lenta. el interpretador de MATLAB irá aumentando el tamaño de "y" por uno cada vez que se itera en el ciclo. end Si no pre -asignamos el vector "y".01:10. fi=sin(wo*t). while)
Para que los programas en MATLAB ejecuten más rá p i d o . i= i+1. podemos hacer que los ciclos for vayan más rápido pre -asignando cualquier vector en el cual el resultado de salida sea guardado. Permite incrementar la velocidad de proceso de MATLAB Sintaxis variable=inicio:incremento:final Ejemplo i=1. mientras que el segundo tomó 0. el primer ejemplo tomó 15 segundos.6 segundos. un modo de calcular la función "sin" para 1001 números entre 1 y 10 es: i = 0.A s i g n a d o s Si no podemos vectorizar un pedazo de código. d e b e m o s v e c t o r i z a r estos siempre que sea posible.9 Vectorización de algoritmos y estructuras (for. wo=2*pi*fo.01:10 i = i + 1.
V e c t o r e s P r e. for t=0:dt:per f(i)=sin(wo*t). end Una versión vectorizada del mismo código es t = 0:.
5.'tipo_línea_n') Si y es un vector. líneas entre cortadas y texto a tus gráficas utilizando: tittle .'tipo_línea_1'. s e m i l o g y . . Si especifica dos vectores como argumentos.1 Funciones elementales para graficar
p l o t . encabezamien tos de ejes..
.'tipo_línea') d) plot(x1. loglog . y) produce una gráfica de y versus x .10 Gráficas en Dos Dimensiones 5.y2. plot(x.10.añade encabezamiento al eje-y text . .añade encabezamiento al eje-x ylabel .10.a ñ a d e t í t u l o a l a g r á f i c a xlabel . xn.'tipo_línea_2'.crea una gráfica de vectores ó columnas de matrices.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 .y) c) plot(x. p l o t ( y ) p r o d u c e u n a g r á f i c a l i n e a l d e l o s e l e m e n t o s d e y v e r s u s el índice de estos.y1.y. semi l o g x .2 Creando una gráfica
Sintaxis: a) plot(y) b) plot(x.yn..añade una cadena de texto en una localización específica g t e x t .x2.crea una gráfica utilizando una escala logarítmica para el eje -y y u n a escala lineal para el eje-x . Puedes añadir títulos.crea líneas entrecortadas
5.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 .
Y) grafica las filas ó columnas de Y versus el vector x.
plot (X1..) Cada par X -Y es graficado. si X es una matriz y y es un vector. Y1. s e g m e n t o p u n t o -. plot(x. E l e j e -x es encabezado por el vector índice de fila. ylabel('y=sin(t+)')
5. .10..'r-'.0).sólido : punteado -. Y2..y2.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 . Si plot es usado con dos argumentos y si X ó Y tienen más de una fila ó columna. title('Angulo difuso'). plot(X.'g--').y1=sin(t+0.x=sin(t). donde m es el número de filas en Y.y1. . generando líneas múltiples.y2=sin(t+1.s e g m e n t o
t=0:pi/200:2*pi. X2. Y) grafica las columnas de X versus las columnas de Y. si X y Y son ambas matrices del mismo tamaño. punto o circulo x marca + mas * asterisco .
. plot(x. entonces: si Y es una matriz.b azul w blanco k negro Símbolo Estilo de línea . Los pares diferentes pueden ser de dimensiones diferentes.3 Graficando Matrices
plot(Y) . 1:m.5). y x es un vector. plot(X..x.y) grafica cada fila ó columna de X versus el vector y. xlabel('x=sin(t)').
P a r a e v a l u a r u n a f u n c i ó n . 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. function y = fofx(x) y = cos(tan(pi*x)). m. Este archivo se guarda con el nombre de f o f x .
5. La siguiente función oscila infinitamente rápido en el intervalo.5 Graficando Funciones Matemáticas
Hay diferen tes formas de graficar funciones y = f(x).10.10. s e c r e a u n a r c h i v o d e e s t a f u n c i ó n y se le pasa el nombre del archivo a fplot. 0 x 1.5. El siguiente archivo -M de tipo función define la función anterior como fofx. [0 1]) prod u c e l a g r á f i c a :
.4 Importando Datos
Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load . Ahora la instrucción fplot('fofx'. Una de estas formas es evaluar la función en miles de puntos en el intervalo de interés. p lot(x. Podemos gráficarla como sigue: x = (0:1/2000:1)'.
.'tipo_línea_n') Ejemplo x = l o g s p a c e (.y) Ejemplo x=0:.b.'tipo_línea_1'.^x)
. semilogy(x.
5. plot(y'. 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) b) loglog(x. 10^a y 10^b
semilog(x).1.'-.')
loglog Sintaxis a) loglog(x.exp(x)) donde l o g s p a c e tiene las formas: l o g s pa c e ( a .1:20. Es decir. hold on...y1'. semilog(y) Sintaxis a) semilogx(x.6 Comandos gráficos
h o l d Permite añadir líneas al dibujo previo o n Activa hold off Desactiva h o ld Ejemplo plot(x).10.10. b ) logspace(a.3).'tipo_línea') c)loglog(x1'.b exponentes de los límites.y.yn.n) a.. xn.plot(yz.Aquí.y) b) semilogy(x. loglog(x.':').
fill(t.yb) d) [xb.4).y.yb]=bar(x.5:2*pi.'b') t=0:0.2). ini c i a n d o p o r l a f i l a s u p e r i o r Sintaxis: subplot(m.fill Dibuja el area interior de una curva en determinado color Sinta x i s: a) fill(x.yn.y). y=cos(t).2.'r')
subplot Dibuja la pantalla en mxn subdivisioens. rang=smvars(:. fill(y.xn. x=sin(t).'c') b) fill(x1. numeradas por el parámetro p. plot(vt) subplot(2. => plot(xb..4) plot(ikd)
bar Crea una gráfica de ba r r a s Sintaxis: a) bar(y). ikd=smvars(:.1).n.yb)
..y).'c1'. => plot(xb.2.2. it=smvars(:.x.3) plot(rang) subplot(2.cn) Ejemplo t=0:0. b) bar(x.5:2*pi.y1..1).yb]=bar(y). x=sin(t)..x.p) Ejemplo: vt=smvars(:. subplot(2.2) plot(it) suplot(2. de izquierda a derecha.3). c) [xb.2.
polar Dibujo en coordenadas polares Sintaxis: a) polar(ángulo.y) n .pi]) fplot(`tanh'. únicamente sin líneas in ternas
fplot Dibuja la gráfica de una función Sintaxis: a) fplot(`función'. 6 0 .ángulo) d) [x.Ejemplo x= .8:0.final].2:2. e x p (.[0.x.3 0 3 0 ] .n) c) fplot(`función'. `tipo_línea')
Ejemplo t=0:0.y]=fplot(`función'.final]) => plot(x. polar(t.número de puntos á n gulo .sin(5*t))
.8 b a r ( x .[ -2 2 ] ) function y=func(x) y=200*sin(x(:))./x(:).[.2.final]) b) fplot(`función'.final]. radio. fplot(`func'.*x) Nota: Los valores de x deben estar igualmente espaciados
stairs Igual que b a r. [inicio.01:2*pi.n.radio) b) polar(ángulo. [inicio. [inicio.ángulo entre segmentos sucesivos de la función
Ejemplo fplot(`sin'. [inicio.
cos(t).z) b) plot3(x.z1.'tipo_línea'.yn.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.y1. x ..05:2*pi.. Nota: 130 es opcional el rango 0.z.x.y. .y.'tipo_línea') Ejemplo t=0:0.y.n)
. colormap(hot(130))..11 Gráficos en 3 dimensiones
plot3 Dibuja líneas y puntos en 3 dimensiones Sintaxis: a) plot3(x.zn.z) c) plot3(x. y ) => sombreado vertical
5..xn. plot3(sin(t).'tipo_línea) d) plot3(x1.05:10*pi..x) => sombreado horizontal f i l l ( y ..t)
contour. x=sin(t). y=cos(t).255 fill(y. 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.
. .001.^2)+0.5. -2 < = y < = 2 [ X ..30)
meshgrid Genera arreglos X y Y para dibujos en 3 dimensiones Sintaxis: a) [X.Y] = meshgrid(x) => meshgrid(x.n) c) contour3(x.y)
Ejemplo..z) d) contour3(x. [x.y) b) [X..z) d) contour(x.y. Evalue y dibuje la funcion z=x*exp( -x^2 -y^2) sobre el rango -2 < = x < = 2 .8:0.y). mesh(Z)
x= .y.30)
contour3 Igual función de contour en 3 dimensiones Sintaxis: a) contour3(z) b) contour3(z.Y] = meshgrid(x. R=sqrt(x. Y ] = meshgrid(-2 : 2 : 2 ) .8..n)
E j e mplo contour3(peaks.y.y.c) contour(x.. z=sin(R).^2+y. mesh(z)
. z = x ..z. y=x.n)
Ejemplo contour(peeks) contour(peeks.x ^ 2 -y^2).y]=meshgrid(x. * e x p (..z./R.
y).y.y.y.z.c) b) surf(x. sobre y bajo el plano de referencia..z.c) f) surf(z) g) surfc(..y.y.y.z) e) surf(z.z)
surf.c) d) mesh(x.y] = meshgrid(-3:2:3).y. meshz(x.c) b) mesh(x.z) c) surf(x. meshc(x.z) [x..c) d) surf(x. meshc y meshz Dibujan una superficie de malla tridimensional.z. z=peaks(x.y.z.y).y.mesh.) => misma S i n t a x i s que surf
.. crando una perspectiva del dibujo.c) f) mesh(z) g) meshc(.z) c) mesh(x.) => mismo que mesh
Ejemplo: [x.) => mismo que mesh h) meshc(.y] = meshgrid(-3:2:3)... surfc Crean superficies sombreadas en 3 dimensiones Sintaxis: a) surf(x.y. Sintaxis: a) mesh(x.z) e) mesh(z. z=peaks(x.
n = 2 ^ k -1 .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.s) s .y).z) k = 5 .3:.2:3).c).y.dirección de la luz
. surf(x.y.Ejemplo [x.y.y. z=peaks(x.s) c) surfl(x. . 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.z.z) o con : colormap(hot)
surfl Superficie sombreada tridimensioanl con efecto de reflexión de luz Sintaxis: a) surfl(z) b) surfl(z.y.z] = sphere(n) n . y . .z) d) surfl(x. mesh(x. c = h a d a m a r d ( 2 ^ k ) .número de meridianos
Ejemplo [x. z ] = s p h e r e ( n ) . surf(x.z]=sphere(20).y. . [ x .z.y]=meshgrid(.
ymax. z=peaks(x.y). zmin. xmax. ymin.z)
shading flat .y. surfl(x.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 . zmax]) c) axis(`auto') d) axis(`ij') e) axis(`xy') f) axis(`square') g) axis(`equal' ) h) axis(`off') 70
.3:0. añadiendo: shading interp y posteriormente: colormap(gray). 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).
axis Escala y apariencia de los ejes Sintaxis: a) axis([xmin.Ejemplo [x.y]=meshgrid(. ymin. xmax.
.4))
r a n d matrices y números aleato rios distribuidos uniformemente Sintaxis: a) rand(n) .n) .4). 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: .4).. rand(3. El eje y es vertical y se numera de abajo hacia arriba a x i s ( ` s q u a r e ' ) d e t e r m i n a q u e l a r e g i ó n de los ejes es cuadrada axis(`equal') indica que los factores de escalamiento y marcas incrementales a lo largo de los ejes x y y son iguales. El eje y es vertical y es numerado de arriba hacia abajo..y1. axis([ . rand(20).yn.'c') b) fill3(x1. El eje x es horizontal y se numera de izquierda a derecha.z... rand(3.zn)
Ejemplo colormap(hot) fill3(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 . rand(20))
.z1.. rand(20).m a t r i z d e m x n
Ejemplo fill3(rand(20). rand(3.3 3 .3 3 . axis(`xy') regresa la forma de ejes cartesianos que existe por defecto .matriz de nxn b) rnad(m.xn. a x i s ( ` i j ' ) dibuja nuevamente la gráfica.y.4).i) axis(`on') donde: axis(`auto') realiza el escalamiento de ejes a su modo de autoescalamiento por defecto.8 8])
fill3 colorea polígonos de 3 dimensiones a) fill3(x.
.y. etc) Sintaxis a) load archivo b) l o a d a r c h i v o .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.alfa) donde: 0<alfa<1 más brillante -1<alfa<0 más obscuro Del ejemplo anterior: . e x t donde: ext .e x t e n s i ó n
image crea un objeto imagen y lo presenta Sintaxis: a) image(x) b) image(x. 6 ) ó brighten(.0 . datos. sonido. 6 )
. 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.load carga en el area de trabajo un archivo (imagen. En b) . brighten(0..
. delete y c d .12.12. También puedes hacer que tus programas manipulen datos directamente en archivos.m. Similarmente.
El simbolo "!" le indica a MATLAB que el resto de la línea de entrada es un coma ndo para el sistema operativo. L u e g o q u e e s t e programa sea completado. Para más información utiliza la Guía de Referencia de MATLAB ó el comando help.Fs) donde: Fs frecuencia especificada en Hz
Ejemplo load train sound(y. MATLAB utiliza .1 Manipulación de Archivos de Disco
Algunos comandos utilizados para la manipulación de archivos de disco son dir. Por ejemplo. type. puedes exportar datos de MATLAB a otros programas. ! edt darwin. plot(t.1 ) / F 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.Fs) t=(0:length(y).MAT.12 Archivos de disco 5. el sistema operativo devuelve el control a MATLAB.
5.m automáticamente. El comando diary c r e a un diario de tu sesión de MATLAB en un archivo de disco.y)
5.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 .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. Si la extención no se especifica.
ifftn. rot90. hold. e lse i f. break. poly. gtext.13 INDICE ALFABETICO
axis. f o p e n . e i g . contour3. hadamard. sound. peaks. text. tril. surfl. triu. fplot. surfc. f u n ct io n . ylabel. plot. colormap. for. real. d ia g . clf. 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. if. plot3. i n v . sphere. meshgrid. rand. zeros. imag. while. contour. grid. reshape. size. l u .
.el cúal es el formato de archivo utilizado por MATLAB. reshape. meshc. f il l . shading (flat interp faceted). ifft. subplot. surf. f cl o s e. f f t n . pascal. conj. m e s h . l o a d . semilog. fread. fwrite. xlabel. polar. bar. f il l 3 . f f t . semilogy. all. ode45. l o g l o g . d et . toplitz. e lse . title. image. stairs. brighten.
5. meshz. ode23. any. e xp m.
tal como. 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. Simulink usa un ambiente gráfico lo que hace sencillo la creación de los modelos de sistemas. discretos en el tiempo o sistemas híbridos. integradores. Como una extensión de MatLab. Simulink tiene dos fases de uso: la definición del modelo y el análisis del modelo. Para simplificar la definición del modelo Simulink usa diferentes clases de ventanas llamadas ventanas de diagramas de bloques. El ambiente de MatLab está siempre disponible mientras se ejecuta una simulación en Simulink. 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. La ventana principal de Simulink se activa escribiendo simulink en la línea de comandos de MatLab. bloques de ganancia o servomotores. Simulink adiciona muchas características específicas a los sistemas dinámicos. mientras conserva toda la funcionalidad de propósito g e n e r a l d e M a t L a b . En esta nueva ventana se colocarán todos los bloques interconectados que formarán el sistema deseado . inclusive aquellos con elementos no lineales y aquellos que hacen uso de tiempos continuos y discretos. La definición del modelo significa construir el modelo a partir de elementos básicos construidos previamente. sino un anexo a él. En estas ventanas se puede crear y editar un modelo gráficamente usando el ratón. 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. 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. Mediante una interface gráfica con el usuario se pueden arrastrar los componentes desde una librería de bloques existentes y luego interconectarlos mediante conectores y alambre. El análisis del modelo significa realizar la simulación. linealización y determinar el punto de equilibrio de un modelo previamente definido. Para realizar un sistema debe abrirse una nueva ventana de diagrama de bloques seleccionando la opción file del menú principal del Simulink y allí la opción new.
. SIMULINK
Simulink es una herramienta para el modelaje. Esto significa que se puede modelar sistemas continuos en el tiempo. análisis y simulación de una amplia variedad de sistemas físicos y matemáticos. 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.6.
Existen numerosos bloques y funciones incorporados en las librerías de simulink que pueden ser empleados para simular cualquier sistema. 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. 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. A continuación se muestra el bloque PID:
. se puede observar la respuesta al hacer doble click en el osciloscopio. Haciendo doble click so bre cada elemento del sistema se pueden ver y modificar sus características. Al osciloscopio se le definen las escalas horizontal y vertical. Para ejecutar el programa se usa la opción simulation en el menú de la ventana del archivo . frecuencia y fase. En este submenú está la opción start que permite ejecutar el programa. Este sistema se almacena como un archivo .m creado.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". Por ejemplo.m. tal como se muestra a continuación: Al ejecutar el programa seno. ambos se unieron mediante un conector usando el ratón.m creado mediante simulink. Por ejemplo. El contenido de dicho bloque se obtiene haciendo doble click sobre él. al generador seno se le puede modificar su amplitud.
1 Acelerador de Simulink
Para incrementar la velocidad de Simulink se debe instalar el acelerador "Accelerator". etc. El propósito del acelerador es aumentar la velocidad de simulació n . No requiere ser escrito manualmente por un programador pues es creado a nivel de diagramas de bloques en Simulink. discretos en el tiempo y híbridos.
6. Este código es la forma en la que puede usare el Simulink para adquisición de datos. Este puede ser útil para varios propósitos: puede ser usado para control en tiempo real. la simulación es ejecutada en la ventada de modelos de Simulink exactamente igual que antes sólo que más rápidamente.C para un modelo dado. PC o microprocesadores. Sus aplicaciones pueden ser control de movimiento. simulación en tiempo real o simulación acelerada en tiempo no real.2 Generador de código-C en Simulink
Una vez se ha creado un modelo dinámico en Simulink. El código-C es diseñado tal que puede ser ejecutado en tiempo real. 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. 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. sistemas automotores. 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.6.
. El acelerador trabaja generando y compila n d o u n c ó d i g o . Una vez se completa la compilación. robótica. control de procesos. equipos médicos. se puede invocar el generador de código-C que permite convertir el diagrama de bloques implementado en un código C. El código generado puede correr sobre un amplio rango de hardware ubicado en estaciones de trabajo. El acelerador puede ser usado sobre modelos continuos.
L o c a t e f u n c t i o n s a n d f i l e s .List current variables.a n d M E X -files.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 . lookfor . disp . save . type . clear . MAT .Execute operating system command & return result. long form.On -l i n e d o c u m e n t a t i o n .Keyword search through the HELP entries.C l e a r variables and functions from memory. whos .Size of matrix. COMANDOS DE MATLAB 7.Change current working directory. d emo .Save text of MATLAB session. size .L i s t M-f i l e . which . unix .Retrieve variables from disk.Directory l i s t i n g .
Working with files and the operating system: cd .Execute operating system command.
Managing variables and the workspace: who .Directory listing of M-. length . ! .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 . load . pack . what .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 . diary .Get environment value.Display matrix or text. path . getenv .Run demos.Length of vector. dir .List current variables.Delete file.7. delete .
.Control MATLAB's search path.
^ Array power arith \ Backslash or left division slash / Slash or right division slash .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 .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 .
Operators and special characters: Char Name HELP topic + Plus arith .Information about new features not yet documented. whatsnew . clc .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 . hostid .* Array multiplication arith ^ Matrix power arith .S e t c o m m a n d l i n e e d it/recall facility parameters. matlabrc .M A T L A B . startup . 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 . ver .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 .Send cursor home.Set output format. subscribe . home .T e r m i n a t e MATLAB.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 .B e c o m e s u b s c r i b i n g u s e r o f M A T L A B . echo .
Starting and quitting from MATLAB: quit . format .Master startup M-f i l e . more ./ Array division slash
.MATLAB server host identificati o n n u m b e r .Minus arith * Matrix multiplication arith .Clear command window. S I M U L I N K .
A. Parent directory punct . isnan . f i n d .zero elements..True for sparse matrix. isstr .
.T r u e f o r e m p t y m a t r i x .True if all elements of vector are true.kron Kronecker tensor product kron : Colon colon ( ) Parentheses paren [ ] Brackets paren .T r u e f o r N o t. Comma punct .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 .T r u e f o r t e x t s t r i n g . isempty . issparse . isglobal .. a l l . Continuation punct .Number. isinf .True for global variables.F i n d i n d i c e s o f n o n .T r u e f o r f i n i t e e l e m e n t s . any . Decimal point p u n c t . 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 .True for infinite elements. finite ..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 .
ssselect .Select subsystem from larger system. c2dm .t i m e c o n v e r s i o n .Form continuous state estimator from gain matrix.F e e d b a c k s y s t e m c o n n e c t i o n . outputs.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 .Build state -space system from block diagram.Discrete to continuous. conv .Append system dynamics.Generate random continuous mod e l .P a r a l l e l s y s t e m c o n n e c t i o n .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 .time conversion w i t h m e t h o d .G e n e r a t e A .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 . series .Generate random discrete model.time conversion.Form discrete controller/estimator from gain matrices.D i s c r e t e t o c o n t i n u o u s. reg .Roots to polynomial conversion.time conversion with method.Continuous to discrete .Convolution of two polynomials.
Model conversions>: c2d .S e r i e s s y s t e m c o n n e c t i o n .P a r t i a l f r a c t i o n e x p a n s i o n .A u g m e n t s t a t e s a s o u t p u t s .Pade approximation to time delay. estim .C l o s e l o o p s o f s y s t e m . B . connect . augstate . rmodel . ssdelete .Block diagram modeling. destim . pade . c2dt . b l k b u i l 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 . parallel . d2cm . cloop . residue . ord2 .Delete inputs. poly .
. dreg . or states from model. feedback . d2c .Continuous to discrete. drmodel . D f o r a s e c o n d-order system. C .
esort .s p a c e c o n v e r s i o n . damp . ss2ss . dsort .Z e r o.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.Balanced realization.Sort continuous eigenvalues by real part. tf2zp . dgram . ss2zp .Transfer function to state.Z e r o.Transfer function to zero -p o l e c o n v e r s i o n .
. dmodred .Apply similarity transform. ctrbf .Discrete steady state (D. ddamp .Eigenvalues and eigenvectors.Discrete controllability and observability gramians.S t a t e . dcovar .s p a c e c o n v e r s i o n .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 . dbalreal .Discrete model order reduction. eig .ss2tf . modred . obsvf .space to transfer function conversion.Model order reducti o n .zero cancellation.
Model reduction : balreal . zp2ss .Observability staircase form.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 . zp2tf .Discrete covariance response to white noise.space to zero -pole conversion.Controllability staircase form. minreal .
M o d e l r e a l i z a t i o n s: canon .pole to state. dcgain . ctrb . tf2ss .) gain.Continuous steady state (D.) gain.Continuous covariance response to white noise.C a n o n i c a l f o r m .pole to transfer function conversion.Damping factors and natural frequencies.Discrete balanced realization.
Model properties : covar .C.C o n t r o l l a b i l ity matrix. ddcgain .C.State .
Discrete simulation to arbitrary inputs. dinitial .gram .Low level time response function.S I S O z . dstep . freqz .Discrete step response. dbode . freqs .C o n t i n u o u s s i m u l ation to arbitrary inputs. dnyquist .Discrete singular value frequency plot.Impulse response.Gain and phase margins. roots . step . fbode . ltifr . printsys . dsigma .Step response.Discrete Nichols plo t. filter .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 .Discrete unit sample response.Discrete initial condition response. tzero .transform frequency response. dlsim . impulse .Bode plot (frequency response).
Frequency response: bode .T r a n s m i s s i o n z e r o s .Laplace . lsim . initial .Continuous initial condition response.Low level frequency response f u n c t i o n .Discrete Nyquist plot.Discrete Bode plot (frequency response). margin .P o l y n o m i a l r o o t s . stepfun .
Time response: dimpulse . nichols .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 .Display system in formatted form.Nichols plot.transform simulation. dnichols .S t e p f u n c t i o n . ltitr . tzero2 .Z.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 .Observability matrix. o b sv .
dlqry . lyap2 . lqe2 .Discrete regulator design from continuous cost function. dlqr .SISO pole placement. lqe . lqr . d l q e w . lqr2 .Discrete estimator design from continuous cost function.
Equation solution: are .Lyapunov equa tion solution using diagonalization.
R o o t l o c u s: pzmap .L i n e a r. rlocus . rlocfind . place .Discrete Lyapunov equation solution.G e n e r a l l i n e a r-quadratic estimator design. lqry . dlyap .quadratic regulator design. nyquist .Algebraic Riccati equation solution.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 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 .
. lqed .
Gain selection: acker .Linear quadratic estimator design using Schur method.zero map. z g r i d .P o l e p l a c e m e n t . sigma .D r a w d i s c r e t e r o o t l o c u s w n .D i s c r e t e l i n e a r -q u a d r a t i c r e g u l a t o r d e s i g n . lqrd .General discrete linear quad ratic estimator design.P o l e.Singular value frequency plot. z g r i d .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 .Linear quadratic regulator design using Schur method. lyap . l q e w .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 .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 . sgrid .ngrid . dlqe .L i n e a r-quadratic estimator design.Interactive root locus gain determina tion.Nyquist plot.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 . zgrid .E v a n s r o o t-locus.
Se deben especificar los vectores para almacenar los coeficientes del polinomio numerador y del denominador. Su Sintaxis e s : [num.C.c.c.c.u) A= -6 .C.B.0000 0.d)
Para obtener la respuesta en el tiempo para una entrada impulso unitario se usa el comando impulse.d)
Ejemplo >>[num.0000 den = 1. 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].den]=ss2tf(a.B.1 1 .d) num = 0 0 1.b. » u=[1 6 11 6].Se puede hacer la conversión de una ecuación de estado a su equivalente función de transferencia.b.D]=tf2ss(y. mediante el comando ss2tf.2500 1.den]=ss2tf(a.b.u) del numerador y
Si por el contrario el sistema se defin e en MatLab por las ecuaciones de estado: » [A. » impulse(y.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.D)
Ejemplo >>step(a.6 1 0 0 0 1 0
C.B= 1 0 0 C= 1 5 4 D = 0 » impulse(A.D)
En ambos casos. MatLab presenta la respuesta en el tiempo en la ventana de figuras:
T) usando la función de transferencia.C. también obtener respuesta para otras entradas tal como rampas o sinusoides.MatLab permite. >>PLOT(T.Y.1:10 >>U=T. La Sintaxis de este comando es: lsim(A.T) usando las matrices de estado o lsim(NUM. además de obtener la respuesta en el tiempo para una entrada escalón o impulso.U.U. El comando lsim permite obtener la respuesta en el tiempo para un sistema con una entrada u.B. >>DEN=[1 0. 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.D.U.DEN. se define U de la siguiente forma: >>T=0:0.T.25 1]. obteniéndose:
.X]=lsim(NUM. T es el vector de tiempo variando desde 0 hasta 10 s e g .DEN.T). Para obtener la respuesta en el tiempo para una función rampa. En la variable Y se almacena la salida del sistema en función del tiempo T. >>[Y. donde u se define como una función del tiempo.U)
Al hacer U=T se está definiendo la función rampa. 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. >>NUM=[1].
25 1].u)
. se definen dos vectores cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S.den). Para obtener el diagrama de Bode de una función de transferencia. >>bode(y. Se define la función de transferencia:
Ejemplo >>y=[1]. 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. de Nyquist y de Nichols. >>u=[1 0.8.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.
D). Para especificar un rango deseado de frecuencias en las cuales se desea obtener el diagrama de Bode. den. >>bode(y.C. se emplea un vector de frecuencias en el que se especifica la frecuencia inicial.D.1:100. >>u=[0. >>nichols(y. 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.W) si se emplean las matrices de estado o nichols(num. cuya Sintaxis es idéntica a la del comando bode: nichols(A. Por ejemplo: >>W=0:0.
Si se define y como el vector de los coeficientes del polinomio del numerador y u como el deldenominador: >>y=[0 0 100]. el incremento y la frecuencia final.B. Para obtener el diagrama de Nichols se utiliza el comando nichols.Otro formato mediante el cual el comando bode presenta el diagrama de bode.u.B.04 1 0].W) si se emplea la función de transferencia.u)
.D).C. es a través de las ecuaciones de estado representadas por las matrices de estado (A.W) Este comando muestra el diagrama de Bode entre 0 y 100 rad/s.B.C. Su Sintaxis e s : bode(A.
Si se define y como el vector de los coeficientes del polinomio del numerador y u como el del denominador: >>y=[1].W) si se emplean las matrices de estado o nyquist(num.W) si se emplea la función de transferencia. >>u=[1 6 5].Otra herramienta de análisis en el dominio en la frecuencia que ofrece MatLab es el diagrama de Nyquist.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:
.D. cuya Sintaxis es idéntica a la del comando bode y nichols: nyquist(A. Para obtenerlo se utiliza el comando nyquist. >>nyquist(y.B.den.C.
W) toma los vectores de magnitud.B. frecuencia de cruce de ganancia (Wcg) y la frecuencia de cruce de fase (Wcp) cuando se trabaja con las matrices de estado (A. C . la frecuencia de cruce de ganancia y la frecuencia de cruce de fase MatLab dispone del comando margin. margen de fase (Pm).Wcg. [Gm. >>[Gm. [Gm.den)
.Wcp] = MA R G I N ( N U M .7487 Wcg = NaN Wcp = 3. fase y frecuencia del diagrama de Bode.Pm.C.Wcg. D ) dibuja el diagrama de Bode y muestra con líneas verticales los m á rg e n e s d e g a n a n c i a y d e f a s e . B .Pm.Pm. >>den=[1 0.C.den) Gm = Inf Pm = 4.Para obtener el margen de ganancia. Las diferentes formas de utilizar este comando son: [Gm.Wcp] =margin(num.Wcp] = MARGIN(A.Wcg.Wcg. M A R G I N ( A .PHASE.3114 >>margin(num. el margen de fase.D). D E N ) cuando se trabaja con la función de transferencia.Pm.Wcp] = MARGIN(MAG.B.25 1].D) retorna los valores de margen de ganancia (Gm).
>>num=10.
D) son equivalentes a las Sintaxis anteriores pero empleando las matrices de estado para hallar 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).B. o [R.
. de longitud igual al número de elementos de K. rlocus(A.C. R=rlocus(A.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.D.B.K]=rlocus(A.C. MatLab dispone del comando rlocus. MatLab g enerará automáticamente un conjunto de valores de la ganancia K. Por ejemplo de 0 a 100 co n incrementos de 10: k=0:10:100 R = rlocus(NUM.DEN.C.B.3 Lugar de las raíces
Se debe determinar su ecuación característica. estas pueden además ser complejas. la cual es de la forma:
Para obtener el lugar de las raíces. R tendrá tantas columnas como raíces existan.K) o [R. rlocus(NUM.DEN.8. Las diferentes Sintaxis para utilizar este comando son: r l o c u s ( N U M . la localización de las raíces.K] = rlocus(NUM.K).D).DEN) no dibuja el lugar de las raíces pero almacena en la matriz R.
MatLa b retorna el valor de k para esta localización y los polos asociados a esta ganancia.D. 2 6 8 8 . >>den=[1. Su Sintaxis e s : [K.den. D ) .C.6655 poles = -2 . 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. P O L E S ] = r l o c f i n d ( A . 5 5 5 i . » [k. cuando se trabaja con la función de transferencia. La nueva Sintaxis es: [K. Este debe ser el punto o los puntos en donde se desea tomar el valor de k.0 . 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 medio del curso en el lugar de las raíces se selecciona una localización.4623 en la parte real y . d e n ) Select a point in the graphics window selected_point = -2 .1].P) o [K. C .den) MatLab dispone del comando rlocfind que permite determinar los polos del sistema para una valor dete rminado de k. 4 6 2 5 -0 .POLES] = rlocfind(A. Por ejemplo: P=3+0i o P=1 -0 . 0 1 3 2 e n l a p a r t e i m a g i n a r i a .B.p o l e s ] = r l o c f i n d ( n u m .0 .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.0 .3.2.
. MatLab activa la ventana de figuras en espera de que el usuario seleccione un punto del lugar de las raíces mediante el cursor.0.
Cuando se trabaja con las matrices de estado.POLES] = rlocfind(num.0]. 0 1 3 2 i k = 1.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.P) P debe definirse previamente indicando la parte real e imaginaria del mismo. 2 6 8 8 + 0 . 4 6 2 3 . En este caso el punto seleccionado fue 2. las Sintaxis para el comando rlocfind es: [ K .POLES] = rlocfind(num.0. B . >>rlocus(num. 7 7 7 3 i -0 .
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. PD. que es una constante o valor es c a l a r .4 Controladores PID
Para implementar los diferentes tipos de controladores (P. 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. C(S)=Kp. Para el caso del controlador proporcional. PI. Si dicho sistema es de la forma:
donde G(S) es la función de transferencia de la planta o proceso. PID) en MatLab se hace uso de la función de transferencia propia del sistema a objeto de estudio . Los coeficientes decrec i e n t e s en potencias de S de estos polinomio pueden ser almacenados en vectores en MatLab.8. Por ejemplo un G(S) puede ser:
. mientras que C(S) es la función de transferencia del controlador. 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.
. >>num1=[Kd Kp Ki].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.sign) El signo de la realimentación viene dado por sign.den2). >>step(num.Para obtener la respuesta en lazo abierto ante una entrada escalón unitario tenemos: >>Kp=50.conv(den1. 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 ) . Para el ejemplo anterior. >>den2=[1 10 20 0]. >>Ki=1.den. S u Sintaxis es: [numc. tenemos: >>Kp=500. >>Ki=1. >>Kd=100. >>Kd=10.numd]=cloop(conv(num1. > > [numc. >>den=[1 10 20 0 0]. La salida obtenida mediante el comando s t e p se muestra a continuación:
. >>step(numc. >>num=[Kd Kp Ki].1). >>num2=1.den)
Para obtener la respuesta de lazo cerrado en el tiempo para una entra da escalón unitario se emplea el comando cloop.num2).denc]=cloop(num. >>den1=[1 0].
^2.m
Para cotejar sus diagramas de Bode: >>bode(num.'off') o simplemente >>axis off
.^2 .11 15.*B.*B.[1 5 0])
Precaución: El punto ".811]. TRUCOS EN MATLAB® Paper semilogarítmico gratis: papelbod.
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 .'Visible'.^2 (notar el espacio después del primer 2) y no >>A. 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.". 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 . C u a n d o e s c r i b i m o s un dígito pegado al punto como "2. el interpretador cree que es el número "2. debemos escribir >>A.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.elemento). Entonces si queremos calcular A2B2. 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.
Ejemplo: Para .0".^2
Para remover ejes de la gráfica: >>set(gca." puede significar operación elemento -p o r -e l e m e n t o o punto decimal.9.
y.'children').3) (En el momento de creación) >>set(get(gca.Para cambiar el color de trasfondo de la gráfica: >> whitebg('c') donde c es el código del color descrito en help plot. Por ejemplo. es más fácil hacerlo al crearla que después. >>plot(x.
Para establecer propiedades de la gráfica.'linewidth'.'linewidth'.3) ( D e s p u é s d e c r e a d a )
. para graficar con una línea gruesa.
More From This UserKatalog Ringe en 4211 PagesKatalog Ringe en 4211 Pages1284312843contenido_de_humedad_en_la_madera-libre.pdfcontenido_de_humedad_en_la_madera-libre.pdfFICHA-WEB_MAHUIZA-CASA-73M2-27012015-1.pdfFICHA-WEB_MAHUIZA-CASA-73M2-27012015-1.pdfVibraciones CONFCHILEVibraciones CONFCHILEProductProductNorma Tecnica Minvu_001Norma Tecnica Minvu_001TW-100-IMPTW-100-IMPDocumento 15Documento 15igus_ptgsg-18x8p4-02-l-200_6vrhhbv200i76ul479mih0pv6igus_ptgsg-18x8p4-02-l-200_6vrhhbv200i76ul479mih0pv6EBERSPACHER.typ.X2.InstruktionsbokEBERSPACHER.typ.X2.Instruktionsbokffdfgddtdrdffdfgddtdrdjutrsdegjutrsdeg7711-10419-1-PB7711-10419-1-PB800 200800 200500 160500 160800 200800 200ProductProductMobil Super 4tMobil Super 4tManual TermostatoManual Termostatocaja-pasocaja-pasoTablas y DiagramasTablas y Diagramastratamientos_metalestratamientos_metales0900766 b 8139912 f0900766 b 8139912 fReadme and Terms of Use 3d Cad ModelsReadme and Terms of Use 3d Cad Models

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