PROGRAMACIÓN (2a PARTE) MATLAB
INTRODUCCIÓN ¿Que es MATLAB? (MATrix LABoratory) Sistema basado en cálculo matricial Desarrollo de aplicaciones matemáticas y de ingeniería Integra: cálculo, visualización y programación Medio ambiente de fácil uso
¿Que es MATLAB? Usos típicos: matemáticas y computación desarrollo de algoritmos modelado, simulación y prototipos análisis, exploración y visualización de datos graficos para ciencias e ingenierías desarrollo de aplicaciones (GUI)
¿Que es MATLAB? Elemento básico: matriz Permite resolver muchos problemas técnicos Usando una fracción del tiempo del usado con C o Fortran Herramienta estándar en universidades (en cursos introductorios y avanzados)
¿Que es MATLAB? En la industria, herramienta de investigación desarrollo y análisis Contiene familias de soluciones de aplicaciones específicas: Toolboxes Los toolboxes: Colecciones de funciones (archivos-m) Extensiones hacia áreas y aplicaciones específicas
¿Que es MATLAB? Permiten aprender y aplicar tecnología especializada existen tooboxes en áreas como: procesamiento de señales, sistemas de control, redes neuronales, lógica difusa, wavelets, etc.
Sistema MATLAB Lenguaje MATLAB Medio ambiente de trabajo Manejo de graficos Biblioteca de funciones matemáticas Programa interfaz de applicaciones
¿Que es Simulink? Es un programa compañero de MATLAB Se maneja gráficamente vía ratón Sistema interactivo para simular sistemas dinámicos Modelar sistemas dibujando diagramas de bloques en la pantalla y manipularlos dinámicamente
¿Que es Simulink? Trabaja con sistemas lineales, no lineales, de tiempo continuo, de tiempo discreto, multivariables y multirate Blocksets son librerías adicionales de Simulink para aplicaciones Real-time Workshop es un programa que permite generar código C a partir de los diagramas de bloques y ejecutarlos en sistemas de tiempo real.
Matrices y Operaciones Básicas Un solo tipo de datos: MATRIZ Arreglo rectangular de números Introduciendo Matrices: •Introduciendo una lista de números •Cargandolas de archivos externos •Generandolas usando funciones
Matrices y Operaciones Básicas Por ejemplo: A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] Después de oprimir enter, aparecerá:
Matrices y Operaciones Básicas 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
Matrices y Operaciones Básicas sum(A) ans = 34 34 34 34 Suma el contenido de las columnas
Matrices y Operaciones Básicas ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 Que es la matriz transpuesta
Matrices y Operaciones Básicas sum(A')' ans = 34 Que es la suma de los renglones
Matrices y Operaciones Básicas diag(A) ans = 16 10 7 1 Que es la diagonal principal
Matrices y Operaciones Básicas sum(diag(A)) ans = 34 Que es la suma de los elementos de la diagonal principal
Matrices y Operaciones Básicas Subíndices El elemento en el renglón i y la columna j de A se denota como: A(i,j) Así, el elemento A(4,2) es 15 De modo que: A(1,4) + A(2,4) + A(3,4) + A(4,4) ans = 34 (No es la mejor forma de hacer esto)
Matrices y Operaciones Básicas A(8) es otra forma de referirnos al valor 15 almacenado en A(4,2) Si se tratan de usar índices que excedan las dimensiones de la matriz, como con: t = A(4,5) Aparecerá el mensaje de error: Index exceeds matrix dimensions
Matrices y Operaciones Básicas Pero si se almacena un valor en un elemento furera de los límites, las dimensiones se incrementan para acomodarlo. Así: X = A; X(4,5) = 17 X = 16 3 2 13 0 5 10 11 8 0 9 6 7 12 0 4 15 14 1 17
Matrices y Operaciones Básicas El operador “dos puntos” Es uno de los operadores más importantes. Funciona de diferentes formas. Así, 1:10 es un vector renglón conteniendo: 1 2 3 4 5 6 7 8 9 10
Matrices y Operaciones Básicas 100:–7:50 = 100 93 86 79 72 65 58 51 0:pi/4:pi 0 0.7854 1.5708 2.3562 3.1416
Matrices y Operaciones Básicas Subíndices que involucran dos puntos, se refieren a porciones de una matriz, así: A(1:k,j) son los primeros k elementos de la columna j de A. Así: sum(A(1:4,4)) calcula la suma de los elementos de la cuarta columna (aunque no es la mejor forma de hacer esto)
Matrices y Operaciones Básicas Los dos puntos por si mismos se refieren a todos los elementos en un renglón o columna La palabra end se refiere al último renglón o columna. De modo que: sum(A(:,end))=34 calcula la suma de los elementos de la última columna
2. EXPRESIONES Como la mayoría de los lenguajes de programación Pero se involucran matrices enteras •Variables •Números •Operadores •Funciones
No se requiere algún tipo de declaración o indicación de dimensiones 2. Expresiones Variables No se requiere algún tipo de declaración o indicación de dimensiones Cuando se encuentra una variable nueva, se crea automáticamente Si ya existía la variable, se cambia su contenido
Por ejemplo: num_students = 25 crea una matriz de 1 por 1 2. Expresiones Por ejemplo: num_students = 25 crea una matriz de 1 por 1 Los nombres de las variables consisten de una letra seguida por cualquier número de letras, dígitos o símbolos.
MATLAB usa solo los primeros 31 caracteres del nombre de una variable 2. Expresiones MATLAB usa solo los primeros 31 caracteres del nombre de una variable MATLAB distingue entre letras mayúsculas y minúsculas
MATLAB usa notación decimal convencional 2. Expresiones Números MATLAB usa notación decimal convencional Puede encabezar a un número un signo más (+) o menos (-) Notación científica: e para especificar la potencia de 10 Números imaginarios usan i o j
2. Expresiones Ejemplos: 3 – 99 0.0001 9.6397238 1.60210e – 20 6.02252e23 1i –3.14159j 3e5i Todos los números almacenados usan el formato long (IEEE floating-point standard).
Números flotantes: precisión finita de 2. Expresiones Números flotantes: precisión finita de 16 dígitos decimales significativos rango finito de 10 e-308 a 10 e+308
Operadores 2. Expresiones Las expresiones usan operadores aritméticos y reglas de precedencia familiares + Suma – Resta * Multiplicación / División \ División izquierda ^ Potencia ' Transpuesta complejo conjugado
MATLAB, gran número de funciones matemáticas básicas 2. Expresiones Funciones MATLAB, gran número de funciones matemáticas básicas Como: abs, sqrt, exp, and sin. Funciones avanzadas: Bessel and gamma functions. Con help elfun se obtiene una lista de funciones elementales
Con: help specfun help elmat 2. Expresiones Se obtienen funciones más avanzadas.
Otras funciones como gamma y sinh, están implementadas en archivos-m 2. Expresiones Algunas funciones como sqrt ysin, son parte del núcleo de MATLAB (built in) son muy eficientes detalles computacionales no accesibles Otras funciones como gamma y sinh, están implementadas en archivos-m Se puede ver el código y aún modificarlo
Varias funciones especiales proporcionan valores constantes útiles: 2. Expresiones Varias funciones especiales proporcionan valores constantes útiles: pi 3.14159265… i unidad imaginaria (también j) eps precisión relativa en p. flotante, 2 e-52 realmin número en p. Flot. más pequeño, 2 e-1022 realmax número en p. Flot. más grande, 2e1023 Inf Infinito NaN No un número
2. Expresiones rho = (1+sqrt(5))/2 rho = 1.6180 a = abs(3+4i) a = 5
z = sqrt(besselk(4/3,rho–i)) z = 0.3730+ 0.3214i 2. Expresiones z = sqrt(besselk(4/3,rho–i)) z = 0.3730+ 0.3214i
huge = exp(log(realmax)) toobig = pi*huge toobig = Inf
3. Matrices Generación de Matrices Se cuenta con 4 funciones para generar matrices: Z = zeros(2,4) Z = 0 0 0 0
3. Matrices F = 5*ones(3,3) F = 5 5 5 N = fix(10*rand(1,10)) N = 4 9 4 4 8 5 2 6 8 0
3. Matrices R = randn(4,4) R = 1.0668 0.2944 –0.6918 –1.4410 0.0593 –1.3362 0.8580 0.5711 –0.0956 0.7143 1.2540 –0.3999 –0.8323 1.6236 –1.5937 0.6900
3. Matrices El comando load lee archivos binarios que contienen matrices generadas con anterioridad El archivo texto tiene que estar organizado como una tabla rectangular de números separadas por espacios Así, si se tiene el archivo magik.dat, entonces: load magik.dat lee el archivo y crea una variables magik conteniendo a la matriz.
3. Matrices Archivos-M Se pueden crear matrices usando archivos-m Por ejemplo: A = [ ... 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 ];
3. Matrices Almacenandolo en un archivo con nombre magik.m entonces, al escribir: magik se lee el archivo y es creada una variable A que contiene la matriz del ejemplo.
3. Matrices Concatenación Es el proceso de unir matrices pequeñas para formar unas más grandes Los paréntesis cuadrados [] son el operador de concatenación. Por ejemplo: con la matriz A de 4-por-4 y haciendo: B = [A A+32; A+48 A+16] Resulta en una matriz de 8X8
3. Matrices Borrando renglones y columnas Ejemplos: borrar la segunda columna de A. X = A; con lo que X queda: X(:,2) = [] X = 16 2 13 5 11 8 9 7 12 4 14 1
3. Matrices Borrar un solo elemento de una matriz: X(1,2) = [] resulta en un error. Usando solo un subíndice, se borra un elemento o una secuencia de elementos. El elemento resultante es un vector renglón. Así: X(2:2:10) = []; resulta en: X = 16 9 2 7 13 12 1
3. Matrices La ventana de comandos Permite cambiar la fuente Permite controlar el formato numérico de los valores desplegados Se cambia solo la forma en que son desplegados los números y no la forma en que se realizan lols cálculos y se salvan
3. Matrices Elemplos: x = [4/3 1.2345e–6] format short 1.3333 0.0000 format short e 1.3333e+000 1.2345e–006 format short g 1.3333 1.2345e–006
3. Matrices format long 1.33333333333333 0.00000123450000 format long e 1.333333333333333e+000 1.234500000000000e–006 format long g 1.33333333333333 1.2345e–006
3. Matrices format bank 1.33 0.00 format rat 4/3 1/810045 format hex 3ff5555555555555 3eb4b6231abfd271
3. Matrices Líneas de comando largas Ejemplo: – 1/8 + 1/9 – 1/10 + 1/11 – 1/12; Los espacios en blanco entre los números y los signos son opcionales. Solo hacen más fácil la lectura