Introducción a MATLAB - blog.espol.edu.ec

41
Introducción a MATLAB Laboratorio de Sistemas de Control Aplicados

Transcript of Introducción a MATLAB - blog.espol.edu.ec

Page 1: Introducción a MATLAB - blog.espol.edu.ec

Introducción a MATLAB

Laboratorio de Sistemas de Control Aplicados

Page 2: Introducción a MATLAB - blog.espol.edu.ec

Introducción a MATLAB

• Entorno de MATLAB

• Cálculos numéricos

• Trazado básico y gráficos

• Cálculos matriciales y resolución de ecuaciones

Page 3: Introducción a MATLAB - blog.espol.edu.ec

Entorno de MATLAB

•MATLAB• MATLAB es un sistema interactivo y lenguaje de programación para computacióncientífica y de ingeniería en general. Su elemento básico es una matriz (array). Sedestaca en los cálculos numéricos y gráficos.

• MATLAB tiene herramientas (tools -> funciones) para resolver problemascomunes más herramientas (toolboxes -> colecciones de programasespecializados) para tipos específicos de problemas.

• No se necesita experiencia previa en programación de computadoras paraaprender y usar MATLAB.

Page 4: Introducción a MATLAB - blog.espol.edu.ec

• Aquí nos centramos en los fundamentos de MATLAB. Una vez que estos fundamentosse comprendan bien, los estudiantes pueden continuar aprendiendo por sí mismoscon las numerosas referencias disponibles.

Comentario

• Cuando tenga más experiencia en su estudio de ingeniería, es más importantecomprender cuándo usar un programa computacional, como MATLAB, y cuándo usarun lenguaje de programación de alto nivel y propósito general, como C.

• En ingeniería, escribimos programas de computadora no solo para ayudar a resolverproblemas de ingeniería y científicas, sino también para aplicaciones en tiempo real.

Page 5: Introducción a MATLAB - blog.espol.edu.ec
Page 6: Introducción a MATLAB - blog.espol.edu.ec

–CommandWindow

• Como un bloc de notas; puede guardar los valores que calcula, pero no los comandosutilizados para generar esos valores. Archivos M (archivo MATLAB que contiene códigode programación) se utilizan para guardar la secuencia de comandos.

• Se pueden escribir varios comandos en la misma línea. Comandos separados por unacoma.

• Use la tecla de flecha hacia arriba para moverse por la lista de comandos que haejecutado.

–Command History Window

• Registra los comandos que emitió en la ventana de comandos.

• Puede transferir cualquier comando desde la ventana del historial de comandos a laventana de comandos.

Page 7: Introducción a MATLAB - blog.espol.edu.ec

–Workspace Window

• Realiza un seguimiento de las variables que ha definido a medida que ejecutacomandos en la ventana de comandos.

–Current Directory Window

• MATLAB usa el directorio actual para acceder a los archivos o guardar información ensu computadora.

–Document Window(abierta cuando sea necesario)

•Al hacer doble clic en cualquier variable listada en la ventana del espacio de trabajo,se inicia automáticamente una ventana de documento que contiene el editor dematriz.

–Graphics Window(abierta cuando sea necesario)

• Se inicia automáticamente cuando solicita un gráfico.

Page 8: Introducción a MATLAB - blog.espol.edu.ec

–Edit Window (abrir cuando sea necesario)

• La ventana de edición se abre seleccionando: Archivo→ Nuevo→ archivo-m desde labarra de menú.

• Esto le permite escribir y guardar una serie de comandos sin ejecutarlos.

•También puede abrir la ventana de edición escribiendo editat en el símbolo delsistema.

-Start Button

• Ubicado en la esquina inferior izquierda de la ventana de MATLAB.

• Ofrece acceso alternativo a las cajas de herramientas de MATLAB, varias ventanas deMATLAB, función de ayuda, demostraciones y productos de Internet.

Page 9: Introducción a MATLAB - blog.espol.edu.ec

• Dos símbolos útiles:

–Semicolon ;

• Si se escribe un punto y coma al final de un comando, no se muestra la salida delcomando.

-Percent Sign %

• Cuando el % se escribe al comienzo de una línea, la línea se designa como uncomentario. Los comentarios se usan con frecuencia en los programas para agregarexplicaciones o descripciones.

Page 10: Introducción a MATLAB - blog.espol.edu.ec

Cálculos numéricos

• Variable: asignamos nombres a escalares, vectores y matrices. Los nombres de lasvariables comienzan con una letra y distinguen entre mayúsculas y minúsculas.

• Vectores y escalares son casos especiales de una matriz.

• Matriz: conjunto de números dispuestos en una cuadrícula rectangular de filas ycolumnas. Comas o espacios en blanco separan elementos; puntos y comas filasseparadas. A = [ 1, 2, 3; 4, 5, 6; 7, 8, 9]

• Operaciones escalares

Page 11: Introducción a MATLAB - blog.espol.edu.ec

Precedencia de operaciones aritméticas

–Paréntesis, primero lo más interno

–Exponenciación, de izquierda a derecha

–Multiplicación y división, de izquierda a derecha

–Adición y resta, de izquierda a derecha

Operación Array

–La verdadera fuerza de MATLAB está en las manipulaciones matriciales.

–Operaciones, elemento por elemento:

• Suma +

• Resta -

•Multiplicación. *

• División ./

• Exponenciación. ^

Page 12: Introducción a MATLAB - blog.espol.edu.ec

–Transpuesta: el operador de transposición cambia las filas a columnas y viceversa. Eloperador es el apóstrofe.

Visualización numérica

–Notación científica: 6.022e23

–Formato de visualización (p. Ej., Largo, corto, científico): cambiar el formato devisualización no cambia la precisión de sus resultados

Archivos

–.MAT archivos

–.DAT archivos

–M-files: archivos MATLAB que contienen código de programación. Hay dos tipos:scripts y funciones.

Page 13: Introducción a MATLAB - blog.espol.edu.ec

Funciones predefinidas de MATLAB

–Las expresiones aritméticas a menudo requieren cálculos que no sean suma, resta,multiplicación, división y exponenciación, por ejemplo, muchas expresiones requierenel uso de logaritmos, exponenciales y funciones trigonométricas.

–MATLAB incluye una biblioteca incorporada de funciones útiles.

Ejemplo:

•b = sqrt(x)

•a = rem(10,3)

•f = size(d)

•g = sqrt(sin(x))

Page 14: Introducción a MATLAB - blog.espol.edu.ec

–MATLAB incluye amplias herramientas de ayuda, que son especialmente útiles parainterpretar la sintaxis de funciones.

–Hay 3 formas de obtener ayuda desde MATLAB:• Función de ayuda de línea de comandos -Help

• Pantalla de ayuda con ventana –Help→MATLAB Help

• Ayuda de MATLAB en Internet.

Funciones elementales - Ejemplos•abs(x)

•sqrt(x)

•round(x)

•sign(x)

•exp(x)

•log(x) and log10(x)

Page 15: Introducción a MATLAB - blog.espol.edu.ec

Funciones trigonométricas

• Las funciones trigonométricas suponen que los ángulos están representados en radianes.

– sin (x) , cos (x) , asin (x)

• Si se desea utilizar u obtener los ángulos en grados sexagesimales utilice los siguientes comandos:

- sind(x), cosd (x) , asind(x)

Funciones de análisis de datos

•MATLAB contiene una serie de funciones que facilitan la evaluación y el análisis de datos.

•Por ejemplo:

–Máximo y mínimo, media y mediana ( max, min, mean, median)

–Suma y producto, clasificación de valores

–Tamaño de la matriz, varianza y desviación estándar

Page 16: Introducción a MATLAB - blog.espol.edu.ec

Archivos .m y scripts

–En lugar de ingresar comandos en la ventana de comandos no interactiva, donde los comandos no sepueden guardar y ejecutar nuevamente, es mejor crear primero un archivo con una lista de comandos(un programa), guardarlo y luego ejecutarlo (ejecutar el archivo).

–Los comandos en el archivo se ejecutan en el orden en el que aparecen los mismos.

–Los comandos en el archivo se pueden corregir o cambiar y el archivo se puede guardar y volver aejecutar.

–Los archivos utilizados para este propósito se denominan archivos de script o archivos m (la extensión.m se utiliza cuando se guarda el archivo).

–Para crear un archivo M: File → New → M-File o presione el botón New Script en la barra deherramientas.

–El archivo debe guardarse antes de que pueda ejecutarse. Para ejecutarlo, elija el icono Run o escriba elnombre del archivo en la Ventana de comandos y presione Enter.

Page 17: Introducción a MATLAB - blog.espol.edu.ec

Comandos útiles:

Para generar la matriz

•Escriba A = [1 3 5 7; 3 7 -2 0; 5 2 -7 6]

Note los siguientes comandos:

•zeros (m, n)zeros (3, 4)

•ones (m, n)ones (3, 3)

•eye (n)eye (3)

Page 18: Introducción a MATLAB - blog.espol.edu.ec

–La matriz A está dada por:

• Su transposición o transpuesta (cambia las filas a columnas) viene dada por:

–Considere el vector x = [1 3 5 7 9 11 13]

• Al escribir x (4) se muestra el elemento 4to elemento

• Escribir x (4) = 12 redefine el elemento 4 en el vector, es decir: x = [1 3 5 12 9 11 13]

Page 19: Introducción a MATLAB - blog.espol.edu.ec

–La dirección de un elemento en una matriz es su posición (número de fila y número de columna).

• Al escribir A (2, 3) se muestra el elemento de matriz -2

• Escribir A (2, 3) = 12 cambia el elemento de matriz en la ubicación (2, 3) de -2 a 12.

Page 20: Introducción a MATLAB - blog.espol.edu.ec

• x (:) se refiere a todos los elementos del vector x

• x (m: n) se refiere a elementos a través de m y n del vector x

• A (:, n) se refiere a todos los elementos en todas las filas de la columna n de la matriz A

• A (n, :) se refiere a los elementos en todas las columnas de la fila n de la matriz A

• A (:, m: n) se refiere a los elementos en todas las filas entre columnas m y n de la matriz A.

• A (m: n, :) se refiere a los elementos en todas las columnas entre filas m y n de la matriz A.

–La dimensión de un vector o matriz se puede cambiar simplemente asignando valores a los nuevoselementos. MATLAB asignará ceros para completar los nuevos elementos de matriz o vector noespecificados.

Page 21: Introducción a MATLAB - blog.espol.edu.ec

–Un elemento, o rango de elementos, en un vector o matriz se puede eliminar reasignando una matrizvacía a este rango de elementos.

• Para el vector x = [1 3 5 7 9 11], el comando x (3) = [] da como resultado el vector x = [1 3 7 9 11]

• Para la matriz A que se muestra a la izquierda, el comando A (:, 2: 3) = [] da como resultado la matriz Ade la derecha.

Page 22: Introducción a MATLAB - blog.espol.edu.ec

Trazado básico y gráficos

Gráficos en dos dimensiones

–Gráfico básico

–Tipos de diagramas bidimensionales

–Sub gráficos

Page 23: Introducción a MATLAB - blog.espol.edu.ec

Gráficas en dos dimensiones

–La trama más utilizada por los ingenieros es la gráfica x-y. En general, los valores de x representan lavariable independiente y los valores de y representan la variable dependiente. Ambos vectores debentener el mismo número de elementos.

Gráfico básico

•plot (x, y) En la última figura abierta, grafica Y vs X. En caso de qu no hayan figuras abiertas se abreuna nueva figura.

•title (‘Sample Plot’) A la figura activa, asigna el título Sample Plot. El título se escribe entre comillassimples.

•xlabel (‘x values’) Al eje x de la figura activa, le asigna el nombre x values.

•ylabel (‘y values’) Al eje y de la figura activa, le asigna el nombre y values.

•grid on Activa la cuadrícula de la figura activa.

Page 24: Introducción a MATLAB - blog.espol.edu.ec

–El comando figure() abre una nueva ventana de figura.

–Creando múltiples gráficas en una sola ventana:

•Plot (x, y1), hold on, plot (x, y2) el comando hold on mantiene la gráfica de y1 vs x, sobre esa figurase grafica también y2 vs x.

•Plot (x, y1, x, y2) En el mismo comando plot se especifican las curvas que se quieran graficar en lafigura activa.

•Y = [y1 y2], plot (x, Y) En una matriz (Y), se definen los vectores (y1, y2) que se deseen graficar. Si x esun vector columna, y1 y y2 deben ser vectores columna también.

–Opciones de estilo de línea, color y marca se pueden especificar (escriba help plot)

–La escala de ejes y los gráficos de anotación son opciones

–El comando fplot traza una función de la forma f = f (x) entre los límites

Especificados. Por ejemplo:

Page 25: Introducción a MATLAB - blog.espol.edu.ec

–Otros tipos de gráficas bidimensionales

• Gráficos polares: polar (x, y)

• Gráficos logarítmicos: semilogx (x, y), semilogy (x, y), loglog (x, y)

• Gráficos de barras y gráficos circulares

• Histogramas

• Stem, stairs

–Subplots

• El comando subplot le permite dividir la ventana gráfica en subventanas.

• subplot (m, n, p): la ventana se divide en una cuadrícula m-by-n de ventanas más pequeñas, y el dígitop especifica la ventana p-ésima para la figura actual. Las ventanas están numeradas de izquierda aderecha, de arriba a abajo.

Page 26: Introducción a MATLAB - blog.espol.edu.ec

Cálculos matriciales y resolución de ecuaciones

• Muchos cálculos de ingeniería utilizan una matriz, un conjunto de números dispuestos en unacuadrícula rectangular de filas y columnas, como una forma conveniente de representar un conjunto dedatos. Aquí nos interesan las matrices que tienen más de una fila y más de una columna.

• La multiplicación escalar y la suma y resta de matrices se realizan elemento por elemento. Aquírevisaremos la multiplicación de matrices, así como otras operaciones y funciones.

Page 27: Introducción a MATLAB - blog.espol.edu.ec

•Transponer

–La transposición de una matriz A, designada 𝐴𝑡, es una nueva matriz en la que las filas de la matrizoriginal son las columnas de la nueva matriz.

• Producto de punto

–El producto punto es un escalar calculado a partir de dos vectores del mismo tamaño. El escalar es lasuma de los productos de los valores en las posiciones correspondientes en los vectores.

–En MATLAB, dot_product = sum (A. * B); or dot (A, B);

Page 28: Introducción a MATLAB - blog.espol.edu.ec

•Multiplicación matricial

–La multiplicación de matrices no se logra multiplicando los elementos correspondientes de las matrices.En la multiplicación de matrices, el valor en la posición c (i, j) del producto C de dos matrices A y B es elproducto de punto de la fila i de la primera matriz y la columna j de la segunda matriz

–La primera matriz A debe tener el mismo número de elementos N en cada fila que hay en cada columnade la segunda matriz B.

–También, en general, AB ≠ BA.

–En MATLAB, la multiplicación matricial de A y B es A * B;

Page 29: Introducción a MATLAB - blog.espol.edu.ec

•Multiplicación matricial

• Potencias matriciales

–Si A es una matriz, la operación A. ^ 2 cuadra cada elemento en A. Para multiplicar la matriz, es decir,calcular A * A, A debe ser una matriz cuadrada y usamos la operación A ^ 2.

•Matriz inversa

–Por definición, el inverso de una matriz cuadrada A es la matriz 𝐴−1, de modo que los productos de lamatriz 𝐴𝐴−1 y 𝐴−1A son ambos iguales a la matriz de identidad I. En MATLAB, ejecutamos inv (A) paraencontrar el inverso de A.

•Determinante

–Un determinante es un escalar calculado a partir de las entradas en una matriz cuadrada. Losdeterminantes tienen varias aplicaciones en ingeniería, incluida la resolución de sistemas de ecuacionessimultáneas. En MATLAB, ejecute det (A) para encontrar el determinante de A.

Page 30: Introducción a MATLAB - blog.espol.edu.ec

• Soluciones a sistemas de ecuaciones lineales

–Considere el siguiente sistema de tres ecuaciones con tres incógnitas:

–Podemos reescribir el sistema de ecuaciones usando las siguientes matrices:

Page 31: Introducción a MATLAB - blog.espol.edu.ec

–Para resolver este sistema de ecuaciones, escribimos:

–En MATLAB, escribimos: X = inv (A) * B;

–Una mejor manera de resolver un sistema de ecuaciones lineales es usar el operador de divisiónmatricial: X = A \ B; Este método es más eficiente que usar la matriz inversa y produce una mayorprecisión numérica.

Page 32: Introducción a MATLAB - blog.espol.edu.ec

•Matrices especiales

–Matriz de ceros, p. Ej., A = zeros (3)

–Matriz de unos, por ejemplo, A = ones (3)

–Matriz identidad, p. Ej., A = eye (3)

–Obtener diagonales, por ejemplo, A = [1 2 3; 4 5 6; 7 8 9]; B = diag (A)

–Matrices aleatorias, p. Ej.,A=rand(2,3)

Page 33: Introducción a MATLAB - blog.espol.edu.ec

Ejercicios de refuerzo

Page 34: Introducción a MATLAB - blog.espol.edu.ec

Comandos básicos

Page 35: Introducción a MATLAB - blog.espol.edu.ec

Valores complejos

Page 36: Introducción a MATLAB - blog.espol.edu.ec

Polinomios

Page 37: Introducción a MATLAB - blog.espol.edu.ec

Polinomios

Page 38: Introducción a MATLAB - blog.espol.edu.ec

Representaciones gráficas 2D y 3D.

Page 39: Introducción a MATLAB - blog.espol.edu.ec

Representaciones gráficas 2D y 3D.

Page 40: Introducción a MATLAB - blog.espol.edu.ec

Creación de función de transferencia.

Page 41: Introducción a MATLAB - blog.espol.edu.ec

Otros comandos útiles