Modelamiento y Simulación de
Sistemas Dinámicos
Introducción al Matlab
Enrique Bances
Abril , 2013
Universidad de Ingenier...
Contents
1 Introducción 1
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . 1
1.2 Overview . . . . . . . . . . . . ....
Contents
4.4 CONSTRUCCIÓN DE ALGUNAS MATRICES 13
4.5 OPERACIONES BÁSICAS CON MATRICES . 15
4.6 FUNCIONES PARA OPERAR CON V...
Contents
IV
1 Introducción
1.1 Objetivos
1.1 Objetivos Generales
Al finalizar el laboratorio, El Alumno estará familiarizado de que com...
1 Introducción
MATLAB es un sistema interactivo cuyo elemento básico de almacenamiento de in-
formación es la matriz, que ...
2 Caracteristicas Básicas
2.1 Entorno del MATLAB
Existen 4 Elementos Fundamentales, como se muestra en la figura del entorn...
2 Caracteristicas Básicas
2.2 MATLAB nos AYUDA
Matlab Cuenta con una gran herramienta de ayuda, donde podemos encontrar la...
2.3 MATEMÁTICA SENCILLA
2.3.1 Operadores Elementales
Operadores Utilización Ejemplo
+ Adición 2+1=3
- Sustracción 2-1=1
* ...
3 Acerca de las Variables
Matlab almacena el último resultado obtenido en la variable “ans”
Las variables son sensibles a ...
3.1 FUNCIONES MATEMÁTICAS COMUNES
Tecleando clc borramos lo que hay en la ventana de comandos pero no borra las
variables ...
3 Acerca de las Variables
Función ¿que Hace?
. . . (x) función trigonométrica con elángulo expresado en
radianes
sin(x) Se...
3.1 FUNCIONES MATEMÁTICAS COMUNES
3.1.3 ALGUNAS OPERACIONES
Funcion ¿Que Hace?
abs(x) valor absoluto o magnitud de un
núme...
4 Vectores y Matrices
4.1 Como Definir
Para crear un vector introducimos los valores deseados separados por espacios (o
com...
4.2 DIRECCIONAMIENTO DE ELEMETOS DE VECTORES Y MATRICES
4 >> x (end) % último elemento del vector x
5 ans = -6
ara acceder...
4 Vectores y Matrices
1
2 >> A (2 ,2:3) % escribe de la segunda fila de la matriz , las
columnas de la 2 a la 3
3 ans = 5 ...
4.4 CONSTRUCCIÓN DE ALGUNAS MATRICES
(a:c:b) crea un vector que comienza en el valor a y acaba en el valor baumentando
de ...
4 Vectores y Matrices
rand(n): crea una matriz cuadrada n x n de númerosaleatorios con distribución
uniforme (0,1).
rand(m...
4.5 OPERACIONES BÁSICAS CON MATRICES
4.5 OPERACIONES BÁSICAS CON MATRICES
Símbolo Expresión Operación
+ A+B Suma de matric...
4 Vectores y Matrices
1 >> v = [1 2 3];
2 >> diag (v) % crea una matriz diagonal a partir del vector v
3 ans = 1 0 0
4 0 2...
5 OPERACIONES RELACIONALES
Y LÓGICAS
Como entradas a las expresiones relacionales y lógicas, Matlab considera que cero es
...
6 GRÁFICAS
6.1 2-D
La orden “plot” genera una gráfica. Los argumentos deben ser vectores de la misma
longitud.
Ejemplo
1
2 ...
6.1 2-D
Figure 6.2: Plot 2D- Dos Graficas
Además podemos colocar etiquetas o manipular la gráfica:
Funcion Que Hace?
>> xlab...
6 GRÁFICAS
Figure 6.3: Grafica Extendida
Una ventana gráfica se puede dividir en mparticiones horizontales y en nverticales,...
6.2 3-D
último pun ambos vectores deben coincidir para que la gráfica quede cerrada. Pero si
lo que queremos e quede colore...
6 GRÁFICAS
Figure 6.6: Grafica 3D - Linea
Podemos hacer girar la gráfica usando de la barra de herramientas el botón
Superfic...
6.2 3-D
Figure 6.7: Grafica 3D - Malla
Gráfica de superficie:
Es similar a la gráfica de malla, pero aquí se rellenan los espa...
6 GRÁFICAS
Figure 6.8: Grafica 3D - Malla
24
7 COMO PROGRAMAR EN
MATLAB
7.1 SENTENCIA FOR
Un bloque for en cada iteración asigna a la variable la columna i-ésima de la...
7 COMO PROGRAMAR EN MATLAB
7.2 SENTENCIA WHILE
Un bloque while ejecuta las órdenes mientras todos los elementos de la expr...
7.4 SENTENCIA BREAK
Si queremos dar una estructura mucho más completa, usaremos la más general donde
sólo se evalúan las ó...
7 COMO PROGRAMAR EN MATLAB
4 for i=2:100
5 n=2;
6 whilen <= sqrt(i)
7 if rem(i,n)==0
8 n=i;
9 else n=n+1;
10 end
11 end
12...
8 FUNCIONES ARCHIVOS.M
Existen dos tipos de M-archivo, es decir, de archivos con extensión *.m. Un tipo son
los ficheros de...
8 FUNCIONES ARCHIVOS.M
1
2 >> x = 1:10; y = 16: -2: -2;
3 >> [a,b] = calculos(x,y)
4 a = 17 16 15 14 13 12 11 10 9 8
5 b =...
9 POLINOMIOS
9.1 RAÍCES
Un polinomio se representa por un vector fila con sus coeficientes en orden descendi-
ente, no debem...
9 POLINOMIOS
9.2 OTRAS FUNCIONES CON POLINOMIOS
Función ¿Qué es?
conv (p,q) multiplica los dos polinomios p y q
deconv (c,...
Bibliography
[1] The MathWorks, Inc (2013). Getting Start Guide MATLAB Primer 2013a.
[2] Harol Klee, (2007). Simulation of...
MATLAB Tutorial
MATLAB Tutorial
Upcoming SlideShare
Loading in...5
×

MATLAB Tutorial

340

Published on

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
340
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MATLAB Tutorial

  1. 1. Modelamiento y Simulación de Sistemas Dinámicos Introducción al Matlab Enrique Bances Abril , 2013 Universidad de Ingenieria y Técnologia Especialidad de Ingeniera Mecánica
  2. 2. Contents 1 Introducción 1 1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . 1 1.2 Overview . . . . . . . . . . . . . . . . . . . . . 1 2 Caracteristicas Básicas 3 2.1 Entorno del MATLAB . . . . . . . . . . . . . . 3 2.2 MATLAB nos AYUDA . . . . . . . . . . . . . 4 2.3 MATEMÁTICA SENCILLA . . . . . . . . . . 4 2.3.1 Operadores Elementales . . . . . . . . . 5 2.3.2 Operadores entre Matrices . . . . . . . . 5 3 Acerca de las Variables 6 3.1 FUNCIONES MATEMÁTICAS COMUNES . . 7 3.1.1 APROXIMACIONES . . . . . . . . . . 7 3.1.2 TRIGONOMETRÍA . . . . . . . . . . . 7 3.1.3 ALGUNAS OPERACIONES . . . . . . 9 4 Vectores y Matrices 10 4.1 Como Definir . . . . . . . . . . . . . . . . . . . 10 4.2 DIRECCIONAMIENTO DE ELEMETOS DE VECTORES Y MATRICES . . . . . . . . . . . 10 4.3 CONSTRUCCIÓN ABREVIADA DE ALGUNOS VECTORES . . . . . . . . . . . . . . . . . . . 12 II
  3. 3. Contents 4.4 CONSTRUCCIÓN DE ALGUNAS MATRICES 13 4.5 OPERACIONES BÁSICAS CON MATRICES . 15 4.6 FUNCIONES PARA OPERAR CON VECTORES 15 4.7 FUNCIONES PARA ANALIZAR MATRICES . 15 5 OPERACIONES RELACIONALES Y LÓGICAS 17 5.1 OPERADORES DE RELACION . . . . . . . . 17 5.2 OPERADORES LÓGICOS . . . . . . . . . . . 17 6 GRÁFICAS 18 6.1 2-D . . . . . . . . . . . . . . . . . . . . . . . . 18 6.2 3-D . . . . . . . . . . . . . . . . . . . . . . . . 21 7 COMO PROGRAMAR EN MATLAB 25 7.1 SENTENCIA FOR . . . . . . . . . . . . . . . 25 7.2 SENTENCIA WHILE . . . . . . . . . . . . . . 26 7.3 SENTENCIA IF . . . . . . . . . . . . . . . . . 26 7.4 SENTENCIA BREAK . . . . . . . . . . . . . . 27 8 FUNCIONES ARCHIVOS.M 29 9 POLINOMIOS 31 9.1 RAÍCES . . . . . . . . . . . . . . . . . . . . . 31 9.2 OTRAS FUNCIONES CON POLINOMIOS . . 32 Bibliography 33 III
  4. 4. Contents IV
  5. 5. 1 Introducción 1.1 Objetivos 1.1 Objetivos Generales Al finalizar el laboratorio, El Alumno estará familiarizado de que como resolver ecuaciones diferenciales y su interpretación utilizando el software MATLAB y su herramienta Simulink realizando simulación y operaciones matemáticas. 1.2 Objetivos Específicos • Operaciones Matemáticas con Matrices en MATLAB – Modo Editor • Creación de Funciones • Representar ecuaciones diferenciales en Simulink 1.2 Overview MATLAB es un lenguaje de alto funcionamiento para computación técnica, Este integra computación, visualización, y programación, en un entorno fácil de usar donde los problemas y las soluciones son expresados en la más familiar notación matemática. Los usos más familiares de Matlab son: • Matemática y Computación • Desarrollo de algoritmo • Modelamiento, simulación y prototipado • Análisis de datos, exploración y visualización • Graficas científicas e ingenieriles • Desarrollo de aplicaciones, incluyendo construcción de interfaces graficas de usuario 1
  6. 6. 1 Introducción MATLAB es un sistema interactivo cuyo elemento básico de almacenamiento de in- formación es la matriz, que tiene una característica fundamental y es que no necesita dimensionamiento. Esto le permite resolver varios problemas de computación técnica (especialmente aquellos que tienen formulaciones matriciales y vectoriales) en una fracción de tiempo similar al que se gastaría cuando se escribe un programa en un lenguaje no interactivo como C++. Matlab presenta una familia de soluciones a aplicaciones específicas de acoplamiento rápido llamadas ToolBoxes. Los toolboxes son colecciones muy comprensibles de funciones MATLAB, o archivos de Matlab (M-files) que extienden el entorno de MATLAB para resolver clases particulares de problemas, Algunas áreas en las cuales existen toolboxes disponibles son: • Procesamiento de señales • Sistemas de control • Simulink 2
  7. 7. 2 Caracteristicas Básicas 2.1 Entorno del MATLAB Existen 4 Elementos Fundamentales, como se muestra en la figura del entorno MAT- LAB 2012. • Ventana de Comandos (Command Windows): Interface donde se ingresa tex- tualmente las funciones que se desea utilizar, en esta ventana también se ob- serva los resultados de una operación y además posibles errores al compilar algún programa. • Ventana de Variables (WorkSpace): En esta ventana aparecen todas la variables que se han estado creando en la sesión. Además muestra características como su tamaño y tipo de variables. • Historial de Comandos: (Command History): Muestras un historial de todos los comandos utilizados en la sesión. • Directorio de Trabajo (Current Folder): Dirección de la Carpeta donde se están guardando los programas y se está ejecutando la sesión. Figure 2.1: Entorno Matlab 3
  8. 8. 2 Caracteristicas Básicas 2.2 MATLAB nos AYUDA Matlab Cuenta con una gran herramienta de ayuda, donde podemos encontrar la información de las librerías que están a nuestra disposición, esta ayuda cuenta con la explicación de sintaxis y funcionamiento de cada comando, así como muestra ejemplos de aplicación. Para Acceder a la ayuda se puede hacer de varias formas. Ayuda en línea.- Se accede a través de la ventana de comandos tecleando help nombre de función. La ayuda se obtiene en modo texto. Como ejemplo, se visualizará la ayuda de la función que permite invertir matrices tecleando: >> help plot Navegador de ayuda.- Se accede desde el menú Help, seleccionando la opción Matlab help. Constituye una manera más sencilla de localizar la misma información: las funciones están agrupadas en bloques y se proporciona un interfaz para navegar. Además ofrece información adicional como ejemplos e instrucciones de uso. Comando lookfor (búsqueda de palabras clave).- Aunque más complicado de uti- lizar, proporciona en ocasiones información extra. El comando lookfor permite buscar entre las descripciones de todas las funciones de Matlab, aquellas que contienen la palabra clave que indiquemos. Como ejemplo, buscaremos todas las funciones de Matlab relacionadas con la transformada de Fourier tecleando: >> lookfor Fourier 2.3 MATEMÁTICA SENCILLA Matlab ofrece la posibilidad de realizar las siguientes operaciones básicas: Matlab no tiene en cuenta los espacios. Si queremos que Matlab evalúe la línea pero que no escriba la respuesta, basta escribir punto y coma (;) al final de la sentencia. Si la sentencia es demasiado larga para que quepa enuna sola línea podemos poner tres puntos (. . . ) seguido de la tecla Enter para indicar que continúa en la línea siguiente. 4
  9. 9. 2.3 MATEMÁTICA SENCILLA 2.3.1 Operadores Elementales Operadores Utilización Ejemplo + Adición 2+1=3 - Sustracción 2-1=1 * Multiplicación 2*3=6 / División 6/3=2 ^ Potenciación 2^3=8 Table 2.1: Operaciones Básicas 2.3.2 Operadores entre Matrices Operador Utilización Ejemple .* Multiplica termino a Termino [2 3] .* [2 4] = [4 12] ./ División término a término [2 3] ./ [2 4] = [1 0.7500] .^ Potenciación término a término [2 3] .^ 2 = [4 9] Table 2.2: Operaciones Básicas con punto 5
  10. 10. 3 Acerca de las Variables Matlab almacena el último resultado obtenido en la variable “ans” Las variables son sensibles a las mayúsculas, deben comenzar siempre con una letra, no pueden contener espacios en blanco y pueden nombrarse hasta con 63 caracteres (en versiones anteriores no permitía tantos caracteres). Si se nombra una variable con más de 63 caracteres truncará el nombre de dicha variable. Algunas variables especiales de Matlab: Variable Definición Valor ans Variable usada por defecto para almacenar el último resultado ? ? ? pi Razón de una circunferencia a su diámetro 3.1416 eps Número más pequeño, tal que cuando se le suma 1, crea un número en coma flotante enel computador mayor que 1 2.2204e-016 inf Infinito Inf nan Magnitud no numérica NaN i y j i = j = √ −1 0 + 1.0000i realmin El número real positivo más pequeño que es utilizable 2.2251e-308 realmax El número real positivo más grande que es utilizable 1.7977e+308 Table 3.1: Variables Especiales Tecleando clear podemos borrar todas las variables del espacio de trabajo, pero no borra lo de las demás ventanas, es decir, no desaparece lo que hay escrito en la ventana de comandos. 6
  11. 11. 3.1 FUNCIONES MATEMÁTICAS COMUNES Tecleando clc borramos lo que hay en la ventana de comandos pero no borra las variables de la memoria del espacio de trabajo. Los comentarios se escriben después del símbolo de tanto por ciento (%), de este modo todo lo que se escriba a continuación en la misma línea no seráleído por Matlab. Podemos colocar varias órdenes en una línea si se separan correctamente, puede ser: por comas(,) que hacen que se visualicen los resultados o puntos y comas(;) que suprimen la impresión en pantalla 3.1 FUNCIONES MATEMÁTICAS COMUNES 3.1.1 APROXIMACIONES Función ¿Qué hace? Ejemplo x = 5.92 ceil (x) redondea hacia infinito 6 fix (x) redondea hacia cero 5 floor (x) redondea hacia menos infinito 5 round (x) redondea hacia el entero más próximo 6 Table 3.2: Funciones de Aproximación (con x escalar, vector o matriz, pero redondearía en cada caso los elemento individ- ualmente) 1 2 Ejemplo: 3 >> round ( [19.54646 13.656 -2.1565 0.78] ) 4 ans = 20 14 -2 1 3.1.2 TRIGONOMETRÍA Mostramos las funciones trigonomietricas mas representatativas. 7
  12. 12. 3 Acerca de las Variables Función ¿que Hace? . . . (x) función trigonométrica con elángulo expresado en radianes sin(x) Seno (Radianes) cos(x) Coseno tan(x) Tangente sec(x) Secante csc(x) Cosecante ctg(x) Cotangente . . . d (x) función trigonométrica con elángulo expresado en grados sind (x) Seno (Grados) . . . h (x) función trigonométrica hiperbólica con el ángulo expresado en radianes sinh (x) seno hiperbólico (radianes) a. . . (x) inversa de la función trigonométrica con el resultado expresado en radianes asin (x) arco seno (radianes) a. . . d (x) inversa de la función trigonométrica con el resultado expresado en grados asind (x) arco seno (grados) a. . . h (x) inversa de la función trigonométrica hiperbólica con el resultado expresado en radianes asinh (x) arco seno hiperbólico (radianes) Table 3.3: Operaciones Trigonométricas 8
  13. 13. 3.1 FUNCIONES MATEMÁTICAS COMUNES 3.1.3 ALGUNAS OPERACIONES Funcion ¿Que Hace? abs(x) valor absoluto o magnitud de un número complejo sign (x) signo del argumento si x es un valor real (-1 si es negativo, 0 si es cero, 1 si es positivo) exp(x) exponencial gcd (m,n) máximo común divisor lcm (m,n) mínimo común múltiplo log (x) logaritmo neperiano o natural log2 (x) logaritmo en base 2 log10 (x) logaritmo decimal mod(x,y) módulo después de la división rem (x,y) resto de la división entera sqrt (x) raíz cuadrada nthroot (x,n) raíz n-ésima de x Table 3.4: Operaciones Comúnes (“x” e “y” cualquier escalar, “m” y “n” enteros) Ejemplos: 1 >> abs (-7) % valor absoluto de -7 2 ans = 7 3 >> rem (12 ,5) % resto de la división de 12 entre 5 4 ans = 2 9
  14. 14. 4 Vectores y Matrices 4.1 Como Definir Para crear un vector introducimos los valores deseados separados por espacios (o comas) todo ello entre corchetes []. Si lo que queremos es crear una matriz lo hacemos de forma análoga pero separando las filas con puntos y comas (;). Generalmente usaremos letras mayúsculas cuando nombremos a las matrices y minús- culas para vectores y escalares. Esto no es imprescindibley Matlab no lo exige,pero resulta útil. Ejemplos: 1 >> x = [5 7 -2 4 -6] % es un vector , los elementos los separamos con espacios 2 x = 5 7 -2 4 -6 3 4 >> y = [2,1,3,7] % es otro vector , los elementos los separamos con comas 5 y = 2 1 3 7 6 7 >> z = [0 1 2,3 4,5] % es otro vector , da igual separar los elementos por comas o espacios 8 z = 0 1 2 3 4 5 9 10 >> A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 columnas 11 A=1 2 3 12 4 5 6 4.2 DIRECCIONAMIENTO DE ELEMETOS DE VECTORES Y MATRICES Para acceder a los elementos individuales de un vector lo haremos utilizando sub- índices, así x(n) sería el n-ésimo elemento del vector x. Si queremos acceder al último podemos indicarlo usando end como subíndice. 1 >> x = [5 7 -2 4 -6]; 2 >> x (2) % segundo elemento del vector x 3 ans = 7 10
  15. 15. 4.2 DIRECCIONAMIENTO DE ELEMETOS DE VECTORES Y MATRICES 4 >> x (end) % último elemento del vector x 5 ans = -6 ara acceder a un bloque de elementos a la vez, se usa la notación de dos puntos (:), así x (m:n) nos da todos los elementos desde el m-ésimo hasta el n-ésimo del vector x. 1 >> x (2:4) % devuelve desde el segundo al cuarto elemento del vector x 2 ans = 7 -2 4 Si introducimos un número entre el primero y el segundo también separado por dos puntos (:) se mostrarán los elementos del primero al último indicado, incrementados según el número que aparece en el centro (o decrementados si el número es negativo). 1 >> x (1:2:5) % devuelve el primero , tercero y quinto elemento del vector x 2 ans = 5 -2 -6 Otra forma de obtener un conjunto concreto de elementos del vector es indicando entre corchetes [] las posiciones de los elementos que queremos obtener poniendo paréntesis fuera de los corchetes. 1 >> x ( [3 5 1] ) % devuelve el tercer , quinto y primer elemento del vector x 2 ans = -2 -6 5 Para acceder a los elementos de unamatriz necesitamos dar dos valores, el primero indica la fila y el segundo la columna. 1 >> A = [1 2 3; 4 5 6]; 2 >> A (2,1) % elemento de la matriz que está en la fila 2 y en la columna 1 3 ans = 4 Si queremos que escriba toda una fila usaremos los dos puntos para indicar que queremos todos los elementos. 1 >> A (2,:) % escribe la segunda fila de la matriz 2 ans = 4 5 6 Y similar si queremos que escriba toda una columna pero ahora situamos los dos puntos en el lugar de las filas para indicar que queremos todas las filas de esa columna. 1 >> A (:,2) % escribe la segunda columna de la matriz 2 ans = 2 3 5 Al igual que con los vectores podemos indicar que escriba una serie de filas o columnas, la manera de hacerlo sería muy parecido. 11
  16. 16. 4 Vectores y Matrices 1 2 >> A (2 ,2:3) % escribe de la segunda fila de la matriz , las columnas de la 2 a la 3 3 ans = 5 6 4 5 >> A (2, [3 1] ) % escribe de la segunda fila de la matriz , las columnas 3 y 1 6 ans = 6 4 7 8 >> A ( [2 1] , 2:3) % escribe delas filas 2 y 1 de la matriz , las columnas de la 2 a la 3 9 ans = 5 6 10 2 3 11 12 >> A (end , [1 3] ) % escribe de laúltima fila , las columnas 1 y 3 13 ans = 4 6 Matlab tiene además otra forma de identificar cada elemento de una matriz, de modo que podemos acceder a un elemento de una matriz indicando sóloun valor y no dos, pero debemos saber que el orden elegido por Matlab es por columnas así los elementos de la matriz A serían denominados: A(1) A(3) A(5) A(2) A(4) A(6) Ejemplo: Como la matriz A que teníamos era A= 1 2 3 4 5 6 1 >> A (5) % accede al elemento 5 de la matriz , es decir , igual que si escribiéramos A (1,3) 2 ans = 3 Pero es preferible para evitar confusiones trabajar con los elementos de las matrices indicando la fila y la columna correspondiente. 4.3 CONSTRUCCIÓN ABREVIADA DE ALGUNOS VECTORES A parte de definir un vector introduciendo cada uno de sus elementos, también pode- mos crearlo haciendo uso de las siguientes sentencias: (a:b) crea un vector que comienza en el valor ay acaba en el valor baumentando de 1 en 1. 12
  17. 17. 4.4 CONSTRUCCIÓN DE ALGUNAS MATRICES (a:c:b) crea un vector que comienza en el valor a y acaba en el valor baumentando de cen c. linspace(a,b,c) genera un vector linealmente espaciado entre los valores ay bcon celementos. linspace (a,b) genera un vector linealmente espaciado entre los valores ay bcon 100 elementos. logspace (a,b,c) genera un vector logarítmicamente espaciado entre los valores 10^ay 10^bcon c elementos. logspace (a,b) genera un vector logarítmicamente espaciado entre los valores 10^ay 10^bcon 50 elementos. Ejemplos: 1 >> (1:7) % crea un vector que comienza en1 , aumenta de 1 en 1 y acaba en 7 2 ans = 1 2 3 4 5 6 7 3 4 >> (1:3:10) % crea un vector que comenzando en 1, aumenta de 3 en 3 hasta el 10 5 ans = 1 4 7 10 6 7 >> (1:4:10) % comenzando en 1, aumenta de 4 en 4 hasta el 10 y por eso acaba en 9 8 ans = 1 5 9 9 10 >> (50: -7:1) % crea un vectorque comenzando en 50, disminuye de 7 en 7 hasta el 1 11 ans = 50 43 36 29 22 15 8 1 12 13 >> linspace (2,6,3) % genera un vector desde el 2 al 6 con 3 elementos equidistantes 14 ans = 2 4 6 4.4 CONSTRUCCIÓN DE ALGUNAS MATRICES Al igual que pasa con los vectores, existen unas sentencias que nosayudan a crear más rápidamente algunas matrices que Matlab ya tiene predefinidas (my ndeben tomar valores naturales): zeros(n): crea una matriz cuadrada n x n de ceros. zeros(m,n): crea una matriz m x n de ceros. ones(n): crea una matriz cuadrada n x n de unos. ones(m,n): crea una matriz m x n de unos. 13
  18. 18. 4 Vectores y Matrices rand(n): crea una matriz cuadrada n x n de númerosaleatorios con distribución uniforme (0,1). rand(m,n): crea una matriz m x n de números aleatorios con distribución uniforme (0,1). randn(n): crea una matriz cuadrada n x n de númerosaleatorios con distribución normal (0,1). randn(m,n): crea una matriz m x n de números aleatorios con distribución normal (0,1). eye(n): crea una matriz cuadrada n x n de unos en la diagonal y ceros el resto. eye(m,n): crea una matriz m x n de unos en la diagonal y ceros el resto. magic(n): crea una matriz cuadrada n x n de enteros de modo que sumen lo mismo las filas y las columnas. hilb(n): crea una matriz cuadrada n x n de Hilbert,es decir, los elementos (i,j) responden a la expresión (1/(i+j-1)). invhilb(n): crea una matriz cuadrada n x n que es la inversa de la matriz de Hilbert. Ejemplos: 1 >> zeros (3) % matriz cuadrada 3 x 3 de ceros 2 ans = 0 0 0 3 0 0 0 4 0 0 0 5 >> zeros (2,5) % matriz 2 x 5 de ceros 6 ans = 0 0 0 0 0 7 0 0 0 0 0 8 >> ones (2,3) % matriz de unos 9 ans = 1 1 1 10 1 1 1 14
  19. 19. 4.5 OPERACIONES BÁSICAS CON MATRICES 4.5 OPERACIONES BÁSICAS CON MATRICES Símbolo Expresión Operación + A+B Suma de matrices - A-B Resta de matrices * A*B Multiplicación de matrices .* A.*B Multiplicación elemento a elemento de matrices / A/B División de matrices por la derecha ./ A./B División elemento a elemento de matrices por la derecha ^ A^n Potenciación (n debe ser un número, no una matriz) .^ A.^B Potenciación elemento a elemento de matrices ’ A’ Trasposición compleja conjugada Cuadro 4.1: Operaciones Básicas con Matrices 4.6 FUNCIONES PARA OPERAR CON VECTORES Función ¿Que Hace? cross (x,y) producto vectorial entre los vectores x e y dot (x,y) producto escalar entre los vectores x e y Cuadro 4.2: Funciones Operar Vectores 4.7 FUNCIONES PARA ANALIZAR MATRICES Funciones ¿Que Hace? det (A) Determinante diag (v) crea una matriz diagonal con elvector v sobre la diagonal diag (A) extrae la diagonal de la matriz A como un vector columna inv (A) matriz inversa length (A) máxima dimensión poly (A) polinomio característico size (A) dimensiones rank (A) rango eig (A) valores propios Table 4.3: Fuciones para Analizar Matrices Ejemplo: 15
  20. 20. 4 Vectores y Matrices 1 >> v = [1 2 3]; 2 >> diag (v) % crea una matriz diagonal a partir del vector v 3 ans = 1 0 0 4 0 2 0 5 0 0 3 6 7 >> A = [1 2 3 4; 7 8 9 2; 2 4 6 8] 8 A = 1 2 3 4 9 7 8 9 2 10 2 4 6 8 11 12 >> diag (A) % crea un vector columna a partir de la diagonal de la matriz A 13 ans = 1 14 8 15 6 16 17 >> size (A) % devuelve las dimensiones de la matriz como un vector fila 18 ans = 3 4 19 20 >> length (A) % devuelve la mayor delas dos dimensiones de la matriz 21 ans = 4 22 23 >> rank (A) % rango de la matriz 24 ans = 2 16
  21. 21. 5 OPERACIONES RELACIONALES Y LÓGICAS Como entradas a las expresiones relacionales y lógicas, Matlab considera que cero es falso y que cualquier número distinto de cero es verdadero. La salida de expresiones de este tipo produce 1 si es verdadero y 0 si es falso. 5.1 OPERADORES DE RELACION Operador ¿Qué significa? < menor que <= menor o igual que > mayor que >= mayor o igual que == igual a ~= distinto de Table 5.1: Operadores de relacion La salida de las operaciones lógicas se puedeutilizar también en operaciones matemáti- cas. 5.2 OPERADORES LÓGICOS Operador ¿Qué significa? & Y | O ~ No Table 5.2: Operadores Lógicos 17
  22. 22. 6 GRÁFICAS 6.1 2-D La orden “plot” genera una gráfica. Los argumentos deben ser vectores de la misma longitud. Ejemplo 1 2 >> t=0:0.1:10; 3 >> plot(t,sin(t)) Figure 6.1: Plot 2D La función plotnos permite otras opciones como superponer gráficas sobre los mismos ejes: Ejemplo: 1 2 >> t=0:0.1:10; 3 >> plot(t,sin(t),t,tan(t)) 18
  23. 23. 6.1 2-D Figure 6.2: Plot 2D- Dos Graficas Además podemos colocar etiquetas o manipular la gráfica: Funcion Que Hace? >> xlabel(’texto’) etiqueta sobre el eje X dela gráfica actual: >> ylabel(’texto’) etiqueta sobre el eje Y dela gráfica actual: >> title(’texto’) título en la cabecera de la gráfica actual: >> text(x,y, ’texto’) texto en el lugar especificado por las coordenadas: >> gtext(’texto’) texto, el lugar lo indicamos después con el ratón: >> grid dibujar una rejilla: >> axis( [xmin xmax ymin ymax] ) fija valores máximo y mínimo de los ejes: >> axis equal fija que la escala en los ejes sea igual: >> axis square fija que la gráfica sea un cuadrado: >> axis normal desactiva axis equaly axis square: >> hold on abre una ventana de gráfico: >> hold off borra lo que hay en la ventana de gráfico: Table 6.1: Funciones para Graficas Si queremos cambiar la apariencia de la gráfica basta pinchar en el último botón de la barra de herramientas del la figura y se abrirán unos cuadros en los laterales que nos permitirán ir haciendo los cambios deseados como darle nombre a los ejes. 19
  24. 24. 6 GRÁFICAS Figure 6.3: Grafica Extendida Una ventana gráfica se puede dividir en mparticiones horizontales y en nverticales, de modo que cada subventana tiene sus propios ejes, y para hacer esto vamos a usar subplot (m,n,p)donde p indica la subdivisión que se convierte en activa. 1 >> x = 1:360; y1 = sind (x); y2 = cosd(x); y3 = exp (x); y4 = exp (-x); 2 >> subplot (2,2,1), plot (x,y1), title (’seno ’) 3 >> subplot (2,2,2), plot (x,y2), title (’coseno ’) 4 >> subplot (2,2,3), plot (x,y3), title (’exponencial ’) 5 >> subplot (2,2,4), plot (x,y4), title (’-exponencial ’) Figure 6.4: Subplot Para dibujar polígonos podemos usar la función plot pero teniendo en cuenta que el 20
  25. 25. 6.2 3-D último pun ambos vectores deben coincidir para que la gráfica quede cerrada. Pero si lo que queremos e quede coloreado todo el interior del polígono debemos usar mejor la función fill, tiene argumentos, los dos vectores que forman los puntos y un tercer argumento para indicar el color. Ejemplo: 1 2 >> x = [-2 0 2 0 -2]; y = [4 8 4 0 4]; 3 >> fill (x,y,’r’) % dibuja el polígono , ’r’ indica el color rojo Figure 6.5: Grafica - Función Fill 6.2 3-D Gráficos de línea: También podemos crear gráficas en 3 dimensiones, se trata de extender la orden de plot(2-D) a plot3 (3-D) donde el formato será igual perolos datos estarán en tripletes: 1 2 >> x = -720:720; y = sind (x); z = cosd (x); 3 >> plot3 (x,y,z) 21
  26. 26. 6 GRÁFICAS Figure 6.6: Grafica 3D - Linea Podemos hacer girar la gráfica usando de la barra de herramientas el botón Superficie de malla: La orden [X,Y]=meshgrid(x,y) crea una matriz X cuyas filas son copias del vector x y una matriz Y cuyas columnas son copias del vector y. Para generar la gráfica de malla se usa la orden mesh(X,Y,Z), mesh acepta un argumento opcional para controlar los colores. También puede tomar una matriz simple como argumento: mesh(Z). Ejemplo: 1 >> x = -10:0.5:10; y = -10:0.5:10; 2 >> [X,Y] = meshgrid (x,y); % crea matrices para hacer la malla 3 >> Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1); 4 >> mesh (X,Y,Z) % dibuja la gráfica 22
  27. 27. 6.2 3-D Figure 6.7: Grafica 3D - Malla Gráfica de superficie: Es similar a la gráfica de malla, pero aquí se rellenan los espacios entre líneas. La orden que usamos es surfcon los mismos argumentos que para mesh. 1 >> x = -10:0.5:10; y = -10:0.5:10; 2 >> [X,Y] = meshgrid (x,y); % crea matrices para hacer la malla 3 >> Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1); 4 >> surf (X,Y,Z) % dibuja la superficie 23
  28. 28. 6 GRÁFICAS Figure 6.8: Grafica 3D - Malla 24
  29. 29. 7 COMO PROGRAMAR EN MATLAB 7.1 SENTENCIA FOR Un bloque for en cada iteración asigna a la variable la columna i-ésima de la expresión y ejecuta las órdenes. En la práctica las expresiones suelen ser del tipo escalar:escalar en cuyo caso las columnas son escalares. for Variable=Expresion <orden> <orden> ... <orden> end Ejemplo: 1 >> for x = 1:5 2 disp (’x toma el valor ’) % escribe por pantalla el texto que se indica entre las comillas disp (x) % escribe el valor de la variable x 3 end 4 x toma el valor % es lo que devuelve por pantalla 5 1 6 7 x toma el valor 8 9 2 10 x toma el valor 11 12 3 13 x toma el valor 14 15 4 16 x toma el valor 17 18 5 25
  30. 30. 7 COMO PROGRAMAR EN MATLAB 7.2 SENTENCIA WHILE Un bloque while ejecuta las órdenes mientras todos los elementos de la expresión sean verdaderos while <Expresion> <orden> <orden> ... <orden> end Ejemplo: 1 >> a=3; 2 >> while a < 5 3 disp (’a es menor que 5 ya que vale ’) 4 disp (a) a = a + 1; 5 end 6 7 a es menor que 5 ya que vale % es lo que devuelve por pantalla 8 3 9 10 a es menor que 5 ya que vale 11 4 7.3 SENTENCIA IF Un bloque if puede escribirse de varias maneras distintas. Lo que hace es evaluar una expresión lógica y si es cierta ejecuta las órdenes que encuentre antes del end. if <Expresion> <orden evaluada si la expresion es verdadera> end Puede que nos interese que en caso de no ejecutar dicha orden ejecute otra distinta. Esto se lo indicaremos usando elsedentro del bloque. if <Expresion> <orden evaluada si la expresion es verdadera> else <orden evaluada si la expresion es falsa> end 26
  31. 31. 7.4 SENTENCIA BREAK Si queremos dar una estructura mucho más completa, usaremos la más general donde sólo se evalúan las órdenes asociadas con la primera expresión verdadera de todas. En cuanto la evalúe deja de leer el resto y se dirige directamente al end. if <Expresion1> <orden evaluada si la expresion1 es verdadera> elseif <Expresion2> <orden evaluada si la expresion2 es Verdadera> elseif <Expresion3> <orden evaluada si la expresion3 es Verdadera> ... else <orden evaluada si Ninguna otra expresioón es Verdadera> end 1 2 >> b = 2; 3 >> if b == 0 % ponemos == porque no es unaasignación sino una expresión lógica 4 disp (’b vale 0’) 5 elseif b == 1 6 disp (’b vale 1’) 7 elseif b == 2 8 disp (’b vale 2’) 9 elseif b == 3 10 disp (’b vale 3’) 11 else 12 disp (’b no vale ni 0 ni 1 ni 2 ni 3’) 13 end 14 15 b vale 2 % es lo que devuelve por pantalla 7.4 SENTENCIA BREAK Si queremos que en un momento dado termine la ejecución de un bucle foro un bucle while usaremos break. Ejemplo: Podemos mezclar en un programa varias sentenciasde este estilo. Aquí podemos ver un programa que escribe por pantalla los primos del 1 al100 usando las sentencias if, while y for. 1 2 disp(’Estos son los números primos menores de 100’) 3 disp (2) 27
  32. 32. 7 COMO PROGRAMAR EN MATLAB 4 for i=2:100 5 n=2; 6 whilen <= sqrt(i) 7 if rem(i,n)==0 8 n=i; 9 else n=n+1; 10 end 11 end 12 if n~=i 13 disp(i) 14 end 15 end 28
  33. 33. 8 FUNCIONES ARCHIVOS.M Existen dos tipos de M-archivo, es decir, de archivos con extensión *.m. Un tipo son los ficheros de comandos (es un archivo stript) y el otro son la funciones. Un fichero de comandos contiene simplemente un conjunto de comandos que se eje- cutan sucesivamente cuando se teclea el nombre del fichero en la línea de comandos de Matlab o se incluye dicho nombre en otro fichero *.m. Las funciones permiten definir funciones análogas a las de Matlab, con su nombre, argumentos y valores de salida. La primera línea que no sea comentario debe em- pezar por la palabra function, seguida por los valores desalida (entre corchetes [ ] y separados por comas si hay más de uno), el signo igual (=) y el nombre de la función seguido delos argumentos (entre paréntesis ( ) y separados por comas): function [a,b,c] = nombre_función (x,y,z) En las líneas siguientes escribimos los argumentos de salida a partir de los de entrada. El nombre de la función y el nombre del archivo deben ser idénticos y no empezar por cifra sino por letra. Todas las variables dentro de una función se aíslan del espacio de trabajo de Matlab. Las únicas conexiones entre las variables dentro de una función y el espacio de trabajo de Matlab son las variables de entrada y salida. El número de variables de entrada pasadas a una función está disponible dentro de la función en la variable nargin y el número de variables de salida solicitadas cuando una función es llamada, está disponible dentro de la función en la variable nargout. Debemos tener siempre en cuenta que los argumentos pueden ser vectores, luego si queremos que las operaciones se hagan elemento a elemento y no vectorialmente debemos usar el punto. Ejemplo: En un M-archivo guardamos lo siguiente: 1 2 function[suma ,resta] = calculos(x,y) % la función se llama calculos 3 suma = x + y; 4 resta = x - y; Ahora si queremos usarlo, debemos escribirpor ejemplo en la ventana de comandos: 29
  34. 34. 8 FUNCIONES ARCHIVOS.M 1 2 >> x = 1:10; y = 16: -2: -2; 3 >> [a,b] = calculos(x,y) 4 a = 17 16 15 14 13 12 11 10 9 8 5 b = -15 -12 -9 -6 -3 0 3 6 9 12 6 7 >> x = [1 5; 3 -2; 3 7; 4 -1; 0 2]; 8 y = [16 -1; 0 4; 1 5; -1 0; -1 3]; 9 >> [a,b] = calculos(x,y) 10 11 a = 17 4 12 3 2 13 4 12 14 3 -1 15 -1 5 16 17 b = -15 6 18 3 -6 19 2 2 20 5 -1 21 1 -1 30
  35. 35. 9 POLINOMIOS 9.1 RAÍCES Un polinomio se representa por un vector fila con sus coeficientes en orden descendi- ente, no debemos olvidar colocar los términos con coeficiente nulo. Así por ejemplo si queremos indicar el polinomio 5x 4 + 2x 2 – x + 7 escribiríamos [5 0 2 -1 7]. Para encontrar las raíces de un polinomio “p” usaremos la función roots(p). Si conocemos las raíces de un polinomio es posible construir el polinomioasociado mediante la función poly(r). Matlab trabaja con los polinomios como vectores fila y con las raíces como vectores columnas. Ejemplo: 1 >> p = [1 -9 13 9 -14]; % representa al polinomio x 4 -9x 3 +13x 2 -9x-14 2 >> roots (p) % calcula sus raíces 3 4 ans = 7.0000 5 -1.0000 6 2.0000 7 1.0000 8 9 >> poly (ans) % devuelve el polinomiogenerado por esas cuatro raíces 10 11 ans = 1.0000 12 -9.0000 13 13.0000 14 9.0000 15 -14.0000 31
  36. 36. 9 POLINOMIOS 9.2 OTRAS FUNCIONES CON POLINOMIOS Función ¿Qué es? conv (p,q) multiplica los dos polinomios p y q deconv (c,q) divide el polinomio c entre q polyder (p) calcula la derivada del polinomio p polyder (p,q) calcula la derivada del producto de los polinomios p y q polyval (p,A) evalúa el polinomio p en todos los valores de la matriz A Table 9.1: Funciones con Polinomios 1 2 >> p = [1 2 7]; 3 >> q = [1 3 6]; % polinomios 4 >> c = conv (p,q) % productode los polinomios p y q c = 1 5 19 33 42 5 >> deconv (c,q) % cociente de dividir el polinomio c entre el polinomio q ans = 1 2 7 6 >> polyder (p) % derivada del polinomio p ans = 2 2 7 >> polyder (p,q) % derivada del producto de los polinomios p y q 8 ans = 4 15 38 33 32
  37. 37. Bibliography [1] The MathWorks, Inc (2013). Getting Start Guide MATLAB Primer 2013a. [2] Harol Klee, (2007). Simulation of Dynamic System with Matlab and Simulink. CRC Press 33

×