Curso Básico de MATLAB para Microsoft Windows (Modulo I)

Documentos relacionados
Formatos y Operadores

Tema 4: Empezando a trabajar con ficheros.m

Fundamentos de Informática Parte II Análisis y Visualización de Datos mediante Matlab

Comenzando con MATLAB

>> % suma de dos números reales, el resultado se asigna a ans

Capítulo 9. Archivos de sintaxis

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Herramientas computacionales para la matemática MATLAB: Arreglos

Centro de Capacitación en Informática

Introducción a Matlab.

Tema 3: Vectores y matrices. Conceptos básicos

Guía N 1: Fundamentos básicos(i)

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Instructivo. VIDEOS EN: INTRODUCCION

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

Clase 2: Operaciones con matrices en Matlab

facilidades para cálculo matemático y Dispone de toolboxes especializados: Control Systems, Neural Netword, Optimization, etc.

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Recursos de Aprendizaje

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

GENERACIÓN DE TRANSFERENCIAS

MANUAL DE AYUDA MÓDULOS 2011 MACOS

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Curso PHP Módulo 1 R-Luis

WINDOWS. Iniciando Windows. El mouse

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Matrices Invertibles y Elementos de Álgebra Matricial

Introducción a la Programación en MATLAB

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Complemento Microsoft Mathematics

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

Tema 7: Programación con Matlab

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

Introducción a la Estadística con Excel

1) Como declarar una matriz o un vector.

Edición de Ofertas Excel Manual de Usuario

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Fundamentos CAPÍTULO 1. Contenido

La ventana de Microsoft Excel

Operación de Microsoft Word

Herramientas computacionales para la matemática MATLAB: Scripts

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

INTRODUCCIÓN DÓNDE ENCONTRAR LA CALCULADORA WIRIS

2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Modulo 1 El lenguaje Java

NÚCLEO BÁSICO Nº 5: INTRODUCCIÓN A MICROSOFT WINDOWS XP. SESIÓN DE APRENDIZAJE Nº 5.1: ACCESORIOS DE WINDOWS XP: CALCULADORA, BLOCK DE NOTAS Y PAINT.

Charla No 3: Fórmulas de mayor uso.

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Cálculo Simbólico también es posible con GeoGebra

Guía de Aprendizaje No. 1

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

MACROS. Automatizar tareas a través del uso de las macros.

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Práctica 3: Funciones

Uso de Visual C++ Pre-Practica No. 3

Fórmulas y funciones

Roberto Quejido Cañamero

Notas para la instalación de un lector de tarjetas inteligentes.

Diplomado en. Servicio Nacional. De Facilitadores Judiciales

Instructivo de Microsoft Excel 2003

Microsoft Access proporciona dos métodos para crear una Base de datos.

Como podemos observar, la pantalla esta dividida en dos partes bien diferenciada:

Visión general. Buscar en tu equipo Mejorado! Resultados útiles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

PRÁCTICA NÚMEROS REALES Y COMPLEJOS CURSO Práctica 1

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

TEMA 7 ANÁLISIS DE DATOS: INTRODUCCIÓN AL SPSS

RELACIÓN DE PRÁCTICAS DEL TEMA 2

2_trabajar con calc I

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Álgebra Lineal Tutorial básico de MATLAB

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

MATLAB tiene un gran número de funciones incorporadas. Algunas son funciones intrínsecas, esto es, funciones incorporadas en el propio código

Práctica 3: Introducción a Word

De aquí sale el proyecto MACsyma (MAC s SYmbolic MAnipulator)

El programa Minitab: breve introducción a su funcionamiento. Para mostrar la facilidad con la que se pueden realizar los gráficos y cálculos

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

Elementos de Microsoft Word

Correo Electrónico: Webmail: Horde 3.1.1

MACROS Y FORMULARIOS

DIAGRAMAS DE FLUJO: DFD

MANUAL BÁSICO DE OCTAVE Y QTOCTAVE

Creación de Funciones de Conducción

UNIDAD I PROCESADOR DE TEXTOS

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

MATLAB en 30 minutos

HERRAMIENTA DE COMPRESIÓN Y CIFRADO

Formularios. Formularios Diapositiva 1

Transcripción:

Objetivo Curso Básico de MATLAB para Microsoft Windows (Modulo I) La finalidad de este modulo es la de capacitar al participante para conocer el entorno general del programa y familiarizarse con las herramientas básicas para definir y trabajar con matrices, así como también utilizar algunas herramientas indispensables para trabajar con números escalares. Introducción MATLAB es el nombre abreviado de MATRIX LABORATORY. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares, tanto reales como complejos. MATLAB también tiene un lenguaje de programación propio. Además MATLAB proporciona una serie de comandos que permiten escribir instrucciones tal como se usan en el lenguaje matemático corriente, permitiendo también visualizar los resultados mediante sencillas y poderosas herramientas de graficación. Este curso presenta de manera comprimida los conceptos elementales necesarios para iniciarse en el uso del MATLAB, incluyendo numerosos ejemplos demostrativos para facilitar la comprensión de los mismos. Inicialización de MATLAB Para inicializar MATLAB haga doble clic sobre el icono de MATLAB en el escritorio de WINDOWS o haga clic en el botón INICIO, selecciones luego el menú PROGRAMAS, busque el menú MATLAB y haga clic sobre el icono de MATLAB. Al ejecutarse, MATLAB crea una ventana en su monitor que es llamada la Ventana de Comando (Command Window) y es el lugar fundamental desde donde se interacciona con el interpretador MATLAB. Cuando esta ventana esta activa, se observa el signo» (prompt) y un cursor parpadeando el cual indica que el interpretador MATLAB esta listo para responder a una orden matemática, comando o función. Barra de Herramientas en la Ventana de Comando En la parte superior derecha puede alcanzar a ver una serie de iconos que representan la barra de tareas de operaciones comunes. Ing. Efraín Nava pág

Esta barra esta compuesta de los siguientes comandos: NEW-M FILES OPEN FILES CUT COPY PASTE UNDO SHOW PATH SIMULINK HELP Este comando permite crear un programa. Una vez ejecutado se presenta una pantalla la cual es el área de trabajo para desarrollar el programa. Este comando permite abrir un programa ya elaborado. Una vez ejecutado se presenta una pantalla en la cual aparecerá el programa escrito como texto. Este comando se utiliza para cortar ciertos segmentos de la Ventana de Comando cuando se están escribiendo instrucciones matemáticas en la mismo, cabe resaltar que cuando se ejecuta este comando automáticamente se almacena en memoria el segmento cortado. Este comando se utiliza para copiar segmentos de instrucciones en el Clipboard, para luego ser pegadas en la Ventana de Comando. Esta instrucción coloca el contenido del Clipboard en la Ventana de Comando. Esta instrucción devuelve la instrucción ejecutada anteriormente. Este comando muestra el contenido del Espacio de Trabajo (Workspace), en el pueden aparecer variables, vectores, arreglos, matrices, etc. Esta instrucción muestra en una ventana la ruta donde están ubicados todos y cada uno de lo TOOLBOX, así como también donde se ubican los programas almacenados. Esta instrucción muestra el contenido de las librerías para el SIMULINK. Esta instrucción llama al comando de ayudas de MATLAB. El entorno de trabajo de MATLAB Los componentes más importantes del entorno de trabajo de MATLAB son el visor de caminos (Path Browser), el editor y depurador (Editor & Debugger) y el visor del espacio de trabajo (Workspace Browser). A continuación se describen brevemente estos componentes. NOTA: Utilizar MATLAB y desarrollar programas para MATLAB es mucho más fácil si se conoce bien este entorno de trabajo. Es por ello muy importante leer con atención las secciones que siguen. Path Browser El Visor del Camino (Path Browser) es el programa que ayuda a definir la lista de directorios donde MATLAB debe buscar los ficheros de comandos y las funciones, tanto del sistema como de usuario. Ing. Efraín Nava pág 2

Editor & Debugger En MATLAB tienen particular importancia los ficheros-m (o M-files). Son ficheros de texto ASCII, con la extensión *.m, que contienen conjuntos de comandos o definición de funciones (estos últimos son un poco más complicados y se verán más adelante). La importancia de estos ficheros-m es que al teclear su nombre en la línea de comandos y pulsar Intro, se ejecutan uno tras otro todos los comandos contenidos en dicho fichero. MATLAB dispone de un Editor que permite tanto crear y modificar estos ficheros, como ejecutarlos paso a paso para ver si contienen errores (proceso de Debug o depuración). El Editor muestra con diferentes colores los diferentes tipos o elementos constitutivos de los comandos (en verde los comentarios, en ojo las cadenas de caracteres, etc.). El Editor se preocupa también de que las comillas o paréntesis que se abren, no se queden sin el correspondiente elemento de cierre. Workspace Browser El Espacio de Trabajo de MATLAB (Workspace) es el conjunto de variables y de funciones de usuario que en un determinado momento están definidas en la memoria del programa. Para obtener información sobre el Espacio de Trabajo se pueden utilizar los comandos who y whos (se verán mas adelante). El segundo proporciona una información más detallada que el primero. Se puede obtener de modo gráfico una información análoga con el Visor del Espacio de Trabajo (Workspace Browser), que se activa con el comando Show Workspace del menú File de MATLAB, o haciendo clic en el botón correspondiente de la barra de herramientas. Funciones para manipular el Espacio de Trabajo El conjunto de funciones para manipular el espacio de trabajo y variables desde MATLAB son: who whos load save Lista las variables que aparecen en memoria Lista las variables que aparecen en memoria y su tamaño Carga variables de un disco Graba las variables de un espacio de trabajo en un disco Funciones para manipular Archivos El conjunto de funciones para manipular archivos desde MATLAB y operar el sistema son: Ing. Efraín Nava pág 3

cd Cambia el directorio de trabajo delete Borra archivos diary Graba texto de una sesión de MATLAB dir Lista el directorio! Ejecuta comandos del sistema operativo Estas funciones se estudiarán mas adelante cuando su uso lo amerite. Uso de la Ayuda en MATLAB MATLAB dispone de una excelente Ayuda en la cual se puede encontrar la información que se desee. Ventana de Ayuda (Help Window): tipeando el comando helpwin en la Ventana de Comandos o simplemente haciendo clic en el botón correspondiente de la barra de herramientas, se abre una ventana en la que se puede buscar ayuda sobre la función o el concepto que se desee. NOTA: Al tipear el comando helpwin seguido de un nombre de comando (helpwin nombre), muestra la información correspondiente a ese comando en la ventana de ayuda (Help Window), incluyendo también comandos similares sobre los que se ofrece ayuda. Escritorio de Ayuda (Help Desk): tipeando el comando helpdesk en la Ventana de Comandos, se abre un browser (navegador) de Internet (Internet Explorer en este caso) que permite acceder a toda la información sobre MATLAB en formato HTML. Desde la parte inferior de esta página, mediante el enlace Online Manuals (in PDF) se puede acceder a la versión PDF (Portable Document format) de los manuales de MATLAB. NOTA: Al tipear el comando doc seguido de un nombre de comando (doc nombre), muestra la información correspondiente a ese comando a través del navegador (Internet Explorer en este caso), en formato HTML. Se puede también recurrir a la ayuda desde la línea de comandos, la cual ofrece una vía interactiva y rápida para consultar acerca de la sintaxis y modos de uso de los comandos y funciones del MATLAB. Solo basta tipear help la Ventana de Comandos seguido del nombre del comando o función (help nombre) que se desea consultar y de inmediato aparece en pantalla la información mas relevante sobre el tema. Veamos como responde MATLAB en el siguiente ejemplo: Ing. Efraín Nava pág 4

» help clc CLC Clear command window. CLC clears the command window and homes the cursor. See also HOME. Además, si se desconoce exactamente el nombre del comando o la función que necesita, un comando de mucho uso es lookfor. El comando lookfor busca las funciones que estén basadas en una palabra clave. Al tipear el comando lookfor seguido de la palabra clave (lookfor nombre), muestra todas las funciones que tengan que ver con dicha palabra clave. Veamos como responde MATLAB en el siguiente ejemplo:» lookfor clear CLEAR Clear variables and functions from memory. DBCLEAR Remove breakpoint. MISLOCKED True if M-file cannot be cleared. MLOCK Prevent M-file from being cleared. MUNLOCK Allow M-file to be cleared. SCRIBECLEARMODE Plot Editor helper function CLA Clear current axis. CLF Clear current figure. CLG Clear Figure (graph window). CLRUPROP Clear user-defined property. Tipos de Datos Ya se ha dicho que MATLAB es un programa preparado para trabajar con vectores y matrices. Como caso particular también trabaja con variables escalares (matrices de dimensión ). MATLAB trabaja siempre en doble precisión, es decir guardando cada dato en 8 bytes, con unas 5 cifras decimales exactas. Ya se verá más adelante que también puede trabajar con cadenas de caracteres (strings) y números complejos. Números reales de doble precisión Los elementos constituidos de vectores y matrices son números reales almacenados en 8 bytes. Es importante saber cómo trabaja MATLAB con estos números y los casos especiales que presentan. MATLAB mantiene una forma especial para los números muy grandes (más grandes que los que es capaz de representar), que son considerados como infinito. Ing. Efraín Nava pág 5

Por ejemplo, obsérvese cómo responde el programa al ejecutar el siguiente comando:» / Warning: Divide by zero Inf Así pues, para MATLAB el infinito se representa como inf ó Inf. MATLAB tiene también una representación especial para los resultados que no están definidos como números. Por ejemplo, ejecutemos los siguientes comandos y observemos las respuestas obtenidas:» / Warning: Divide by zero NaN» inf/inf NaN En ambos casos la respuesta es NaN, que es la abreviatura de Not a Number (no es un número). Este tipo de respuesta, así como la de Inf, son enormemente importantes en MATLAB, pues permiten controlar la fiabilidad de los resultados de los cálculos matriciales. Los NaN se propagan al realizar con ellos cualquier operación aritmética, en el sentido de que, por ejemplo, cualquier número sumado a un NaN da otro NaN. MATLAB toma esto en cuenta. Algo parecido sucede con los Inf. Números complejos En muchos cálculos matriciales los datos y/o los resultados no son reales sino complejos, con parte real y parte imaginaria. MATLAB trabaja sin ninguna dificultad con números complejos. Para ver como se representan por defecto los números complejos, ejecútense los siguientes comandos:» a=sqrt(-4) a = + 2.i» 3 + 4j 3. + 4.i Ing. Efraín Nava pág 6

En la entrada de datos de MATLAB se pueden utilizar indistintamente la i y la j para representar el número imaginario unidad (en la salida, sin embargo, puede verse que siempre aparece la i). Si la i o la j no están definidas como variables, puede intercalarse el signo *. Esto no es posible en el caso de que sí estén definidas, porque entonces se utiliza el valor de la variable. En muchos casos no conviene no utilizar la i como variable ordinaria, pues puede dar lugar a errores y confusiones. Por ejemplo, obsérvense los siguientes resultados:» i=2 i = 2» 2+3i 2. + 3.i» 2+3*i 8» 2+3*j 2. + 3.i Cuando i y j son variables utilizadas para otras finalidades, como unidad imaginaria puede utilizarse también la función sqrt(-), o una variable a la que se haya asignado el resultado de esta función. La asignación de valores complejos a vectores y matrices desde teclado puede hacerse de las dos formas que se muestran en el ejemplo siguiente (conviene hacer antes clear i, para que i no esté definida como variable. Este comando se estudiará más adelante):» A = [+2i 2+3i; -+i 2-3i] A =. + 2.i 2. + 3.i -. +.i 2. - 3.i» A = [ 2; - 2] + [2 3; -3]*i A =. + 2.i 2. + 3.i -. +.i 2. - 3.i Puede verse que es posible definir las partes reales e imaginarias por separado. En este caso sí es necesario utilizar el operador *, según se muestra en el ejemplo anterior. Ing. Efraín Nava pág 7

MATLAB dispone asimismo de la función complex, que crea un número complejo a partir de dos argumentos que representan la parte real e imaginaria, como en el ejemplo siguiente:» complex(,2). + 2.i Cadenas de caracteres MATLAB puede definir variables que contengan cadenas de caracteres. En MATLAB las cadenas de texto van entre apóstrofos o comillas simples. Por ejemplo: s = cadena de caracteres ; Las cadenas de texto tienen su más clara utilidad en temas que se verán más adelante y por eso se difiere hasta entonces una explicación más detallada. Operadores en MATLAB Operadores Aritméticos MATLAB posee dos tipos de operaciones aritméticas (matrices y arreglos). Las operaciones aritméticas para matrices son definidas por la regla del álgebra lineal. Las operaciones aritméticas para arreglos son definidas elemento por elemento. El punto decimal colocado en las operaciones distinguen las operaciones con matrices de las operaciones con arreglos, sin embargo, tanto las operaciones con matrices y con arreglos son las mismas para la adición como para la sustracción, es por ello que no se utilizan los símbolos.+ y.-. + Adición o suma - Substracción o resta * Multiplicación real o matricial.* Multiplicación de arreglos ^ Potenciación de números reales o matriciales.^ Potenciación de arreglos \ División a la izquierda - Backslash / División a la derecha Slash./ División de arreglos Ing. Efraín Nava pág 8

Operadores Relacionales Los operadores de relación realizan una comparación elemento por elemento entre dos matrices, esto da como resultado otra matriz del mismo tamaño, con elementos puestos en uno cuando la comparación resulta cierta, y elementos puestos a cero donde la comparación resulta falsa. < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que == Igual que ~= Distinto que Operadores Lógicos Ellos trabajan con elementos en matrices, con representando el falso y algún valor diferente de cero representando el verdadero. La operación lógica AND entre A y B se representa por A & B. La operación lógica OR entre A y B se representa por A B. La operación lógica NOT de A se representa por ~ A. & AND lógico OR lógico ~ NOT lógico Caracteres Especiales dentro de MATLAB A algunos símbolos se ha asignado una función particular para facilitar la escritura de las instrucciones, por lo que se le llama caracteres especiales. Los de uso más común son los siguientes: [ ] Definir vectores y matrices Indicar precedencia en operaciones aritméticas, ( ) Referir elementos o subíndices en vectores y matrices, Encerrar argumentos en funciones o subprogramas = Asignar valores o declaración de variables Indica transposición de matrices, Separar índices, argumentos de funciones y comandos Dentro de [ ] se usa para separar líneas, ; Separar comandos, Suprimir impresión % Indica comentarios (el texto que le sigue al símbolo es ignorado). Demarcar la parte entera de la parte decimal : Para indicar iteraciones o generar vectores en secuencia Ing. Efraín Nava pág 9

NOTA: el operador : es uno de los operadores mas utilizado in MATLAB. Este puede crear arreglos, matrices y específicamente para crear iteraciones. El operador colon usa las reglas mostradas para crear espacios de arreglos: j:k Es igual que [ j, j+,..., k ] j:k Es vacío si j > k j:i:k Es igual que [ j, j+i, j+2i,..., k ] j:i:k Es vacío si i> y j>k o si i< y j<k Abajo se encuentran las definiciones que rigen el uso del operador colon para escoger las salidas seleccionadas arreglos, matrices y elementos de arreglos y matrices. A(:,j) Es la j-esima columna de A A(i,:) Es la i-esima fila de A A(:,:) Es igual que A A(j:k) Es A(j), A(j+),..., A(k) A(:,j:k) A(:, j), A(:, j+),..., A(:, k) A(:) Son todos los elementos de A considerados como una sola columna. Operaciones con Matrices y Vectores en MATLAB Se ha comentado que MATLAB es un programa principalmente con fines de calculo matricial. Es por esto que MATLAB maneja matrices y vectores mediante un sistema de indexación flexible y poderoso, que permite realizar numerosas operaciones con comandos sencillos que no requieren procedimientos iterativos. MATLAB trabaja fundamentalmente con un tipo de elemento base, el cual es una matriz numérica con posibles elementos complejos. Los escalares son matrices [x] y los vectores son matrices fila ([xn]) o matrices columna ([nx]). Definición de Matrices y Vectores en MATLAB Como en casi todos los lenguajes de programación, en MATLAB las matrices y vectores son variables que tienen nombres. Una variable es el nombre que se le da a una entidad numérica que puede ser una matriz, un vector o un escalar. El valor de esa variable, e incluso el tipo de entidad numérica que representa, puede cambiar a lo largo de una sesión de MATLAB o a lo largo de la ejecución de un programa. La forma más normal de cambiar el valor de una variable es colocándola a la izquierda del operador de asignación =. Ing. Efraín Nava pág

Una expresión de MATLAB puede tener las dos formas siguientes: primero, asignando su resultado a una variable, variable = expresión y segundo evaluando simplemente el resultado del siguiente modo, expresión en cuyo caso el resultado se asigna automáticamente a una variable interna de MATLAB llamada ans que almacena el último resultado obtenido. Se considera por defecto que una expresión termina cuando se pulsa la tecla intro. Si se desea que una expresión continúe en la línea siguiente, hay que introducir tres puntos... antes de pulsar intro. También se pueden incluir varias expresiones en una misma línea separándolas por comas, o puntos y comas ;. Si una expresión termina en punto y coma (;) su resultado se calcula, pero no se escribe en pantalla. Esta posibilidad es muy interesante, tanto para evitar la escritura de resultados intermedios, como para evitar la impresión de grandes cantidades de números cuando se trabaja con matrices de gran tamaño. Es necesario saber que MATLAB distingue entre mayúsculas y minúsculas en los nombres de variables. Los nombres de variables deben empezar siempre por una letra y pueden constar de hasta 3 letras y números. El carácter sub-guión _ se considera como una letra. A diferencia del lenguaje C, no hace falta declarar las variables que se vayan a utilizar. Esto hace que se deba tener especial cuidado con no utilizar nombres erróneos en las variables, porque no se recibirá ningún aviso del ordenador. Cuando se quiere tener una relación de las variables que se han utilizado en una sesión de trabajo se puede utilizar el comando who. Existe otro comando llamado whos que proporciona además información sobre el tamaño, la cantidad de memoria ocupada y el carácter real o complejo de cada variable. Se sugiere utilizar de vez en cuando estos comandos en la sesión de MATLAB que se tiene abierta. Esta misma información se puede obtener gráficamente con el Workspace Browser, anteriormente visto. NOTA: Por el momento se sugiere que se utilicen letras mayúsculas para matrices y minúsculas para vectores y escalares. Para definir una matriz no hace falta establecer de antemano su tamaño (de hecho, se puede definir un tamaño y cambiarlo posteriormente). MATLAB Ing. Efraín Nava pág

determina el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Desde el teclado: Las matrices se definen por filas; los elementos de una misma fila están separados por espacios blancos o comas, mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión (3x3):» A=[ 2 3;4 5 6;7 8 9] A = 2 3 4 5 6 7 8 9 y el siguiente comando define un vector a (matriz fila) de dimensión (x3):» a=[, 2, 3] a = 2 3 y el siguiente comando define un vector b (matriz columna) de dimensión (3x):» b=[; 4; 7] b = 4 7 Veamos el uso del operador :. Para empezar, defínase un vector x con el siguiente comando:» x=: x = 2 3 4 5 6 7 8 9 En cierta forma se podría decir que el operador : representa un rango (en este caso, los números enteros entre el y el ). NOTA: por defecto el incremento es, pero este operador puede también utilizarse con otros valores enteros y reales, positivos o negativos. En este caso el incremento va entre el valor inferior y el superior, en las formas que se muestran a continuación: Ing. Efraín Nava pág 2

» x=:2: x = 3 5 7 9» x=:.5: x =. 2.5 4. 5.5 7. 8.5.» x=:-: x = 9 8 7 6 5 4 3 2 Veamos algunos ejemplos para manipular o extraer elementos de matrices, utilizando el operador : :» A(:,2) 2 5 8» A(:,) 4 7» A(,:) 2 3» A(3,:) 7 8 9» A(:,:) 2 3 4 5 6 7 8 9» A(,3) 3 Ing. Efraín Nava pág 3

» A(:4) 4 7 2» A(:,2:3) 2 3 5 6 8 9» A(:) 4 7 2 5 8 3 6 9 A partir de otras matrices: También es posible crear o generar matrices o vectores, a partir de algunas matrices ya creadas. Por ejemplo, el siguiente comando extrae un bloque de la matriz A y la almacena en una variable llamada B:» B=A([:2], [2:3]) B = 2 3 5 6 también podemos crear un vector c con todos los índices de la matriz B:» c=[b(,:) B(2,:)] c = 2 3 5 6 o también:» A([ 3],:) 2 3 7 8 9 Ing. Efraín Nava pág 4

Mediante funciones: Existen en MATLAB varias funciones orientadas a definir con gran facilidad matrices de tipos particulares. Las funciones más comunes son: eye(n) Forma la matriz unidad de tamaño (nxn) zeros(n) Forma una matriz de ceros de tamaño (nxn) Zeros(n,m) Forma una matriz de ceros de tamaño (nxm) ones(n) Forma una matriz de unos de tamaño (nxn) ones(n,m) Forma una matriz de unos de tamaño (nxm) linspace(x,x2,n) Genera un vector con n valores igualmente espaciados entre x y x2 Forma una matriz de números aleatorios entre y, con distribución rand(n) uniforme y de tamaño (nxn) Forma una matriz de números aleatorios entre y, con distribución rand(n,m) uniforme y de tamaño (nxm) Crea una matriz (nxn) con los números,2, 4*4, con la propiedad magic(n) de que todas las filas y columnas sumen lo mismo Produce una matriz con todos los productos de los elementos del kron(x,y) vector x por los elementos del vector y. Equivalente a x *y, donde x e y son vectores fila Mediante funciones a partir de otras matrices: MATLAB ofrece también la posibilidad de crear una matriz a partir de matrices previas ya definidas, por varios posibles caminos: - recibiendo alguna de sus propiedades (como por ejemplo el tamaño), - por composición de varias submatrices más pequeñas, - modificándola de alguna forma. A continuación se describen algunas de las funciones que crean una nueva matriz a partir de otra o de otras, comenzando por dos funciones auxiliares: [m,n]=size(a) n=length(x) zeros(size(a)) ones(size(a)) a=diag(x) x=diag(a) diag(diag(a)) triu(a) tril(a) Devuelve el número de filas y de columnas de la matriz A. Si la matriz es cuadrada basta recoger el primer valor de retorno Calcula el número de elementos de un vector x Forma una matriz de ceros del mismo tamaño que una matriz A previamente creada Forma una matriz de unos del mismo tamaño que una matriz A previamente creada Forma una matriz diagonal A cuyos elementos diagonales son los elementos de un vector ya existente x Forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A Crea una matriz diagonal a partir de la diagonal de la matriz A Forma una matriz triangular superior a partir de una matriz A (no tiene por qué ser cuadrada) Forma una matriz triangular inferior a partir de una matriz A (no tiene por qué ser cuadrada) Ing. Efraín Nava pág 5

Para observar mejor las ultimas dos secciones, veamos un ejemplo. Ejecutemos las siguientes líneas de comando para observar los resultados obtenidos:» A=rand(3);» B=diag(diag(A));» C=[A, eye(3); zeros(3), B]; Operaciones Aritméticas con Matrices MATLAB posee dos tipos de operaciones aritméticas (matrices y arreglos). Las operaciones aritméticas para matrices son definidas por la regla del álgebra lineal. Las operaciones aritméticas para vectores son definidas elemento por elemento. El punto decimal colocado en las operaciones distinguen las operaciones con matrices de las operaciones con arreglos, sin embargo, tanto las operaciones con matrices y con arreglos son las mismas para la adición como para la sustracción, es por ello que no se utilizan los símbolos.+ y.-. + Adición: realiza la operación aritmética de suma de dos escalares, matrices o vectores. A+B realiza la suma de A mas B, donde A y B deben tener la misma dimensión a menos que ambos sean escalares. Si A es un escalar y B es una matriz de cualquier dimensión la operación A+B añade el valor escalar a todos y cada uno de los elementos de la matriz. Veremos unos ejemplos a continuación. Defina las siguientes matrices:» a=[;2;3]» b=[4;5;6]» A=[ 3-2;2 5-3;-3 2-4]» B=[ ; ; -] Luego realice las siguientes operaciones:» a+b» a+2 5 7 9 3 Ing. Efraín Nava pág 6

4 5» A+B 2 3-2 6-2 -3 2-5» A+2 3 5 4 7 - - 4-2 - Substracción: realiza la operación aritmética de resta de dos escalares, matrices o vectores. A-B realiza la substracción de A menos B, donde A y B deben tener la misma dimensión a menos que ambos sean escalares. Si B es un escalar y A es una matriz de cualquier dimensión la operación A-B disminuye el valor escalar a todos y cada uno de los elementos de la matriz. Como ejemplo realice las siguientes operaciones:» a-b -3-3 -3» a-2 -» A-B 3-3 2 4-4 -3 2-3» A-2 - -4 3-5 Ing. Efraín Nava pág 7

-5-6 * Multiplicación de matrices: realiza la operación aritmética de multiplicación de dos matrices, es decir, A*B es el producto algebraico lineal de las matrices A y B, donde el numero de filas de la matriz A debe coincidir con el numero de columnas de B a menos que tanto A como B sea escalares. Si B es un escalar y A es una matriz de cualquier dimensión la operación A*B multiplica el valor escalar a todos y cada uno de los elementos de la matriz..* Multiplicación de vectores: realiza la operación aritmética de multiplicación de dos vectores, es decir, A.*B es el producto punto de los vectores A y B, donde se realiza la operación elemento por elemento del vector A con el vector B y estos deben tener la misma dimensión a menos que uno de ellos se un escalar.» a.*b 4 8» a.*2 2 4 6» A*B 3 6 2 5-3 2 3» A*2 2 6-4 4-6 -6 4-8 \ División de matrices a la izquierda: realiza la operación aritmética de división de dos matrices, es decir, A\B es el producto de la inversa de A con la matriz B (inv(a)*b). Si A es una matriz nxn y B es un vector columna con n componentes Ing. Efraín Nava pág 8

o una matriz con varias columnas, entonces A\B es la solución a la ecuación A*x=B calculado por eliminación gaussiana. Un mensaje de advertencia es impreso si A es mal escalada o es no singular. Si A es una matriz mxn y B es un vector columna con m componentes o una matriz con varias columnas, entonces A\B es la solución en sentido de los mínimos cuadrados al bajo o sobre determinado sistema de ecuaciones A*x=B. El rango efectivo k de la matriz A es determinado por la descomposición QR con pivote..\ División de vectores a la izquierda: realiza la operación aritmética de división de dos vectores, es decir, A.\B es la matriz con elementos B ( i, j) /A( i, j), donde A y B deben tener la misma dimensión, a menos que uno de ellos sea un escalar.» a.\b 4 5/2 2» a.\2 2 2/3» A\B 4-8 7-7 -8-9 -9» 2\A /2 3/2-5/2-3/2-3/2-2 / División de matrices a la derecha: realiza la operación aritmética de división de dos matrices, es decir, B/A es el producto de B con la matriz inversa de A (B* inv(a)). Se puede notar que B/A=(B \A ). Ing. Efraín Nava pág 9

./ División de vectores a la derecha: realiza la operación aritmética de división de dos vectores, es decir, A./B es la matriz con elementos A ( i, j) /B( i, j), donde A y B deben tener la misma dimensión, a menos que uno de ellos sea un escalar.» 2./a 2 2/3» a./b /4 2/5 /2» a./2 /2 3/2» A/B 3 6 2 5-3 2 3» A/2 /2 3/2-5/2-3/2-3/2-2 ^ Potencia de matrices: realiza la operación aritmética de potencia de una matriz, es decir, X^p lo que significa X elevado a la p, si p es un escalar. Si p es un entero la potencia se calcula por las multiplicaciones repetitivas. Si p es un entero negativo, X se invierte primero. Para otros valores de p, el calculo involucra los valores propios y vectores propios, tal que si [V,D]=eig(X), entonces X^p = V*D.^p /V. Ing. Efraín Nava pág 2

Si x es un escalar y P es una matriz, el termino x^p significa x elevado a la matriz p usando los valores propios y vectores propios. De otra manera, si X es una matriz y p es otra matriz entonces el resultado de X^p es un error..^ Potencia de vectores: realiza la operación aritmética de potencia de un vector, es decir, A.^B es la matriz con elementos A ( i, j), elevado a la B ( i, j), donde A y B deben tener la misma dimensión, a menos que uno de ellos sea un escalar.» a.^b 32 729» a.^2 4 9» 2.^a 2 4 8 Traspuesta de una matriz: el término A es la traspuesta algebraica lineal de A. Para matrices complejas, esta involucra la traspuesta conjugada compleja llamada matemáticamente hermitiana.. Traspuesta de una vector: el término A. es el vector transpuesto de A. Para matrices complejas, esta no involucra la traspuesta conjugada compleja llamada matemáticamente hermitiana.» a 2 3» A 2-3 3 5 2-2 -3-4 Ing. Efraín Nava pág 2

» (a+i*b). + 4i 2 + 5i 3 + 6i» (A+i*B) - i 2-3 3 5 - i 2-2 - i -3 - i -4 + i A continuación se muestra algunos ejemplo para comprender mejor los operadores relaciónales. Se utilizaran los vectores y matrices ya introducidos antes a, b, A y B.» a>b» b>a» a>2» a>2*ones(3,)» b>4 Ing. Efraín Nava pág 22

» b>4*ones(3,)» A>B» B>A» A>2» A>2*ones(3,3)» B>4 Ing. Efraín Nava pág 23

» a>=b» a>=2» b>=4» B>=4» A>=B» B>=A» A<=2 Ing. Efraín Nava pág 24

» a==b» A==B» A==2» B== A continuación se muestran algunos ejemplos para comprender mejor los operadores lógicos. Se utilizaran los vectores y matrices ya introducidos antes a, b, A y B.» &+3» 3>4&» &(+3)» (3>4)& Ing. Efraín Nava pág 25

» A&B» a&b» A B» a b» ~A» ~B» ~a» ~b Ing. Efraín Nava pág 26

Funciones matemáticas elementales que operan a modo escalar Estas funciones, que comprenden las funciones matemáticas trascendentales y otras funciones básicas, actúan sobre cada elemento de la matriz como si se tratase de un escalar. Se aplican de la misma forma a escalares, vectores y matrices. Algunas de las funciones de este grupo son las siguientes: sin(x) Seno cos(x) Coseno tan(x) Tangente asin(x) Arco seno acos(x) Arco coseno atan(x) Arco tangente (devuelve un ángulo entre -pi/2 y +pi/2) sinh(x) Seno hiperbólico cosh(x) Coseno hiperbólico tanh(x) Tangente hiperbólica asinh(x) Arco seno hiperbólico acosh(x) Arco coseno hiperbólico tanh(x) Arco tangente hiperbólica log(x) Logaritmo natural log(x) Logaritmo decimal exp(x) Función exponencial sqrt(x) Raíz cuadrada Devuelve - si <, si = y si >. Aplicada a un número complejo, sign(x) devuelve un vector unitario en la misma dirección rem(x,y) Resto de la división (2 argumentos que no tienen que ser enteros) round(x) Redondeo hacia el entero más próximo fix(x) Redondea hacia el entero más próximo a floor(x) Valor entero más próximo hacia - ceil(x) Valor entero más próximo hacia + gcd(x) Máximo común divisor lcm(x) Mínimo común múltiplo real(x) Partes reales imag(x) Partes imaginarias abs(x) Valores absolutos angle(x) Ángulos de fase Las siguientes funciones solo actúan sobre vectores, o a matrices siempre y cuando se apliquen por separado a cada columna de la matriz, dando como valor de retorno un vector resultado de aplicar la función a cada columna de la matriz considerada como vector. Ing. Efraín Nava pág 27

[xm,im]=max(x) [xm,im]=min(x) sum(x) cumsum(x) mean(x) std(x) prod(x) cumprod(x) [y,i]=sort(x) Máximo elemento de un vector. Devuelve el valor máximo xm y la posición que ocupa im. Mínimo elemento de un vector. Devuelve el valor mínimo xm y la posición que ocupa im. Suma de los elementos de un vector. Devuelve el vector suma acumulativa de los elementos de un vector. Valor medio de los elementos de un vector. Desviación típica. Producto de los elementos de un vector. Devuelve el vector producto acumulativo de los elementos de un vector. Ordenación de menor a mayor de los elementos de un vector x. Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado y. Funciones para cálculos con polinomios Para MATLAB un polinomio se puede definir mediante un vector de 4 2 coeficientes. Por ejemplo, el polinomio: x 8x + 6x = se puede representar mediante el vector [,,-8, 6,-]. MATLAB puede realizar diversas operaciones sobre él, como por ejemplo evaluarlo para un determinado valor de x (función polyval) y calcular las raíces (función roots):» pol=[ -8 6 -] pol = -8 6 -» roots(pol) -3.28 2.6748.326 +.238i.326 -.238i» polyval(pol,) - Para calcular producto de polinomios MATLAB utiliza una función llamada conv (de producto de convolución). En el siguiente ejemplo se va a ver cómo se multiplica un polinomio de segundo grado por otro de tercer grado:» pol=[ -2 4] pol = -2 4 Ing. Efraín Nava pág 28

» pol2=[ 3-4] pol2 = 3-4» pol3=conv(pol,pol2) pol3 = -2 7-2 -6 De la misma manera, existe otra función para dividir polinomios llamada deconv. Las funciones orientadas al cálculo con polinomios son las siguientes: poly(a) Polinomio característico de la matriz A. roots(pol) Raíces del polinomio pol. Evaluación del polinomio pol para el valor de x. Si x es un vector, polyval(pol,a) pol se evalúa para cada elemento de x. polyvalm(pol,a) Evaluación del polinomio pol de la matriz A. conv(p,p2) Producto de convolución de dos polinomios p y p2. División del polinomio p por el polinomio q. En c se devuelve el [c,r]=deconv(p,q) cociente y en r el resto de la división. Descompone el cociente entre p y p2 en suma de fracciones residue(p,p2) simples. polyder(pol) Calcula la derivada de un polinomio. polyder(p,p2) Calcula la derivada de producto de polinomios. Calcula los coeficientes de un polinomio p(x) de grado n que se polyfit(x,y,n) ajusta a los datos p(x(i))~=y(i). Ing. Efraín Nava pág 29