fundamentos de matlab capitulo 1

41
CAPITULO I FUNDAMENTOS DE MATLAB 1.1 El entorno de Matlab 1.1.1 Introducción Matlab es un poderoso software de computación numérica, análisis de datos y visualización, que se ha convertido en el primer entorno de cálculo técnico para miles de usuarios del mundo de la industria, del sector público y de instituciones académicas que abarcan una amplia gama de aplicaciones en el campo de la ciencia y la ingeniería. Matlab es un sistema interactivo y un lenguaje de programación para científicos en general y para cálculos técnicos. Su elemento de datos básico es una matriz que no requiere dimensionamiento. Esto permite la solución de EDGAR ENRIQUE HERRERA MORALES HERNANDO LAVADO LEAL LUIS ANTONIO EGEA VARGAS 1

Upload: cpmurciavega

Post on 04-Jul-2015

702 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Fundamentos de MATLAB Capitulo 1

CAPITULO I

FUNDAMENTOS DE MATLAB

1.1 El entorno de Matlab

1.1.1 Introducción

Matlab es un poderoso software de computación numérica, análisis de datos y visualización, que se ha convertido en el primer entorno de cálculo técnico para miles de usuarios del mundo de la industria, del sector público y de instituciones académicas que abarcan una amplia gama de aplicaciones en el campo de la ciencia y la ingeniería. Matlab es un sistema interactivo y un lenguaje de programación para científicos en general y para cálculos técnicos. Su elemento de datos básico es una matriz que no requiere dimensionamiento. Esto permite la solución de muchos problemas numéricos en una pequeña fracción del tiempo que llevaría escribir un programa en un lenguaje tal como el Pascal o el C/C++. Más aún, las soluciones del problema se expresan en Matlab casi exactamente igual a como se escriben en matemáticas.

Las matemáticas son el lenguaje común de gran parte de la ciencia y de la ingeniería. Matrices, ecuaciones y gráficas son los bloques de construcción básicos de las matemáticas aplicadas y también de Matlab.

La manera más fácil de comprender el Matlab, es pensar en él como en una calculadora totalmente equipada, así:

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

1

Page 2: Fundamentos de MATLAB Capitulo 1

Como una calculadora básica: realiza operaciones matemáticas simples tales como sumas, restas, multiplicaciones y divisiones.

Como una calculadora científica: maneja números complejos, raíces cuadradas y potencias, logaritmos y operaciones trigonométricas.

Como una calculadora programable: puede almacenar y recuperar datos; puede crear, ejecutar y guardar secuencias de órdenes para automatizar procesos; puede hacer comparaciones lógicas y controlar el orden en el que se ejecuten las instrucciones.

Como una calculadora de las más potentes disponibles: permite representar gráficamente los datos en una gran variedad de formas, ejecutar álgebra matricial, manipular polinomios, integrar funciones, manipular simbólicamente ecuaciones, etc.

En realidad, Matlab ofrece muchas características más y es mucho más versátil que cualquier calculadora.

Matlab es una herramienta de software para hacer cálculos matemáticos. Matlab es también un lenguaje de programación amigable y mucho más fácil de usar que los lenguajes de computadores tradicionales tales como el Pascal o el C.

Matlab proporciona un entorno excelente para la visualización de datos a través de sus poderosas capacidades gráficas.

Matlab es una plataforma de desarrollo de aplicaciones, donde conjuntos de herramientas inteligentes para la solución de problemas en áreas de aplicación específica, llamadas “toolboxes”, se pueden desarrollar con relativa facilidad. Es conocido el toolbox de matemática simbólica y el toolbox de señales y sistemas.

Es recomendable utilizar la analogía de la calculadora para ir descubriendo la enorme potencia del Matlab.

1.1.2 Características básicas

El Matlab es un sistema interactivo y un lenguaje de programación para cómputo científico y técnico en general. Su elemento básico es una matriz. Sus principales características son:

La programación en Matlab es mucho más sencilla y fácil que con otros lenguajes de programación de alto nivel.

Hay continuidad entre los valores enteros, reales y complejos; de precisión sencilla y de doble precisión.

La amplitud del intervalo numérico y la exactitud de los números son mayores (4.5e-324 a 9.9e+307).

Cuenta con una biblioteca matemática amplia.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

2

Page 3: Fundamentos de MATLAB Capitulo 1

Cuenta con abundantes herramientas gráficas, incluidas funciones de interfaz gráfica con el usuario.

Capacidad para vincularse con los lenguajes de programación tradicionales. Transportabilidad de sus programas. Permite crear rutinas matemáticas adicionales con mayor facilidad que en otros

lenguajes de programación. Matlab trata todos los números como si fueran de doble precisión.

Con el Matlab es posible crear objetos gráficos científicos e inclusos artísticos en la pantalla mediante expresiones matemáticas. Además permite el procesamiento de imágenes y la producción de películas animadas para cálculos científicos, así como para material artístico o de afición.

Para obtener mayor información sobre el Matlab, utilice las siguientes alternativas:Página Web: www.mathworks.comNewsgroup: comp.soft-sys.matlabFTP: ftp.mathworks.com (144.212.100.10)E-Mail: [email protected] o [email protected]

También es posible recibir la siguiente información sin costo The MathWorks Newsletter (boletín trimestral) y The MathWorks News Digest (distribuido por correo electrónico).

Actividad Nº 1: Encienda el computador y con la ayuda del profesor instale el Matlab. Tome nota del proceso de instalación.

1.1.3 Elementos del entorno de Matlab

Para entrar al Matlab proceda así:Haga clic en el botón InicioSeleccione la opción ProgramasSeleccione la opción MatlabSeleccione la opción Matlab

Actividad Nº 2: Entre al Matlab siguiendo el procedimiento descrito. Visualice en la pantalla el número de la versión instalada del Matlab, digitando la orden: version y el número de la licencia del programa, digitando la orden: ver. Como alternativa puede hacer clic en el menú Help y luego seleccionar la opción About MATLAB. Tome nota de estos datos.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

3

Page 4: Fundamentos de MATLAB Capitulo 1

Actividad Nº 3: Visualice en la pantalla el número positivo más pequeño, digitando la orden: realmin; el número positivo más grande, digitando la orden: realmax y el épsilon de la máquina, digitando la orden: eps. Tome nota de estos datos.

Para salir del Matlab existen varias opciones, a saber:Haga clic en el menú File y luego escoja la opción Exit Matlab Ctrl. + QHaga clic en botón cerrar ubicado a la derecha de la barra de títuloDigitar el comando quitDigitar el comando exit

Actividad Nº 4: Salga del Matlab siguiendo uno de los procedimientos descritos. Asegúrese de haberse familiarizado con los procedimientos para entrar (abrir) y salir (cerrar) del Matlab.

Actividad Nº 5: Entre al Matlab y visualice en la pantalla la información sobre Matlab y The MathWorks, digitando la orden: info. Tome nota de esta información (traduzca, entienda y elabore un resumen).

Actividad Nº 6: Ejecute el programa de demostración del Matlab, digitando la orden: expo o demo. Inspeccione e interactúe con cada una de las opciones que le brinda esta demostración. Elabore un resumen de las posibilidades que brinda el Matlab.

La tabla siguiente contiene los elementos o partes del entorno de Matlab.

01. Barra de titulo 11. Botón New file (nuevo)02. Barra de menú 12. Botón Open file (abrir)03. Barra de herramientas 13. Botón Cut (cortar)04. Barra de desplazamiento vertical 14. Botón Copy (copiar)05. Barra de desplazamiento horizontal 15. Botón Paste (pegar)06. Icono del menú de control de ventana

16. Botón Undo (deshacer)

07. Botón minimizar 17. Botón Workspace browser (navegar por el espacio de trabajo)

08. Botón maximizar/restaurar 18. Botón Path browser (navegar por el sistema de carpetas)

09. Botón cerrar 19. Botón Help Windows (ayuda)10. Indicativo de petición de órdenes (Prompt)

20. Cursor

Actividad Nº 7: Entre al Matlab y ubique las partes de la ventana contenidas en la tabla anterior. Identifique la función o utilidad de cada una de ellas.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

4

Page 5: Fundamentos de MATLAB Capitulo 1

La tabla siguiente contiene las opciones de los diferentes menús del Matlab.

Menú File Menú Edit Menú Window Menú HelpNew Undo O MATLAB Command Window Help WindowOpen Cut Help TipsOpen Selection Copy Help Desk (HTML)Run Script Paste Examples and Demos

Load Workspace Clear About MATLABSave Workspace As Select All Subscribe (HTML)Show Workspace Clear SessionShow Graphics Property EditorShow GUI Layout Tool Set PathPreferencesPrint SetupPrintPrint SelectionExit MATLAB

Actividad Nº 8: Navegue por los diferentes menús del Matlab. Traduzca y consulte la función o la utilidad de cada opción del sistema de menús. Observe la correspondencia entre los botones Workspace browser, Path browser y Help Windows con las opciones Show Workspace y Set Path del menú File y la opción Help Window del menú Help.

CODIGOS ASCII

A continuación se presenta una tabla con los símbolos más utilizados en Matlab y que normalmente no están disponibles en algunos teclados, con los correspondientes códigos ASCII que permiten obtenerlos. La códigos ASCII son un tipo especial de código estándar americano para el intercambio de información (ASCII: American Standard Code for Information Interchange).

SÍMBOLO OBTENCIÓN SÍMBOLO OBTENCIÓN& Alt + 38 [ Alt + 91‘ Alt + 39 \ Alt + 92/ Alt + 47 ] Alt + 93< Alt + 60 ^ Alt + 94= Alt + 61 _ Alt + 95> Alt + 62 | Alt + 124@ Alt + 64 ~ Alt + 126

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

5

Page 6: Fundamentos de MATLAB Capitulo 1

Matlab utiliza tres ventanas de visualización: Ventana de ordenes o de comandos: sirve para introducir comandos y datos y

exhibir resultados. Es la ventana activa al entrar al Matlab y se despeja con la orden clc.

Ventana de gráficos: sirve para visualizar curvas y gráficas. Se activa digitando la orden figure y se despeja con la orden clf.

Ventana de edición: sirve para crear y modificar archivos M, que son archivos que contienen un programa o secuencia de comandos Matlab. Se activa digitando la orden edit.

Existen también las ventanas del navegador por el espacio de trabajo y navegador por el sistema de carpetas, que se activan pulsando los botones correspondientes en la barra de herramientas o seleccionando las opciones correspondientes en el menú File.

Actividad Nº 9: Active las diferentes ventanas del Matlab, identifique sus partes y ponga en práctica los comandos que permiten despejar cada tipo de ventana (clc: despeja la ventana de comandos, clf: despeja la ventana de gráficos).

1.1.4 Representación de los datos en Matlab

Al resolver problemas podemos encontrarnos con tres tipos de datos: Escalares: son datos que consisten en un solo número, tal como el radio de un

círculo. Se introducen en Matlab así, por ejemplo: A=[5]

Vectores: son datos que consisten en una serie de números, tal como las coordenadas de un punto en el plano xy. Se introducen en Matlab así, por ejemplo: B=[5, 9, 2, 3]

Matrices: son datos que consisten en un conjunto de series de números, tal como el conjunto de las cuatro coordenadas de los vértices de una pirámide de base triangular en el espacio tridimensional xyz. Se introducen en Matlab así, por ejemplo: C=[5, 2; 3, 0; 7, 3]

En Matlab es posible representar los datos de todos estos ejemplos usando un tipo especial de estructura de datos llamada “matriz”, un conjunto de números dispuestos en una retícula rectangular de filas y columnas.

Si una matriz consta de una fila y una columna podemos llamar “escalar” al número. De forma similar, si una matriz consta de una fila o de una columna, la denominamos vector y para ser más específicos, usamos el término vector fila o vector columna respectivamente.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

6

Page 7: Fundamentos de MATLAB Capitulo 1

En Matlab los nombres de las variables deben comenzar por una letra y luego pueden contener letras, dígitos o guiones de subrayado. La longitud máxima del nombre de una variable es de 19 caracteres. Los nombres de las variables son sensibles a las mayúsculas.

La tabla siguiente muestra algunos símbolos utilizados por el Matlab y su correspondiente uso.

SÍMBOLO DESCRIPCIÓN. Punto decimal, Permite separar los elementos de una fila, los subíndices de las matrices,

los argumentos de las funciones y órdenes en líneas con múltiples órdenes. En líneas multiórdenes la coma puede ser reemplazada por el punto y coma para suprimir la visualización.

; Permite separar las filas de la matriz. Al final de una expresión indica que no serán visualizados los valores.

... Al final de una línea indican continuación en la siguiente línea.: Indica vector espaciado regularmente, subíndices de matrices o

iteraciones. ‘ Transpuesta de una matriz. Texto es un vector cuyos componentes son los

códigos ASCII de los caracteres.% Indica comentario. Indica un final lógico de una línea y se ignora

cualquier texto que le sigue. ! Ejecuta una orden del sistema operativo. Indica que el resto de la línea de

entrada se emite como una orden al sistema operativo. = Indica asignación. Se usa en las sentencias de asignación

( ) Se usan normalmente para indicar prioridades en las expresiones aritméticas, para encerrar los argumentos de las funciones y para encerrar los subíndices de vectores y matrices.

[ ] Se usan para formar vectores y matrices.

Actividad Nº 10: Introduzca los siguientes datos al Matlab: a) su edad, b) sus promedios acumulados de los semestres cursados, c) sus notas obtenidas en los parciales de las diferentes asignaturas cursadas el semestre anterior.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

7

Page 8: Fundamentos de MATLAB Capitulo 1

1.1.5 El espacio de trabajo

Cuando trabaja en la ventana de comandos, Matlab recuerda las órdenes que se introducen así como los valores de cualquier variable que se crea. Estas órdenes y variables se dicen que residen en el “espacio de trabajo de Matlab” y pueden volverse a llamar siempre que se desee. Por ejemplo para visualizar el contenido de una variable solo digite el nombre de dicha variable a continuación del indicativo de petición de orden y luego pulse la tecla enter. Si no recuerda el nombre de la variable, puede pedirle a Matlab una lista de las variables que creadas, utilizando la orden who.

La capacidad que tiene el espacio de trabajo depende del computador que se esté utilizando. Cada dato elemental emplea 8 bytes en almacenamiento.

La tabla siguiente muestra algunos comandos para el manejo del espacio de trabajo.

COMANDO DESCRIPCIÓNwhatwhat nom_directorio

Qué: produce una lista de los archivos .m, .mat y .men presentes en el directorio actual o en el especificado.

whowhos

Quién: produce una lista de las variables del espacio de trabajo con o sin información adicional (tamaños).

who globalwhos global

Quién: produce una lista de las variables del espacio de trabajo global con o sin información adicional (tamaños).

clearclear vble1 vble2 vble3

Borrar: permite borrar todas o algunas de las variables del espacio de trabajo.

Actividad Nº 11: Ponga en práctica los comandos contenidos en la tabla anterior, aprovechando los datos introducidos hasta el momento. Visualice el espacio de trabajo haciendo clic en el botón Workspace browser o seleccionando la opción Workspace browser del menú File.

Además de recordar las variables, Matlab permite guardar en un archivo las variables del espacio de trabajo y recuperar datos de dichos archivos, los cuales tienen la extensión .m, así:

Para guardar: elija la opción Save Workspace as... en el menú File, la cual abre un cuadro de diálogo estándar para salvar todas las variables actuales.

Para recuperar: elija la opción Load Workspace... en el menú File, la cual abre un cuadro de diálogo estándar para cargar todas las variables de un espacio de trabajo guardado previamente.

Existen también comandos que permiten realizar estas operaciones, los cuales tiene los siguientes formatos:

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

8

Page 9: Fundamentos de MATLAB Capitulo 1

COMANDO DESCRIPCIÓNsavesave nom_archivosave nom_archivo vble1 vble2 vble3save nom_archivo vble -ascii

Guardar: permite salvar en un archivo todas o algunas de las variables de trabajo

load nom_archivoload nom_arch vble1 vble2

Recuperar: permite cargar desde un archivo todas o algunas de las variables de trabajo

Actividad Nº 12: Ponga en práctica los comandos contenidos en la tabla anterior (guarde el espacio de trabajo (save), borre totalmente el espacio de trabajo (clear) y luego recupere el espacio de trabajo (load). Realice esta práctica utilizando los diferentes formatos de las ordenes save y load o utilizando las opciones correspondientes del menú File.

1.2 Conceptos y operaciones fundamentales

1.2.1 Variables

Corresponden a la simplificación de un enunciado mediante letras y/o números, donde se recomienda que el primer carácter sea letra.

Ejemplo 1:» X = ( 3 + 8 ) * ( 5/2 )X = 27.5000

Se debe tener cuidado al elegir variables, de tal manera que no causen incompatibilidad con variables propias del Matlab, como pi (razón de una circunferencia a su diámetro), Inf (infinito), o ( reservadas para ) o NaN (que representa un dato no numérico como por ejemplo ).

1.2.2 Constantes

Son aquellos datos fijos en la solución de un problema.

Ejemplo 2:» pians =

3.1416

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

9

Page 10: Fundamentos de MATLAB Capitulo 1

1.2.3 Operadores

Símbolos para unir las variables y las constantes. Pueden ser: aritméticos, relacionales o lógicos.

1.2.3.1 Operadores aritméticos:

Son operadores que sirven para realizar operaciones de tipo aritmético.

+ Suma- Resta* Multiplicación

/ o \ División^ Potencia

sqrt Raíz cuadrada

El Matlab para la división emplea dos operadores / o \ : El operador / (slash) utilizado para la división usual.

Ejemplo: »X = 5/3X =

1.6667 El operador \ (backslash) utilizado para la división inversa.

Ejemplo:»X = 3\5X =

1.6667

Observando los resultados anteriores concluimos que: 5/3 = 3\5

1.2.3.2 Operadores relacionales:

Son operadores que sirven para realizar comparaciones.

< Menor que> Mayor que

= = Igual a<= Menor que o igual a>= Mayor que o igual a~ = Diferente

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

10

Page 11: Fundamentos de MATLAB Capitulo 1

En Matlab el signo = asigna la salida de una operación a una variable, mientras que = = compara dos variables. Al hacer comparaciones de vectores o matrices, nos devuelve 1 si el resultado es verdadero y 0 si el resultado es falso.Ejemplo 3:

» A = [1 2 –1; 3 5 –1; 2 1 2];» B = [ 2 1 –2; 1 3 –1; 1 0 2];» C = A = = BC =

0 0 00 0 10 0 1

» D = A.*(B>1)D =

1 0 00 5 00 0 2

En Matlab cualquier valor distinto de cero se considera verdadero y los valores iguales a cero se consideran falsos.

Ejemplo 4:»X = -2; Y = 3; Z = 0;»X + Y > = 1ans =

1

» ~ (2 ^ Y = = X)ans =

1

Actividad Nº 13: Utilizando Matlab, determinar el carácter de las raíces de las siguientes ecuaciones (Es decir sin resolver la ecuación, indicar si las raíces son reales y desiguales, reales e iguales o complejas).

1. 2.3. 4.5. 6.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

11

Page 12: Fundamentos de MATLAB Capitulo 1

1.2.3.3 Operadores Lógicos:

Son operadores que sirven para realizar operaciones de tipo lógico.

~ Negación (NOT, no)& Conjunción ( AND, y )| Disyunción ( OR, o )

Ejemplo 5:» X = -2; Y = 3; Z = 0;» ~ (X= = Y & Z)ans =

1

» X=-2; Y=3; Z=-2;» ~(X==Y|Z)ans = 0

1.2.4 Operaciones con arreglos

Son operadores que sirven para realizar operaciones elemento por elemento.

+ Suma- Resta.* Multiplicación./ División.^ Potencia

sqrt Raíz cuadrada

Ejemplo 6:» A = [1 2 –1; 3 5 –1; 2 1 2];» B = [ 2 1 –2; 1 3 –1; 1 0 2];» C = A.*BC =

2 2 23 15 12 0 4

Es importante colocar el punto antes del asterisco, pues de lo contrario se realiza una operación de matrices, tal como lo las conocidas en el Álgebra Lineal, y no una operación elemento por elemento. Las operaciones con arreglos también se utilizan entre un escalar y un no escalar, por ejemplo veamos el operador de potencia con arreglos.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

12

Page 13: Fundamentos de MATLAB Capitulo 1

Ejemplo 7:» D = A.^2D =

1 4 19 25 14 1 4

» D = A ^ 2D =

5 11 -5 16 30 -10

9 11 1

Como podemos observar, los dos resultados anteriores no son iguales.

Nota: en los ejemplos anteriores se utilizaron matrices, pero también hubiéramos podido utilizar vectores.

Actividad Nº 14: Dados los vectores A=[3 –1 0] y B=[2 -1 2], hallar los valores del vector D.

1. D = A.^B 2. D = B./A + A – 23. D = A + 3.*B y D = A + 3*B 4. D = 3 * A.*A

Nota: ¿Qué conclusión puede obtener del ejercicio 3?.

1.2.5 Operaciones con números complejos

El Matlab no hace distinción entre números reales y números complejos. Un número complejo en Matlab se almacena como dos números reales que representan respectivamente, la parte real y la parte imaginaria.

Ejemplo 8: En a + bi, a es la parte real y b es la parte imaginaria ( ).

Considere la ecuación cuadrática , se sabe que sus raíces vienen dadas por

.

En algunos leguajes de programación, hay que separar el valor de sus raíces en dos casos:

Si , entonces , son solución real de la ecuación cuadrática.Si , entonces , son solución compleja de la ecuación cuadrática.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

13

Page 14: Fundamentos de MATLAB Capitulo 1

En Matlab las raíces se calculan directamente utilizando las siguientes instrucciones:

X1 = (-b + sqrt ( b^2 - 4*a*c ) ) / (2*a)X2 = (-b - sqrt ( b^2 - 4*a*c ) ) / (2*a)

Ejemplo 9: dada la ecuación , hallar las raíces utilizando el Matlab.

Solución: » a = 1; b = 3; c = -10;» X1 = (-b + sqrt ( b^2 - 4*a*c ) ) / (2*a)» X1 =

2» X2 = (-b - sqrt ( b^2 - 4*a*c ) ) / (2*a)» X2 =

-5

Para verificar en Matlab, si las respuestas son correctas se sustituyen los valores de X1 y X2 en la ecuación dada, , y se debe obtener la equivalencia, es decir igual a cero.

Solución: utilizando Matlab se procede así:» X1^2 + 3*X1 –10 % Comprueba la primera respuesta.ans =

0» X2^2 + 3*X2 –10 % Comprueba la segunda respuesta.ans =

0

Nota: ¿Qué pasaría si se sustituyen X1 y X2 en la ecuación? y qué significa el resultado obtenido?

Ejemplo 10: dada la ecuación , hallar las raíces utilizando el Matlab.

Solución: » a = 1; b = 4; c = 5;» X1 = (-b + sqrt ( b^2 - 4*a*c ) ) / (2*a)» X1 =

» X2 = (-b - sqrt ( b^2 - 4*a*c ) ) / (2*a)» X2 =

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

14

Page 15: Fundamentos de MATLAB Capitulo 1

» X1^2 + 4*X1 + 5 % Comprueba la primera respuesta.ans =

0» X2^2 + 4*X2 + 5 % Comprueba la segunda respuesta.ans =

0

Actividad Nº 15: Utilizando Matlab, hallar las raíces de las siguientes ecuaciones.

1. 2.3. 4.5. 6.7. 8.

Actividad Nº 16: Utilizando Matlab, determinar si los valores dados son raíces de la ecuación que se especifica.

1. 1 y son las raíces de

2. 2 y son las raíces de

3. -5 y son las raíces de

4. y son las raíces de

1.1.7 Precedencia de las operaciones

La precedencia o jerarquía de las operaciones aritméticas en Matlab es la siguiente:1. Paréntesis ( primero los más internos, en forma similar como en álgebra).2. Potencias.3. Productos y cocientes de igual jerarquía de izquierda a derecha.4. Sumas y restas de igual jerarquía de izquierda a derecha.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

15

Page 16: Fundamentos de MATLAB Capitulo 1

Ejemplo 11:» Y = 2 ^ 3/2 + 5Y =

9

Internamente Matlab ha realizado las siguientes operaciones:

Y = 2 ^ 3/2 + 58/2 + 54 + 59

Ejemplo 12:» 7 * 3 + 5 +4/2 – 8ans =

20

Internamente Matlab ha realizado las siguientes operaciones:

7 * 3 + 5 + 4 / 2 – 8

21 2

26

28

20

Actividad Nº 17: Evaluar en forma corriente las siguientes expresiones aritméticas y luego evalúelas paso a paso teniendo en cuenta la precedencia de las operaciones.

1. 2. 3.

4. 5. 6.

7.

Evaluar cada una de las expresiones anteriores utilizando comandos Matlab.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

16

Page 17: Fundamentos de MATLAB Capitulo 1

1.3 Comandos básicos del Matlab

1.3.1 Comandos generales

La tabla que se muestra a continuación recoge algunos de las ordenes de propósito general del Matlab. Algunas de estas ordenes fueron mencionadas y utilizadas en las secciones y actividades anteriores.

COMANDO DESCRIPCIÓNversión Versión: permite obtener información sobre la versión instalada del

Matlabver Licencia: muestra el número de licencia o de serie del programarealmin Mínimo: permite obtener el número positivo más pequeño

(2.2251e-308)realmax Máximo: permite obtener el número positivo más grande

(1.7977e+308)eps Epsilon: permite obtener el epsilon de la máquina (2.2204e-016).

Número más pequeño tal que, cuando se le suma 1, crea un número en punto flotante en el computador mayor que 1.

computer Computador: tipo de computador.quit/exit Salir: permite cerrar el Matlab.info Información: muestra información sobre Matlab y The MathWorks expodemo

Demostración: guía al usuario para que pueda ejecutar diversas demostraciones que se eligen de un menú.

clc Despejar: despeja la ventana de comandos.clf Despejar: despeja la ventana de gráficos.clockfix(clock)

Reloj: muestra la fecha y hora del sistema en el formato: [año, mes, día, hora, minuto, segundo]

date Fecha: muestra la fecha del sistema en el formato: [día, mes, año]tictoc

Tiempo: permite medir el tiempo transcurrido entre dos eventos.

pathpath (cadena_nueva_ruta)

Camino: muestra la ruta de búsqueda vigente del Matlab.

getenv(‘matlabpath’) Entorno: muestra las rutas de Matlab vigentes.helphelp nom-comando

Ayuda: permite obtener más información sobre los comandos del Matlab.

diary ondiary offdiary nom_archivo

Diario: permite crear un archivo que contenga todo lo que se introduce por el teclado, así como la mayor parte de lo que se envía a la pantalla.

whatsnew Muestra los archivos README de Matlab y de los tooboxes.lookfor palabra-clave Permite encontrar ordenes y temas de ayuda dada una palabra clave

general.

Actividad Nº 18: Visualice en la pantalla las ordenes de propósito general del Matlab digitando la orden: help general. Tome nota de estas ordenes con su respectiva función.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

17

Page 18: Fundamentos de MATLAB Capitulo 1

Actividad Nº 19: Ponga en práctica los comandos contenidos en la tabla anterior que aún no ha trabajado y otros comandos encontrados en la actividad anterior. Asegúrese de entender cada comando y si tiene dudas sobre algunos de estos comandos utilice la ayuda suministrada por Matlab para cada uno de ellos, digitando la orden: help nombre-comando. Tome nota de estas ordenes con su respectiva utilidad y sintaxis.

1.3.2 Entrada de datos (lectura) al Matlab

Existen varias formas para asignar valores a las matrices en Matlab: Lista explícita de valores (instrucción de asignación) Operador de dos puntos Valores y matrices especiales Lectura desde el teclado Lectura de un archivo Empleo de la orden load

Listas explícitas:

En Matlab es posible definir una matriz listando sus elementos: A=[5, 7, 3; 2, 9, 1]; B=[2, 5];

En Matlab es posible definir una matriz a partir de otra:C=[2, 5, B]; D=[2,1,7;3,7,9;A];

En Matlab es posible modificar los datos de una matriz:B(2)=9; A(1,2)=8;

En Matlab es posible incrementar las dimensiones de un vector:B(5)=7;

El operador de dos puntos:

El operador dos puntos permite crear matrices nuevas así:

a). Si se usa un signo de dos puntos en una referencia de matriz en lugar de un subíndice específico, el signo de dos puntos representa a toda la fila o columna.

X=A(: , 3); aquí el vector X contiene la tercera columna de A.Y=A(2, : ); aquí el vector Y contiene la segunda fila de A.

b). Si se usa un signo de dos puntos para separar dos números enteros, se generan todos los enteros entre los dos enteros especificados.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

18

Page 19: Fundamentos de MATLAB Capitulo 1

Z=1:9; aquí el vector Z contiene los números de 1 al 9.

c). Si se usa un signo de dos puntos para separar tres números, se generan valores entre el primer y tercer número, usando el segundo número como incremento.

T=0.0:0.5:5.0; aquí el vector T contiene los números de 0 al 5 en incrementos de 0.5

d). El operador de dos puntos también puede servir para seleccionar una submatriz de otra matriz.

W=A(3:4, 1:2); aquí la matriz W contiene los elementos de la matriz A situados desde la tercera hasta la cuarta fila y desde la primera hasta la segunda columna.

Valores y matrices especiales:

Matlab incluye varias constantes predefinidas, valores especiales y matrices especiales:a). Constantes predefinidas:

COMANDO DESCRIPCIÓNans Valor calculado por una expresión pero no almacenado en una

variable, p.e., 4*5 nan Magnitud no numérica (Not-a-Number), p.e., 0/0 inf Infinito, p.e., 1/0

b). Valores especiales:

COMANDO DESCRIPCIÓNpi Número pii, j Raiz cuadrada de –1realmin Número real positivo más pequeño que es utilizablerealmax Número real positivo más grande que es utilizable

c). Matrices especiales:

COMANDO DESCRIPCIÓN[ ] Matriz vacíazeros(n,m) Matriz de cerosones(n,m) Matriz de unoseye(n,m) Matriz identidadrand(n,m) Matriz de números aleatorios entre 0 y 1randn(n,m) Matriz de números aleatorios distribuidos normalmente con media 0 y

varianza 1 Lectura desde el teclado:

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

19

Page 20: Fundamentos de MATLAB Capitulo 1

Los valores de una matriz también pueden introducirse a través del teclado usando el comando input, que exhibe una cadena de texto y luego espera entradas del usuario.

COMANDO DESCRIPCIÓNX=input(‘mensaje’) Permite introducir uno o varios valores. Si se van a introducir

varios valores deben encerrarse entre corchetes. Ej. input(‘Digite el radio’)Ej. input(‘Digite edad, peso y estatura’)

X=input(‘mensaje’, ‘s’) Permite introducir una cadena de caracteres. Ej. input(‘Digite nombre y apellidos ’, ‘s’);

OBSERVACIONES

La lectura desde un archivo de datos se verá en detalle en una sección posterior y el empleo de la orden load ya fue considerado en una sección anterior.

Actividad Nº 20: Calcule el volumen de una esfera de radio 2 m, utilizando la orden input.

1.3.3 Salida de datos (escritura) del Matlab

Existen varias formas para extraer y/o presentar los valores contenidos en las matrices: Empleo de los comandos disp y fprintf Escritura en un archivo Empleo de la orden save

Empleo de los comandos disp y fprintf:

COMANDO DESCRIPCIÓNdisp(X); disp(‘mensaje’) Permite exhibir texto encerrado entre apóstrofos. También permite

exhibir el contenido de una matriz sin tener que especificar un nombre de variable. Ej. disp(T); disp(‘Grados’)

fprintf(‘formato’, matriz) Permite exhibir tanto texto como valores de matrices y especificar el formato que se usará para visualizar los valores y también saltos de línea. El formato contiene el texto y las especificaciones (%n.me, para notación exponencial; %n.mf, para notación decimal; %n.mg, para notación exponencial o decimal) para las salidas. El valor de n indica el número de cifras totales y el valor de m el número de cifras decimales. Ej. fprintf(‘Tempratura de %4.2f Grados \n’, T)

Escritura en un archivo:

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

20

Page 21: Fundamentos de MATLAB Capitulo 1

Es posible utilizar el comando fprintf para escribir salidas con formato en un archivo. Para ello, se incluye el nombre del archivo en el argumento del comando, y el formato sería:

fprintf(‘nom-archivo’, ‘Tempratura de %4.2f Grados \n’, T)

Este comando escribirá la salida en el archivo nom-archivo. Si no existe el archivo, se creará uno nuevo; si existe, la salida se anexará al final de su contenido. Si ya existe el archivo, es posible eliminarlo con una de las siguientes ordenes:

!erase nom-archivo

delete nom-archivo.

OBSERVACIONES

El empleo de la orden save ya fue considerado en una sección anterior.

Formato de la salida:

Si se desea especificar un formato numérico para visualizar resultados, se debe utilizar la orden format, la cual se resume a continuación.

COMANDO DESCRIPCIÓNformat {short/long/bank/short e/ long e/+/rat/hex}

Permite especificar la forma y el número de cifras decimales con que se visualizarán los valores (Short: 4 dígitos decimales, long: 14 dígitos decimales, bank: 2 dígitos decimales, etc)

El Matlab no cambia la representación interna de un número cuando se escogen diferentes formatos, sólo se modifica la visualización del número.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

21

Page 22: Fundamentos de MATLAB Capitulo 1

1.4 Funciones matemáticas comunes del Matlab

1.4.1 Funciones predefinidas

Matlab proporciona 20 categorías principales de funciones. Algunas funciones de Matlab están construidas en el interprete, mientras que otras tienen la forma de archivos M. Las funciones M-file están organizadas en 20 directorios, cada uno de los cuales contiene los archivos asociados con una categoría. La orden help de Matlab visualiza una tabla con las categorías principales. Si se ejecuta la orden help con uno de los nombres de los directorios de funciones, Matlab muestra una versión de las tablas incluidas en esa área.

FUNCION DESCRIPCIÓNFunciones básicasabs(x) Valor absolutosqrt(x) Raíz cuadradarem(x,y) Módulo (residuo de dividir x entre y)sign(x) Función signo: -1si x<0; 0 si x=0; +1 si x>0Funciones exponencialesexp(x) Exponencial ex

Funciones logarítmicaslog(x) Logaritmo naturallog10(x) Logaritmo decimallog2(x) Logaritmo en base 2Funciones de números complejosconj(x) Complejo conjugadoreal(x) Parte real de un número complejoimag(x) Parte imaginaria de un número complejoabs(x) Magnitud de un número complejoangle(x) Angulo de un número complejoFunciones trigonométricassin(x) Senocos(x) Cosenotan(x) Tangenteasin(x) Arcosenoacos(x) Arcocosenoatan(x) ArcotangenteFunciones hiperbólicassinh(x) Seno hiperbólicocosh(x) Coseno hiperbólicotanh(x) Tangente hiperbólicoasinh(x) Seno hiperbólico inverso

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

22

Page 23: Fundamentos de MATLAB Capitulo 1

acosh(x) Coseno hiperbólico inversoatanh(x) Tangente hiperbólico inversoFunciones variasround(x) Redondea x al entero más cercanofix(x) Redondea x al entero más cercano a 0floor(x) Redondea x al entero más cercano a -infinitoceil(x) Redondea x al entero más cercano a +infinitorand(‘seed’, k) Inicializa el generador de números aleatorios, utilizando k

como semilla (k >1)gcd(n1, n2) Encuentra el MCD de dos números lcm(n1, n2) Encuentra el MCM de dos números factor(n) Encuentra los factores primos de un número lower Convierte una cadena a minúsculasupper Convierte una cadena a mayúsculas

Actividad Nº 21: Visualice en la pantalla las funciones matemáticas elementales del Matlab digitando la orden: help elfun. Tome nota de estas funciones con su respectiva descripción (traduzca, entienda y redacte con sus propias palabras).

Actividad Nº 22: Ponga en práctica las funciones matemáticas contenidas en la tabla anterior y otras funciones encontradas en la actividad anterior. Asegúrese de entender cada función y si tiene dudas sobre algunas de estas funciones utilice la ayuda suministrada por Matlab para cada una de ellas, digitando la orden: help nombre-función. Tome nota de estas funciones con su respectiva utilidad y sintaxis. Se debe tener en cuenta que el Matlab sólo opera en radianes.

1.4.2 Funciones definidas por el usuario

Tarde o temprano se encontrará con situaciones en que serán insuficientes las funciones proporcionadas por Matlab. El Matlab le permite al usuario crear sus propias funciones.

Las funciones en Matlab se guardan en archivos M independientes y equivalen a las rutinas y funciones de otros lenguajes.

En el capítulo dos, que trata sobre los archivos de ordenes, se retomará y se ampliará el tema de las funciones definidas por el usuario, así que por el momento dejaremos este tema de este tamaño.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

23

Page 24: Fundamentos de MATLAB Capitulo 1

1.5 Vectores y matrices

Es oportuno recordar aquí que las capacidades del Matlab se basan en las operaciones de vectores y matrices, lo cual hace indispensable su estudio y comprensión. En una sección anterior se mencionaron algunas matrices especiales en Matlab.

1.5.1 Manipulación matricial

Los vectores y matrices se introducen en Matlab de la siguiente manera:

Vector fila:A=[7, 2, 9, 5 ];

Vector columna:B=[ 2; 5; 7; 6];

Matriz:C=[3, 7, 6; 1, 8, 2; 5, 4, 9];

También es posible crear arreglos de las formas siguientes:

A=linspace(primer_valor, último_valor, número_ de_valores)

A= primer_valor:incremeto:último_valor

Actividad Nº 23: Visualice en la pantalla una tabla de conversión de grados a radianes desde 0o hasta 360o con incrementos de 10o. Recuerde que π=360o. Utilice el operador de trasponer si es necesario. Incluya una cabecera de tabla y cabeceras de columna. Escoja un número apropiado de posiciones decimales para los valores.

Actividad Nº 24: Visualice en la pantalla una tabla de conversión de centímetros a pulgadas desde 0 cm hasta 50 cm con incrementos de 2cm. Recuerde que 1 pulgada = 2.54 cm. Utilice el operador de trasponer si es necesario. Incluya una cabecera de tabla y cabeceras de columna. Escoja un número apropiado de posiciones decimales para los valores.

Actividad Nº 25: Visualice en la pantalla una tabla de conversión de grados Celsius a grados Fahrenheit. Permita al usuario introducir la temperatura inicial, la final y el incremento. Recuerde que F=9/5*C+32. Utilice el operador de trasponer si es necesario. Incluya una cabecera de tabla y cabeceras de columna. Escoja un número apropiado de posiciones decimales para los valores.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

24

Page 25: Fundamentos de MATLAB Capitulo 1

1.5.2 Operaciones básicas con arreglos

Operaciones con arreglos en Matlab que tienen la misma longitud:Las operaciones se aplican sobre la base de elemento a elemento.

Ejemplos:A+B A-B 2*A-BA.*BA./B o B.\*AA.^B A.^5 5.^B

Actividad Nº 26: Evalúe las operaciones indicadas anteriormente utilizando los vectores siguientes: A=[5, 4, 6, 7], B=[2, 1, 0, 3].

Operaciones con arreglos en Matlab que tienen diferente longitud: Las operaciones son difíciles de definir.

La traspuesta de una matriz en Matlab se obtiene colocando un punto y un apóstrofo después de la matriz (ejemplo: A . ‘ ).

Si se desea crear una matriz del mismo tamaño de otra matriz existente A, entonces se pueden utilizar las siguientes funciones:

B=zeros(size(A)) B=ones(size(A)) B=eye(size(A)) B=rand(size(A))

1.5.5 Funciones matriciales

El Matlab cuenta con una serie de funciones útiles para la manipulación matricial, tal como lo podemos apreciar en la siguiente actividad.

Actividad Nº 27: Visualice en la pantalla las funciones matriciales elementales del Matlab digitando la orden: help matfun. Tome nota de estas funciones con su respectiva descripción (traduzca, entienda y redacte con sus propias palabras).

FUNCION DESCRIPCIÓNsize(A) Retorna la dimensión de una matriz length(A) Retorna la longitud de un vector o la máxima dimensión de una matriz.max(A) Determina el valor más grande contenido en A. Si A es una matriz, la función

devuelve un vector fila que contiene el máximo elemento de cada columna. max(A, B) Determina una matriz del mismo tamaño de A y B. Cada elemento de la matriz

contiene el valor máximo de las posiciones correspondientes en A y B.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

25

Page 26: Fundamentos de MATLAB Capitulo 1

[m, p]=max(A) Determina los valores máximos de A y los índices correspondientes del primer valor máximo de cada columna de A.

min(A) Determina el valor más pequeño contenido en A. Si A es una matriz, la función devuelve un vector fila que contiene el mínimo elemento de cada columna.

min(A, B) Determina una matriz del mismo tamaño de A y B. Cada elemento de la matriz contiene el valor mínimo de las posiciones correspondientes en A y B.

[m, p]=min(A) Determina los valores mínimos de A y los índices correspondientes del primer valor mínimo de cada columna de A.

sum(A) Determina la suma de los elementos de A. Si A es una matriz, esta función devuelve un vector fila que contiene la suma de cada columna.

prod(A) Determina el producto de los elementos de A. Si A es una matriz, esta función devuelve un vector fila que contiene el producto de cada columna.

cumsum(A) Determina un vector del mismo tamaño de A que contiene las sumas acumuladas de los valores de A. Si A es una matriz, esta función devuelve una matriz del mismo tamaño de A que contiene las sumas acumuladas de los valores de las columnas de A.

cumprod(A) Determina un vector del mismo tamaño de A que contiene los productos acumulados de los valores de A. Si A es una matriz, esta función devuelve una matriz del mismo tamaño de A que contiene los productos acumulados de los valores de las columnas de A.

sort(A) Devuelve un vector con los valores de A en orden ascendente. Si A es una matriz, esta función devuelve una matriz del mismo tamaño con cada columna en orden ascendente.

mean(A) Calcula el valor promedio de los elementos de A. Si A es una matriz, esta función devuelve un vector fila que contiene el valor promedio de cada columna de A.

median(A) Calcula la mediana de los elementos de A. Si A es una matriz, esta función devuelve un vector fila que contiene la mediana de cada columna de A. Los valores de A no es necesario que estén ordenados.

std(A) Calcula la desviación estándar de los elementos de A. Si A es una matriz, esta función devuelve un vector fila que contiene la desviación estándar de cada columna de A.

inv(A) Calcula la inversa de una matriz.det(A) Calcula el determinante de una matriz.rank(A) Devuelve el rango de la matriz.A.’ Devuelve la transpuesta de la matriz.A’ Devuelve la transpuesta compleja conjugada de la matriz.eig(A) Devuelve los valores propios asociados con la matriz cuadrada A como un vector

columna.

Actividad Nº 28: Ponga en práctica las funciones matriciales contenidas en la tabla anterior y otras funciones encontradas en la actividad anterior. Asegúrese de entender cada función y si tiene dudas sobre algunas de estas funciones utilice la ayuda suministrada por Matlab para cada una de ellas, digitando la orden: help nombre-función. Tome nota de estas funciones con su respectiva utilidad y sintaxis.

EDGAR ENRIQUE HERRERA MORALESHERNANDO LAVADO LEAL

LUIS ANTONIO EGEA VARGAS

26