Este documento presenta un resumen de tres capítulos sobre el curso de manejo y programación de MATLAB. Introduce conceptos básicos como el entorno de trabajo de MATLAB, el manejo de matrices, y operaciones fundamentales con matrices como suma, transposición e intercambio de filas y columnas. Explica cómo crear, modificar y manipular matrices mediante funciones como magic, reshape y repmat.
Este documento presenta un curso introductorio de MATLAB para ingenieros. Incluye contenidos como vectores, matrices, gráficas, funciones y scripts. El curso consta de 10 sesiones prácticas de 2.5 horas cada una con evaluaciones teóricas y un proyecto final para obtener el certificado. MATLAB es un lenguaje de programación para cálculos numéricos, modelado y desarrollo de aplicaciones científicas y de ingeniería.
Este documento proporciona instrucciones para usar MATLAB. Explica conceptos básicos como matrices, vectores y gráficos. También muestra ejemplos de comandos para definir y manipular datos, y realizar cálculos y operaciones matemáticas elementales. El documento concluye explicando cómo crear y guardar archivos .m de MATLAB que automatizan tareas a través de comandos programados.
Este documento proporciona una introducción al software MATLAB, describiendo sus pantallas principales y funciones básicas como matrices, vectores, gráficos y comandos. Explica cómo definir y manipular datos numéricos, y cómo generar gráficos simples de datos experimentales.
1) El documento introduce MATLAB, un software de ingeniería para cálculo numérico y gráficos. 2) Explica funciones básicas como escalares, vectores, matrices, operaciones matemáticas y funciones predefinidas. 3) MATLAB es útil para álgebra lineal, análisis numérico y otras aplicaciones en ciencia e ingeniería.
Este documento presenta un curso rápido de Matlab. El temario incluye una introducción a Matlab, estructuras básicas y avanzadas de datos, programación, optimización de código, representaciones gráficas y desarrollo de aplicaciones. Se describen las versiones de Matlab, su entorno de desarrollo interactivo, comandos básicos, ayudas, documentación y toolboxes especializadas.
El documento introduce Matlab como un entorno de trabajo para cálculo numérico y simbólico útil para la ciencia e ingeniería. Describe la interfaz principal de Matlab, incluyendo la ventana de comandos donde se ejecutan comandos, la ventana de trabajo que muestra variables, y la ventana de historial de comandos. También explica cómo acceder a la ayuda integrada y ejecutar archivos desde la ventana de directorio actual.
Este documento trata sobre los fundamentos de MATLAB. MATLAB es un lenguaje de programación técnica y de computación matricial. Ofrece múltiples herramientas para aplicar en diversas áreas como aeroespacial, biomédica, procesamiento de imágenes, entre otras. El documento explica los componentes básicos del sistema MATLAB, como la ventana de comandos y el entorno de escritorio. También cubre temas como vectores, matrices, operaciones numéricas y matriciales básicas.
Este documento presenta un curso introductorio de MATLAB. Cubre temas como vectores, matrices, gráficas, estructuras de control, GUI y adquisición de datos. El curso consta de 10 clases con objetivos como aprender comandos básicos, funciones matemáticas, análisis de datos y desarrollo de aplicaciones. Se evaluará a los participantes con prácticas, exámenes teóricos y final para otorgar certificados de aprobación o asistencia.
Este documento presenta un curso introductorio de MATLAB para ingenieros. Incluye contenidos como vectores, matrices, gráficas, funciones y scripts. El curso consta de 10 sesiones prácticas de 2.5 horas cada una con evaluaciones teóricas y un proyecto final para obtener el certificado. MATLAB es un lenguaje de programación para cálculos numéricos, modelado y desarrollo de aplicaciones científicas y de ingeniería.
Este documento proporciona instrucciones para usar MATLAB. Explica conceptos básicos como matrices, vectores y gráficos. También muestra ejemplos de comandos para definir y manipular datos, y realizar cálculos y operaciones matemáticas elementales. El documento concluye explicando cómo crear y guardar archivos .m de MATLAB que automatizan tareas a través de comandos programados.
Este documento proporciona una introducción al software MATLAB, describiendo sus pantallas principales y funciones básicas como matrices, vectores, gráficos y comandos. Explica cómo definir y manipular datos numéricos, y cómo generar gráficos simples de datos experimentales.
1) El documento introduce MATLAB, un software de ingeniería para cálculo numérico y gráficos. 2) Explica funciones básicas como escalares, vectores, matrices, operaciones matemáticas y funciones predefinidas. 3) MATLAB es útil para álgebra lineal, análisis numérico y otras aplicaciones en ciencia e ingeniería.
Este documento presenta un curso rápido de Matlab. El temario incluye una introducción a Matlab, estructuras básicas y avanzadas de datos, programación, optimización de código, representaciones gráficas y desarrollo de aplicaciones. Se describen las versiones de Matlab, su entorno de desarrollo interactivo, comandos básicos, ayudas, documentación y toolboxes especializadas.
El documento introduce Matlab como un entorno de trabajo para cálculo numérico y simbólico útil para la ciencia e ingeniería. Describe la interfaz principal de Matlab, incluyendo la ventana de comandos donde se ejecutan comandos, la ventana de trabajo que muestra variables, y la ventana de historial de comandos. También explica cómo acceder a la ayuda integrada y ejecutar archivos desde la ventana de directorio actual.
Este documento trata sobre los fundamentos de MATLAB. MATLAB es un lenguaje de programación técnica y de computación matricial. Ofrece múltiples herramientas para aplicar en diversas áreas como aeroespacial, biomédica, procesamiento de imágenes, entre otras. El documento explica los componentes básicos del sistema MATLAB, como la ventana de comandos y el entorno de escritorio. También cubre temas como vectores, matrices, operaciones numéricas y matriciales básicas.
Este documento presenta un curso introductorio de MATLAB. Cubre temas como vectores, matrices, gráficas, estructuras de control, GUI y adquisición de datos. El curso consta de 10 clases con objetivos como aprender comandos básicos, funciones matemáticas, análisis de datos y desarrollo de aplicaciones. Se evaluará a los participantes con prácticas, exámenes teóricos y final para otorgar certificados de aprobación o asistencia.
1. El documento describe cómo generar gráficos en MATLAB. Introduce conceptos básicos como vectores, matrices y funciones, y explica cómo crear gráficos 2D, 3D y estadísticos. 2. Se explican comandos para manipular datos como plot, mesh, histogram, entre otros. 3. El documento es una guía para aprender a visualizar y analizar datos de forma gráfica usando MATLAB.
Este documento proporciona una introducción al uso del lenguaje de programación MATLAB. Explica conceptos básicos como operaciones aritméticas, lógicas y de comparación, el uso de variables y matrices, y funciones para visualizar y manejar datos. También cubre temas como programación básica con estructuras de control y funciones definidas por el usuario.
Este documento presenta una introducción a MATLAB. Explica que MATLAB es un lenguaje de programación para realizar cálculos numéricos con vectores y matrices. Describe los elementos básicos de la interfaz de MATLAB como la ventana de comandos, directorio actual y espacio de trabajo. También introduce conceptos fundamentales como números, vectores, matrices, operaciones con ellos y funciones matemáticas. Por último, menciona brevemente temas como polinomios, gráficos 2D y 3D y programación.
El documento describe los comandos básicos de MATLAB para realizar cálculos numéricos. Explica cómo realizar operaciones aritméticas, establecer el formato de salida, trabajar con números complejos y variables. También cubre cómo guardar y recuperar variables, sesiones y resultados.
Este documento presenta una guía para el uso de Matlab en el curso de Matemáticas 3 en la Universidad de El Salvador. Explica cómo realizar integración indefinida y definida, trazar gráficas, y calcular áreas bajo curvas utilizando comandos de Matlab como 'int', 'ezplot' y 'integral'. También proporciona un ejemplo aplicado de cálculo de área entre dos curvas.
Desarrollo de ejercicios básicos en matlabAdalberto C
Este documento describe el uso de MATLAB para resolver dos problemas matemáticos. En el primer ejercicio, se genera una matriz aleatoria que representa datos de temperatura mensual durante 20 años y se grafica frente al tiempo. En el segundo ejercicio, se define una función de dos variables y se grafican curvas de nivel para valores constantes de las variables. El documento explica comandos de MATLAB para crear matrices, vectores, funciones y graficar en 2D y 3D.
Este documento introduce Matlab y su uso para la reducción de diagramas de bloques. Matlab es un lenguaje de programación para realizar cálculos numéricos con vectores y matrices. Incluye herramientas como Simulink para simulación y GUIDE para interfaces gráficas. Se explican conceptos básicos como escalares, vectores, matrices y funciones. También se describen comandos como plot() para generación de gráficos y subplot() para dividir la ventana en subplots. Finalmente, se menciona que los archivos .m permiten construir secuencias de com
Este documento presenta una introducción a MATLAB. Explica los elementos básicos del entorno de MATLAB como la ventana de comandos y la ventana de trabajo. Luego, cubre temas como números y operaciones, vectores y matrices, operaciones con vectores y matrices, funciones para vectores y matrices, polinomios, y gráficos 2D y 3D. El objetivo general es proporcionar una visión general de MATLAB y sus capacidades principales para el cálculo numérico.
Introduccion y operaciones basicas (matlab)Gino Pannillo
Este documento introduce MATLAB, incluyendo su propósito de adquirir conocimientos básicos sobre el software y competencias como realizar gráficos 2D y usar la ventana de comandos. Explica que MATLAB es una herramienta para análisis matemático desarrollada en 1984 y usada comúnmente por ingenieros y científicos. También describe el entorno gráfico de MATLAB y comandos básicos como funciones trigonométricas y matriciales.
Este documento introduce Matlab y Simulink. Explica que Matlab es un lenguaje de alto nivel para realizar cálculos científicos y técnicos que incluye herramientas de visualización y un entorno de programación. Cubre temas como el entorno de Matlab, sintaxis básica, vectores, matrices, gráficos y resolución de sistemas de ecuaciones.
Este documento proporciona instrucciones para completar una práctica introductoria en Matlab. Incluye pasos como iniciar Matlab, escribir comentarios, realizar operaciones matemáticas básicas, utilizar ayuda, introducir y modificar variables.
MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Se puede usar para una amplia variedad de gráficos en 2D y 3D. Incluye su propio lenguaje de programación y librerías especializadas. El documento explica cómo usar la interfaz de MATLAB y obtener ayuda sobre sus funciones.
Matlab es un software para el cálculo numérico y el procesamiento de datos que permite realizar operaciones con vectores y matrices. Ofrece funciones matemáticas, gráficos, herramientas de programación y un entorno de desarrollo integrado. El documento explica los elementos básicos de la interfaz de Matlab, como la ventana de comandos y el editor, y describe conceptos como vectores, matrices, funciones y operaciones matemáticas elementales que se pueden realizar con estos objetos.
Este documento describe los diferentes tipos de datos que puede manejar MATLAB, incluyendo números enteros y de coma flotante, lógicos, cadenas y matrices. También explica funciones básicas incorporadas como funciones trigonométricas, exponenciales y logaritmos. Finalmente, presenta algunas matrices especiales como la identidad y cero que son útiles para resolver problemas matemáticos y de ingeniería.
Este documento proporciona instrucciones para usar MATLAB. Explica cómo abrir MATLAB y las pantallas principales. Luego describe cómo definir escalares, vectores y matrices, y realizar operaciones básicas con ellos como suma, resta, multiplicación y división. También muestra cómo generar gráficas básicas de datos.
Este documento proporciona instrucciones para usar MATLAB. Explica conceptos básicos como matrices, vectores y gráficos. También muestra ejemplos de comandos para definir y manipular datos, y realizar cálculos y operaciones matemáticas elementales. El documento concluye explicando cómo crear y guardar archivos .m de MATLAB.
Este documento proporciona instrucciones para usar MATLAB. Explica conceptos básicos como matrices, vectores y gráficos. También muestra ejemplos de comandos para definir y manipular datos, y realizar cálculos y operaciones matemáticas elementales. El documento concluye explicando cómo crear y guardar archivos .m de MATLAB que contienen programas y funciones definidas por el usuario.
El documento describe las características básicas de MATLAB. MATLAB es un lenguaje de programación y entorno de trabajo para realizar cálculos numéricos, especialmente con vectores y matrices. Permite realizar operaciones matemáticas, crear funciones y programas (M-archivos), y visualizar gráficos. El espacio de trabajo principal de MATLAB contiene ventanas para escribir comandos, ver variables y su historia.
Este documento proporciona una introducción a MATLAB, incluyendo definiciones de algoritmos, vectores, matrices y operaciones matemáticas comunes en MATLAB como suma, resta, multiplicación, división y exponenciación. También describe cómo crear y manipular vectores y matrices, y realizar operaciones como multiplicación y transposición de matrices.
Este documento introduce el software Octave. Octave es una herramienta de línea de comandos para resolver problemas numéricos que es muy compatible con MATLAB pero de código abierto. Explica las características básicas de Octave como la ventana de comandos, variables, operaciones aritméticas, funciones matemáticas predeterminadas, arreglos unidimensionales y bidimensionales, y operaciones con matrices y vectores.
MatLAB es un entorno de programación y cálculo numérico que permite realizar cálculos matriciales, algebra lineal, gráficos, resolución de ecuaciones diferenciales y más. Permite crear funciones y programas (archivos-M) para resolver problemas en diferentes áreas. Ofrece herramientas para cálculo, representación gráfica, desarrollo de aplicaciones y resolución de problemas.
1. El documento describe cómo generar gráficos en MATLAB. Introduce conceptos básicos como vectores, matrices y funciones, y explica cómo crear gráficos 2D, 3D y estadísticos. 2. Se explican comandos para manipular datos como plot, mesh, histogram, entre otros. 3. El documento es una guía para aprender a visualizar y analizar datos de forma gráfica usando MATLAB.
Este documento proporciona una introducción al uso del lenguaje de programación MATLAB. Explica conceptos básicos como operaciones aritméticas, lógicas y de comparación, el uso de variables y matrices, y funciones para visualizar y manejar datos. También cubre temas como programación básica con estructuras de control y funciones definidas por el usuario.
Este documento presenta una introducción a MATLAB. Explica que MATLAB es un lenguaje de programación para realizar cálculos numéricos con vectores y matrices. Describe los elementos básicos de la interfaz de MATLAB como la ventana de comandos, directorio actual y espacio de trabajo. También introduce conceptos fundamentales como números, vectores, matrices, operaciones con ellos y funciones matemáticas. Por último, menciona brevemente temas como polinomios, gráficos 2D y 3D y programación.
El documento describe los comandos básicos de MATLAB para realizar cálculos numéricos. Explica cómo realizar operaciones aritméticas, establecer el formato de salida, trabajar con números complejos y variables. También cubre cómo guardar y recuperar variables, sesiones y resultados.
Este documento presenta una guía para el uso de Matlab en el curso de Matemáticas 3 en la Universidad de El Salvador. Explica cómo realizar integración indefinida y definida, trazar gráficas, y calcular áreas bajo curvas utilizando comandos de Matlab como 'int', 'ezplot' y 'integral'. También proporciona un ejemplo aplicado de cálculo de área entre dos curvas.
Desarrollo de ejercicios básicos en matlabAdalberto C
Este documento describe el uso de MATLAB para resolver dos problemas matemáticos. En el primer ejercicio, se genera una matriz aleatoria que representa datos de temperatura mensual durante 20 años y se grafica frente al tiempo. En el segundo ejercicio, se define una función de dos variables y se grafican curvas de nivel para valores constantes de las variables. El documento explica comandos de MATLAB para crear matrices, vectores, funciones y graficar en 2D y 3D.
Este documento introduce Matlab y su uso para la reducción de diagramas de bloques. Matlab es un lenguaje de programación para realizar cálculos numéricos con vectores y matrices. Incluye herramientas como Simulink para simulación y GUIDE para interfaces gráficas. Se explican conceptos básicos como escalares, vectores, matrices y funciones. También se describen comandos como plot() para generación de gráficos y subplot() para dividir la ventana en subplots. Finalmente, se menciona que los archivos .m permiten construir secuencias de com
Este documento presenta una introducción a MATLAB. Explica los elementos básicos del entorno de MATLAB como la ventana de comandos y la ventana de trabajo. Luego, cubre temas como números y operaciones, vectores y matrices, operaciones con vectores y matrices, funciones para vectores y matrices, polinomios, y gráficos 2D y 3D. El objetivo general es proporcionar una visión general de MATLAB y sus capacidades principales para el cálculo numérico.
Introduccion y operaciones basicas (matlab)Gino Pannillo
Este documento introduce MATLAB, incluyendo su propósito de adquirir conocimientos básicos sobre el software y competencias como realizar gráficos 2D y usar la ventana de comandos. Explica que MATLAB es una herramienta para análisis matemático desarrollada en 1984 y usada comúnmente por ingenieros y científicos. También describe el entorno gráfico de MATLAB y comandos básicos como funciones trigonométricas y matriciales.
Este documento introduce Matlab y Simulink. Explica que Matlab es un lenguaje de alto nivel para realizar cálculos científicos y técnicos que incluye herramientas de visualización y un entorno de programación. Cubre temas como el entorno de Matlab, sintaxis básica, vectores, matrices, gráficos y resolución de sistemas de ecuaciones.
Este documento proporciona instrucciones para completar una práctica introductoria en Matlab. Incluye pasos como iniciar Matlab, escribir comentarios, realizar operaciones matemáticas básicas, utilizar ayuda, introducir y modificar variables.
MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Se puede usar para una amplia variedad de gráficos en 2D y 3D. Incluye su propio lenguaje de programación y librerías especializadas. El documento explica cómo usar la interfaz de MATLAB y obtener ayuda sobre sus funciones.
Matlab es un software para el cálculo numérico y el procesamiento de datos que permite realizar operaciones con vectores y matrices. Ofrece funciones matemáticas, gráficos, herramientas de programación y un entorno de desarrollo integrado. El documento explica los elementos básicos de la interfaz de Matlab, como la ventana de comandos y el editor, y describe conceptos como vectores, matrices, funciones y operaciones matemáticas elementales que se pueden realizar con estos objetos.
Este documento describe los diferentes tipos de datos que puede manejar MATLAB, incluyendo números enteros y de coma flotante, lógicos, cadenas y matrices. También explica funciones básicas incorporadas como funciones trigonométricas, exponenciales y logaritmos. Finalmente, presenta algunas matrices especiales como la identidad y cero que son útiles para resolver problemas matemáticos y de ingeniería.
Este documento proporciona instrucciones para usar MATLAB. Explica cómo abrir MATLAB y las pantallas principales. Luego describe cómo definir escalares, vectores y matrices, y realizar operaciones básicas con ellos como suma, resta, multiplicación y división. También muestra cómo generar gráficas básicas de datos.
Este documento proporciona instrucciones para usar MATLAB. Explica conceptos básicos como matrices, vectores y gráficos. También muestra ejemplos de comandos para definir y manipular datos, y realizar cálculos y operaciones matemáticas elementales. El documento concluye explicando cómo crear y guardar archivos .m de MATLAB.
Este documento proporciona instrucciones para usar MATLAB. Explica conceptos básicos como matrices, vectores y gráficos. También muestra ejemplos de comandos para definir y manipular datos, y realizar cálculos y operaciones matemáticas elementales. El documento concluye explicando cómo crear y guardar archivos .m de MATLAB que contienen programas y funciones definidas por el usuario.
El documento describe las características básicas de MATLAB. MATLAB es un lenguaje de programación y entorno de trabajo para realizar cálculos numéricos, especialmente con vectores y matrices. Permite realizar operaciones matemáticas, crear funciones y programas (M-archivos), y visualizar gráficos. El espacio de trabajo principal de MATLAB contiene ventanas para escribir comandos, ver variables y su historia.
Este documento proporciona una introducción a MATLAB, incluyendo definiciones de algoritmos, vectores, matrices y operaciones matemáticas comunes en MATLAB como suma, resta, multiplicación, división y exponenciación. También describe cómo crear y manipular vectores y matrices, y realizar operaciones como multiplicación y transposición de matrices.
Este documento introduce el software Octave. Octave es una herramienta de línea de comandos para resolver problemas numéricos que es muy compatible con MATLAB pero de código abierto. Explica las características básicas de Octave como la ventana de comandos, variables, operaciones aritméticas, funciones matemáticas predeterminadas, arreglos unidimensionales y bidimensionales, y operaciones con matrices y vectores.
MatLAB es un entorno de programación y cálculo numérico que permite realizar cálculos matriciales, algebra lineal, gráficos, resolución de ecuaciones diferenciales y más. Permite crear funciones y programas (archivos-M) para resolver problemas en diferentes áreas. Ofrece herramientas para cálculo, representación gráfica, desarrollo de aplicaciones y resolución de problemas.
Este documento presenta una introducción a los comandos básicos y conceptos de matrices en MATLAB. Explica cómo ingresar y manipular vectores, matrices, realizar operaciones matemáticas y cómo guardar y acceder a la ayuda en MATLAB. También describe funciones como eye(), zeros(), ones() y operaciones matriciales como suma, producto, transposición e inversa.
Este documento introduce MATLAB, incluyendo su interfaz, tipos de datos numéricos, operaciones básicas, vectores, matrices, funciones para vectores y matrices, polinomios, y gráficos 2D y 3D. Explica los elementos clave de la interfaz de MATLAB y cómo ejecutar comandos. Luego describe cómo trabajar con números, vectores, matrices, y funciones para realizar cálculos.
El documento proporciona una introducción a MATLAB, un software matemático que permite la manipulación de matrices, representación de datos y funciones, implementación de algoritmos y comunicación con otros programas. Explica las funcionalidades básicas de MATLAB como operaciones matemáticas, trigonométricas, lógicas y relacionales. También describe cómo definir y manipular vectores, matrices, realizar cálculos matriciales e invertir matrices.
Este documento presenta una introducción al uso de matrices en MATLAB. Explica cómo introducir matrices, realizar operaciones básicas como suma y multiplicación, y usar comandos como size, transpose, eye, y rand. También cubre operaciones elemento a elemento, matrices especiales como identidad y ceros, y comandos como inverse, determinant, rref y sparse para matrices dispersas.
Este documento introduce el uso de MATLAB, Scientific Workplace y Scilab para el tratamiento matemático y aplicaciones de ingeniería. Explica cómo trabajar con vectores, matrices, gráficas y sistemas de control en los tres programas. Además, brinda detalles sobre funciones matemáticas, valores y vectores propios, y el uso de comandos como plot, fplot y subplot para generar gráficas.
Este documento introduce Matlab y describe sus principales características. Matlab es un lenguaje de programación para realizar cálculos numéricos con vectores y matrices. Incluye herramientas como Simulink para simulación y GUIDE para interfaces gráficas. El documento explica cómo definir escalares, vectores, matrices y funciones de transferencia en Matlab, así como cómo generar gráficos y reducir diagramas de bloques.
Este documento introduce el modelado, simulación y control de sistemas dinámicos usando Matlab. Explica conceptos básicos de Matlab como vectores, matrices, polinomios y funciones. También cubre temas como la creación de archivos .m y .mat, gráficas, y el uso de modificadores de flujo como if, else y while para programación condicional. El objetivo es servir como tutorial introductorio para aplicar Matlab al análisis y control de sistemas dinámicos.
Este documento describe cómo realizar operaciones matriciales como suma, resta, multiplicación, transposición, determinante e inversa de matrices usando funciones en Excel. También presenta aplicaciones como calcular el área de un triángulo, volumen de un tetraedro y resolver sistemas de ecuaciones lineales usando matrices. Finalmente, muestra cómo crear un macro para calcular automáticamente el área de un triángulo al ingresar las coordenadas de sus vértices.
El documento proporciona una introducción al software MATLAB, incluyendo su funcionalidad principal para el cálculo matricial y algebra lineal, así como la manipulación de datos, funciones, gráficos y más. Explica cómo definir matrices y vectores, realizar operaciones matemáticas y lógicas con ellos, y modificar y acceder a sus elementos.
MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. El documento describe los elementos básicos del escritorio de MATLAB como la ventana de comandos y el historial de comandos. Explica cómo definir y manipular variables, vectores y matrices en MATLAB así como realizar operaciones con ellos. También cubre temas como la generación de gráficos 2D y 3D, el uso del depurador y las funciones de ayuda.
Este documento introduce MATLAB. Explica los elementos básicos del escritorio de MATLAB como la ventana de comandos y la ventana de trabajo. Describe cómo trabajar con números, vectores, matrices, y cómo realizar operaciones básicas y funciones. También presenta cómo crear gráficos 2D y 3D, y cómo trabajar con polinomios.
1. Matlab es un lenguaje de programación potente utilizado para tareas de ingeniería y ciencias. Se puede usar como calculadora o para desarrollar programas más complejos.
2. Matlab tiene ventanas principales como la ventana de comandos para introducir órdenes, la ventana de gráficos para visualizar resultados y la ventana de ayuda.
3. En Matlab se pueden realizar cálculos aritméticos y usar funciones matemáticas comunes como raíz cuadrada, exponenciales, funciones trigonométricas.
Este documento presenta una introducción a MATLAB. Explica los elementos básicos del entorno de MATLAB como la ventana de comandos y la ventana de trabajo. Luego, cubre temas como números y operaciones, vectores y matrices, operaciones con vectores y matrices, funciones para vectores y matrices, polinomios, y gráficos 2D y 3D. El objetivo general es proporcionar una visión general de MATLAB y sus capacidades principales para el cálculo numérico.
Este documento presenta la tesis para optar el título de Ingeniero Civil de Ricardo Andrés Retis Jiménez. El trabajo determina los índices de vulnerabilidad sísmica de edificaciones de albañilería confinada empleando el método japonés. Se estudian estructuralmente viviendas unifamiliares de 1 a 5 niveles y se calculan los índices sísmicos de la estructura e índice de demanda sísmica para cada caso. El autor concluye determinando recomendaciones para mejorar la resistencia sísmica de ed
Este documento presenta una propuesta para determinar el reforzamiento sísmico de edificaciones existentes. Propone utilizar tanto métodos cualitativos como cuantitativos, comenzando con una evaluación preliminar usando el método cualitativo de Hirosawa adaptado para incluir muros de albañilería confinada, seguido de una evaluación cuantitativa local. Luego, sigue los pasos de FEMA para el diseño y verificación del reforzamiento, manteniendo el enfoque de la norma sísmica local vigente. La propuesta integra diferentes
Este documento presenta información sobre los antecedentes históricos de la construcción con adobe y quincha en el Perú. Se describe brevemente el uso temprano de la tierra, piedra y madera como primeros materiales de construcción por el hombre. Luego, se detalla el uso extenso del adobe en el Perú desde periodos preincaicos hasta la época republicana, destacando su uso en la costa. Asimismo, se menciona que en la época colonial se empezó a utilizar más la quincha como técnica constructiva mixta de adobe
Este capítulo describe diferentes metodologías para evaluar la vulnerabilidad sísmica de estructuras. Se clasifican los métodos en empíricos, analíticos y experimentales. Los métodos empíricos se basan en la experiencia y son cualitativos, mientras que los analíticos usan modelos mecánicos y son cuantitativos. El capítulo también explica cómo caracterizar la vulnerabilidad mediante el estudio de la acción sísmica y el daño esperado, y los factores que afectan la vulnerabilidad como la severidad del sismo y las caracter
El concreto armado es un material de construcción compuesto por concreto y acero. El concreto proporciona compresión mientras que el acero ofrece tensión, permitiendo que la estructura resista cargas en ambas direcciones. Juntos, el concreto y el acero forman una estructura monolítica que es resistente, durable y de bajo mantenimiento.
El documento describe un programa para realizar microzonificación sísmica de ciudades peruanas con el fin de evaluar el riesgo de desastres a nivel urbano. El programa involucra la recopilación de datos geológicos, geotécnicos y de eventos sísmicos previos, así como estudios de campo para mapear las características del suelo y determinar las zonas con mayor riesgo sísmico. El objetivo final es producir mapas de microzonificación sísmica que permitan mitigar los efectos de posibles terremotos.
3. Dante Pinto Jeria
3
CAPÍTULO I
PRIMEROS PASOS CON MATLAB
1.1 INTRODUCCIÓN.-
El nombre del programa Matlab viene de Matrix Laboratory (Laboratorio de Matrices),
para Matlab todos los objetos son considerados como matrices.
Este programa es una herramienta de cálculo, fundamentalmente, numérico. Aunque
también puede realizar cálculos simbólicos.
El entorno de trabajo fundamental de Matlab es el siguiente:
Donde se presentan:
La ventana de comandos (Command Window) que es donde se trabaja de manera
directa, los comandos son introducidos después del apuntador (prompt) >>
El historial de comandos (Command History), muestra los comandos utilizados en
por orden.
La ventana de las carpetas actuales (Current Folder).
4. Dante Pinto Jeria
4
Y el espacio de trabajo (Workspace) que muestra las variables utilizadas y creadas
en el entorno de trabajo.
Originalmente el fondo de trabajo es blanco, pero es posible cambiarlo a un fondo oscuro (o
de otro color). Para ello se debe ir a File, Preferences
Se debe quitar la marca de Use system colors, luego en Text se selecciona el color blanco y
en Background. Luego se hace clic en Apply y luego en OK.
1.2 MANEJO FUNDAMENTAL.-
1.2.1 Entrada de datos y salida de resultados.-
Matlab funciona como una calculadora de lógica algebraica. Todo resultado de operaciones
es almacenado en la variable ans (answer = respuesta).
>> 45*76
ans =
3420
>> 2+3
ans =
5
Si es que no se quisiera mostrar los resultados, se debe poner un punto y coma al final de la
línea.
>> 78/3;
>>
El resultado es almacenado internamente, pero no se lo muestra por pantalla. Esto es muy
útil cuando no queremos que se muestren resultados intermedios, o que se llene la pantalla
con números que son irrelevantes.
5. Dante Pinto Jeria
5
Matlab permite recuperar las últimas operaciones realizadas, presionando la tecla de la
flecha hacia arriba ↑. Presionando dos veces se recupera la penúltima operación y así
sucesivamente.
1.2.2 Borrado de la pantalla.-
El Command Window se borra mediante clc
1.2.3 Formato de números decimales.-
Matlab permite cambiar el formato de números decimales mediante el comando format.
Por omisión Matlab muestra los resultados con cuatro decimales, ese es el formato short.
>> 3/7
ans =
0.4286
Para cambiar a otro formato con más decimales se debe presionar
>> format long
Luego presionando dos veces la flecha hacia arriba del cursor (para recuperar la penúltima
operación).
>> 3/7
ans =
0.428571428571429
El resultado tiene ahora 15 decimales.
También se puede fijar el formato racional, para realizar operaciones fraccionarias.
>> format rat
>> 3/5+1/2-1/8
ans =
39/40
Para volver al formato por omisión, simplemente se teclea
>> format
6. Dante Pinto Jeria
6
1.2.4 Ayuda.-
Se puede obtener ayuda sobre un comando o una función tecleando help seguido del
nombre del comando sobre el cual se desea la ayuda. Por ejemplo, si es que se quisiera
conseguir ayuda sobre el comando format.
>> help format
Y a continuación aparece una serie de textos, con la ayuda correspondiente.
1.2.5 Variables.-
Matlab puede almacenar valores en variables, al igual que cualquier otro lenguaje de
programación, siempre y cuando el nombre de la variable no sea una palabra reservada de
Matlab. El programa discrimina entre mayúsculas y minúsculas. Para asignar un valor a una
variable simplemente se teclea:
>> x=24
x =
24
Se pueden asignar también múltiples variables en una sola línea, utilizando punto y comas
para separar las mismas.
>> y=34;z=24;g=21;
>>
Para ver las variables que se encuentran en el libro de trabajo actual se puede utilizar el
comando who
>> who
Your variables are:
a ans g x y z
Una variante es el comando whos
>> whos
Name Size Bytes Class Attributes
a 4-D 192 double
ans 1x3 24 double
7. Dante Pinto Jeria
7
g 1x1 8 double
x 1x1 8 double
y 1x1 8 double
z 1x1 8 double
regresa el nombre de la variable, su tamaño y el tipo de datos que almacena
Para borrar variables se puede utilizar el comando clear
>> clear a x
Lo anterior borra las variables a y x
Para borrar todas las variables se teclea
>> clear
1.3 GUARDADO DEL ESPACIO DE TRABAJO.-
Una vez que se sale de la sesión de Matlab, todas las variables que se hayan creado son
borradas de la memoria. Si es que queremos recuperar todas las variables y el espacio de
trabajo, este debe ser guardado. Para ello se utiliza el menú File, luego Save Workspace As.
Para abrir el espacio de trabajo, guardado con anterioridad, se utiliza File luego Open
8. Dante Pinto Jeria
8
CAPÍTULO II
MANEJO DE MATRICES
2.1 INTRODUCCIÓN.-
Una matriz es un arreglo rectangular de elementos. Un caso particular de matriz es un
vector, cuando tiene una sola dimensión. Puede haber vectores fila o vectores columna.
Una forma de introducir una matriz, en Matlab, es utilizando corchetes y dentro de ellos las
filas separadas por ; (punto y coma) y las columnas separadas por espacios.
>> a=[1 2 3;4 5 6;7 8 9]
a =
1 2 3
4 5 6
7 8 9
También se pueden formar matrices o vectores mediantes secuencias, utilizando el operador
: (dos puntos). De la siguiente manera
inicio:paso:final
>> a=[1:2:20]
a =
1 3 5 7 9 11 13 15 17 19
>> b=[-1:.5:1;-1:.5:1]
b =
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
También se puede modificar un elemento de una matriz mediante los índices de la siguiente
manera
>> b(2,1)=8
b =
-1.0000 -0.5000 0 0.5000 1.0000
8.0000 -0.5000 0 0.5000 1.0000
También se puede acceder a un elemento de una matriz mediante un solo índice que se
constituye en una referencia continua.
9. Dante Pinto Jeria
9
>> b(4)=15
b =
-1.0000 -0.5000 0 0.5000 1.0000
8.0000 15.0000 0 0.5000 1.0000
Donde la referencia se la realiza de la siguiente manera
Matlab tiene incorporada una función de generación de cuadrados mágicos, que no son otra
cosa que matrices cuadradas, que tienen la propiedad de que la suma de cada fila y cada
columna, asimismo que la suma de las diagonales dan un mismo número.
Así por ejemplo:
>> magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Estos cuadrados mágicos tienen siglos de antigüedad, un ejemplo muy conocido de ellos
aparece en el grabado del alemán Alberto Durero llamado Melancolía I, el cual se lo puede
ver también en Matlab, tecleando:
>> load durer;image(X);colormap(map);axis image
10. Dante Pinto Jeria
10
En esta imagen aparece un cuadrado mágico en la esquina superior derecha. Para ver el
detalle del mismo se puede teclear:
>> load detail;colormap(hot);image(X)
Que es la misma matriz mágica que presenta Matlab, pero con las columnas centrales
intercambiadas, esto lo hizo Durero, para que aparezca en la parte inferior la fecha en la que
se realizó el grabado 1514.
11. Dante Pinto Jeria
11
2.2 OPERACIONES FUNDAMENTALES CON MATRICES.-
2.2.1 Borrar una fila o una columna de una matriz.-
De la matriz
>> a=magic(4)
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
borrar la cuarta fila.
>> a(4,:)=[]
a =
16 2 3 13
5 11 10 8
9 7 6 12
Si ahora se quiere borrar la tercera columna.
>> a(:,3)=[]
a =
16 2 13
5 11 8
9 7 12
Los dos puntos indican todo, lo que quiere decir que se hace referencia a toda la fila o a
toda la columna.
2.2 Añadir una fila o una columna a una matriz.-
Por ejemplo en la siguiente matriz aumentar una columna con el elemento a(3,6)=8
>> a=magic(5)
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
12. Dante Pinto Jeria
12
>> a(3,6)=8
a =
17 24 1 8 15 0
23 5 7 14 16 0
4 6 13 20 22 8
10 12 19 21 3 0
11 18 25 2 9 0
Como se puede apreciar, los elementos faltantes son llenados con ceros.
2.3 Sumar los elementos de una matriz.-
Se utiliza el comando sum, el cual realiza la suma de las columnas de la matriz. Si se aplica
sobre un vector, realiza la suma de todos los elementos del mismo.
Así para el siguiente vector:
>> b=[1:5]
b =
1 2 3 4 5
>> sum(b)
ans =
15
Como ejemplo comprobaremos que la matriz mágica, realmente es mágica.
>> a=magic(4)
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
La suma de las columnas se la realiza mediante
>> sum(a)
ans =
34 34 34 34
La suma de las filas se la realiza transponiendo la matriz (una matriz transpuesta es cuando
las filas se toman como columnas y viceversa). Para transponer una matriz, se pone un
apóstrofe sobre el nombre de la misma a’
>> sum(a')
ans =
34 34 34 34
13. Dante Pinto Jeria
13
Para la suma de los elementos de la diagonal principal, se utiliza
>> sum(diag(a))
ans =
34
Para sumar los elementos de la diagonal secundaria se utiliza el comando fliplr, que cambia
de izquierda a derecha las filas de una matriz.
>> sum(diag(fliplr(a)))
ans =
34
Para aclarar el anterior paso veamos:
>> fliplr(a)
ans =
13 3 2 16
8 10 11 5
12 6 7 9
1 15 14 4
2.4 Intercambio de filas y columnas.-
Supongamos que se quiere cambiar la matriz mágica que presenta Matlab a la misma forma
de matriz que aparece en el cuadro de Durero, para eso se procede:
>> a=magic(4);a=a(:,[1 3 2 4])
a =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
El orden de presentación de las columnas lo da el vector [1 3 2 4]
Si se quieren cambiar la primera con la cuarta columnas, se procede:
>> a=a([4 2 3 1],:)
a =
4 15 14 1
5 10 11 8
9 6 7 12
16 3 2 13
14. Dante Pinto Jeria
14
2.5 Reformado de una matriz.-
Se puede reformar una matriz mediante la función reshape. Si la matriz era n*m se
reformula a un tamaño nuevo p*q, siempre y cuando m*n=p*q
Así, por ejemplo, si se quiere reformular el tamaño de la matriz de 3*4
>> a=[1:4;5:8;9:12]
a =
1 2 3 4
5 6 7 8
9 10 11 12
a una matriz 6*2, se procede:
>> reshape(a,6,2)
ans =
1 3
5 7
9 11
2 4
6 8
10 12
2.6 Replicado de una matriz.-
Para esto se utiliza la función repmat(matriz,m,n), replica la matriz m veces en las filas y
n veces en las columnas,de la siguiente manera:
Replicar la matriz
1 2
2 3
Dos veces en las filas y tres veces en las columnas
>> repmat([1 2;2 3],2,3)
ans =
1 2 1 2 1 2
2 3 2 3 2 3
1 2 1 2 1 2
2 3 2 3 2 3
15. Dante Pinto Jeria
15
2.7 Matriz identidad.-
La matriz identidad se construye mediante la función eye(n) donde n indica el tamaño de la
misma, así por ejemplo:
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
2.8 Suma de matrices.-
Para sumar dos matrices, estas deben ser del mismo tamaño.
>> a=[1:4;5:8;9:12]
a =
1 2 3 4
5 6 7 8
9 10 11 12
Ahora la matriz b la construimos como el reverso de a, para eso
>> b=a(end:-1:1,end:-1:1)
b =
12 11 10 9
8 7 6 5
4 3 2 1
Luego las sumamos
>> a+b
ans =
13 13 13 13
13 13 13 13
13 13 13 13
2.9 Multiplicación de matrices.-
Se debe cumplir que el número de columnas de la primera sea igual al número de filas de la
segunda, sin esta condición no se pueden multiplicar dos matrices. El producto matricial no
es conmutativo. La matriz resultante tiene, como tamaño, el número de filas de la primera
por el número de columnas de la segunda.
C(m*p)=A(m*n)*B(n*p)
16. Dante Pinto Jeria
16
>> a
a =
1 2 3
4 5 6
>> b
b =
7 8
9 10
11 12
>> a*b
ans =
58 64
139 154
2.10 Inversa de una Matriz.-
Se calcula mediante la función inv(matriz). Solo existe la inversa de matrices cuadradas,
siempre y cuando estas no sean singulares. Se define una matriz inversa como aquella que
multiplicada por su matriz original da como resultado la matriz identidad (este es uno de los
pocos caso en los que se admite la propiedad conmutativa en la multiplicación).
A-1
*A=A*A-1
=I
Calcular la inversa de la siguiente matriz y comprobar el resultado.
>> a=magic(5)
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> b=inv(a)
b =
-0.0049 0.0512 -0.0354 0.0012 0.0034
0.0431 -0.0373 -0.0046 0.0127 0.0015
-0.0303 0.0031 0.0031 0.0031 0.0364
0.0047 -0.0065 0.0108 0.0435 -0.0370
0.0028 0.0050 0.0415 -0.0450 0.0111
17. Dante Pinto Jeria
17
La comprobación se la realiza mediante la multiplicación de las dos matrices.
>> a*b
ans =
1.0000 0.0000 0 0.0000 -0.0000
0.0000 1.0000 0 0.0000 0
0.0000 0.0000 1.0000 0.0000 -0.0000
0.0000 0.0000 0.0000 1.0000 0.0000
-0.0000 0.0000 0.0000 0.0000 1.0000
>> b*a
ans =
1.0000 -0.0000 0 -0.0000 0.0000
0.0000 1.0000 0 0.0000 0.0000
0 0.0000 1.0000 0.0000 0.0000
0.0000 0.0000 -0.0000 1.0000 0.0000
0.0000 0.0000 0.0000 0.0000 1.0000
2.11 Determinante de una Matriz.-
Se calcula mediante det(matriz), el resultado es un número. El determinante solo existe
para matrices cuadradas, siempre y cuando no sean singulares.
Calcular el determinante de la matriz:
>> a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> det(a)
ans =
-360
2.12 Reducción escalonada por filas (reduced row echelon form).-
Se realiza mediante la función rref(matriz). Trabaja sobre matrices rectangulares o
cuadradas.
>> rref(magic(4))
ans =
1 0 0 1
0 1 0 3
0 0 1 -3
0 0 0 0
18. Dante Pinto Jeria
18
>> rref(magic(3))
ans =
1 0 0
0 1 0
0 0 1
2.13 Rango de una matriz.-
Se calcula mediante rank(matriz). Indica el número de filas diferentes de cero que tiene la
matriz después de realizar una reducción escalonada de filas.
Así, por ejemplo, para los dos ejemplos anteriores se tiene:
>> rank(magic(4))
ans =
3
>> rank(magic(3))
ans =
3
2.14 Media aritmética de los elementos de una matriz.-
La media aritmética o promedio se calcula de las columnas de la matriz.
>> mean(magic(4))
ans =
8.5000 8.5000 8.5000 8.5000
Si se quisiera el promedio de todos los elementos de la matriz se teclea:
>>mean(mean(magic(4)))
ans =
8.5000
2.15 Máximos y mínimos.-
Se calculan con max(matriz) y min(matriz) respectivamente. Se calculan por columnas.
>> max(magic(4))
ans =
16 14 15 13
>> min(magic(4))
ans =
4 2 3 1
19. Dante Pinto Jeria
19
Para el máximo o mínimo de todos los elementos.
>> max(max(magic(4)))
ans =
16
>> min(min(magic(4)))
ans =
1
2.16 Generación de números aleatorios.-
Se generan números aleatorios con las funciones rand(m,n) y randn(m,n). La segunda da
números aleatorios normalmente distribuidos.
>>rand(4)
ans =
0.7577 0.1712 0.0462 0.3171
0.7431 0.7060 0.0971 0.9502
0.3922 0.0318 0.8235 0.0344
0.6555 0.2769 0.6948 0.4387
>> rand(2,3)
ans =
0.3816 0.7952 0.4898
0.7655 0.1869 0.4456
>> randn(3,4)
ans =
0.6277 -0.8637 -1.1135 -0.7697
1.0933 0.0774 -0.0068 0.3714
1.1093 -1.2141 1.5326 -0.2256
2.17 Resolución de sistemas de ecuaciones lineales.-
Un sistema de ecuaciones lineales tiene una matriz de coeficientes A, un vector de
incógnitas y un vector de términos independientes.
A X = B
Para resolver un sistema de ecuaciones lineales se pueden utilizar dos métodos.
1) X= A-1
B
2) X=AB
Así, por ejemplo, resolver el sistema
20. Dante Pinto Jeria
20
x1-4 x2 + x3=10
3x1+3x2- 2x3=20
x1+6x2+3x3=30
de las tres formas, para ello primero se guardan los coeficientes n las variables A y B
>> A=[1 -4 1;3 3 -2;1 6 3];B=[10;20;30];
Primera forma
>> X=inv(A)*B
X =
9
1
5
Segunda forma
>> X=AB
X =
9.0000
1.0000
5.0000
2.18 Operaciones elemento por elemento.-
Se pueden realizar las operaciones elemento por elemento si es que después del nombre de
la matriz se pone un punto (.)
Así, por ejemplo, si se tienen las siguientes matrices
>> a=[1 2 3;4 5 6;7 8 9];b=[2 3 2;2 3 2;2 3 2];
>> a.*b
ans =
2 6 6
8 15 12
14 24 18
Si no se hubiese puesto el punto, se habría realizado la multiplicación tradicional de
matrices.
21. Dante Pinto Jeria
21
También funciona con potencias, así por ejemplo, con la misma matriz a anterior
>> a.^2
ans =
1 4 9
16 25 36
49 64 81
Si no se hubiese utilizado el punto decimal el resultado sería el equivalente a la
multiplicación matricial de una matriz por si misma.
>> a^2
ans =
30 36 42
66 81 96
102 126 150
2.19 Función meshgrid.-
Esta función tiene la sintaxis [X,Y]=meshgrid(x,y)
Transforma el dominio especificado por los vectores x e y en arreglos X e Y que pueden ser
usados para la evaluación de funciones de dos variables y gráficas de superficies en 3D. Las
filas del arreglo de salida X son copias del vector x y las columnas del arreglo de salida Y
son copias del vector y. Si solo se utiliza un argumento [X,Y]=meshgrid(x),tanto X como Y
son copias de x. Esta función resulta como dos ciclos for i for j anidados.
>> [X,Y] = meshgrid(1:4, 1:4)
X =
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Y =
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
2.19 Tabla resumen de operaciones.-
A continuación se muestra una tabla que resume algunas de las operaciones con vectores, si
es que se tienen los vectores columna x y y con los siguientes valores
23. Dante Pinto Jeria
23
2.20 Exportar e importar a EXCEL.-
Para exportar a Excel se utiliza el comando xlswrite(archivo,matriz,hoja,rango). Para
importar de Excel se utiliza el comando xlsread(archivo,hoja,rango).
Así, por ejemplo, si se quiere exportar la matriz mágica de tamaño 5 a una hoja Excel
llamada magia y ubicada en la unidad c:
>> a=magic(5);
>> xlswrite('c:magia.xlsx',a)
Si se quiere exportar en una hoja específica y en un rango específico
>>xlswrite('c:magia.xlsx',a,'Hoja2','C3:G7')
Ahora si es que queremos importar a la variable b los datos de la hoja2 del archivo amgia
de Excel, anteriormente guardado, se procede:
>> b=xlsread('c:magia.xlsx','Hoja2','C3:G7')
b =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
2.3 EJEMPLOS DE APLICACIONES.-
Ejemplo2.1: Crear una matriz de 4*4 con números aleatorios entre 15 y 85.
>> 15+fix(70*rand(4))
ans =
69 21 55 72
42 24 19 16
31 80 31 18
43 81 39 26
Ejemplo2.2: Dada una matriz mágica de 5*5 sumar todos los elementos de las columnas
impares.
24. Dante Pinto Jeria
24
>> a=magic(5);
>> sum(sum(a(1:2:end,:)))
ans =
195
Ejemplo2.3: En una matriz mágica, de tamaño 6, de cada columna impar encontrar el
mínimo, e indicar su índice relativo.
>> a=magic(6)
a =
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
>> [m ind]=min(a(:,1:2:end))
m =
3 2 10
ind =
2 3 4
Ejemplo2.4: De la matriz mágica de tamaño 9, calcular el promedio de las filas múltiplos
de tres.
>> a=1+fix(100*rand(9))
a =
65 19 45 54 48 93 60 51 24
74 37 31 36 24 44 27 9 46
65 63 51 94 85 19 61 27 97
46 79 52 88 20 91 72 81 55
55 9 82 56 23 98 23 3 53
30 93 80 63 18 44 12 93 24
75 78 65 59 23 12 30 74 49
19 49 38 21 44 26 32 49 63
69 44 82 31 32 41 43 58 68
>> mean(a(3:3:end,:)')'
ans =
26. Dante Pinto Jeria
26
CAPÍTULO III
GRÁFICOS
3.1 INTRODUCCIÓN.-
Matlab tiene muchas rutinas de alto nivel para gráficas. En Matlab las variables
independientes no son generadas de manera automática, sino que el usuario debe
generarlas.
Los gráficos que genera Matlab pueden ser clasificados como en dos y tres dimensiones.
Si se desea mantener un gráfico anterior y sobreponer un gráfico posterior, se debe tecleat
el comando
>> hold on;
Se mantienen los gráficos anteriores, hasta que se teclea
>>hold off;
3.2 GRÁFICOS 2D.-
3.2.1 Función plot.-
Esta es la más usada y simple de las funciones gráficas.
La sintaxis es la siguiente:
plot(Y)
plot(X1,Y1,...,Xn,Yn)
plot(X1,Y1,EspecLinea,...,Xn,Yn,EspecLinea)
plot(X1,Y1, EspecLinea,'NombrePropiedad',ValorPropiedad)
plot(axes_handle,X1,Y1, EspecLinea, 'NombrePropiedad',ValorPropiedad)
h = plot(X1,Y1, EspecLinea, 'NombrePropiedad',ValorPropiedad)
Los colores y tipos de línea vienen dados según las siguientes tablas:
y amarillo
m magenta
c cyan
r rojo
g verde
b azul
w blanco
k negro
- Continua
-- Línea cortada
-. Línea y punto
* Estrellas
. Puntitos
s Cuadrados
27. Dante Pinto Jeria
27
o círculos
: Punteado
x Marca
+ Mas
^ Triángulo hacia arriba
v Triángulo hacia abajo
> Triángulo a la derecha
< Triángulo a la izquierda
d Diamante
p Pentagrama
h Hexagrama
Ejemplo3.1:
>> x=0:pi/100:3*pi;y=sin(x);
>> plot(x,y,'k-','LineWidth',2);
Ejemplo3.2:
>> plot(x,y,'r:','LineWidth',3);
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
28. Dante Pinto Jeria
28
Ejemplo3.3: Graficar el seno y el coseno, con una rejilla, con un título, una leyenda, una
etiqueta en x y una en y
>> x=0:pi/100:3*pi;y1=sin(x);y2=cos(x);
>> plot(x,y1,'r-',x,y2,'b--');legend('seno','coseno');title('Dos gráficas, de 0 a 2pi');xlabel('Eje
X');ylabel('Eje Y');grid on;
Para que aparezca el símbolo π se pone dentro de las comillas simples ’…pi’
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Eje X
EjeY
Dos gráficas, de 0 a 2
seno
coseno
29. Dante Pinto Jeria
29
Ejemplo3.4: Graficar el logo que aparece en la carátula de este texto, cuya ecuación es
r=sin(5t/8), con 0≤ t ≤ 16 π
Como está en forma polar, habrá que convertir a la forma rectangular
x=sin(5t/8)cos(t); y=sin(5t/8)sin(t)
>> t=0:pi/100:16*pi;r=sin(5*t/8);x=r.*cos(t); y=r.*sin(t);
>> plot(x,y,'k-','Linewidth',2);axis equal;axis off;set(gcf,'Color',[1,1,1])
Se utiliza la función set(gcf,'Color',[1,1,1]) para modificar el color dl fondo del gráfico, en
este caso se puso el fondo blanco.
Ejemplo3.5: Graficar con marcadores.
x = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)
30. Dante Pinto Jeria
30
Ejemplo3.6: Realizar un gráfico, modificando los ejes y las marcas de los ejes.
> x = -pi:.1:pi;
y = sin(x);
plot(x,y)
set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
3.2.2 Función plotyy.-
Esta función grafica con el eje y tanto a la izquierda como a la derecha de la figura.
-4 -3 -2 -1 0 1 2 3 4
-3
-2
-1
0
1
2
3
-pi -pi/2 0 pi/2 pi
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
40. Dante Pinto Jeria
40
5 6 1; ...
7 8 9; ...
11 10 4 ];
>> p=patch('Faces',caras,'Vertices',verts,'FaceColor','r');
3.2.14 Función triplot.-
Esta función grafica mallas triangulares. Su sintaxis es:
triplot(TRI,x,y)
triplot(TRI,x,y,color)
h = triplot(...)
triplot(...,'param','value','param','value'...)
Ejemplo3.22: Dados los índices y coordenadas siguientes, dibujar la malla de elementos
finitos triangulares.
Después de almacenar las coordenadas y los índices en las variables coorde e indices,
respectivamente, se teclea:
>> triplot(indices, coorde(:,1), coorde(:,2),'k');
0 1 2 3 4 5 6 7 8
0
1
2
3
4
5
6
7
8
42. Dante Pinto Jeria
42
7.5000 9.5000
9.0000 7.5000
10.0000 10.0000
3.2.15 Función step.-
Dibuja la respuesta paso de sistemas lineales invariantes en el tiempo. Su sintaxis es:
step
step(sys)
step(sys,t)
step(sys1,sys2,...,sysN)
step(sys1,sys2,...,sysN,t)
y = step(sys,t)
[y,t] = step(sys)
[y,t,x] = step(sys) % solamente par modelos en el espacio de estados
Ejemplo3.23: Graficar la respuesta de la función de transferencia s/(s2
+2s+3) frente a una
entrada escalón (paso).
>> step([1 ],[1 2 3])
3.2.16 Función impulse.-
Da la respuesta a una función impulso. Su sintaxis es:
impulse
impulse(sys)
impulse(sys,t)
Ejemplo3.24: Graficar la respuesta de la función de transferencia s/(s2
+2s+3) frente a una
entrada impulso.
>> impulse([1 ],[1 2 3])
0 1 2 3 4 5 6 7 8
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
Step Response
Time (sec)
Amplitude
43. Dante Pinto Jeria
43
3.2.17 Función rlocus.-
Grafica la localización de raíces de una función de transferencia. Su sintaxis es:
rlocus(sys)
rlocus(sys1,sys2,...)
Ejemplo3.25: Graficar la localización de raíces de la siguiente función de transferencia.
>> h = tf([2 5 1],[1 2 3]);
rlocus(h)
3.2.18 Función subplot.-
Crea gráficos en mosaico. La sintaxis es:
h = subplot(m,n,p) or subplot(mnp)
subplot(m,n,p,'replace')
0 1 2 3 4 5 6 7 8
-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
Impulse Response
Time (sec)
Amplitude
-2.5 -2 -1.5 -1 -0.5 0 0.5
-1.5
-1
-0.5
0
0.5
1
1.5
Root Locus
Real Axis
ImaginaryAxis
45. Dante Pinto Jeria
45
3.3 GRÁFICOS 3D.-
3.3.1 Función mesh, meshc, meshz.-
Realiza la gráfica en 3D de mallas. La función meshc, dibuja un contorno debajo de la
función. La función meshz dibuja una cortina debajo del dibujo en 3D.
Su sintaxis es:
mesh(X,Y,Z)
mesh(Z)
mesh(...,C)
mesh(...,'NombreProp',ValorPropiedad,...)
mesh(manejador_ejes,...)
meshc(...)
meshz(...)
h = mesh(...)
Ejemplo3.28:
>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2);
Z = X .* exp(-X.^2 - Y.^2);
mesh(X,Y,Z)
Se puede hacer una animación en tiempo real de la gráfica, haciendo clic en el ícono
-2
-1
0
1
2
-2
-1
0
1
2
-0.5
0
0.5
46. Dante Pinto Jeria
46
Y luego con las flechas del teclado o con el ratón y presionando el botón izquierdo, se hace
rotar la figura.
Ejemplo3.29: Utilizar meshc
>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2);
Z = X .* exp(-X.^2 - Y.^2);
meshc(X,Y,Z)
Ejemplo3.30: Utilizar meshz
>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2);
Z = X .* exp(-X.^2 - Y.^2);
meshz(X,Y,Z)
-2
-1
0
1
2
-2
-1
0
1
2
-0.5
0
0.5
-2
-1
0
1
2
-2
-1
0
1
2
-0.5
0
0.5
47. Dante Pinto Jeria
47
3.3.2 Función surf, surfc.-
Esta función grafica un superficie sombreada, en 3D. Y la función surfc, grafica lo mismo,
pero con un contorno en la parte inferior. Su sintaxis es
surf(Z)
surf(Z,C)
surf(X,Y,Z)
surf(X,Y,Z,C)
surf(...,'NombPropiedad',ValorPropiedad)
surf(manejador_ejes,...)
surfc(...)
h = surf(...)
Ejemplo3.31:
>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2);
Z = X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z)
3.3.3 Función polt3.-
Realiza la gráfica de curvas en 3D.La sintaxis es:
plot3(X1,Y1,Z1,...)
plot3(X1,Y1,Z1,EspecLinea,...)
plot3(...,'NombrePropiedad',ValorPropiedad,...)
h = plot3(...)
Ejemplo3.32:
>>t = 0:pi/50:10*pi;plot3(sin(t),cos(t),t);grid on;axis square
-2
-1
0
1
2
-2
-1
0
1
2
-0.5
0
0.5
48. Dante Pinto Jeria
48
3.3.4 Función surfl.-
Realiza una gráfica de una superficie, con iluminación basada en mapa de colores. Su
sintaxis es:
surfl(Z)
surfl(...,'light')
surfl(...,s)
surfl(X,Y,Z,s,k)
h = surfl(...)
Ejemplo3.33:
>> [x,y] = meshgrid(-3:1/8:3);
z = peaks(x,y);
surfl(x,y,z);
shading interp
colormap(gray);
axis([-3 3 -3 3 -8 8])
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
10
20
30
40
49. Dante Pinto Jeria
49
3.3.5 Función contour.-
Esta funcion grafica los contornos o curvas de nivel de superficies en el espacio. Su sintaxis
es:
contour(Z)
contour(Z,n)
contour(Z,v)
contour(X,Y,Z)
contour(X,Y,Z,n)
contour(X,Y,Z,v)
contour(...,LineSpec)
contour(axes_handle,...)
[C,h] = contour(...)
Ejemplo3.34:
>>[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour(X,Y,Z,30)
-3
-2
-1
0
1
2
3
-2
0
2
-5
0
5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
51. Dante Pinto Jeria
51
La función quiver realiza la gráfica de flechas que pueden representar velocidades o
cambio repentino.
3.3.6 Función contour3.-
Realiza una gráfica de contorno en 3D. Su sintaxis es:
contour3(Z)
contour3(Z,n)
contour3(Z,v)
contour3(X,Y,Z)
contour3(X,Y,Z,n)
contour3(X,Y,Z,v)
contour3(...,EspecLinea)
contour3(manejador_ejes,...)
[C,h] = contour3(...)
Ejemplo3.37:
>> [X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)
surface(X,Y,Z,'EdgeColor',[.8 .8 .8],'FaceColor','none')
grid off
view(-15,25)
colormap cool
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-2
0
2
-0.5
0
0.5
52. Dante Pinto Jeria
52
CAPÍTULO IV
CÁLCULO NUMÉRICO Y SIMBÓLICO
4.1 CÁLCULO NUMÉRICO.-
4.1.1 Función roots.-
Encuentra raíces de polinomios.
La función roots(c) calcula las raíces de los polinomios cuyos coeficientes son los
elementos del vector c. Si c tiene n+1 componentes el polinomio es c(1)*x^n + ... + c(n)*x
+ c(n+1).
Ejemplo4.1: Hallar las raíces de x4
-3x3
-x+6=0
>> roots([1 -3 0 -1 6])
ans =
2.8671
1.4273
-0.6472 + 1.0234i
-0.6472 - 1.0234i
4.1.2 Función fzero.-
Calcula las raíces de funciones continuas de una variable. La sintaxis es:
x = fzero(fun,x0)
x = fzero(fun,x0,opciones)
[x,fval] = fzero(...)
[x,fval,etiquetasalida] = fzero(...)
[x,fval,etiquetasalida,salida] = fzero(...)
Ejemplo4.2: Hallar la raíz de x*sin(x)=0, cerca de x0=2
>> f=@(x)x*sin(x);z=fzero(f,2)
z =
3.1416
4.1.3 Función poly.-
Convierte raíces a polinomios.
Ejemplo4.3: Hallar el polinomio, del cual las raíces, son x=1,2,3
>> poly([1 2 3])
ans =
1 -6 11 -6
53. Dante Pinto Jeria
53
Lo que corresponde a x3
-6x2
+11x-6
4.1.4 Función polyval.-
Evalúa un polinomio en un valor determinado; y = polyval(p,x) da como resultado el valor
de un polinomio de grado n evaluado en x. El argumento de entrada p es un vector de
longitud n+a, cuyos elementos son los coeficientes en orden descendente de potencia del
polinomio a ser evaluado.
Ejemplo4.4: Evaluar el polinomio x3
-6x2
+11x-6 en x=6
>> polyval([ 1 -6 11 -6 ],6)
ans =
60
4.1.5 Función polyfit.-
Ajusta un polinomio de grado n a los datos x e y; p = polyfit(x,y,n)
Ejemplo4.5: Ajustar un polinomio de segundo grado para los puntos (1,0);(4,4);(7,0)
>> polyfit([1;4;7],[0;4;0],2)
ans =
-0.4444 3.5556 -3.1111
Lo que corresponde a -0.4444x2
+3.5556 x-3.1111
Ejemplo4.6: Realizar el mismo ejemplo anterior, pero con formato racional
>> format rat
>> polyfit([1;4;7],[0;4;0],2)
ans =
-4/9 32/9 -28/9
4.1.6 Función conv.-
Realiza la convolución y la multiplicación de polinomios.
Ejemplo4.7: Multiplicar (x+1)*(2x2
-3x+5)
>> conv([0 1 1],[2 -3 5])
ans =
0 2 -1 2 5
Lo que corresponde a 2x3
-x2
+2x+5
54. Dante Pinto Jeria
54
4.1.7 Función deconv.-
Realiza la deconvolución. La sintaxis es [q,r] = deconv(v,u) donde q es el cociente y r
es el residuo.
Ejemplo4.8:
>>u = [1 2 3 4];v = [10 20 30];
La convolución es
>>c = conv(u,v)
c =
10 40 100 160 170 120
Se usa la deconvolución para recuperar u:
[q,r] = deconv(c,u)
q =
10 20 30
r =
0 0 0 0 0 0
4.1.8 Función polyder.-
Realiza la derivada de un polinomio. Su sintaxis es
k = polyder(p)
k = polyder(a,b)
[q,d] = polyder(b,a)
cuando se tiene polyder(a,b), calcula la derivada del producto de a por b.
cuando se tiene [q,d] = polyder(b,a), da como resultado el numerador q y el denominador
d de la derivada del cociente de b/a.
Ejemplo4.9: Hallar la derivada de 4x3
-2x2
+3x-5
>> polyder([4 -2 3 -5])
ans =
12 -4 3
Ejemplo4.10: Hallar la derivada de (x+1)(x2
-2x-1)
>> polyder([1 1],[1 -2 -1])
ans =
3 -2 -3
Ejemplo4.11: Hallar la derivada de (x+1) / (x2
-2x-1)
>> [q,d]=polyder([1 1],[1 -2 -1])
q =
-1 -2 1
d =
55. Dante Pinto Jeria
55
1 -4 2 4 1
4.1.9 Función polyint.-
Integra analíticamente un polinomio. La sintaxis es:
polyint(p,k)
polyint(p)
Ejemplo4.12: Integrar el polinomio con una constante k=0
>> polyint([1 2 3 4])
ans =
1/4 2/3 3/2 4 0
Ejemplo4.13: Integrar el polinomio con una constante k=3
>> polyint([1 2 3 4],3)
ans =
1/4 2/3 3/2 4 3
4.1.10 Función residue.-
Convierte entre la expansión en fracciones parciales y coeficientes polinomiales. Su
sintaxis es:
[r,p,k] = residue(b,a)
[b,a] = residue(r,p,k)
Convierte entre expresiones tipo:
a expresiones como la siguiente, cuando no se tienen raíces repetidas.
o a expresiones como la siguiente, cuando se tienen raíces repetidas.
Ejemplo4.14: Expandir en fracciones parciales
>> b = [ 5 3 -2 7];a = [-4 0 8 3];
>> [r, p, k] = residue(b,a)
r =
-1.4167
-0.6653
56. Dante Pinto Jeria
56
1.3320
p =
1.5737
-1.1644
-0.4093
k =
-1.2500
Ejemplo4.15: Realizar el proceso inverso con los anteriores datos.
>> [b,a] = residue(r,p,k)
b =
-1.2500 -0.7500 0.5000 -1.7500
a =
1.0000 -0.0000 -2.0000 -0.7500
Lo cual puede interpretarse como
Debe hacerse notar que el resultado está normalizado para el coeficiente líder en el
denominador.
4.1.11 Función feedback.-
La sintaxis es:
sys = feedback(sys1,sys2)
Ejemplo4.16: Hallar la función de transferencia resultante de:
57. Dante Pinto Jeria
57
>> feedback(tf([2 5 1],[1 2 3]),tf([0 5 10],[0 1 10]))
Transfer function:
2 s^3 + 25 s^2 + 51 s + 10
---------------------------
11 s^3 + 57 s^2 + 78 s + 40
Se debe utilizar la función tf para convertir a funciones de transferencia.
4.1.12 Función series.-
Encuentra la función de transferencia en cascada (serie). La sintaxis es:
series
sys = series(sys1,sys2)
sys = series(sys1,sys2,outputs1,inputs2)
Ejemplo4.17: Hallar la función de transferencia en cascada de:
G1(s)=10/(s2
+2s+10); G2(s)=5/(s+5)
>> num1=[0 0 10];den1=[1 2 10];num2=[0 5];den2=[1 5];
>> [num,den]=series(num1,den1,num2,den2);
>> printsys(num,den)
num/den =
50
-----------------------
s^3 + 7 s^2 + 20 s + 50
4.1.13 Función parallel.-
Encuentra la función de transferencia en paralelo. La sintaxis es:
58. Dante Pinto Jeria
58
parallel
sys = parallel(sys1,sys2)
sys = parallel(sys1,sys2,inp1,inp2,out1,out2)
sys = parallel(sys1,sys2,'nombre')
Ejemplo4.18: Hallar la función de transferencia en paralelo de:
G1(s)=10/(s2
+2s+10); G2(s)=5/(s+5)
>> num1=[0 0 10];den1=[1 2 10];num2=[0 5];den2=[1 5];
>> [num,den]=parallel(num1,den1,num2,den2);
>> printsys(num,den)
num/den =
5 s^2 + 20 s + 100
-----------------------
s^3 + 7 s^2 + 20 s + 50
4.1.14 Función tf2ss.-
Esta función convierte de la función de transferencia al espacio de estados. La sintaxis es:
[A,B,C,D] = tf2ss(num,den)
x' = Ax + Bu
y = Cx + Du
del sistema:
num(s)
H(s) = --------
den(s)
Ejemplo4.19: Convertir al espacio de estados la función de transferencia
s/(s3
+14s2
+56s+160).
>> num=[0 0 1 0];den=[1 14 56 160];
>> [A,B,C,D]=tf2ss(num,den)
A =
59. Dante Pinto Jeria
59
-14 -56 -160
1 0 0
0 1 0
B =
1
0
0
C =
0 1 0
D =
0
4.1.15 Función ss2tf.-
Esta función convierte dl espacio de estados a la función de transferencia. La sintaxis es:
[num,den] = ss2tf(A,B,C,D,iu)
iu se debe especificar para sistemas con más de una entrada. Por ejemplo si el sistema tiene
tres entradas (u1,u2,u3), entonces iu debe ser o 1,2 o 3, donde 1 se refiere a u1, 2 a u2 y 3 a
u3.
NUM(s) -1
H(s) = -------- = C(sI-A) B + D
DEN(s)
Del sistema:
x' = Ax + Bu
y = Cx + Du
Ejemplo4.20: Obtenga la función de transferencia del sistema definido por las siguientes
ecuaciones en el espacio de estados:
>> A=[0 1 0;0 0 1;-5 -25 -5];
>> B=[0;25;-120];
>> C=[1 0 0];
60. Dante Pinto Jeria
60
>> D=[0];
>> [num,den]=ss2tf(A,B,C,D)
num =
0 0.0000 25.0000 5.0000
den =
1.0000 5.0000 25.0000 5.0000
>> printsys(num,den)
num/den =
8.8818e-015 s^2 + 25 s + 5
--------------------------
s^3 + 5 s^2 + 25 s + 5
4.1.16 Función solve.-
Esta función permite resolver sistemas de ecuaciones no lineales. La sintaxis es
SOLVE('ecu1','ecu2',...,'ecuN','var1,var2,...,varN')
SOLVE('ecu1','ecu2',...,'ecuN','var1','var2',...'varN')
Ejemplo4.21:
>> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
x =
1
3
y =
1
-3/2
4.2 CÁLCULO SIMBÓLICO.-
Matlab realiza cálculos simbólicos, aunque no es la especialidad de este programa. Por lo
tanto presenta algunas limitaciones frente a otros programas como Mathematica, que si es
especialista en cálculo simbólico.
Para estas funciones, es necesario, declarar las variables como simbólicas, esto se realiza
mediante el comando syms, seguido del nombre de la variable.
Así, por ejemplo syms x,y declara como simbólicas las variables x e y
4.2.1 Función limit.-
Encuentra el límite de una función. Su sintaxis es:
limit(f,x,a) toma el límite de la expresión simbólica f como x -> a.
limit(f,a) usa symvar(f) como la variable independiente.
limit(f) usa a = 0 como el punto límite.
limit(f,x,a,'right') or limit(f,x,a,'left') especifica la dirección del límite lateral
61. Dante Pinto Jeria
61
Ejemplo4.22:
>> syms x;limit('sin(x)/x',x,0)
ans =
1
4.2.2 Función diff.-
Calcula la derivada simbólica. La sintaxis es:
diff(expr)
diff(expr, v)
diff(expr, sym('v'))
diff(expr, n)
diff(expr, v, n)
diff(expr, n, v)
diff(expr) deriva una expresión simbólica expr con respecto a su variable libre (sin
ningún valor asignado) determinada por symvar.
diff(expr, v) y diff(expr, sym('v')) deriva expr con respect a v.
diff(expr, n) deriva expr n veces. n es un entero positivo
diff(expr, v, n) y diff(expr, n, v) deriva expr con respecto a v n veces.
Ejemplo4.23:
>> syms x;
>> diff('sin(x)^3',x)
ans =
3*cos(x)*sin(x)^2
4.2.4 Función int.-
Integra una expresión simbólica. Su sintaxis es:
int(expr)
int(expr, v)
int(expr, a, b)
int(expr, v, a, b)
int(expr) realiza la integral indefinida de expr con respecto a su variable simbólica definida
por symvar.
int(expr, v) realiza la integral indefinida de expr con respecto a su variable simbólica
definida por la variable escalar v.
62. Dante Pinto Jeria
62
int(expr, a, b) realiza la integral definida desde a a b de expr con respecto a la variable
simbólica por omisión. a y b son simbólicas o doble escalares.
int(expr, v, a, b) realiza la integral definida de expr con respecto a v desde a a b.
Ejemplo4.24: Integrar
>> sym x;
>> int((6*x+1)*sin(sqrt(3*x^2+x-1))/sqrt(3*x^2+x-1))
ans =
(-2)*cos((3*x^2 + x - 1)^(1/2))
4.2.5 Función collect.-
Reúne coeficientes. La sintaxis es:
R = collect(S)
R = collect(S,v)
R = collect(S) regresa un arreglo de polinomios reunidos para cada polinomio en el
arreglo S de polinomios.
R = collect(S,v) reúne términos que contienen la variable v.
Ejemplo4.25: Simplificar x+1+x+5x2
+1-2x-2x2
>> syms x;
>> collect(x+1+x+5*x^2+1-2*x-2*x^2)
ans =
3*x^2 + 2
4.2.6 Función expand.-
Expande simbólicamente polinomios y funciones elementales. La sintaxis es:
expand(S)
Ejemplo4.26:
>>syms x;
>>expand((x-2)*(x-4))
ans =
x^2 - 6*x + 8
63. Dante Pinto Jeria
63
Ejemplo4.27:
>>syms x y;
>>expand(cos(x+y))
ans =
cos(x)*cos(y) - sin(x)*sin(y)
Ejemplo4.28:
>>syms a b;
>>expand(exp((a+b)^2))
ans =
exp(2*a*b)*exp(a^2)*exp(b^2)
Ejemplo4.29:
>>syms t;
>>expand([sin(2*t), cos(2*t)])
ans =
[ 2*cos(t)*sin(t), cos(t)^2 - sin(t)^2]
4.2.7 Función factor.-
Factoriza una expresión de manera simbólica.
Ejemplo4.30:
>> factor(1024)
ans =
2 2 2 2 2 2 2 2 2 2
Ejemplo4.31:
>>syms x y;
>>factor(x^3-y^3)
ans =
(x - y)*(x^2 + x*y + y^2)
Ejemplo4.32:
>>syms a b;
>>factor([a^2 - b^2, a^3 + b^3])
ans =
[ (a - b)*(a + b), (a + b)*(a^2 - a*b + b^2)]
4.2.8 Función numden.-
Devuelve el numerador y el denominador. La sintaxis es:
[N,D] = numden(A)
Ejemplo4.33:
>>[n, d] = numden(sym(4/5))
n =
4
64. Dante Pinto Jeria
64
d =
5
Ejemplo4.34:
>>syms x y;
>>[n,d] = numden(x/y + y/x)
n =
x^2 + y^2
d =
x*y
Ejemplo4.35:
>>syms a b
>>A = [a, 1/b]
[n,d] = numden(A)
A =
[a, 1/b]
n =
[a, 1]
d =
[1, b]
4.2.9 Función simplify.-
Realiza la simplificación simbólica. La sintaxis es
R = simplify(S)
Ejemplo4.36:
>>syms x;
>>simplify(sin(x)^2 + cos(x)^2)
ans =
1
Ejemplo4.37:
>>syms a b c;
>>simplify(exp(c*log(sqrt(a+b))))
ans =
(a + b)^(c/2)
Ejemplo4.38:
>>S = [(x^2 + 5*x + 6)/(x + 2), sqrt(16)];
65. Dante Pinto Jeria
65
>>R = simplify(S)
R =
[ x + 3, 4]
4.2.10 Función simple.-
Busca la forma más simple de una expresión simbólica.
Ejemplo4.39:
>>syms x;
>>f = cos(x)^2 + sin(x)^2;
>>f = simple(f)
f =
1
>>g = cos(3*acos(x));
>>g = simple(g)
g =
4*x^3 - 3*x
4.2.11 Función subs.-
Substituye simbólicamente, en una expresión simbólica o en una matriz. La sintaxis es:
R = subs(S)
R = subs(S, nuevo)
R = subs(S, viejo, nuevo)
Ejemplo4.40:
>>syms a b;
>>subs(a + b, a, 4)
ans =
b + 4
Ejemplo4.41:
>>syms a b;
>>subs(cos(a) + sin(b), {a, b}, {sym('alpha'), 2})
ans =
sin(2) + cos(alpha)
Ejemplo4.42:
Suponiendo que a = 980 y C2 = 3 existen en el workspace.
The statement
>>y = dsolve('Dy = -a*y')
y =
C2/exp(a*t)
66. Dante Pinto Jeria
66
a = 980; C2 = 3; subs(y)
ans =
3/exp(980*t)
4.2.12 Función dsolve.-
Resuelve ecuaciones diferenciales ordinarias de manera simbólica. La sintaxis es:
dsolve('eq1','eq2',...,'cond1','cond2',...,'v')
dsolve(...,'IgnoreAnalyticConstraints',value)
Ejemplo4.43: Resolver my’’+cy’+ky=0
>> dsolve('m*D2y=-c*Dy+-k*y')
ans =
C3/exp((t*(c + (c^2 - 4*k*m)^(1/2)))/(2*m)) + C2/exp((t*(c - (c^2 -
4*k*m)^(1/2)))/(2*m))
Ejemplo4.44:
>>dsolve('Dx = -a*x')
ans =
C2/exp(a*t)
Ejemplo4.45:
>>dsolve('Df = f + sin(t)')
ans =
C4*exp(t) - sin(t)/2 - cos(t)/2
Ejemplo4.46:
>>dsolve('(Dy)^2 + y^2 = 1','s')
ans =
1
-1
cosh(C7 + s*i)
cosh(C11 - s*i)
Ejemplo4.47:
>>dsolve('Dy = a*y', 'y(0) = b')
ans =
b*exp(a*t)
Ejemplo4.48:
>>dsolve('D2y = -a^2*y', 'y(0) = 1', 'Dy(pi/a) = 0')
ans =
(1/exp(a*t*i))/2 + exp(a*t*i)/2
Ejemplo4.49:
>>z = dsolve('Dx = y', 'Dy = -x')
67. Dante Pinto Jeria
67
z =
x: [1x1 sym]
y: [1x1 sym]
Se introduce z.x y z.y par aver los resultados:
z.x
ans =
C20*cos(t) + C19*sin(t)
z.y
ans =
C19*cos(t) - C20*sin(t)
4.2.13 Función laplace.-
Calcula la transformada de Laplace. Su sintaxis es:
laplace(F)
laplace(F, t)
laplace(F, w, z)
Ejemplo4.50:
>> syms t
>> laplace(sin(t))
ans =
1/(s^2 + 1)
Ejemplo4.51:
>> syms x t w;laplace(cos(t*w),x)
ans =
x/(w^2 + x^2)
4.2.14 Función ilaplace.-
Calcula la transformada inversa de Laplace. Su sintaxis es:
F = ilaplace(L)
F = ilaplace(L,y)
F = ilaplace(L,y,x)
Ejemplo4.52
>> g=laplace(exp(t))
g =
1/(s - 1)
>> ilaplace(g)
ans =
exp(t)
68. Dante Pinto Jeria
68
Ejemplo4.53:
>> ilaplace(t^(-sym(5/2)),x)
ans =
(4*x^(3/2))/(3*pi^(1/2))
4.2.15 Función fourier.-
Calcula la transformada de Fourier. La sintaxis es:
F = fourier(f)
F = fourier(f,v)
F = fourier(f,u,v)
Ejemplo4.54:
>> syms t;
>> fourier(1/t)
ans =
pi*(2*heaviside(-w) - 1)*i
4.2.16 Función ifourier.-
Calcula la transformada inversa de Fourier. La sintaxis es:
f = ifourier(F)
f = ifourier(F,u)
f = ifourier(F,v,u)
Ejemplo4.55:
>> syms t w x
>> ifourier(w*exp(-3*w)*sym('heaviside(w)'))
ans =
1/(2*pi*(- 3 + x*i)^2)
4.2.17 Función ztrans.-
Realiza la transformada Z. Su sintaxis es:
F = ztrans(f)
F = ztrans(f, w)
F = ztrans(f, k, w)
Ejemplo4.56:
>> syms k n w z
>> ztrans(2^n)
ans =
z/(z - 2)
Ejemplo4.57:
69. Dante Pinto Jeria
69
>> ztrans(sin(k*n),w)
ans =
(w*sin(k))/(w^2 - 2*cos(k)*w + 1)
4.2.18 Función iztrans.-
Calcula la transformada Z inversa. Su sintaxis es:
f = iztrans(F)
f = iztrans(F,k)
f = iztrans(F,w,k)
Ejemplo4.58:
>> iztrans(z/(z-2))
ans =
2^n
Ejemplo4.59:
>> iztrans(exp(x/z),z,k)
ans =
x^k/factorial(k)
4.2.19 MuPad.-
Matlab 2010, tiene incorporada una caja de herramientas (toolbox), que contiene el
programa de álgebra computarizada (CAS) MuPad.
Para cargar esta caja de herramientas se debe teclear
>>mupad
Este programa permite realizar diferentes cálculos simbólicos y gráficas muy elaboradas.
Tiene su propia sintaxis independiente de Matlab.
71. Dante Pinto Jeria
71
MuPad tiene las siguientes diferencias con Matlab.
Tarea Sintaxis de MATLAB Sintaxis de MuPAD
Asignar = :=
Lista de variables whos anames(All, User)
Valor numérico de una
expresión
double(expression) float(expression)
Supresión de la salida ; :
Entrada de una matriz [x11,x12,x13;
x21,x22,x23]
matrix([[x11,x12,x13],
[x21,x22,x23]])
{a,b,c} cell array set
Comandos de algebra Lineal Nothing extra needed linalg:: prefix, or use(linalg)
Autocompletar Tab Ctrl-space
Igualdad, Desigualdad en
comparación
==, ~= =, <>
En cuanto a expresiones, estas son las diferencias:
Expresión de MATLAB Expresión de MuPAD
Inf infinity
pi PI
i I
NaN undefined
fix trunc
log ln
asin arcsin
73. Dante Pinto Jeria
73
Expresión de MATLAB Expresión de MuPAD
catalan CATALAN
laplace transform::laplace
ilaplace transform::invlaplace
ztrans transform::ztrans
iztrans transform::invztrans
Copiando variables y expresiones entre el espacio de trabajo (Workspace) y los
Notebooks de MuPad.
Se pueden copiar variables entre el notebook de MuPad a una variable en el worksapce de
Matlab, usando un comando de Matlab y viceversa. Para ello es necesario conocer el
manejador del notebook de Mupad al que se quiere acceder.
La única forma de asignar variables entre un notebook de MuPad y el workspace de Matlab
es necesario empezar el notebook usándola sintaxis.
nb = mupad;
(Se puede usar cualquier otra variable en lugar de manejador nb) o abrir un archivo de
notebook existente, con
nb = mupad(nombre_archivo);
Para copiar una variable en el espacio de trabajo de Matlab a un notebook de MuPad con el
mismo nombre, se debe introducir, en la línea de comandos de Matlab:
setVar(notebook_manejador,variable)
Por ejemplo, si nb es el manejador del notebook y z es la variable, se debe teclear
setVar(nb,z)
Para asignar una expresión a una variable en un notebook de MuPad se debe introducir, en
la línea de comandos de Matlab
setVar(notebook_manejador,'variable',expresión)
74. Dante Pinto Jeria
74
Por ejemplo, si nb es el manejador del notebook , exp(x) - sin(x) es la expresión, y z es la
variable, se introduce
syms x
setVar(nb,'z',exp(x) - sin(x))
Para copiar una variable simbólica en un notebook de MuPad a una variable en el espacio
de trabajo en Matlab, se debe introducir en la línea de comandos de Matlab
MATLABvar = getVar(notebook_manejador,'variable');
Por ejemplo, si nm es el manejador del notebook, z es la variable en el notebook de MuPad,
y u es la variable en el espacio de trabajo de Matlab, se introduce.
u = getVar(nb,'z')
75. Dante Pinto Jeria
75
CAPÍTULO V
PROGRAMACIÓN EN CÓDIGO M
5.1 INTRODUCCIÓN.-
El lenguaje de programación de Matlab se llama código M. Este lenguaje tiene las mismas
estructuras básicas de programación de cualquier otro lenguaje, es decir, bucles y
condicionales, entradas y salidas, manejo de funciones y procedimientos.
Para entrar al entorno de programación se debe ir a File, New, Script
Otra forma es teclear en la línea de comandos del espacio de trabajo de Matlab, la palabra
edit seguida del nombre que se le quiere asignar al programa.
>>edit primero
Luego aparece un mensaje que indica que el archivo no existe y pregunta si es que
debemos crearlo, a lo que se responde que sí.
Inmediatamente aparece el entorno de programación
76. Dante Pinto Jeria
76
En el entorno de programación se introduce el código del programa, por ejemplo:
disp('Hola Mundo Cruel');
Luego se guarda el programa. Para ejecutar se debe teclear, en el espacio de trabajo, el
nombre del programa y luego ENTER.
>> primero
Hola Mundo Cruel
>>
Para introducir comentarios en el código del programa, se debe utilizar el símbolo %
seguido del comentario. Todo lo que se encuentra en la misma línea que el símbolo % no
se ejecuta, y aparece en color verde dentro del entorno de programación.
Para editar un programa se debe teclear lo mismos que s hizo para crearlo, es decir, edit
seguido del nombre del programa.
Los operadores lógicos fundamentales son los siguientes:
Nombre Símbolo Empleo
And && a && b
Or || a || b
Not ~ ~a
Xor xor a xor b
77. Dante Pinto Jeria
77
5.2 COMANDOS BÁSICOS DE PROGRAMACIÓN.-
Matlab tiene muy pocos comandos para la programación, y son casi los mismos que los
utilizados en otros lenguajes de programación, como C/C++.
5.2.1 Comando input.-
Este comando pide la introducción de datos por parte del usuario. La sintaxis es:
Resulado_evaluado = input(mensaje)
Resultado_cadena = input(mensaje, 's')
Ejemplo5.1:
>> a=input('Introduzca el valor de la hipotenusa: ')
Introduzca el valor de la hipotenusa: 5
a =
5
Ejemplo5.2: Comprobar que el comando input permite evaluar una expresión.
>> a=input('Introduzca el valor de la hipotenusa: ')
Introduzca el valor de la hipotenusa: 8/9
a =
0.8889
Ejemplo5.3:
>> respuesta = input('¿Quiere mas? S/N : ', 's');
¿Quiere mas? S/N : s
>> respuesta
respuesta =
s
Ejemplo5.4: Utilizar un mensaje formateado mediante la función sprintf.
>> a=2;b=4;c=input(sprintf('Introduzca el dato numero %i, para la matriz %i : ',a,b))
Introduzca el dato numero 2, para la matriz 4 : 9
c =
9
La función sprintf da formato a una cadena de texto, donde se encuentren los indicadores
%i reemplaza el correspondiente valor, en este caso a y b. Esta función es muy similar a la
78. Dante Pinto Jeria
78
función printf del lenguaje C. Los caracteres de conversión, que se pueden usar y que
siguen después del símbolo %, son d, i, o, u, x, X, f, e, E, g, G, c, s.
5.2.2 Comando disp.-
Este comando permite la salida por pantalla de algún resultado. Si lo expuesto está
almacenado en una variable, se muestra solo el contenido de la variable y no así el nombre
de la variable.
Ejemplo5.5:
>> a=5;disp(a)
5
5.2.3 Comando if-end, if-else-end.-
Este es comando condicional, por excelencia. Su sintaxis es:
if expresión, declaraciones, end
if expresion1
declaraciones1
elseif expresion2
declaraciones2
else
declaraciones3
end
Ejemplo5.6: Escribir un programa que indique si un año es bisiesto. Para esto se debe
considerar lo siguiente: un año es bisiesto si es múltiplo de 4 excepto que también sea
múltiplo de 100 y lo anterior queda descartado si también es múltiplo de 400. Así, por
ejemplo el año 2000 es múltiplo de 4 por tanto en primera instancia decimos que es
bisiesto, pero como también es múltiplo de 100 decimos que no es bisiesto, pero en
definitiva al ver que es múltiplo de 400 concluimos que si es bisiesto.
La tabla de verdad es la siguiente, donde a, b y c indican la multiplicidad respecto 4,100 y
400.
a b c (a^~b)v(a^c)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
79. Dante Pinto Jeria
79
1 0 1 1
1 1 0 0
1 1 1 1
%_Programa bisiesto
%_Dante Pinto Jeria, P-10-X-2010
n=input('Introduzca un año: ');
a=mod(n,4);b=mod(n,100);c=mod(n,400);
if (a && ~b) || (a && c)
disp(sprintf('El año %i, NO es bisiesto',n));
else
disp(sprintf('El año %i, ES bisiesto',n));
end
Este programa utiliza la función mod, que devuelve el residuo de la división de los dos
argumentos, así por ejemplo: mod(5,2) da como resultado 1.
5.2.4 Comando for-end.-
Este comando realiza un bucle. La sintaxis es:
for indice = valores
declaraciones del programa
:
End
Ejemplo5.7: Mostrar números desde 1 hasta 0 en orden descendente, cada 0.1
>> for s = 1.0: -0.1: 0.0
disp(s)
end
1
0.9000
0.8000
0.7000
0.6000
0.5000
0.4000
0.3000
0.2000
0.1000
0
80. Dante Pinto Jeria
80
Ejemplo5.8: Realizar un programa que dibuje líneas entrecruzadas. Usar dos bucles for
anidados.
%_Programa figura, para dibujar líneas entrecruzadas
%_Dante Pinto Jeria, P-6-X-2010
clc;
alpha=input('Introduzca un numero de 3 a 30:');
if alpha<3 || alpha>30
alpha=15;
end
alpha=360/alpha;
for i=0:alpha:360
for j=i:alpha:360
x1=cosd(i);
y1=sind(i);
x2=cosd(j);
y2=sind(j);
line([x1 x2],[y1 y2],'Color',[1,0,0]);
end
end
axis equal;axis off;set(gcf,'Color',[1,1,1]);
La ejecución del programa con 25 puntos da como resultado:
81. Dante Pinto Jeria
81
Ejemplo5.9: Realizar un programa que muestre una película con los cambios que se le
hacen a una superficie en 3D.
%_Programa peli, realiza una animación de los cambios que se hacen
%_a una gráfica
%_Dante Pinto Jeria
%_P-11-10-2010
Z = peaks; surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
% Graba la película
for j = 1:20
surf(sin(2*pi*j/20)*Z,Z)
F(j) = getframe;
end
% Reproduce la película 10 veces
movie(F,10)
La ejecución de este programa produce:
10
20
30
40
10
20
30
40
-5
0
5
10
20
30
40
10
20
30
40
-5
0
5
82. Dante Pinto Jeria
82
Ejemplo5.10: Mostrar el uso de la función subplot.
% Programa mosaigraf, para demostrar el uso de subplot
%_P-13-X-2010
k=0;
for n=1:3:10
n10=10*n;
x=linspace(-2,2,n10);
y=x./(1+x.^2);
k=k+1;
subplot(2,2,k)
plot(x,y,'k')
title(sprintf('Gráfico %g. Trazado con n = %g puntos.',k,n10))
xlabel('x')
ylabel('y')
axis([-2,2,-.8,.8])
grid
pause(3);
end
La ejecución de este programa da como resultado:
-2 -1 0 1 2
-0.5
0
0.5
Gráfico 1. Trazado con n = 10 puntos.
x
y
-2 -1 0 1 2
-0.5
0
0.5
Gráfico 2. Trazado con n = 40 puntos.
x
y
-2 -1 0 1 2
-0.5
0
0.5
Gráfico 3. Trazado con n = 70 puntos.
x
y
-2 -1 0 1 2
-0.5
0
0.5
Gráfico 4. Trazado con n = 100 puntos.
x
y
83. Dante Pinto Jeria
83
5.2.5 Comando while-end.-
Este comando realiza las declaraciones del programa hasta que la cláusula –prueba sea
falsa. Pero primero realiza la prueba, por tanto si la cláusula-prueba es falsa la cláusula-
bucle no se realiza ni una sola vez. Su sintaxis es:
while claúsula_prueba
declaraciones del programa
:
end
Ejemplo5.11: Realizar un programa que forme una matriz mágica impar. Las matrices
mágicas son aquellas que suman el mismo número en filas, columnas y diagonales. Utilizar
el algoritmo de Loubere.
%_Programa para matriz mágica de números impares
%_Dante Pinto Jeria, P-6-X-2010
clc;
n=input('Introduzca el numero impar, del tamaño de la matriz: ');
n = floor(real(double(n(1))));
if mod(n,2)==0
disp('EL NUMERO INTRODUCIDO NO ES IMPAR');
else
M=rand(n)*0;c=1;I=n;J=ceil(n/2);M(I,J)=c;
while c<n^2,
c=c+1;I=I+1;J=J-1;
if I>n && J<1
I=I-2;J=J+1;
end
if I>n && J>0
I=1;
end
if I<=n && J==0
J=n;
end
if M(I,J)~=0
I=I-2;J=J+1;
end
M(I,J)=c;
end
disp(sprintf('La matriz mágica de tamaño %g, es:',n));
disp(M);
end
La función floor da como resultado el redondeo hacia abajo, así por ejemplo, floor(5/2) da
como resultado 2. La función ceil da como resultado el redondeo hacia arriba, así por
ejemplo ceil(5/2) da como resultado 3.
La ejecución de este programa da como resultado:
Introduzca el número impar, del tamaño de la matriz: 5
La matriz mágica de tamaño 5, es:
84. Dante Pinto Jeria
84
9 2 25 18 11
3 21 19 12 10
22 20 13 6 4
16 14 7 5 23
15 8 1 24 17
5.2.6 Comando switch.-
Este comando conmuta entre muchos casos basados en expresiones. Su sintaxis es:
switch switch_expr
case case_expr
declaracion, ..., declaracion
case {case_expr1, case_expr2, case_expr3, ...}
declaracion, ..., declaracion
otherwise
declaracion, ..., declaracion
end
Ejemplo5.12:
>> indicador= 'Bueno';
switch lower(indicador)
case {'bueno','regular'}
disp('Es aceptable')
case 'malo'
disp('Es malo')
case 'excelente'
disp('Es excelente')
otherwise
disp('No sé qué es lo que sea')
end
La función lower convierte un a cadena de texto a minúsculas. En contraposición existe la
función upper, que convierte una cadena de texto a mayúsculas.
La ejecución de este programa da como resultado:
Es aceptable
5.2.7 Comando error.-
Este comando expone un mensaje y aborta una función. Su sintaxis es:
error('msgIdent', 'msgString', v1, v2, ..., vN)
error('msgString', v1, v2, ...)
error('msgString')
error(msgStruct)
5.3 USO DE FUNCIONES.-
85. Dante Pinto Jeria
85
Las funciones son procedimientos que recogen datos de entrada, los procesan y devuelven
un resultado. La estructura de una función es la siguiente:
function [ argumentos_de_salida ] = Nombre_Funcion( argumentos_entrada )
declaraciones
end
Las variables dentro de la función, son variables locales, es decir, solo tienen valides dentro
de la función, fuera de ella no valen nada. Si es que se desearía que las variables tengan
valor fuera de la función, se las debe declarar como variables globales en el entorno en el
que se llama a la función.
Para ello se utiliza el comando global seguido del nombre de la variable.
Ejemplo5.13: Escribir una función para que calcule si un año es o no bisiesto. Si es
bisiesto devuelva un 1, caso contrario devuelva un 0.
function salida = bisies(anio)
a=mod(anio,4);b=mod(anio,100);c=mod(anio,400);
if (a && ~b) || (a && c)
salida=0;
else
salida=1;
end
end
Para ejecutar esta función, se la llama dándole un argumento.
>> bisies(2010)
ans =
0
Ejemplo5.14: Para el anterior ejemplo, definir la variable salida como global, para
recuperar su valor.
>> global salida;bisies(2012);
>> salida
salida =
1
Ejemplo5.15: Realizar una función que dados como datos el número de filas de una matriz
y el índice relativo, devuelva la fila y la columna a la que pertenece ese índice.
86. Dante Pinto Jeria
86
Así en la anterior matriz si se le da como datos 2 (que es el número de filas y 10 (el índice)
la función devolverá fila=2 y columna=5.
function [f,c] = indice(m,I)
c=1;
while I>(c*m)
c=c+1;
end
f=I-(c-1)*m;
end
Para llamar a la función se debe utilizar la siguiente sintaxis.
>> [f,c]=indice(2,10)
f =
2
c =
5
Ejemplo5.16: Realizar una función que se llame bueno y permita la entrada de un valor y
realice xvalor
: si el número de entradas es menor que 4,3,2 asigne valores por omisión; si el
llamado a la función se lo realiza de la forma bueno() dibuje la gráfica; si el llamado se lo
realiza mediante la forma [x0,y0]=bueno() saque los valores.
function [x0, y0] = bueno(valor,desde,hasta,cada)
%_valores por omisión
if nargin < 4, cada = .2; end
if nargin < 3, hasta = 2; end
if nargin < 2, desde = -2; end
if nargin < 1
error('myApp:argChk', 'Número de argumentos equivocados')
end
x=desde:cada:hasta;
y = x.^valor;
if nargout == 0 %_si la entrada es bueno(), dibuja una gráfica
plot(x, y)
else %_si la entrada es [x0,y0]=bueno() da salida a los valores
x0 = x;
y0 = y;
end
end
Aquí se utilizan las variables nargin y nargout, que indican el número de entradas y
salidas de la función respectivamente.
87. Dante Pinto Jeria
87
La variable nargin indica con cuantos argumentos se llama a la función, así por ejemplo, si
se llama bueno(2,3) nargin dará como resultado 2, bueno(1,1,2) dará como resultado 3.
La variable nargout indica con cuantos argumentos se invoca la salida, así por ejemplo,
[x0,y0]=bueno(1), dará como resultado 2; mientras que bueno(1) dará como resultado 0.
Se añadió una línea en la que se interrumpe la función y se da un mensaje de error si el
número de argumentos es menor que 1.
Al ejecutar la función se obtiene:
>> bueno(2)
>> [x0,y0]=bueno(2,-2,2,1)
x0 =
-2 -1 0 1 2
y0 =
4 1 0 1 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
3.5
4
88. Dante Pinto Jeria
88
CAPÍTULO VI
USO DE LA INTERFAZ GRÁFICA DE USUARIO
GUI
6.1 INTRODUCCIÓN.-
Matlab permite la creación de interfaces gráficas. De manera muy similar a lenguajes como
Visual Basic, Visual C, etc.
Par entrar al entorno de diseño de las GUI se pueden seguir cualquiera de los siguientes
pasos:
a) Ir a File, New y GUI.
b) Hacer clic en el ícono
c) Escribir en el espacio de trabajo de Matlab:
>>guide
Después de cualquiera de los anteriores pasos, aparece:
Presionando OK, aparece la ventana de diseño.
89. Dante Pinto Jeria
89
La paleta de componentes es la siguiente:
Para configurar adecuadamente el entorno de diseño se utiliza el menú Preferences, que
está en File.
90. Dante Pinto Jeria
90
En el cuadro de diálogo que aparece, se quita la marca del campo Add comments for newly
generated callback functions, luego se presiona Apply y OK. Esto evita que en el entorno de
programación de los GUI, se generen comentarios de manera automática. Estos
comentarios muchas veces confunden y llenan toda la pantalla.
Los componentes se arrastran de la paleta hacia el área de diseño. Haciendo clic en el
componente y definiendo interactivamente el tamaño y la posición en el área de diseño
mediante el ratón.
Haciendo clic con el botón derecho del ratón, sobre el componente, se despliega el cuadro
de diálogo siguiente:
91. Dante Pinto Jeria
91
El campo Property Inspector da salida al cuadro de diálogo de las propiedades del control.
Aquí se pueden realizar los cambios que se crean convenientes, como el color, el mensaje
desplegado, etc.
92. Dante Pinto Jeria
92
Para cambiar el tamaño del texto, se utiliza el campo FontSize.
El nombre que se le asignará al componente, se cambia mediante el campo Tag.
También haciendo clic con el botón derecho del ratón sobre el componente se da acceso a
View Callbacks.
Esto da acceso al entorno de programación. Si es la primera vez que se entra a los
Callbakcs, se pedirá guardar la aplicación con algún nombre, luego muestra el entorno de
programación correspondiente.
93. Dante Pinto Jeria
93
Debajo del la línea resaltada se puede añadir el código correspondiente, que estará asociado
a este componente.
Funcionamiento de la GUI.
Un programa GUI tiene dos partes: un archivo .m y un archivo .fig. El archivo .m es el que
contiene el código fuente y el .fig tiene la parte gráfica. Para ejecutar un programa GUI
simplemente se teclea, en el espacio de trabajo de Matlab, el nombre del mismo. Así, por
ejemplo, si se ha guardado con el nombre de prueba.fig, simplemente se escribe:
>>prueba ENTER.
Intercambio de datos entre los elementos de la parte gráfica y el código fuente.
Los valores de las propiedades de los elementos (color, valor, posición, etc.) y los valores
de las variables transitorias del programa se almacenan en una estructura, los cuales son
accedidos mediante un único y mismo puntero para todos.
handles.output = hObject;
handles, es el puntero a los datos de la aplicación. La definición de puntero es guardada con
la instrucción:
guidata(hObject, handles);
Esta instrucción debe estar siempre al final de cualquier subrutina. Garantiza que cualquier cambio
de propiedades y valores de variables quede almacenado.
Si, por ejemplo, dentro de una subrutina una operación dio como resultado una variable
valor, para utilizar esta variable desde el programa o desde otra subrutina se la debe guardar
de la siguiente manera:
94. Dante Pinto Jeria
94
handles.valor=valor;
guidata(hObject,handles);
La primera línea añade la variable valor a la estructura de datos de la aplicación apuntada por
handles y la segunda línea guarda el valor.
Asignación y obtención de valores de los componentes.
Se realiza mediante los comandos get y set. Así, por ejemplo, si se quiere que la variable
numero recoja el valor de un editText se teclea lo siguiente:
numero=get(handles.input1_editText,'String');
Para asignar el valor de la variable numero al statictext llamado text1, se escribe:
set(handles.text1,'String',numero)
6.2 EJEMPLOS DE PROGRAMACIÓN.-
Ejemplo6.1: Crear una interfaz gráfica de usuario, que permita la entrada de una función de
x y realice la integral simbólica de esa función.
Primero se crea la interfaz gráfica con dos Static Text, un Edit Text y dos Push Button. Se
cambian los colores y nombres mediante el Property Inspector, para que quede de la
siguiente manera:
95. Dante Pinto Jeria
95
Luego se añade el código fuente mediante View Callbacks.
function varargout = integra(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @integra_OpeningFcn, ...
'gui_OutputFcn', @integra_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before integra is made visible.
function integra_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = integra_OutputFcn(hObject, eventdata, handles)
96. Dante Pinto Jeria
96
varargout{1} = handles.output;
function calcular_Callback(hObject, eventdata, handles)
global expresion;
syms x;
r=char(int(expresion,x));
set(handles.resultado,'String',r);
guidata(hObject,handles);
function entrada_Callback(hObject, eventdata, handles)
global expresion;
expresion=get(hObject,'String');
guidata(hObject,handles);
function entrada_CreateFcn(hObject, eventdata, handles)
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function borrar_Callback(hObject, eventdata, handles)
set(handles.entrada,'String','');
set(handles.resultado,'String','');
Lo que está resaltado con amarillo es el código que se añade, el resto es generado
automáticamente por el programa.
La ejecución de este programa da como resultado:
97. Dante Pinto Jeria
97
Ejemplo6.2: Realizar una GUI que simule el juego “craps” de lanzamiento de dos dados.
Las reglas del juego son las siguientes:
Un jugador gana si saca 7 u 11 en el primer lanzamiento de un par de dados, pierde si saca
2,3 ó 12 en el primer lanzamiento. Sin embargo, si en el primer lanzamiento saca un
4,5,6,8,9 ó 10 continúa tirando el dado hasta obtener el número que obtuvo en el primer
lanzamiento o hasta obtener un 7. Si obtiene su primer número antes de obtener un 7, gana;
en otro caso pierde. Calcular la probabilidad que el jugador gana en dos o menos
lanzamientos.
Lo primero es diseñar la interfaz gráfica, para ello se insertan en el área de diseño cuatro
Static Text, dos Push Button. Y se cambian los colores y los textos como se muestra a
continuación.
98. Dante Pinto Jeria
98
Luego, debajo del código generado automáticamente por el programa, se añade el código
fuente asociado a cada uno de los Push Button, para ello usamos los View Callbacks
function lanzar_Callback(hObject, eventdata, handles)
global indi indi1 fin suma
if indi1==1
a=fix(rand(1,1)*6)+1;
b=fix(rand(1,1)*6)+1;
c=num2str(a);
set(handles.primero,'String',c);
d=num2str(b);
set(handles.segundo,'String',d);
fin=0;
set(handles.informe,'String','');
indi = indi+1;
if indi==1
if a+b==2 || a+b==3 || a+b==12
set(handles.informe,'String','PERDISTE');
fin=1;
indi1=0;
end
if a+b==7 || a+b==11
set(handles.informe,'String','GANASTE');
fin=1;
indi1=0;
end
if fin == 0
suma=a+b;
99. Dante Pinto Jeria
99
end
else
if a+b==7
set(handles.informe,'String','PERDISTE');
indi1=0;
else
if a+b==suma
set(handles.informe,'String','GANASTE');
indi1=0;
end
end
end
end
guidata(hObject,handles);
function nuevo_Callback(hObject, eventdata, handles)
global indi indi1 fin
set(handles.informe,'String','');
set(handles.primero,'String','');
set(handles.segundo,'String','');
indi=0;
fin=0;
indi1=1;
6.3 CREACIÓN DE PROGRAMAS EJECUTABLES .EXE.-
Matlab permite la creación de programas con extensión .exe, estos programas pueden
ejecutarse fuera del entorno de Matlab.
Para esto se hace uso del comando mcc, desde la línea de comandos de Matlab. Por
ejemplo, si se quiere que sea ejecutable el programa integra, se escribe:
El compilador genera los siguientes archivos:
Los códigos generados están en lenguaje C.
100. Dante Pinto Jeria
100
CAPÍTULO VII
USO DE SIMULINK
7.1 INTRODUCCIÓN.-
Simulink es un programa añadido a Matlab. Sirve para programar visualmente un sistema
dinámico (el cual está gobernado por ecuaciones diferenciales) y observar los resultados.
Simulink está conformado por bibliotecas de bloques de construcción, estos bloques se
conectan unos con otros a través de líneas, las cuales transmiten la información. Simulink,
es en esencia un tipo de lenguaje orientado a bloques.
La principal ventaja es la disponibilidad de plantillas de construcción de bloques, las cuales
evitan la necesidad de escribir código para pequeños procesos matemáticos.
Para entrar al entorno de Simulink se pueden realizar cualquiera de los siguientes pasos:
Hacer clic en el ícono .
Desde el menú Start, Simulink y Library Browser.
Teclear en la ventana de comandos de Matlab: >>simulink
Después, de cualquiera de los pasos anteriores, aparece la siguiente ventana:
Para abrir un nuevo archivo se debe ir a File, New y Model
Con lo que aparece la ventana de diseño:
101. Dante Pinto Jeria
10
1
Ahora se pueden arrastrar los íconos desde el catálogo de la biblioteca de Simulink
(Simulink Library Browser) hacia la ventana de diseño.
Ejemplo7.1: Representar una función seno y la integración de la función seno, al mismo
tiempo.
Para esto se necesita extraer la función seno (Sine Wave), que se encuentra en Sources,
luego la función integrador (Integrator) que se encuentra en Continuos; luego un Mux y un
Osciloscopio, que se encuentran en Commonly Used Blocks.
Se arrastran estos bloques a la ventana de diseño y luego se conectan con líneas. Una
manera rápida de conectar bloques es marcar el bloque de partida y luego presionando la
tecla control hacer clic con el botón izquierdo en el bloque destino.
102. Dante Pinto Jeria
102
Luego se guarda este pequeño modelo, con algún nombre, en este caso IntegradorBasico. Y
se hace correr la simulación, haciendo clic en el botón , de la ventana de diseño.
Haciendo doble clic en el ícono del osciloscopio, en la ventana de diseño
Aparece a continuación la gráfica correspondiente.
La línea morada es el seno y la línea amarilla el coseno. Si se quiere un autoescalado se
debe presionar el ícono .
103. Dante Pinto Jeria
10
3
Como se puede apreciar, el coseno está desplazado hacia arriba en una unidad. Para
corregir esto se debe hacer doble clic en el ícono del integrador en la ventana de diseño.
Para abrir las propiedades del integrador.
Aquí se debe cambiar el campo Initial condition, y cambiarlo de cero a -1, para desplazar
hacia abajo el resultado. Luego presionar Apply y OK.
Haciendo correr de nuevo el simulador y presionando la autoescala, nuevamente, resulta:
104. Dante Pinto Jeria
104
Si se quiere ver en pantalla completa se debe presionar el ícono , de la ventana del
osciloscopio, con lo que aparece en la ventana de comandos de Matlab:
Para anular esta pantalla completa, se vuelve a presionar
7.2 DISEÑO DE CONTROLADORES PID CON SIMULINK.-
Ejemplo7.2: Gobierno de un brazo robótico mediante controladores PID
Se puede utilizar los controladores PID para gobernar (controlar) brazos robóticos como el
mostrado en la figura
105. Dante Pinto Jeria
10
5
Una pelota es puesta sobre una viga y puede rodar a través de ella. El brazo robótico hace
que la viga suba o baje un ángulo α. El brazo está unido a un mecanismo circular que puede
rotar un ángulo θ. Cuando se va cambiando el ángulo α, la gravedad ocasiona que la pelota
vaya rodando por la viga. Por tanto se necesita diseñar un controlador que regule la
posición de la pelota, de manera que esta no se salga de la viga.
Para esta aplicación se asume que la pelota rueda sin deslizamiento y que la fricción entre
la viga y la pelota es despreciable. Las constantes y variables para este ejemplo están
definidas como sigue:
M Masa de la pelota 0.11 kg
R Radio de la pelota 0.015 m
d Longitud de descentrado 0.03 m
g Aceleración de la grav. 9.8 m/s^2
L Longitud de la viga 1.0 m
J Momento de inercia de la pelota 9.99e-6 kgm^2
r Posición de la pelota
La ecuación Lagrangiana del movimiento de la pelota, está dada por
106. Dante Pinto Jeria
106
Linealizando esta ecuación en relación con el ángulo de la viga, alpha = 0, da la siguiente
aproximación lineal del sistema.
La ecuación que relaciona el ángulo de la viga, con el ángulo del brazo es aproximada por:
Reemplazando en la ecuación previa, se tiene:
Sacando la transformada de Laplace a ambos miembros de la ecuación(tomando como cero
loa parámetros iniciales):
Reagrupando, se halla la función de transferencia del ángulo θ(s) del brazo a la posición de
la pelota R(s).
En el espacio de estados, el sistema de ecuaciones linealizado se representa por:
107. Dante Pinto Jeria
10
7
Pero si es que se quiere controlar el ángulo α, se debe utilizar:
La representación en Matlab es la siguiente:
a) Función de transferencia
m = 0.111;
R = 0.015;
g = -9.8;
L = 1.0;
d = 0.03;
J = 9.99e-6;
K = (m*g*d)/(L*(J/R^2+m));
num = [-K];
den = [1 0 0];
printsys(num,den)
108. Dante Pinto Jeria
108
La salida debe ser:
num/den =
0.21
----------
s^2
Para una entrada paso de 0.25 m, la respuesta de la pelota es:
step(0.25*num,den)
De esta gráfica se ve claramente que el sistema es inestable en lazo abierto, causando que la
pelota ruede fuera de la viga. Por tanto se requiere de algún método para controlar la
posición de la pelota.
b) En el espacio de estados.
Las entradas para el espacio de estados son las siguientes:
m = 0.111;
R = 0.015;
g = -9.8;
J = 9.99e-6;
H = -m*g/(J/(R^2)+m);
A=[0 1 0 0
0 0 H 0
0 0 0 1
109. Dante Pinto Jeria
10
9
0 0 0 0];
B=[0;0;0;1];
C=[1 0 0 0];
D=[0];
La respuesta a una entrada paso de 0.25m puede ser vista mediante:
step(A,B*.25,C,D)
Como en la gráfica de la función de transferencia, esta gráfica muestra que el sistema es
inestable y que la pelota rodará fuera de la viga.
Uso de controladores PID para solucionar la estabilidad del sistema.
El diagrama de bloques para este ejemplo se muestra en la siguiente figura.
La función de transferencia para un controlador PID continuo es:
La salida es la suma de las acciones proporcional, integral, y derivativa, ponderadas de
acuerdo a los parámetros independientes de ganancias P, I, y D. El coeficiente N ubica la
localización del polo en el filtro derivativo.
110. Dante Pinto Jeria
110
Para el modelado en Simulink se introducen los siguientes componentes en la ventana de
diseño: una función paso (se encuentra en Sources), una ganancia (se encuentra en
Commonly Used Blocks), un sumador (se encuentra en Commonly Used Blocks), un PID (se
encuenttra en Continuous), una función de transferencia (se encuentra en Continuous), un
creador de buses (se encuentra en Commonly Used Blocks), un osciloscopio (se encuentra
en Sinks).
Para modificar las propiedades de los bloques, se hace doble clic en el bloque y en la
ventana que aparece se hacen los cambios deseados.
Se modificaron las propiedades de la ganancia, Gain=0.25 :
111. Dante Pinto Jeria
11
1
Se cambiaron las propiedades de la función de transferencia, en los campos Numerator
coefficients y Denominator coefficients.
Se modificó el sumador, para que los signos sean + - (mas y menos) en el campo List of
signs
También se modificó el bus, para que tenga tres entradas, en el campo Number of inputs
112. Dante Pinto Jeria
112
Realizando la simulación, se observa:
La gráfica amarilla es la función paso, la celeste es la gráfica de la función de transferencia
y la morada es la función de transferencia mas el controlador PID. Como se puede apreciar
está totalmente inestable. Por lo tanto se debe calibrar el controlado PID. Para ello se hace
doble clic en el bloque PID y aparece la ventana de propiedades del bloque PID.
113. Dante Pinto Jeria
11
3
Los parámetros por omisión son: P=1; I=1; D=0. Para el sintonizado del PID se presiona
Tune, y aparece, después de un momento de cálculos
Aquí aparece el sistema ya estable, pero con un tiempo de 2 segundos, si es que nos parece
muy grande, lo modificamos con la barra deslizable. En este caso lo modificamos para un
segundo.
114. Dante Pinto Jeria
114
Y luego se presiona Apply y OK.
Después de hacer correr nuevamente el simulador. Se observa que se ha alcanzado la
estabilidad. La gráfica de color morado muestra la función controlada por el PID.
115. Dante Pinto Jeria
11
5
Si es que se quiere sacar los resultados al espacio de trabajo de Matlab, se debe añadir en la
ventana de diseño de Simulink, un bloque que saque datos al workspace . Ese bloque es To
workspace y se encuentra en Sinks.
Se le cambió el nombre, haciendo doble clic en el bloque.
116. Dante Pinto Jeria
116
Después de hacer correr el simulador, en el espacio de trabajo de Matlab se teclea:
>> plot(tout,salida.signals.values);grid on
La variable dependiente es una estructura, para acceder a los valores se pone:
salida.signals.values
La variable independiente se encuentra almacenada en tout.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7