Escolar Documentos
Profissional Documentos
Cultura Documentos
Thomas A. Edison
TCNICAS DE ANLISIS:
Sumario
2.1. Definicin de matrices desde el teclado
2.2. Operaciones con matrices 2.3. Matrices predefinidas 2.4. Direccionamiento de matrices y vectores. El operador (:) y la funcin (cat)
Definicin de un vector
Vector fila: elementos separados con comas (,) o con espacios:
El operador (:)
El operador (:) es utilizado para especificar rangos, su forma de empleo es muy simple y sus beneficios inmensos.
Forma de empleo: <vector>=[val_ini : paso : val_fin];
Ejemplo:
Definicin de matrices
Las matrices se definen por filas, los elementos de la fila se separan por espacios o comas (,) mientras que las filas van separadas por punto y coma (;)
Ejemplos: A=[1,2,3; 4,5,6; 7,8,9] Se ve en pantalla:
A=[1 2 3; 4 5 6; 7 8 9]
Definicin de matrices
Observacin 1 Una vez definida la matriz esta pasa a su espacio de trabajo (Workspace) y estar disponible para realizarce cualquier operacin.
Ejemplo:
Definicin de matrices
Observacin 2 MatLab introduce por defecto una variable llamada (ans) de answer sobre la cual tambin se puede operar.
Ejemplo:
Definicin de matrices
Observacin 3 En MatLab se permite la creacin de matrices vacas.
Ejemplo:
Operaciones
Operaciones con escalares:
v+k adicin o suma v-k sustraccin o resta v*k multiplicacin v/k divide por k cada elemento de v k./v divide k por cada elemento de v v.^k potenciacin cada componente de v esta elevado a k k.^v potenciacin k elevado cada componente de v VECTORES:
A .* B=[a1.b1 a2.b2 ... an.bn] A y B deben ser horizontales o verticales. Si A=[fila] y B=[Columna]: Producto punto = A*B
A*B
A/ B
A ^ n1
Operaciones
Ejemplo:
Matrices predefinidas
eye(n) zeros(n) zeros(n,m) Matriz unitaria (n x n)
Matriz de ceros (n x n)
Matriz de ceros (n x m) Matriz de unos (n x n) Matriz de unos (n x m)
ones(n)
ones(n,m) rand(n) rand(n,m) linspace (x1,x2,n)
magic(n)
El operador (:)
El operador (:) se muestra mucho ms potente cuando se trabaja con matrices.
El operador (:)
Extraccin de submatrices.
El operador (:)
Extraccin de una columna.
El operador (:)
Extraccin de una fila (end = ltima).
El operador (:)
Eliminacin de una columna.
La funcin (cat)
La funcin (cat) se emplea para concatenar matrices a lo largo de una dimensin especificada. Al igual que el operador (:) es de una gran utilidad cuando se trabaja con matrices.
La funcin (cat)
Ejemplo (1: abajo; 2: a la derecha):
B
Operadores relacionales
< <= > >= == ~= Menor que Menor o igual a Mayor que Mayor o igual a Igual a Distinto de
Operadores lgicos
&& || ~ xor Conjuncin Disyuncin Negacin Disyuncin exclusiva
ECUACIONES LINEALES
Dado un sistema algebraico de ecuaciones lineales de la forma Ax=B. Lo resolveremos por mtodos clsicos y con funciones propias de matlab Comandos: >>det(A) %determinante de una matriz cuadrada >>inv(A) %inversa de una matriz cuadrada
Ecuaciones lineales________________________________
Ejemplos de resolucin de un sistema Ax=B: Ejemplo: Resolver el sistema: X1+2 X2+3 X3 = 4 2X1+3 X2+4 X3 = 5 4X1+2 X2+5 X3 = 1
Ecuaciones lineales________________________________
Ecuaciones lineales________________________________
Ejemplo de repaso:
%Definicin vector A=(1:2:11),B=(1:6) X=[3;6;7;12;1;5],Y=B' %operaciones con escalares C=A-2 D=3*Y-1 %operaciones entre vectores E=2*A+B F=A.*B G=Y./X H=X.^2 %definicin de matrices I=[1 2 3 4;5 6 7 8;9 10 11 12] J=[5:8;8:11;11:14] K=zeros(4) L=ones(2,4) M=rand(4,4) %Manipulacin de matrices N=I(2,3) %obtiene valor de la F2, C3 O=I(1:2,2:3) %extrae las primeras 2F y las cols 2 y 3 de I col1=I(:,1) % extrae la primera columna de la matriz union1=[L;K], union2=[I J] % unin de matrices %Operaciones con matrices sum=I+J mult=I*M pot=M^2 T=I.' deter=det(M) %Sistema de ecuaciones
%Regla de Cramer Q=[1 2 3;2 3 4; 4 2 5] R=[4;5;1] D1=[R Q] D1=[4 2 3;5 3 4;1 2 5]; D2=[1 4 3;2 5 4;4 1 5]; D3=[1 2 4;2 3 5;4 2 1]; S=[det(D1),det(D2),det(D3)]/det(Q)
%Inversa Q_inv=inv(Q) sol=Q_inv*R
POLINOMIOS
Los polinomios se representan en matlab por un vector fila de dimensin n+1 siendo n el grado del polinomio. Dado un polinomio
se representa por >> pol1=[1 0 2 0] para el clculo de las races de un polinomio existe el comando roots. >>raices=roots(pol1) (da un vector columna, aunque pol1 es un vector fila)
x3+2x
Polinomios______________________________________
Un polinomio puede ser reconstruido a partir de sus races con el comando poly >> p=poly(raices) (da un vector fila) ** en caso de que el argumento de poly fuera una matriz obtendramos como resultado el polinomio caracterstico de la matriz. As mismo si queremos calcular los autovalores de la matriz bastara con calcular las races del polinomio caracterstico.
Ejemplo1: pol2=[2 4 0 1]; % definicin del polinomio 2x3+4x2+1 raices=roots(pol2) % clculo de sus races pol2_n=poly(raices) % reconstruccin del polinomio real(pol2_n) % qu pas? Ejemplo2: A=[1 2 3 ; 2 3 4; 4 2 5]; p=poly(A) % pol. caracterstico roots(p) % autovalores de A
Polinomios______________________________________
Para calcular el valor de un polinomio p en un punto dado x1 basta con utilizar el comando polyval >>y=polyval(p,x1) Ejemplo: Evaluar el polinomio x3-x2-x+1 en el punto 2 p=[1 1 1 1] % definicin del polinomio x3-x2-x+1 polyval(p,2) Ejemplo: Ahora evaluarlo en todo un rango de puntos x=-2:0.1:2; Y=polyval(p,x); Para multiplicar y dividir polinomios tenemos los comandos especiales conv(p1,p2) y deconv(p1,p2) Ejemplo5: p1=[1, -2, 1]; p2=[1,1]; p3=conv(p1,p2) p4=deconv(p3,p2) [p4,r]=deconv(p3,p2) % resto de la divisin
Polinomios______________________________________
Para conocer el resto de la divisin de polinomios basta con poner >>[p4,r] = deconv(p3,p2)
El comando residue, permite el clculo del desarrollo en suma de fracciones simples del cociente p1/p2. p2 debe tener races reales El formato del comando es: >>[r,p,k] =residue(p1,p2) donde: r= vector columna con los numeradores p= vector columna con las raices del denominador k= vector fila con los coeficientes del polinomio independiente.
Polinomios______________________________________
x3 x2 1 x 3 3x 2 4
x3 x2 1 35 13 1 1 3 2 2 x 3 x 4 9( x 2) 3( x 2) 9( x 1)
[pol1,pol2]=residue(r,p,k)
Polinomios______________________________________
Para calcular la derivada de un polinomio tenemos el comando, >>polyder(p) Ejemplo7: Dado el polinomio x3+6x2+1 su derivada es
PROGRAMACIN
PROGRAMACIN________________________________
Comandos de entrada salida input: nos permite introducir datos variable=input(mensaje a pantalla); disp: muestra un texto por pantalla disp(El algoritmo no ha convergido)
PROGRAMACIN________________________________
Testear el nmero de argumentos nargin devuelve el nmero de argumentos de entrada con los que el usuario ha llamado a la funcin. nargout devuelve el nmero de argumentos de salida con los que el usuario ha llamado a la funcin. nargchk chequea si el nmero de argumentos de entrada calculados con nargin esta entre el valor mximo y mnimo previsto, si no da error. nargchk(mnimo,mximo,nmero_entrada)
PROGRAMACIN________________________________
Bucles. Bucles anidados for k=n1:incre:n2 end Con break se rompe la ejecucin Estructuras de control condicionadas
switch expresion case expresion_0
if
elseif
else end
end
while end
PROGRAMACIN________________________________
Programacin de funciones function arg_salida=nombre_funcion(arg_entrada) El fichero se debe guardar con nombre_funcion.m Para devolver el control al programa desde cualquier punto de una funcin basta con escribir la sentencia return Ejercicio Utilizando estructuras de control construir una funcin que nos calcule las races de una ecuacin de segundo grado ax2+bx+c=0
function raiz=sole2(a,b,c) %raiz=sole2(a,b,c) %solucion de la ecuacion de segundo grado %ax^2+bx+c=0, a~=0 % if (nargin ~=3) error(El numero de argumentos de entrada debe ser 3) end discri=b^2-4*a*c; raiz=[]; if(discri==0) raiz=-b/(2*a); disp([Raiz doble=,num2str(raiz)]) return elseif(discri>0) raiz(1)=(-b+sqrt(discri))/(2*a); raiz(2)=(-b-sqrt(discri))/(2*a); disp([Raices reales simples=,num2str(raiz)]) return else raiz(1)=(-b+sqrt(-discri)*i)/(2*a); raiz(2)=(-b-sqrt(-discri)*i)/(2*a); disp([Raices complejas=,num2str(raiz)]) return end Ejemplos para utilizar esta funcin: raiz=sole2(2,3,1); raiz=sole2(1,0,1);
Ejemplo de repaso:
function h= pitag (a,b) h=sqrt (a^2+b^2);
%Utilizacin de una funcion (pitag.m) a=input('Ingrese cateto x='); b=input('Ingrese cateto y='); disp ('La hipotenusa es'),disp (pitag(a,b))
Tema Tema.
Graficacin con MatLab
Sumario
3.1. Grficacin en 2D 3.1.1. Funcin plot
Sumario
3.2. Graficacin en 3D 3.2.1. Dibujo de lneas: funcin plot3
3.2.2. Mallados: Funciones meshgrid, mesh y surf 3.2.3. Lneas de contorno: funciones contour y contour3
Grficacin en 2D
MatLab proporciona una variedad importante de funciones para representar grficamente datos vectoriales tanto en 2D como en 3D.
Adicionalmente pone a disposicin de usuario otro grupo de funciones para la manipulacin e impresin de los grficos creados.
Grficacin en 2D
Funciones ms empleadas en la representacin de datos
plot
loglog
semilogx
semilogy
Crea grfico con escala lineal en ambos ejes Crea grfico con escala logaritmica en ambos ejes Crea grfico con escala logaritmica en el eje X y lineal en el eje Y Crea grfico con escala logaritmica en el eje Y y lineal en el eje X
Grficacin en 2D
Ejemplo 1:
Grficacin en 2D
Ejemplo 2:
Grficacin en 2D
Cmo aadir informacin al grfico?
title(ttulo) Agrega unttulo al dibujo xlabel(...) Agrega un ttulo al eje X. xlabel off lo elimina
Agrega un ttulo al eje Y. ylabel off lo elimina Define rtulos para las lneas Activa la cuadrcula en el dibujo
Grficacin en 2D
Ejemplo:
Comando subplot
Las ventanas grficas se pueden subdividir en m filas y n columnas siendo cada celda un grfico diferente. Sintaxis:
subplot(m, n, i);
Ejemplo de repaso:
clear all; close all; %Grficar en dos dimensiones x=linspace(0,2*pi,30); Y1=sin(x); Y2=cos(x); Y3=2*sin(x).*cos(x); Y4=sin(x)./(cos(x)+eps); %eps=2^-52 y se coloca para evitar la div 0 %Activamos el rea 1 para colocar %el grfico Y1 subplot(2,2,1) plot(x,Y1),axis([0 2*pi -1 1]) title('Y1=sen(x)')
%Activamos el rea 2 para colocar %el grfico Y2 subplot(2,2,2) plot(x,Y2),axis([0 2*pi -1 1]) title('Y2=cos(x)')
%Activamos el rea 3 para colocar %el grfico Y3 subplot(2,2,3) plot(x,Y3),axis([0 6 -1 1]) title('Y3=2sen(x)cos(x)') %Activamos el rea 4 para colocar %el grfico Y4 subplot(2,2,4) plot(x,Y4,':g'), axis([0 6 -20 20]) title('Y4=sen(x)/cos(x)')
Grfico de barras verticales 3D (bar3h() horiz) Grfico de pastel Grfico de pastel 3D Grfico de barras sin lneas internas Representa el histograma de un vector
Funcin fplot
A diferencia de la funcin plot donde haba que especificar un vector de valores [x,y] a la funcin fplot solo hay que especificarle el nombre de una funcin o fichero donde encontrarla sin preocuparnos por detalles como el de la pendiente por citar tan solo un ejemplo.
Funcin fplot
Sintaxis:
fplot(funcin, lmites, markers, tol);
funcin lmites markers tol Nombre de la funcin o fichero *.m
Vector de elementos [xmin,xmax] o [xmin,xmax,ymin,ymax] Cadena para controlar el color, estilo etc (igual que en la funcin plot) Tolerancia del error relativo. Default (2e-03)
Graficacin en 3D
MatLab posee excelentes cualidades para la graficacin en 3D de curvas y superficies y tal vez sea esta una de las cosas ms interesantes a los ojos de cualquier profesor o estudiante de las carreras de ingeniera.
La funcin plot3
La funcin plot3 es la homloga de la funcin plot para la graficacin en 2D.
Sintaxis:
plot3(x, y, z, Especif. del grfico);
La funcin plot3
Ejemplo:
Representacin de funciones en 3D
En 2D:
EN 3D:
Representacin de funciones en 3D
Ejemplo: graficar la funcin Z=X/Y. x=1:1:5; y=1:1:10; %NOS CONSTRUYE LA MALLA DE NUDOS [X,Y]=meshgrid(x,y); % LA FUNCIN Z=X./Y; % GRAFICA Z= F (X,Y) y % ubica las ternas en (x,y,z) mesh(X,Y,Z)
Funcin meshgrid
La funcin meshgrid se emplea para
Funcin mesh
La funcin mesh construye un
Funcin mesh
Ejemplo:
Funcin mesh
Observacin: La coloracin del grfico generado por la funcin mesh es tomado por defecto como funcin de los valores de z. Los valores del color pueden ser asignados por el usuarios tambin a travs de un vector de colores.
Funcin surf
La funcin surf genera un grfico
Funcin surf
Ejemplo:
Funcin contour
Ejemplo:
Funcin contour3
Ejemplo:
Ejemplo de repaso:
close all; clear all; %Grficas de malla y superficie x=-7.5:0.5:7.5; y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R;
subplot (2,2,4)
surfc(X,Y,Z) view (40,80) lightangle(55, 55) figure a=-2:0.2:2; b=-2:0.2:2; [A B]=meshgrid(a,b) C=A.*exp(-A.^2-B.^2) subplot (3,1,1); contour3(A,B,C) subplot(3,1,3); contour(A,B,C)
2D
Tema Tema.
Generacin de informacin
Tema Tema.
Otros tipos de datos en MatLab
Sumario
4.1. Cadenas de caracteres 4.2. Hipermatrices (arreglos de ms de 2 dim.)
4.3. Estructuras
4.4. Cell arrays (matrices de celdas)
Cadenas de caracteres
MatLab tambin opera con cadenas de caracteres, muy similar a como se hace con lenguajes tan conocidos como C++.
Los caracteres de una cadena se almacenan en un vector de manera que existir un carcter por elemento.
Cadenas de caracteres
Una cadena carcter se representa entre comillas simples (cadena).
Ejemplos:
Cadenas de caracteres
Para representar un carcter en MatLab se emplean 2 bytes o sea 16 bits.
Elimina espacios al final de la cadena Detecta si un caracter es un espacio o no Imprime la cadena c Compara las cadenas c1 y c2 Compara los n primeros caracteres de las strcomp(c1,c2,n) cadenas c1 y c2 Sustituye c2 por c3 cada vez que aparezca c2 en strrep(c1,c2,c3) c1
TIEMPOS DE CALCULO
% CLOCK returns a six element date vector vector containing the % current time and date in decimal form: % CLOCK = [year month day hour minute seconds]
% The first five elements are integers. The seconds element % is accurate to several digits beyond the decimal point.
% ETIME
Elapsed time.
% ETIME(T1,T0) returns the time in seconds that has elapsed % between vectors T1 and T0. The two vectors must be six
>> b=rand(n,1);
>> x=zeros(n,1);
Tiempo transcurrido ??
tiempo=etime(tiempoFin, tiempoIni) RESULTADO: tiempoIni = 1.0e+003 * 2.0060 0.0090 0.0290 0.0090 0.0270 0.0436
tiempo=etime(tiempoFin, tiempoIni)
RESULTADO:
tiempo =
5.2810
tiempo =
CREACIN DE
INTERFACES GRFICAS
What Is GUIDE?
provides a set of tools for creating graphical user interfaces (GUIs). These tools greatly simplify the process of designing and building GUIs. You can use the GUIDE tools to :
- Lay out the GUI - Program the GUI
DEMO :
Create an easy GUI :
GUIDE Templates
ActiveX Control
Example
>> GUI_activeX
DEMO :
Integrate With Data Acquisition In GUI