1.08k likes | 1.33k Views
Fundamentos Básicos de Matlab. -LCA-. Fundamentos de informática. FRRO. Mi nombre es: Arce, Gerardo. Clases:. 8. 1 Teoría – Matlab & Simulink. 3 Practica – Matlab. 3 Practica – Simulink. 1 Consulta del TPF. Como regularizar:. Entregar todas las prácticas. 9 de Matlab. 5 de Simulink.
E N D
Fundamentos Básicosde Matlab -LCA- Fundamentos de informática FRRO
Clases: 8 • 1 Teoría – Matlab & Simulink. • 3 Practica – Matlab. • 3 Practica – Simulink. • 1 Consulta del TPF.
Como regularizar: • Entregar todas las prácticas. • 9 de Matlab. • 5 de Simulink. • Presentar el TPF y defenderlo (individual). • Responder de 5 a 8 preguntas teóricas. Todo en un tiempo menor a 10min ya que todos tienen derecho a rendir el mismo día.
Practicas de Matlab: • Nº 1: Manejo de Matrices. • Nº 2: Manejo de Números Complejos. • Nº 3: Manejo de Archivos *.M • Nº 4: Programación (Resolución de sistema 3x3). • Nº 5: Programación (Ley de OHM). • Nº 6: Programación (De tabla papel a digital). • Nº 7: Programación (Maximización de las utilidades). • Nº 8: Programación (Resolución de 2 mallas eléctricas). • Nº 9: Programación (Utilizando la herramienta creada en la práctica Nº 6, resolver 3 curvas).
Practicas de Simulink: • Nº 1: Calculo de desfasage. • Nº 2: Máxima resistencia. • Nº 3: Maximización de área. • Nº 4: Diagrama de M y Q (Sistema simétrico). • Nº 5: Diagrama de M y Q (Sistema asimétrico).
Trabaja Practico Final (TPF) : • Es individual y único (No hay grupos). • Se deberá resolver el problema que se plantea. • Entregar una memoria de calculo similar a la que se expresa en las practicas.
Teoría: • El día de la entrega del TPF además de defenderlo y presentar todas las practicas se deberá rendir teoría. • Contestar rápidamente de 5 a 8 preguntas teóricas que abarcan todo lo dado.
Recuperatorio: • En el caso de fallar en cualquiera de las 3 pautas. • Practicas. + (Preguntas) • TPF. + (Defensa) + (WORD) • Teoría. (de 5 a 8 preguntas) • En el recuperatorio solo se le tomará lo fallo o que falto.
¿Qué es Matlab? • Una herramienta para hacer cálculos matemáticos que utiliza como elemento básico la matriz. • Un lenguaje de programación: • interactivo: órdenes • avanzado pero fácil de utilizar: archivos.m • Plataforma de desarrollo: toolboxes
Ventajas del Matlab • Su programación requiere menos tiempo que otros lenguajes como FORTRAN, C, Pascal, etc. • Utiliza un lenguaje más cercano a la matemática. • Permite definir fácil y rápidamente nuevas funciones que se incorporan a Matlab (mediante el toolboxes) • Grandes capacidades gráficas.
¿Qué se puede realizar? • Análisis de datos • Polinomios • Gráficos 2D • Gráficos 3D (No vamos a llegar a dar). • Ajuste de curvas • Interpolación • Análisis numérico
Espacio de trabajo • Al ejecutarse Matlab se crea una ventana de trabajo que corresponde al lugar desde donde se interacciona con Matlab: • El símbolo » denota que se esta esperando una orden • Matlab recuerda las órdenes ya dadas y los valores de cualquier variable (en el espacio de trabajo): • recordar órdenes previas: y . Editar: y • recordar variables: escribir su nombre
Espacio de trabajo • Funciones para el manejo de las variables en el espacio de trabajo: • wholista las de las memorias del espacio de trabajo • whos lista las memorias del espacio de trabajo con información de su tamaño • save almacena las memorias en un archivo de extensión *.mat • load recupera variables almacenadas en el disco • clear borra las variables del espacio de trabajo
Funciones básicas • Suma: + • resta: - • multiplicación: * • división: \ ó / • potencia: ^
Comentarios útiles • Evalúa expresiones de izquierda a derecha: • 1º potencias, 2º multiplicaciones y divisiones, y 3º sumas y restas. • Nombres de variables o memorias: • Siempre debe comenzar con una letra, seguidas de letras o números si se lo desea. • Sólo se recuerdan los primeros 17 dígitos de una memoria. • Distingue mayúsculas y minúsculas • ; al final de línea no imprime el resultado. • A partir del símbolo % se considera comentario.
Comentarios útiles • ans almacena el resultado por defecto • Si una orden es demasiado larga, se escriben ...seguido deenterpara continuar en la siguiente línea, no en todos los casos es posible usar este comando. • Matlab se interrumpe con ctrl-c • Matlab se cierra con el comando quit
Variables predefinidas • ansNombre de la variable por defecto usado en los resultados • piNúmero • epsEl más pequeño de los números que al sumarle 1 da un número en coma flotante mayor que 1 • infInfinito • NaNIndefinido • i,ji=j=sqrt(-1) • realminNúmero real positivo más pequeño que se puede usar 2.2251e-308 • realmax Número real positivo más grande que se puede usar 1.7977e+308
Características Científicas • Funciones matemáticas • Números complejos
Números complejos • Solve • es una función que resuelve sistemas del tipo x^3+2*x^2+3*x+x+5=0 • El número imaginario puro se representa por i o j • Cualquier número seguido de i representa un número imaginario • Hay funciones específicas para su manejo: • real(x) • imag(x) • conj(x) • angle(x),etc.
Manejo de arrays • Arrays simples • Direccionamiento de arrays • Construcción de arrays • Funciones con arrays • Matemáticas de arrays con escalares • Matemáticas entre arrays • Orientación del array • Resumen de operaciones con arrays
Arrays simples • Para crear un array en Matlab: • Comienza por un corchete de apertura [ • Los valores separados por espacios o por comas • Finaliza con un corchete de cierre ] • Ejemplo: • x = [23 45 12 2+3i -2i]
Direccionamiento de arrays • Para acceder a elementos individuales se utilizan subíndices entre paréntesis • Ejemplo: • » x = [1 2 3;4 5 6;7 8 9] • » x(2,3) ans = 8 • » x(6) ans = 8
Direccionamiento de arrays • Para direccionar un bloque de elementos, Matlab proporciona la notación de dos puntos: primero:incremento:último • Ejemplo: • » x = [1 2 3;4 5 6;7 8 9] • x(2:6) ans = 4 7 2 5 8 • x(2:2:6) ans = 4 2 8
Direccionamiento de arrays • Para direccionar elementos aislados se utiliza un array de índices • Ejemplo: • » x=[23 45 12 2+3i -2i 32 12]; » x([4 1 2]) ans = 2+3i 23 45 » x([1 4 7]) ans = 23 2+3i 12
Construcción de arrays • Existen varias formas de crear arrays • Notación de dos puntos • Función linspace linspace(primero,último,nºvalores) • Función logspace logspace(expo1,expo2,nºvalores)
Funciones con arrays • Las funciones se aplican a los elementos individuales de los arrays • Ejemplo: • » x = [0 pi/4 pi/2 3*pi/4 pi] • » sin(x) ans = 0 0.7071 1.0000 0.7071 0.0000 • » cos(x) ans = 1.0000 0.7071 0.0000 -0.7071 -1.0000
Operaciones de arrays con escalares • La suma, resta, multiplicación y división por un escalar simplemente aplica la operación a todos los elementos del array • Ejemplo: • » x = [1 2 3 4 5 6]; • » 4*x-7 ans = -3 1 5 9 13 17
Operaciones entre arrays • Cuando dos arrays tienen la misma longitud, la suma y la resta se aplican sobre la base de “elemento a elemento” • Para multiplicar o dividir dos arrays“elemento a elemento” se utilizan los operandos: .* , ./y.\ ejemplo: (a./b=b.\a) • Para la potencia “elemento a elemento” se utiliza .^
Resumen de operaciones con arrays • a=[a1 ... an], b=[b1 ... bn], c=escalar
Álgebra matricial • Álgebra matricial • Manipulación matricial • Matrices especiales
Álgebra matricial • Matlab originariamente fue diseñado para simplificar el cálculo del álgebra lineal • Para definir una matriz se distinguen las filas por ; o se introduce enter • A.’ es la matriz transpuesta de A • A’ es la traspuesta conjugada de A • det(A) calcula el determinante de A • inv(A) es la inversa de A • rank(A) devuelve el rango de la matriz A • norm(A) calcula la normal de A • poly(A) obtiene el polinomio característico de la matriz A
Manipulación matricial • Los elementos de una matriz se indican con su fila y columna: A(columna, fila) • Con los dos puntos (:) se puede seleccionar toda la fila o columna: A(:,1), B(2,:) • find(x) transforma una matriz en una sucesión de valores del tipo columna. • size(x) devuelve el tamaño en filas y columnas.
Matrices especiales • Matriz de ceros: zeros(n,m) • Matriz de unos: ones(n,m) • Matriz aleatoria con distribución uniforme (entre 0 y 1): rand(n,m) • Matriz aleatoria con distribución normal (media 0 y varianza 1): randn(n,m) • Matriz identidad: eye(n)
Operaciones y funciones • Operaciones relacionales • Operaciones lógicos • Funciones relacionales y lógicas
Operadores relacionales • Efectúan la comparación, elemento a elemento, entre dos matrices y dan como resultado una matriz cuyos elementos son 1 si la relación es cierta y 0 si es falsa.
Operadores lógicos • Operadores lógicos:
Archivos .m • ¿Qué son? • ¿Para qué sirven? • Tipos de archivos.m • Características de funciones • Ejemplo de función • Pasos que sigue Matlab
¿Qué son? • Matlab permite crear funciones nuevas en forma de archivos con extensión *.m y almacenados • Un archivo *.m es una secuencia de órdenes de Matlab que puede contener, incluso, referencias a otros archivo *.m • Los archivo *.m son textos ASCII creados con cualquier editor o procesador de texto
¿Para qué sirven? • Automatizar secuencias de órdenes que se utilizan de forma repetitiva • Proporcionar extensibilidad a Matlab con la posibilidad de añadir nuevas funciones cuya utilización no difiere de las que incluye originalmente ÞToolbox
Tipos de archivos *.m • Archivos predefinidos: • Seno • Coseno • Tangente • etc… • Archivos propios: • Son un compendio de funciones predefinidas ya sea matrices, vectores, senos, cosenos, etc. que generan un programa nuevo y especifico
Características de funciones • El nombre de la función y del archivo debe ser el mismo • Esta se ejecuta desde el entorno de Matlab por primera vez • Son capaces de generar programas emergentes y trabajar en un entorno fuera del Matlab para nosotros pero los cálculos siguen siendo ejecutados dentro del Matlab
Pasos que sigue Matlab • Al dar por ejemplo, la orden: matlab • Comprueba si matlab es una variable • Comprueba si matlab es una función de Matlab • Busca en el actual directorio si existe un archivo con el nombre matlab.m • Busca, en los directorios especificados en la variable path, el archivo matlab.m • Por ultimo lo ejecuta
Control de flujo • Bucle for • Bucle while • Estructuras if-else
Bucle for • La forma general es: • for n=1:5 x(n)=n*2 end • Los comandos entre las sentencias for y end se ejecutan una vez hasta llegar a su fin pudiendo también utilizar una matriz como rango de evaluación • Resultado: x = 2 x = 2 4 x = 2 4 6 x = 2 4 6 8 x = 2 4 6 8 10
Bucle while • La forma general es: while“expresión de veracidad” “comandos” end • Los “comandos” entre las sentencias while y end se ejecutan mientras todos los elementos a evaluar sean verdaderos