Matlab presentacion
-
Upload
robin-ayala -
Category
Documents
-
view
19 -
download
0
description
Transcript of Matlab presentacion
1
T u t o r i a l d e M A T L A B
Mtro. Juan Gustavo Ruiz Barajas agosto 2011
Tutorial de MATLAB
MATLAB es el nombre abreviado de “MATrix LABoratory”. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Trabaja con números escalares, reales, complejos, con cadenas de caracteres Realizar una amplia variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio.
2
Tutorial de MATLAB
3
LEAN CON DETENIMIENTO LOS PÁRRAFOS SIGUIENTES Y NO INTENTE INTRODUCIR DATOS HASTA QUE SE LE INDIQUE:
Matlab es una herramienta poderosa usada por ingenieros y científicos de todo el mundo para resolver diversos problemas que requieren cálculos complejos bajo una secuencia de instrucciones y respaldado por una compañía de software Profesional: The Math Works Inc.La parte de este taller esta orientado para que el estudiante tenga capacidad de graficar señales.
Su contenido se enumera a continuación:
1.- Matrices y operadores.
2.- Funciones y comandos propios de Matlab.
3.-Graficación de señales.
Tutorial de MATLAB
Sobre las pantallas que aparecen al abrir el programa:
Al abrir MATLAB normalmente aparecen tres pantallas:
1.- La primera de la izquierda (launch pad) en donde se localizan todos los directorios y demos.
2.- La segunda abajo a la izquierda (command history) en la parte inferior donde se genera un histórico de los comandos y variables que se usan.
3.- La tercera de la derecha (command window) se considera la pantalla principal y es precisamente donde se declaran las variables y comandos de un programa en la cual se ubica el símbolo ‘»’. Ver Fig.1.
4
Tutorial de MATLAB
5
Fig. No. 1 Pantallas de MATLAB
Tutorial de MATLAB
Los componentes más importantes del entorno de trabajo son los siguientes:
1. El Escritorio de Matlab (Matlab Desktop), que es la ventana o contenedor de máximo nivel en la que se pueden situar (to dock) las demás componentes.
6
Entorno de trabajo de MATLAB
Tutorial de MATLAB
Entorno de trabajo de MATLAB2. Los componentes individuales, orientados a tareas concretas, entre los que se puede citar:
a. La ventana de comandos (Command Window),b. La ventana histórica de comandos (Command History Browser),c. El espacio de trabajo (Workspace Browser),d. La plataforma de lanzamiento (Launch Pad),e. El directorio actual (Current Directory Browser),f. La ventana de ayuda (Help Browser)g. El editor de ficheros y depurador de errores (Editor&Debugger),h. El editor de vectores y matrices (Array Editor).
7
Tutorial de MATLAB
ESCRITORIO DE MATLAB (MATLAB DESKTOP)
Cuando se arranca MATLAB por primera vez o cuando se ejecuta el comando View/Desktop Layout/Default aparece una ventana como la mostrada en la Figura 6.
8Figura 6. Configuración por defecto del Matlab Desktop
Tutorial de MATLAB
La Figura 7 muestra un detalle del menú View, desde el que se controlan los componentes visibles y la forma en que se visualizan
9Figura 7. Menú para configurar el Matlab Desktop
ESCRITORIO DE MATLAB (MATLAB DESKTOP)
Tutorial de MATLAB
Clicando sobre la barra de título y arrastrando una sub-ventana activa (Figura 8) se puede llevar a otra parte del Desktop, obteniéndose el resultado mostrado en la Figura 9.
10
ESCRITORIO DE MATLAB (MATLAB DESKTOP)
Figura 8. Arrastrar una pestaña desde una sub-ventana. Figura 9. Creación de una nueva sub-ventana.
Tutorial de MATLAB
El search path de MATLAB es una lista de directorios que se puede ver y modificar a partir de la línea de comandos, o utilizando el cuadro de diálogo Set Path, del menú File.
11
ESCRITORIO DE MATLAB (MATLAB DESKTOP)
>> pathMATLABPATHC:\matlabR12\toolbox\matlab\generalC:\matlabR12\toolbox\matlab\opsC:\matlabR12\toolbox\matlab\lang...C:\matlabR12\toolbox\matlab\verctrlC:\matlabR12\toolbox\matlab\winfunC:\matlabR12\toolbox\matlab\demosC:\matlabR12\toolbox\local
Tutorial de MATLAB
WORKSPACE BROWSER Y ARRAY EDITOR
El espacio de trabajo de MATLAB (Workspace) es el conjunto de variables y de funciones de usuario que en un determinado momento están definidas en la memoria del programa
12
>> whosName Size Bytes ClassA 3x3 72 double arrayB 3x3 72 double arrayC 3x3 72 double arrayD 3x3 72 double arrayGrand total is 36 elements using 288 bytes
Tutorial de MATLAB
Guardar variables y estados de una sesión: Comandos save y load
Para guardar el estado de una sesión de trabajo existe el comando save. Si se teclea:
>> save
Dicho estado puede recuperarse la siguiente vez que se arranque el programa con el comando:
>> load
13
Tutorial de MATLAB
Líneas de comentarios
El carácter tanto por ciento (%) indica comienzo de comentario% almacena 8 cifras decimales
14
Tutorial de MATLAB
OPERACIONES CON MATRICES Y VECTORES
MATLAB como programa interactivo, en el que se irán definiendo las matrices, los vectores y las expresiones que los combinan y obteniendo los resultados, los cuales son asignados a otras variables podrán ser utilizados posteriormente en otras expresiones. En este sentido MATLAB sería como una potente calculadora matricial
15
Tutorial de MATLAB
Definición de matrices desde tecladoLas matrices se definen por filas; los elementos de una misma fila están separados por blancos o comas, mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión (3x3):
>> A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es la siguiente:A = 1 2 3 4 5 6 7 8 9
16
Tutorial de MATLAB
A partir de este momento la matriz A está disponible para hacer cualquier tipo de operación una sencilla operación con A es hallar su matriz traspuesta. En MATLAB el apóstrofo (') es el símbolo de trasposición matricial. Para calcular A' (traspuesta de A) basta teclear lo siguiente (se añade a continuación la respuesta del programa):
>> A'
ans = 1 4 7 2 5 8 3 6 9
17
Tutorial de MATLAB
Operaciones con matrices
Los operadores matriciales de MATLAB son los siguientes:+ adición o suma– sustracción o resta* multiplicación' traspuesta^ potenciación\ división-izquierda/ división-derecha.* producto elemento a elemento./ y .\ división elemento a elemento.^ elevar a una potencia elemento a elemento
18
Tutorial de MATLAB
En MATLAB existe también la posibilidad de aplicar elemento a elemento los operadores matriciales (*, ^, \ y /). Para ello basta precederlos por un punto (.). Por ejemplo:>> [1 2 3 4]^2
??? Error using ==> ^Matrix must be square.>> [1 2 3 4].^2
ans = 1 4 9 16>> [1 2 3 4]*[1 -1 1 -1]
??? Error using ==> *Inner matrix dimensions must agree.>> [1 2 3 4].*[1 -1 1 -1]
ans = 1 -2 3 -4
19
Tutorial de MATLAB
NÚMEROS COMPLEJOS: FUNCIÓN COMPLEX
En muchos cálculos matriciales los datos y/o los resultados no son reales sino complejos, con parte real y parte imaginaria. Ejecútense los siguientes comandos:>> a=sqrt(-4)
a = 0 + 2.0000i>> 3 + 4j
ans = 3.0000 + 4.0000i
20
Tutorial de MATLAB
CADENAS DE CARACTERES
En MATLAB las cadenas de texto van entre apóstrofos o comillas simples (Nótese que en C van entre comillas dobles:"cadena". Por ejemplo, en MATLAB:s = 'cadena de caracteres'
21
Tutorial de MATLAB
TIPOS DE MATRICES PREDEFINIDOS
Algunas de estas funciones son las siguientes:eye(4) forma la matriz unidad de tamaño (4x4)zeros(3,5) forma una matriz de ceros de tamaño (3x5)zeros(4) ídem de tamaño (4x4)ones(3) forma una matriz de unos de tamaño (3x3)ones(2,4) idem de tamaño (2x4)linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2
22
Tutorial de MATLAB
logspace(d1,d2,n) genera un vector con n valores espaciados logarítmicamente entre 10^d1 y 10^d2. Si d2 es pi6, los puntos se generan entre 10^d1 y pi
rand(3) forma una matriz de números aleatorios entre 0 y 1, con distribución uniforme, de tamaño (3x3)rand(2,5) idem de tamaño (2x5)randn(4) forma una matriz de números aleatorios de tamaño (4x4), con distribución normal, de valor medio 0 y varianza 1.magic(4) crea una matriz (4x4) con los números 1, 2, ... 4*4, con la propiedad de que todas las filas y columnas suman lo mismo
23
Tutorial de MATLAB
hilb(5) crea una matriz de Hilbert de tamaño (5x5). La matriz de Hilbert es una matriz cuyos elementos (i,j) responden a la expresión (1/(i+j-1)). Esta es una matriz especialmente difícil de manejar por los grandes erroresnuméricos a los que conduceinvhilb(5) crea directamente la inversa de la matriz de Hilbertkron(x,y) produce una matriz con todos los productos de los elementos del vector x por los elementos del vector y. Equivalente a x'*y, donde x e y son vectores filacompan(pol) construye una matriz cuyo polinomio característico tiene como coeficientes los elementos del vector pol (ordenados de mayor grado a menor)vander(v) construye la matriz de Vandermonde a partir del vector v (las columnas son las potencias de los elementos de dicho vector)
24
Tutorial de MATLAB
OPERADOR DOS PUNTOS (:)
El operador (:) representa un rango: en este caso, los números enteros entre el 1 y el 10.Para empezar, defínase un vector x con el siguiente comando:>> x=1:10
x = 1 2 3 4 5 6 7 8 9 10
25
Tutorial de MATLAB
En este caso el incremento va entre el valor inferior y el superior, en las formas que se muestran a continuación:>> x=1:2:10
x = 1 3 5 7 9>> x=1:1.5:10
x = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000
26
Tutorial de MATLAB
Operadores relacionales
El lenguaje de programación de MATLAB dispone de los siguientes operadores relacionales:< menor que> mayor que<= menor o igual que>= mayor o igual que== igual que~= distinto que
27
Tutorial de MATLAB
Operadores lógicosLos operadores lógicos de MATLAB son los siguientes:& and| or~ negación lógica
28
Tutorial de MATLAB
MATLAB tiene diversos tipos de funciones1.- Funciones matemáticas elementales.2.- Funciones especiales.3.- Funciones matriciales elementales.4.- Funciones matriciales específicas.5.- Funciones para la descomposición y/o factorización de matrices.6.- Funciones para análisis estadístico de datos.7.- Funciones para análisis de polinomios.8.- Funciones para integración de ecuaciones diferenciales ordinarias.9.- Resolución de ecuaciones no-lineales y optimización.10.- Integración numérica.11.- Funciones para procesamiento de señal.
29
Tutorial de MATLAB
Funciones matemáticas elementales que operan de modo escalar
sin(x) senocos(x) cosenotan(x) tangenteasin(x) arco senoacos(x) arco cosenoatan(x) arco tangente (devuelve un ángulo entre -p/2 y +p/2)atan2(x) arco tangente (devuelve un ángulo entre -p y +p); se le pasan 2 argumentos, proporcionales al seno y al coseno
30
Tutorial de MATLAB
sinh(x) seno hiperbólicocosh(x) coseno hiperbólicotanh(x) tangente hiperbólicaasinh(x) arco seno hiperbólicoacosh(x) arco coseno hiperbólicoatanh(x) arco tangente hiperbólicalog(x) logaritmo naturallog10(x) logaritmo decimalexp(x) función exponencialsqrt(x) raíz cuadrada
31
Funciones matemáticas elementales que operan de modo escalar
Tutorial de MATLAB
sign(x) devuelve -1 si <0, 0 si =0 y 1 si >0. Aplicada a un número complejo, devuelve un vector unitario en la misma direcciónrem(x,y) resto de la división (2 argumentos que no tienen que ser enteros)mod(x,y) similar a rem (Ver diferencias con el Help)round(x) redondeo hacia el entero más próximofix(x) redondea hacia el entero más próximo a 0floor(x) valor entero más próximo hacia -¥
32
Funciones matemáticas elementales que operan de modo escalar
Tutorial de MATLAB
ceil(x) valor entero más próximo hacia +¥gcd(x) máximo común divisorlcm(x) mínimo común múltiploreal(x) partes realesimag(x) partes imaginariasabs(x) valores absolutosangle(x) ángulos de fase
33
Funciones matemáticas elementales que operan de modo escalar
Tutorial de MATLAB
Funciones que actúan sobre vectores
Las siguientes funciones actúan sobre vectores (no sobre matrices ni sobre escalares)[xm,im]=max(x) máximo elemento de un vector. Devuelve el valor máximo xm y la posición que ocupa immin(x) mínimo elemento de un vector. Devuelve el valor mínimo y la posición que ocupasum(x) suma de los elementos de un vectorcumsum(x) devuelve el vector suma acumulativa de los elementos de un vector (cada elemento del resultado es una suma de elementos del original)
34
Tutorial de MATLAB
mean(x) valor medio de los elementos de un vectorstd(x) desviación típicaprod(x) producto de los elementos de un vectorcumprod(x) devuelve el vector producto acumulativo de los elementos de un vector[y,i]=sort(x) ordenación de menor a mayor de los elementos de un vector x.Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado y.
35
Funciones que actúan sobre vectores
Tutorial de MATLAB
Funciones que actúan sobre matrices
FUNCIONES MATRICIALES ELEMENTALES:B = A' calcula la traspuesta (conjugada) de la matriz AB = A.' calcula la traspuesta (sin conjugar) de la matriz Av = poly(A) devuelve un vector v con los coeficientes del polinomio característico de la matriz cuadrada At = trace(A) devuelve la traza t (suma de los elementos de la diagonal) de una matriz cuadrada A[m,n] = size(A) devuelve el número de filas m y de columnas n de una matriz rectangular An = size(A) devuelve el tamaño de una matriz cuadrada A
nf = size(A,1) devuelve el número de filas de Anc = size(A,2) devuelve el número de columnas de A
36
Tutorial de MATLAB
FUNCIONES MATRICIALES ESPECIALESLas funciones exp(), sqrt() y log() se aplican elemento a elemento a las matrices y/o vectores que se les pasan como argumentosexpm(A) si A=XDX', expm(A) = X*diag(exp(diag(D)))*X'sqrtm(A) devuelve una matriz que multiplicada por sí misma da la matriz Alogm() es la función recíproca de expm(A)A^n está definida si A es cuadrada y n un número real. Si n es entero, el resultado se calcula por multiplicaciones sucesivas. Si n es real, el resultado se calcula como: A^n=X*D.^n*X' siendo [X,D]=eig(A)
37
Tutorial de MATLAB
Funciones para cálculos con polinomios
Para MATLAB un polinomio se puede definir mediante un vector de coeficientes. Por ejemplo, el polinomio: x4 - 8x 2 + 6x - 10 = 0Se puede representar mediante el vector [1, 0, -8, 6, -10]. MATLAB puede realizar diversas operaciones sobre él, como por ejemplo evaluarlo para un determinado valor de x (función polyval()) y calcular las raíces (función roots()):>> pol=[1 0 -8 6 -10]
pol = 1 0 -8 6 -10>> roots(pol)
ans = -3.2800 2.6748 0.3026 + 1.0238i 0.3026 - 1.0238i>> polyval(pol,1)
ans = -11
38
Tutorial de MATLAB
MATLAB utiliza una función llamada conv() (de producto de convolución). En el siguiente ejemplo se va a ver cómo se multiplica un polinomio de segundo grado por otro de tercer grado:>> pol1=[1 -2 4]
pol1 = 1 -2 4>> pol2=[1 0 3 -4]
pol2 = 1 0 3 -4>> pol3=conv(pol1,pol2)
pol3 = 1 -2 7 -10 20 -16
39
Tutorial de MATLAB
Para dividir polinomios existe otra función llamada deconv(). Las funciones orientadas al cálculo con polinomios son las siguientes:poly(A) polinomio característico de la matriz Aroots(pol) raíces del polinomio pol
polyval(pol,x) evaluación del polinomio pol para el valor de x. Si x es un vector, pol se evalúa para cada elemento de xpolyvalm(pol,A) evaluación del polinomio pol de la matriz Aconv(p1,p2) producto de convolución de dos polinomios p1 y p2
40
Tutorial de MATLAB
[c,r]=deconv(p,q) división del polinomio p por el polinomio q. En c se devuelve el cociente y en r el resto de la divisiónresidue(p1,p2) descompone el cociente entre p1 y p2 en suma de fracciones simples (ver >>help residue)polyder(pol) calcula la derivada de un polinomiopolyder(p1,p2) calcula la derivada de producto de polinomiospolyfit(x,y,n) calcula los coeficientes de un polinomio p(x) de grado n que se ajusta a los datos p(x(i)) ~= y(i), en el sentido de mínimo error cuadrático medio.
41
Tutorial de MATLAB
interp1(xp,yp,x) calcula el valor interpolado para la abscisa x a partir de un conjunto de puntos dado por los vectores xp e yp.interp1(xp,yp,x,'m') como el anterior, pero permitiendo especificar también el método de interpolación. La cadena de caracteres m admite los valores 'nearest','linear', 'spline', 'pchip', 'cubic' y 'v5cubic'.
42
Tutorial de MATLAB
43
Tutorial de MATLAB
44
EL INDICADOR : El símbolo “” en la pantalla principal ( command window) nos indica que MATLAB esta esperando que introduzcamos un comando o una variable. Para salir de MATLAB cuando sea pertinente use los comandos quit o exit.
ESCALAR, VECTOR Y MATRIZ: A = 2.5 Un sólo dato se denomina escalar.
B = 2.5, 6.4 Si una matriz tiene una sola fila o una sola columna, la llamamos vector; para ser más claros llamamos vector fila o vector columna.
Matriz : -2 0 3 El tamaño de una matriz se especifica por el número de
filas y C = 3 -4 5 de columnas; así, C es una matriz de 3 x 3. Un dato de una 0 0 2 matriz se puede identificar por los subíndices; así C23
representa el dato 5 de la matriz C, si una matriz contiene m filas y n columnas, entonces contiene un total de m x n
valores; así, C es una matriz de tamaño 3 x 3.
Tutorial de MATLAB
45
ESTILO Matlab es sensible a la diferencia entre mayúsculas y minúsculas, así que los nombres “Espacio,
ESPACIO y espacio” representan tres variables distintas.Matlab tiene la posibilidad de manejar números reales (ejem. 12.7× 10-2
se escribe 12.7 e-2 ) el número complejo de parte real 5 y parte imaginaria 2 se representa en matlab 5+2*i o como 5+j*2, las letras i y j se preasignan ambas en matlab para ser Iguales a √-1. otras constantes son pi para ∏.
DEFINICIÓN DE UNA MATRIZ La forma más sencilla de definir una matriz
es usar una lista de números, como :A = [4.5]B = [1.6, 3.1] C = [-2,0,3; 3,-4,5; 0,0,2]
Tutorial de MATLAB
46
PUNTOS SUSPENSIVOS Si hay demasiados números en una fila de una matriz para que quepan en una línea, podemos continuar la instrucción en la siguiente línea, pero se requiere una coma y tres puntos al final de la línea para indicar que la fila debe continuar. Ejemplo:H = [-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2] que se puede escribir como:
H = [-2,0,-3,4,-3,-4,...5,0,0,2,1,1,1,3,4,-0.2]
MATLAB también nos permite definir una matriz que ya se definió: Ejemplo:B =[1.5, 4.1]D = [-3, B] este comando equivale a D = [-3,1.5,4.1]
Tutorial de MATLAB
47
También podemos modificar los valores de una matriz o agregar valores adicionales usando una referencia a un lugar específico. Por ejemplo:D(3) = 6 ; Cambia el tercer valor de la matriz D del valor 4.1 por 6, para quedar como:D = [-3,1.5,6]
Así también logramos extender una matriz definiendo nuevos elementos. Si ejecutamos el siguiente comando D(4) = 2.5 ; La matriz D tendrá cuatro valores en lugar de tres, así D se verá como D = [-3, 1.5, 6, 2.5];El punto y coma ; termina la instrucción y oculta la exhibición del resultado de la operación. Teclee D = [-3, 1.5, 6, 2.5] ahora Teclee D = [-3, 1.5, 6, 2.5];
Tutorial de MATLAB
48
AHORA SI EMPIECE A TECLEAR DATOS Y COMANDOS DE LOS SIGUIENTES EJERCICIOS SÓLO TECLEA LOS VECTORES NO ESCRIBAS EL COMENTARIO %El punto y coma ; termina la instrucción y oculta la exhibición del resultado de la operación. Teclee D = [-3, 1.5, 6, 2.5] ahora Teclee D = [-3, 1.5, 6, 2.
B = [ 2; 4; 6; 10] % DEFINE UN VECTOR COLUMNA. C = [ 5, 3, 5 ; 6, 2, –3 ] % DEFINE UNA MATRIZ 2 x 3.
E = [ 3, 5, 10, 0; 0, 0 , ...0, 3; 3, 9, 9, 8 ] % COMA Y TRES PUNTOS PARA CONTINUAR UNA LINEA.
T = [ 4, 24, 9 ]
Q = [ T, 0, T ] % INTERCALA UN VALOR DE CERO ENTRE DOS VECTORES.
V = [ C ( 2, 1); B ] % DE LA MATRIZ C SELECCIONA EL VALOR (m, n) Y LO AGREGA AL VECTOR B.
A (2, 1) = - 3 % CREA UNA MATRIZ LLAMADA A Y LE ASIGNA EL VALOR DE –3 EN (m, n)
Tutorial de MATLAB
49
Lee los siguientes comentarios y prueba su validez:
El operador de dos puntos es útil para generar matrices nuevas;
Si se usa un signo de dos puntos para separar dos enteros, el operador de dos puntos generara todos los enteros entre los dos enteros especificados.tecleé:
n = 1 : 10 % Este operador es especialmente útil para generar los índices de tiempo de una señal de tiempo discreto.
También se usan los signos de dos puntos para separar tres números, el operador de dos puntos generará valores entre el primer número y el tercero, usando el segundo número como incremento: tecleé:
t = 0.0:0.5:6.0 % este operador es especialmente útil para generar los índices de tiempo continuo o un dominio de una función analógica.
El incremento también puede ser negativotecleé:r = 15:-1:0
Tutorial de MATLAB
50
EN LO SUSECIVO TRATE EN CADA EJEMPLO DONDE LO CREA ADECUADO DE PROBAR LA AUTENTICIDAD DE LOS COMANDOS Funciones especiales para generar matrices nuevas.La función size devuelve dos argumentos escalares que representan el número de filas y el número de columnas, podemos usar size para generar una matriz de ceros que tenga el mismo tamaño que la otra matriz ejemplo:TecleéW = [ 4, 3, 2; 4, 6, 3 ];F= zeros(size ( W ) )La función ones genera una matriz que solo contiene unos. TecleéC= [1, 2, 3; 4, 2, 5]; D = ones(size(C))Algunas ocaciónes es necesario conocer que variables se hallan definidas y que valores tienen almcenados el comando who lleva a cabo esta acción:Tecleé whoSi desea dejar una variable sin definición (sacarla de la lista ) se utiliza el comando: clear.
Tutorial de MATLAB
51
Operaciones con escalares , vectores y matrices: Los operadores matemáticos incorporados que se utilizan con frecuencia en matlab son:
símbolo significado símbolo significado
= Asignación - Resta
+ Adición .* Multiplicación de arreglo
* Multiplicación . ^ Potencia del arreglo
^ Potenciación . / División del arreglo
/ División & AND lógica
< > Operadores relacionales ~ NOT logica
l OR lógico ‘ Transpuesta
== Igualdad .’ Transpuesta no conjugada
Tutorial de MATLAB
Tecleé el enunciado de asignación siguiente;a=3;b=[2,6,4];c=[4,10, 2];los vectores y matrices pueden multiplicarse por un escalar:tecleé:a*bans es el nombre dado a un resultado cuando el usuario no le asigna un nombre.
Un escalar puede sumarse a un vector o matriz: tecleé:a+cLa suma de un escalar a un vector o matriz sólo añade el escalar a cada elemento del vector o matriz la resta se define de manera similar:tecleé:a-b
52
Tutorial de MATLAB
53
Los vectores y matrices se suman (o restan) como lo hacemos en matemáticas, esto es, los dos vectores o matrices deben tener la misma forma para sumarse o restarse a menos que uno de ellos sea un matriz de 1*1, un escalar, como lo vimos antes :tecleé:b+c
c-b
Los vectores y las matrices se multiplican de acuerdo a las reglas del álgebra: tecleé:b*c
Este resultado ilustra un error común en Matlab. Las matrices deben ser conmensurables para ser multiplicadas utilizando el operador *. La premultiplicación de un vector renglón de 1 por 3 como c por un vector renglón de 1 por 3 como b no esta definida. Sin embargo si c se transpusiera a un vector columna 3 por 1, se definiría la multiplicación. La transposición se efectúa con el operador ‘.tecleé:c’
b*c’
Tutorial de MATLAB
54
Operaciones elemento por elemento:A menudo es muy útil multiplicar dos vectores o matrices de la misma forma, elemento por elemento en vez de utilizar las reglas usuales de la multiplicación de matrices. Ese tipo de multiplicación se denomina multiplicación del arreglo en Matlab y se lleva a cabo utilizando el operador .*Las operaciones elemento por elemento, u operaciones de arreglos, no sólo se aplican a operaciones entre dos matrices del mismo tamaño, si no también a operaciones entre un escalar y un no escalar.
Así pruebe las instrucciones de cada uno de los siguientes juegos:tecleé:
A = [ 4, 3, 2, 4, 6 ];C = 3.*AG = A./5
Las vectores resultantes C y G tendrán el mismo tamaño que A.
Tutorial de MATLAB
55
A fin de ilustrar las operaciones de arreglos para vectores, considere los dos siguientes vectores fila:Tecleé:B = [ -6, 3, -2, 4, 6 ];
Calculemos el producto de arreglos de A y B usando las siguientes instrucciones:Tecleé:L = A.*B
El comando de división de arreglos,Tecleé:F=A./B
Asimismo la exponenciación de arreglos también es una operación elemento por elemento ejemplos;Tecleé:Z = A.^2M = A.^BTambién podemos usar una base escalar con un exponente vectorcomo;P= 3.^A
Tutorial de MATLAB
56
Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se aplican a matrices con filas y columnas, como lo podrás constatar declarando la matriz ‘d’ ejecutando las operaciones indicadas:
d= [ 1:6; -1:-1:-6 ];f=d.*6w=d.^2
GRAFICA X vs. Y: Gráficas x vs. y sencillas. Suponga que queremos graficar los siguientes datos recabados de un experimento con un modelo de coche de control remoto. El experimento se repite 10 veces, midiendo la distancia que un móvil recorre en cada ensayo.
(x) “Ensayo” (y) “Distancia”1 58.52 63.83 64.24 67.35 71.56 88.37 90.18 90.69 89.510 90.4
Tutorial de MATLAB
57
Pruebe generar esta gráfica: creando un vector llamado x con los datos de la columna “Ensayo”, y un vector llamado y con los datos de la columna “Distancia” y en seguida teclee :plot (x, y), grid y de enterSe genera automáticamente la gráfica.
“La buena práctica de ingeniería exige la inclusión de unidades y un titulo”
Por lo tanto en el código anterior incluya los siguientes comandos:
plot(x,y), title (‘Gráfica de experimento’), xlabel ( ‘Ensayo’), ylabel (‘Distancia’), grid
Si se agrega un tercer argumento en el comando plot éste controla el color y el estilo de la gráfica. Es una cadena la que determina el color de la línea, estilo de la misma y los símbolos (si los hay ) utilizado para los puntos de marca, por tanto intente dar elegancia a su grafica anterior agregando al comando plot:
plot (x,y,’ro’), grid
Tutorial de MATLAB
58
LISTA DE CARACTERES
COLOR MARCADOR ESTILO DE LINEAy amarillo . punto - continuam magenta o circulo : punteadac cyan x marca x -. guión-puntor rojo + más -- guionadag verde * asteriscob azul s cuadradow blanco d diamantek negro v triangulo(hacia abajo)
^ triangulo (hacia arriba)
Tutorial de MATLAB
59
Los archivos .m o archivos .MEste tipo de archivo es de lo más importe que se puede generar por el usuario en MATLAB, es un archivo que ejecuta las instrucciones programadas en él, y que pueden convertirse en un comando de matlab.Ahora tu crearas un archivo .m
Desde la ventana de matlab selecciona new, M-file
Aparecerá un blok de notas dentro de él, declara las siguientes variables:Tecleé:t =[0:0.001:2]; % Este vector se puede también generar con: linspace(0,0.001,2).m = 2;y = m .*t;plot(t, y, 'r', ‘linewidth’,4),grid %´linewidth´, 4 : te da el grueso de la linea.
Después guarda este código en el mismo blok de notas en la parte superior ( file save en el drive e: pendiente.m si es memoria USB) con el nombre pendiente.m, esté nombre de archivo se convierte en un comando de Matlab con el nombre pendiente.Ejecútalo en la pantalla de comandos llamándolo sólo con su nombre “pendiente” sin la extensión.m (antes de llamarlo recuerda cambiarte de directorio del C: al e: con la instrucción cd e: si es el caso) .Este archivo .m puedes llevarlo a otra computadora que tenga el programa matlab y ejecutarlo .
Tutorial de MATLAB
MATLAB provee excelentes funciones para gráficas en una y dos dimensiones.Veamos un par de ejemplos sencillos. Suponga que queremos trazar la gráfica de la
función y=t^2*e(-t.^2);
Esto lo podemos lograr con las instrucciones:Tecleé:t=[-10:.1:10]; % La primera instrucción divide el intervalo
[-10,10]en subintervalos de largo 0.1y=t .^2 .*exp(-t.^2); % Esta línea evalúa la función en los
puntos.plot(t,y,'linewidth',4),grid % Grafica la función.
60
Tutorial de MATLAB
Supongamos ahora que queremos dibujar una superficie:Tecleé:x=-10:0.5:10; %Las primeras dos
instrucciones dividen los ejes de “x" y "y" en subintervalos de largo 0.5.
y=x;[X,Y]=meshgrid(x,y); %la tercera instrucción genera
una rejilla en el conjunto [-10,10] x [-10,10] con cuadraditos de lados 0.5 ,
Z=X.^2.*exp(-Y.^2); % La cuarta instrucción evalúa la función en los puntos de la rejilla, y finalmente trazamos la superficie con surf.
surf(X,Y,Z),title('Grafica de superficie')
61
Tutorial de MATLAB
62
GRAFICAS LINEALES Y LOGARÍTMICAS: La mayor parte de las gráficas que generamos dan por hecho que los ejes x vs. y se dividen en intervalos equiespaciados; estas gráficas se llaman gráficas lineales. Una escala logarítmica (de base 10) es útil cuando una variable abarca varios órdenes de magnitud.
Los comandos MATLAB para generar gráficas lineales y logarítmicas de los vectores x y y son los siguientes
plot (x,y) Genera una gráfica lineal con los valores de x y y.semilogx (x,y) Genera una gráfica de los valores de x y y usando una escala logarítmica para x y una escala lineal para y.semilogy (x,y) Genera una gráfica de los valores de x y y usando una escala lineal para x y una escala logarítmica para y.loglog (x,y) Genera una gráfica de los valores de x y y usando escalas logarítmicas tanto para x como para y.Más adelante se verá como utilizar estos comandos (tarea código No.2)
Tutorial de MATLAB
63
GRAFICAS MULTIPLES: Una forma sencilla de generar curvas múltiples en la misma gráfica es usar múltiples argumentos en un comando de graficación, como en
Plot (x, t, y ,t) Al ejecutarse este programa, se traza la curva correspondiente a x versus t, y luego se traza en la misma grafica la curva correspondiente y versus t.
Más adelante se verá como utilizar estos comandos ( tarea código 3).
Tarea: Comenta (con %) los comandos en los siguientes tres códigos, usa archivos .M, imprime tus graficas y preséntalos al maestro del curso son parte de la evaluación del mismo.
Tutorial de MATLAB
64
Código No.1v1=[0:0.001:.7979];w1=298;q=1.6022e-19;n=1.5;k=1.38e-23;num1=q.*v1;den1=n*k*w1;M1=num1./den1; x1=1e-9.*exp(M1);v2=[0:0.0001:.6379];w2=358;num2=q.*v2; en2=n*k*w2;M2=num2./den2; x2=1024e-9.*exp(M2);plot(v1,x1,'b',v2,x2,'r'), title('ECUACION DEL DIODO'), legend('TEMPERATURA 298k', 'TEMPERATURA 358k'), grid
Tutorial de MATLAB
65
SUBGRÁFICAS: El comando subplot permite dividir la ventana de gráficos en subventanas. Las posibles divisiones pueden ser dos subventanas o cuatro subventanas o incluso 8 ventanas en una hoja.. Los argumentos del comando subplot son tres enteros: (m, n, p). Los dígitos m y n especifican que la ventana de gráficos se divida en una retícula de m por n ventanas más pequeñas, y el digito p especifica la p-ésima ventana para la gráfica actual ( donde se ubica esta grafica) . Las ventanas se numeran de izquierda a derecha y de arriba abajo.Por ejemplo el siguiente comando Subplot(2,1,1), plot(x,y) especifica que la ventana de gráficos se divida en una grafica superior y una inferior ( dos líneas de graficas en una columna ) y que la grafica actual plot(x,y) se coloque en la ventana superior (código No.2).
El siguiente juego de instrucciones genera cuatro graficas que ilustran la función del comando subplot empleando escalas lineales y logarítmica.
Tutorial de MATLAB
66
Código No. 2t=[0:0.001:1];f=2;w=2*pi*f; x=((1/2).*(1+cos(2*w.*t)));subplot(2,2,1),plot(t,x,'r','linewidth',2),grid,...subplot(2,2,2),semilogx(t,x,'b','linewidth',2),grid,...subplot(2,2,3),semilogy(t,x,'r','linewidth',2),grid,...subplot(2,2,4),loglog(t,x,'b','linewidth',2),gridCódigo No. 3t=[-6*pi:.001:6*pi];w1=2/3;w2=1/2;w3=1/3;x1=2.*sin(w1.*t);x2=3.*sin(w2.*t);x3=4.*sin(w3.*t);plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide completa un numero entero de ciclos'),grid
Tutorial de MATLAB
Código No. 3t=[-6*pi:.001:6*pi];w1=2/3;w2=1/2;w3=1/3;x1=2.*sin(w1.*t);x2=3.*sin(w2.*t);x3=4.*sin(w3.*t);plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide completa un
número entero de ciclos'),grid
67
Tutorial de MATLAB
Código No.4t=0:.001:1;x=2*sin(8*pi*t);plot(t,x,'r','linewidth',2),gridn=0:1:15;y=2*sin(8*pi*(1/15)*n);subplot(2,1,1),plot(t,x,'r','linewidth',3),grid,subplot(2,1,2),stem(n,y,'linewidth',3),grid
68
Tutorial de MATLAB
69
Tutorial de MATLAB
Intenta crear una grafica usando el ciclo for
Teleé t=[-1:.005:1]; f=1;w0=2*pi*f;x=1.5*ones(size(t));for i=1:100;x=x+((-1)^(i+1))*(1/i)*sin(i*w0.*t);endplot(t,x,'r','linewidth',2), grid
70
Tutorial de MATLAB
Una más
t=[-2:0.001:2];x=0.25*ones(size(t));for m=1:2:99x=x+(-1)^((m-1)/2)*1/(m*pi)*exp(i*m*pi*t);endplot(t,x,'r','linewidth',2),grid
Saca tus conclusiones
71
Tutorial de MATLAB
72
Libro que se recomienda para ejercitar Matlab:Solución de problemas de Ingeniería con Matlab,Delores M. Etter, Edit. Prentice Hall.
Tutorial elaborado por El Mtro. Juan Gustavo Ruiz Barajas
mayo 2009