Professional Documents
Culture Documents
Autores: Arroyo Pazmio Zulayka Elizabeth Cevallos Giler Mara Beln Palma Leones Hernn Alejandro Quintero Quonez Mariana Gabriela Zavala Tomal Jos Oliverio
MATLAB es el nombre abreviado de MATrix LABoratory. 1-Como indica su nombre MATLAB est vinculado a la operacin con vectores y matrices 2-Est constituido por numerosas bibliotecas (Toolboxes) 3-Tiene muy bien desarrollado el tratamiento grfico 4-Permite realizar clculos y simulacin 5-Opera desde la ventana de comandos o desde Simulink 6-Tiene su propio lenguaje de programacin 7-Est soportado en lenguaje C 8-Es un sistema abierto, permite la adicin de nuevos desarrollos
Pulsando con el ratn en el icono de MATLAB , se presenta una ventana general (MATLAB Desktop) subdividida en varias ventanas: -Ventana de comandos (Command Window)
-Ventana de espacio de trabajo (Workspace)
Ventana grfica: la salida de todos los comandos grficos que se escriben en la ventana de comandos, se realizan por la ventana grfica.
Esta ventana se crea cuando se edita un programa. Para activar esta ventana se va al men File y se seleccione New y a continuacin M-file.
+ * /o\ ^
exit, quit : salir de MATLAB clc : borra la pantalla de comandos clf : borra la pantalla grfica clear : borra todas las variables en el espacio de trabajo, excepto las globales who: da el listado de las variables en el espacio de trabajo whos: da el listado de las variables en el espacio de trabajo, la dimensin y la cantidad de memoria que ocupa
El programa Matlab nos ofrece una amplia biblioteca para despejar las dudas sobre ciertos comandos. Podemos acceder a esta de dos maneras: 1.- Tecleando el comando help
abs(x) cos(x) tan(x) acos(x) atan(x) log(x) log10(x) sinh(x) tanh(x) fix(x) floor(x) round(x) ceil(x) exp(x)
valor absoluto coseno tangente coseno inverso tangente inversa logartmo natural logartmo base 10 seno hiperblico tangente hiperblica redondea hacia cero redondea hacia - infinito redondea hacia el entero mas cercano redondea hacia + infinito exponencial
Resultado
Ejemplo: >> pi
format long e format short g format long g format short eng format long eng format bank format hex format rat format +
Formato coma fija con 4 dgitos despus de 3.1416 la coma (es el formato que viene por defecto) Formato coma fija con 14 o 15 dgitos 3.14159265358979 despus de la coma Formato coma flotante con 4 dgitos 3.1416e+000 despus de la coma Formato coma flotante con 14 o 15 dgitos 3.141592653589793e+000 despus de la coma La mejor entre coma fija o flotante con 4 3.1416 dgitos despus de la coma La mejor entre coma fija o flotante con 14 o 3.14159265358979 15 dgitos despus de la coma Notacin cientfica con 4 dgitos despus de 3.1416e+000 la coma y un exponente de 3 Notacin cientfica con 16 dgitos 3.14159265358979e+000 significantes y un exponente de 3 Formato coma fija con 2 dgitos despus de la 3.14 coma Hexadecimal 400921fb54442d18 Aproximacin racional 355/113 Positivo, negativo o espacio en blanco +
u = [2 4 5] tiene una fila con tres elementos (matriz de 1 x 3). v = [2; 4; 5] tiene tres filas separadas por puntos y comas (matriz de 3 x 1).
v = [2 4 5]' o v = u' transpone u para generar la misma v. w = 2:5 define el vector de filas w = [2 3 4 5] mediante valores que aumentan sucesivamente en una unidad. u = 1:2:7 asigna valores que aumentan en dos unidades para obtener u = [1 3 5 7]
A = [1 2 3; 4 5 6] tiene dos filas (el punto y coma siempre separa unas filas de otras). A = [1 2 3 4 5 6] tambin genera la matriz A, pero es ms difcil de escribir. B = [1 2 3; 4 5 6]' es la transpuesta de A. As pues, AT es A' en MATLAB.
Tambin se pueden crear arreglos as: t = 0:0.1:1 t = 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 logspace(d1,d2,n) w = logspace(-1,2,n); Genera un arreglo logartmico de 10^-1 a 10^2 con n puntos w = logspace(-1,2) Genera un arreglo logartmico de10^-1 a 10^2 con 50 puntos
diag(v) genera una matriz diagonal con el vector v como diagonal. toeplitz(v) define una matriz simtrica de diagonal constante con v como primera fila y primera columna. toeplitz(w, v) define una matriz simtrica de diagonal constante con w como primera columna y v como primera fila. ones(n) genera una matriz de n n con todos los valores iguales a uno. zeros(n) genera una matriz de n n con todos los valores iguales a cero. eye(n) genera una matriz identidad de n n. rand(n) genera una matriz de n n con elementos de valor aleatorio entre 0 y 1 (distribucin uniforme). randn(n) genera una matriz de n n cuyos elementos siguen una distribucin normal (media 0 y varianza 1). ones(m, n), zeros(m, n), rand(m, n) generan matrices de m n. ones(size(A)), zeros(size(A)), eye(size(A)) generan matrices de la misma forma que A.
linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2 logspace(d1,d2,n) genera un vector con n valores espaciados logartmicamente entre 10^d1 y 10^d2. Si d2 es pi6, los puntos se generan entre 10^d1 y pi magic(n) crea una matriz (nxn) con los nmeros 1, 2, ... n*n, con la propiedad de que todas las filas y columnas suman lo mismo hilb(n) crea una matriz de Hilbert de tamao (nxn). La matriz de Hilbert es una matriz cuyos elementos (i,j) responden a la expresin (1/(i+j-1)). Esta es una matriz especialmente difcil de manejar por los grandes errores numricos a los que conduce invhilb(5) crea directamente la inversa de la matriz de Hilbert kron(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 fila compan(pol) construye una matriz cuyo polinomio caracterstico 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)
A(3, 2) = 7 coloca un 7 en el elemento (3, 2). A(3,:) = v sustituye los valores de la tercera fila por los de v. A(:, 2) = w sustituye los valores de la segunda columna por los de w. El smbolo de los dos puntos : significa todo (todas las columnas o todas las filas). A([2 3],:) = A([3 2],:) intercambia las filas 2 y 3 de A.
A(i, j) muestra el elemento (i, j) de la matriz A (escalar = matriz de 1 1). A(i, :) muestra la fila i-sima de A (como vector de fila). A(:, j) muestra la columna j-sima de A (como vector de columna). A(2: 4,3: 7) muestra las filas de la 2 a la 4 y las columnas de la 3 a la 7 (en forma de matriz de 3 5). A([2 4],:) muestra las filas 2 y 4 y todas las columnas (en forma de matriz de 2 n). A(:) muestra una sola columna larga formada a partir de las columnas de A (matriz de mn 1). triu(A) coloca ceros en todos los elementos por debajo de la diagonal (triangular superior). tril(A) coloca ceros en todos lo elementos por encima de la diagonal (triangular inferior).
A*B da la matriz resultante del producto AB (si dicha operacin es posible). A. * B da el producto elemento por elemento (si size(A) = size(B), es decir, si tienen el mismo tamao)
Si se escribe: g*x da error, pues no se da la condicin para la multiplicacin de matrices, ya que ambas matrices son de dimensin 2x3 Si se escribe g*x Si sera vlida la multiplicacin matricial
da A-1 si A es cuadrada e invertible. da la pseudoinversa de A. da inv(A) * B si existe inv(A): la barra inversa es la divisin por la izquierda. da la solucin de Ax = b si existe inv(A).
g./x divisin por la derecha ans= 1.0000 0.5000 0.6000 1.3333 5.0000 1.0000 g.\x divisin por la izquierda ans = 1.0000 2.0000 1.6667 0.7500 0.2000 1.0000
g.^2 ans=
1 4 9 16 25 36
2.^g ans = 2 4 8 16 32 64
En el caso de arreglos complejos, cuando se realiza la transpuesta, el signo de la parte imaginaria cambia. Sea a =1:2 a= 12 d = a + i*a d = 1.0000 + 1.0000i 2.0000 + 2.0000i
Para que se mantenga el signo en la transpuesta se debe poner un punto antes del apstrofe d= 1.0000 + 1.0000i 2.0000 + 2.0000i f = d. f= 1.0000 + 1.0000i 2.0000 + 2.0000i
a = [1 4 7;3 5 8]; Sea a(2,2) = 0 a= 147 308 a(:,1) = 4 ans= 447 408 a(:,3) columna 3 ans = 7 8
anular un trmino
A = [1 2 3;4 5 6;7 8 9]; B = [3 5 7;4 9 6;3 2 1]; isequal(A,B) devuelve 1 si los arreglos tienen igual dimensin y trminos idnticos. ans =0 ismember devuelve un arreglo de la misma dimensin de A, ubicando unos en los ndices de A que estn en el segundo argumento (B). A = [1 2 3;4 5 6;7 8 9]; B = [3 5 7;4 9 6;3 2 1];
Para resolver dicha ecuacin con MATLAB se utiliza el siguiente comando: x = inv(A)*b; o x=A\b x = 25.0 22.0 99.0 Ambos resultados son iguales Cuando el nmero de ecuaciones es diferente al nmero de incgnitas no existe solucin nica.
Sea el caso de ms ecuaciones que incgnitas, el operador de divisin automticamente halla la solucin que minimiza el error cuadrtico en Ax b = 0
A = [1 2 3;4 5 6;7 8 0;2 5 8]; b = [366;804;351;514]; x = A\b x = 247.9818 -173.1091 114.9273
det(A) es el determinante (si A es una matriz cuadrada). rank(A) es el rango (nmero de pivotes = dimensin del espacio de filas y del espacio de columnas). size(A) es el par de nmeros [m n]. trace(A) es la traza = suma de los elementos de la diagonal = suma de autovalores. null(A) es una matriz cuyas columnas n - r forman una base ortogonal para el espacio nulo de A. orth(A) es una matriz cuyas columnas r forman una base ortogonal para el espacio de columnas de A.
Las funciones son, al igual que los scripts, ficheros.m. Se caracterizan por que:
1- Se inician con una primera lnea donde se pone lo siguiente: function( variables de salida)= nombre(variables de entrada) 2-Una segunda lnea de comentarios, denominada H1, donde se define lo que la funcin realiza. 3-Puede haber ms lneas de comentarios. 4-Por ltimo, lneas de comandos.
Las funciones se guardan con el nombre que se le di, seguido de la extensin .m. Para invocar la funcin, se escribe: [variables de salida] = nombre(variables de entrada). Lo que diferencia las funciones de los scripts, es que las funciones solo interactan con el espacio de trabajo por medio de las variables de entrada y las variables de salida. Variables intermedias no interactan con el espacio de trabajo.
El nombre de la funcin y el nombre de su fichero no tienen que ser iguales, aunque es recomendable.
- La primera vez que MATLAB ejecuta una funcin, abre un fichero texto y compila los comandos en una representacin interna en memoria, eso hace que se corra ms rpido en las siguientes llamadas.
Todas las lneas de comentarios se muestran cuando se solicitan mediante el comando help trigon. Cuando se emplea el comando lookfor trigon slo se muestra la primera lnea (H1).
El nmero de argumentos de entrada de la funcin se encuentran dentro de la misma funcin, y estn contenidos dentro del espacio de trabajo de la funcin a travs de la variable nargin.
La variable nargout contiene el nmero de argumentos de salida. Estas variables se utilizan para definir cual ser la salida de la funcin o si hay error. -Las funciones pueden compartir variables con otras funciones.
Para ello, esas variables deben declararse como variables globales en dichas funciones. Las variables globales solo interactan con el espacio de trabajo de las funciones donde se definen y no con el espacio de trabajo de MATLAB. -Las funciones terminan de ejecutarse cuando llegan al final del fichero o cuando encuentran el comando return. Este comando posibilita terminar la ejecucin antes de llegar al final del fichero. -Una funcin puede contener mas de una funcin. Estas funciones solo pueden ser llamadas por la funcin principal. La funciones pueden no tener variables de entrada y/o variables de salida. En el caso de no tener variables de salida no llevan el signo de igual.
Trazado de grficos
>>plot(y) grfico de y vs. No. de orden del vector >>plot(x,y) grfico de y vs. x >>plot(x1,y1,x1,y2) grfico de y1 vs. X1 y de y2 vs. X1 El color,la lnea de los grficos y el marcador pueden ser seleccionados en el comando plot, p.e.: >>plot(x,y,r--) entre apstrofos se pone el color y el tipo de lnea
Color
Marcador
Estilo de lnea
b azul
. punto
- slida
g verde
o circulo
: puntos
r rojo
x cruz
-. raya-punto
c cyan
+ mas
-- rayado
m magenta
* estrella
y amarillo
s cuadrado
k negro
d diamante
w blanco
subplot(221) plot(x,y),axis([0 2*pi 1 1]), title(sin(x)) subplot(222) plot(x,z),axis([0 2*pi 1 1]), title(cos(x)) subplot(223) plot(x,a),axis([0 2*pi 1 1]), title(2sin(x)cos(x)) subplot(224) plot(x,b),axis([0 2*pi 20 20]), title( sin(x)/cos(x)) >>legend: define rtulos en la grfica
>>figure : crea una nueva ventana grfica >>figure(n) hace que la ventana n sea la activa
Grficos logartmicos
>>loglog(x,y) grfico de y vs. x con escala logartmica en ambos ejes >>semilogx(x,y) ... eje x logartmico, eje y lineal >>semilogy(x,y) ... eje y logartmico, eje x lineal >> Hz=[20:10:100 200:100:1000 1500 2000:1000:10000]; >> spl=[76 66 59 54 49 46 43 40 38 22 ... 14 9 6 3.5 2.5 1.4 0.7 0 -1 -3 ... -8 -7 -2 2 7 9 11 12];
>> semilogx(Hz,spl,'--')
>> xlabel('Hz'),ylabel('spl(dB)') >> title('Niveles de presion sonora')
shg
clf
clc
Para exportar un grfico, vaya al men EDIT estando la ventana grfica activa y utilice el comando Copy Figure, llvelo a donde quiera y descrguelo con Paste. Para exportar texto, seleccinelo con el ratn y con el comando Copy, desde la ventana de comandos o del editor descrguelos donde quiera con el comando Paste. Si es un diagrama en bloques de Simulink, haga activa dicha ventana y busque en Edit el comando Copy Model to Clipboard y descrguelo con Paste donde desea. Para exportar una ventana de MATLAB, haga activa dicha ventana, oprima las teclas Alt+PrtSc y vaya a donde quiera exportarlo y descrguelo con Ctrl V.
El comando plot utilizado en el trazado de grficos bidimensionales se puede extender al caso tridimensional con el comando plot3. Grficos tridimensionales En este caso, los datos se suministran por tros y no por pares, o sea plot3(x1,y1,z1)
Ejemplo: >> t= linspace(0,10*pi); >> plot3(sin(t),cos(t),t) >> ttle(Hlice), xlabel(sin(x)), ylabel(cos(x)), zlabel(t)
Ejemplo: >> t= linspace(0,10*pi); >> plot3(sin(t),cos(t),t) >> ttle(Hlice), xlabel(sin(x)), ylabel(cos(x)), zlabel(t)
El agregar eps elimina la divisin por cero. La matriz Z contiene el seno del radio dividido por el radio para cada punto del plano. Con el comando mesh se genera la grfica. >>mesh(X,Y,Z)
El trazado de la superficie de la misma matriz Z, luce como el grfico de mallas, excepto que los espacios entre las lneas se rellenan de colores. Un grfico de este tipo se obtiene con la funcin surf. surf(X,Y,Z)
Sintaxis
La orden breakhace que se termine la ejecucin del bucle for y/o while ms interno de los que comprenden a dicha sentencia. La sentencia continue hace que se pase inmediatamente a la siguiente iteracin del bucle foro while, saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteracin actual.
La funcin input permite imprimir un mensaje en la lnea de comandos de MatLaby recuperar como valor de retorno un valor numrico o el resultado de una expresin tecleada por el usuario. Sintaxis: <identificador> =input(<Texto deseado>');
La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre. Las cadenas de caracteres son un caso particular de vectores. Sintaxis: disp('<Texto deseado>');