Documente Academic
Documente Profesional
Documente Cultură
para Ingenieros
Que es MATLAB
Lenguaje de Programacin.
Alto Rendimiento.
Computacin Tcnica.
Computacin, Visualizacin y Programacin.
Problemas y soluciones en notacin
Matemtica (de Matrices).
Aplicaciones?
Matemticas y Computacin.
Desarrollo y Test de algoritmos.
Modelado, Simulacin y Prototipos.
Anlisis de Datos, exploracin y
visualizacin.
Grficas de Ingeniera y Cientficas.
Desarrollo de Aplicaciones finales (GUI)
Aplicaciones?
MATLAB?
Matrix Laboratory (Laboratorio de Matrices).
Elemento bsico: [Matriz] (en adelante
Arreglo) que no requiere dimensin.
Problemas que involucran matrices y
vectores son consumidores de tiempo (C,
C++, Fortran, etc.)
Entorno de Trabajo
Abra MATLAB.
Identifique:
Ventana de Comandos.
Historial de Comandos.
Directorio Actual.
Espacio de Trabajo.
Barra de Mens.
MATLAB como Calculadora
Desde la ventana de comandos ingrese:
>> 2 + 3/4*5
Verifique la respuesta de MATLAB.
Verifique el workspace.
Nmeros
Por defecto se usa la notacin decimal
convencional.
La letra e se usa para definir notacin
cientfica (x10).
Los nmeros imaginarios se definen usando
las letras i y j.
Nmeros
Los nmeros tienen una precisin de 16
dgitos significativos decimales y un rango
entre 10-308 y 10+308 .
Todas las operaciones en MATLAB se
realizan en precisin doble.
El formato es la manera en como se
muestran los valores
Formato
Usando el comando format:
Variables
La variable ANS es bsica en MATLAB.
Ejecute:
>> 3-2^4
Verifique el resultado almacenado en ANS.
Ejecute:
>> ans*5
Verifique el uso de variables y resultado.
Variables
Las variables no requieren de una
declaracin de tipo o tamao.
>>num_estudiantes = 25
MATLAB crea el espacio necesario y asocia
el tipo adecuado para definir esa variable, si
es que no la encuentra en el Workspace.
Variables
Las variables tienen un limite de tamao de
nombre de 31 caracteres.
Deben empezar con una letra SIEMPRE.
NO deben contener caracteres especiales,
salvo el underscore _
Las letras i y j
i y j estan reservadas para definir
numeros complejos.
>>i
>>i=20
>>i
Verifique el comportamiento de i
Otras palabras reservadas
pi 3.14159265...
i unidad imaginaria
realmin el nmero ms pequeo, 2-1022
realmax el nmero ms grande, 21023
Inf infinito
Comandos de manejo de Sesin
clc
clear
clear var1, var2
exist(nombre)
quit
who
whos
MATLAB
Vectores
Vectores Fila
Vectores que se ven como filas
Se definen con espacios o comas entre sus
elementos.
>>v = [ 1 3, sqrt(5)]
Verifique el resultado en el workspace.
>> length(v)
Verifique el resultado en el workspace.
Vectores Fila
Puede haber problemas con los espacios.
Ejecute:
v2 = [3+ 4 5]
Verifique el comportamiento
Ejecute:
v3 = [3 +4 5]
Verifique el comportamiento
Operaciones Vectores Fila
Deben tener la misma dimensin para la
suma.
>> v + v3
Pueden multiplicarse por un escalar.
>> v4 = 3*v
Pruebe: >> v + v2
Definicin Vectores
Se pueden formar vectores a partir de otros
vectores (variables) ya definidos:
>> w = [1 2 3], z = [8 9]
>> cd = [2*z,-w], sort(cd)
Verifique el comportamiento.
Indice en Vectores Fila
Se puede recuperar (ver) el valor de un
componente de un vector o cambiarlo
haciendo uso de un indice.
El indice se define con el nombre de variable
del vector y con los parntesis para acceder
a la posicin del elemento a cambiar/ver.
>> w(2) = -2, w(3)
El operador :
Ejecute:
>>1:10
Verifique el resultado.
Cual es la funcin del operador :?
De manera general a : b : c produce un
vector con valor inicial a, valor final c e
incrementos de b.
El operador :
Se puede usar el operador : para definir
vectores:
>> r5 = [1:2:6, -1:-2:-7]
Para obtener los elementos del 3 al 6
>> r5(3:6)
Cual sera el resultado de?
r5(6:-2:1)
Vectores Columna
Vectores que se ven como columna.
Se definen usando ;
Pruebe:
>> c = [ 1; 3; sqrt(5)]
>> c2 = [3
4
5]
Transpuesta
Se puede convertir un vector fila en un
vector columna y viceversa.
>> w, w', c, c'
Defina el vector complejo:
>> x = [1+3i, 2-2i]
La transpuesta para x corresponder a la
transpuesta conjugada.
Producto de Vectores
Multiplicacin de Vector Fila x Columna
>> u = [ 10, -11, 12], v = [20; -21; -22]
>> prod = u*v
Es una multiplicacin Matricial!.
>> w = [2, 1, 3], z = [7; 6; 5]
>> u*w
Verifique ambos ejemplos.
Norma de un Vector
El siguiente muestra dos maneras de
obtener la norma (distancia euclidiana) de
un vector:
>> [ sqrt(u*u'), norm(u)]
El operador .
Corresponde al producto Hadamard.
Trabaja sobre vectores del mismo tipo (fila o
columna).
>> u.*v'
Tabulemos la funcin para
El operador .
Se puede usar tambin para la divisin:
>> a = 1:5, b = 6:10, a./b
>> a./a
>> c = -2:2, a./c
>> a.*b -24, ans./c
Verifique el resultado.
MATLAB
Matrices
Ingreso de Matrices
Ingrese en la ventana de comandos:
>>A = [ 16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1 ]
Verifique el resultado.
Use la flecha hacia arriba y reemplace los
espacios en blanco con comas.
Verifique el resultado.
Ejecute: A
Verifique el resultado
Manejo de Subindices
Subindices ser la manera de acceder a un
elemento de una matriz.
Usa los parentesis y el nombre de la
variable.
>>A(1,4)
Verifique el resultado y la relacin con A.
El operador :
>>A(1:4,4)
Verifique el resultado.
Ejecute:
>>A(:,4)
Verifique el resultado?
Cual es la funcin del operador :
manejando subindices?
El operador :
Se puede utilizar el operador : para generar
matrices:
>> D = [1:5; 6:10; 11:2:20]
Verifique el resultado anterior.
Vectores y Matrices
En MATLAB en general todos son arreglos.
Un vector columna ser una matriz de mx1.
Un vector fila ser una matriz de 1xn.
Tamao de Matrices
El comando size nos devuelve la dimensin
de la matriz que se usa como parametro.
>> size(A)
>> size(ans)
El ultimo comando muestra que el valor
retornado por size es en si mismo una matriz
de 1x2.
Tamao de Matrices
Tambin se puede guardar las dimensiones
de una matriz en variables separadas.
>> [r c] = size(A'), S = size(A')
Verifique los valores de r y c y de S.
Verifique tambin los tipos de dato (arreglo)
de dichas variables.
Matrices Especiales
MATLAB provee algunas funciones propias
de un tamao deseado.
ones(m,n) da una matriz de mxn llena de
unos.
>> P = ones(2,3)
zeros(m,n) da una matriz de mxn llena de
ceros.
Z = zeros(2,3)
Matriz Identidad
Es una matriz de ceros pero en su diagonal
principal esta llena de unos.
>> I = eye(3), x = [8; -4; 1], I*x
Note que eye(3) es una matriz cuadrada
identidad.
Verifique el resultado de I*x.
Matriz Diagonal
Es una matriz identidad pero su diagonal
principal no es necesariamente ceros.
>> D = [-3 0 0; 0 4 0; 0 0 2]
El comando diag puede generar una matriz
diagonal a partir de un vector.
>> d = [-3 4 2], D = diag(d)
Matriz Diagonal
Por otro lado si A es una matriz el comando
diag(A) extrae la diagonal principal de dicha
matriz, incluso si la matriz A no es cuadrada.
>> F = [0 1 8 7; 3 -2 -4 2; 4 2 1 1]
>> diag(F)
Verifique la variable ans e identifique la
diagonal de F.
Construccin de Matrices
A veces es necesario generar matrices
grandes a partir de otras mas pequeas (o
vectores).
>> C=[0 1; 3 -2; 4 2]; x=[8;-4;1];
>> G = [C x]
Note que C es una matriz y x es un vector
columna.
Construccin de Matrices
Se pueden construir matrices usando
tambin funciones y operaciones sobre
matrices:
>> J = [1:4; 5:8; 9:12; 20 0 5 4
>> K = [ diag(1:4) J; J' zeros(4,4)]
Pruebe el siguiente comando:
>> spy(K), grid
El operador end
Indica el ultimo elemento.
Ejemplo:
Verifique el resultado.
MATLAB
Comandos y Funciones tiles
Expresiones
Expresiones Matemticas elementales:
>> help elfun
Expresiones Matemticas especiales:
>>help specfun
Expresiones de Matrices elementales:
>>help elmat
Nmeros Aleatorios
Para generalos usamos las funciones:
rand, randn, randint.
Verifique el uso de:
>> rand(2)
>> randn(2)
>> randint(2,2,[-4 4])
Suma de Elementos
Se utiliza el comando sum.
Genere un matriz para probar los siguientes
comandos:
Manejo de valores
Se manejan complejos automaticos:
>> c=15+sqrt(-1)
Y valores excepcin correctamente:
>> a=123/0
>> b=0/0
>> Inf-Inf
Residue
La funcin residue, descompone el cociente
de una fraccin en fracciones parciales.
Teniendo un cociente de la forma:
La funcin es:
>>[r,p,k] = residue(b,a)
Residue
Entrega los resultados para:
Descomponga:
Residue
En fracciones parciales:
>> b=[1 1 1 2];
>> a=[1 0 3 0 2];
>> [r,p,k]=residue(b,a)
El resultado ser:
Sistema Lineal
Use representacin en MATLAB para
resolver un sistema lineal del tipo:
Mostrar y Pedir datos
La funcin INPUT imprime un mensaje en la
ventana de comandos y devuelve el
resultado de una expresin teclada por el
usuario.
INPUT espera hasta que el usuario ingrese
un valor numrico o una expresin
Mostrar y Pedir datos
Cualquier expresin vlida de MATLAB es
aceptada por INPUT.
>> edad = input(Ingrese la edad: ')
En el caso que sea una cadena de texto es
recomendable:
>> nombre = input('Cmo te llamas?','s')
Mostrar y Pedir datos
La funcin DISP imprime un mensaje en la
ventana de comandos, puede ser un
mensaje de texto o variables.
>> disp('El programa ha terminado')
>> A=rand(4,4)
>> disp(A)
MATLAB
Scripts y Funciones
Scripts
Son archivos de texto (.m) que contienen
comandos de MATLAB.
Para ejecutar los comandos de ese archivo
se debe escribir el nombre del archivo en la
ventana de comandos.
Las variables y resultados son de ambito
GLOBAL.
Scripts
Debe estar contenido en el directorio actual
para poder ejecutarlo (F5 o como comando).
Los nombres de los scripts deben seguir la
regla de las variables de MATLAB.
Mucho ojo con los espacios.
Scripts
El nombre del script no debera interferir con
alguna funcin o con una variable (error
comun).
Los comentarios en MATLAB se generan
con el smbolo %:
>> %Esto es un comentario
Script de Ejemplo
Funciones
Son user-defined a diferencia de las built-
in, tambin escritas en .m.
Las buit-in tambin son llamadas funciones
de llamada.
Las user-defined son llamadas funciones de
definicin.
SIEMPRE reciben parametros para realizar
los calculos.
Funciones
Los comandos dentro de las funciones
operan sobre los parmetros.
Las variables y resultados son de ambito
LOCAL.
Los .m de funciones deben encontrarse en
el directorio actual para poder ser llamadas.
Funciones
Luego de ser creadas y siempre que
estemos en el directorio actual donde esta
contenido el .m de la funcin de definicin,
entonces la funcin se convertir en de
llamada.
Tambin se puede agregar funciones de
definicin a MATLAB.
Funciones
El nombre de la funcin no DEBERIA
interferir con alguno de una buit-in, ni de
otra variable (error comn).
El nombre del archivo .m conteniendo a la
definicin de la funcin DEBE ser igual al
nombre de la funcin.
Funciones
La primera linea del archivo debe tener el
formato:
-2 0 6 3 5 8 4 -1 0 4 6 1
1 2 3 ...
Busqueda en matrices
Los indices del reordenamiento de la matriz
quedan: