Está en la página 1de 43

CURSO TALLER

BÁSICO DE MATLAB

1: El entorno de MATLAB
¿Qué es MATLAB?

 MATLAB es el nombre abreviado de


“MATrix LABoratory”
 Permite hacer cálculos numéricos
con vectores y matrices
 Tiene un gran potencial gráficos y
de programación
 Es una plataforma para crear
herramientas en áreas de aplicación
específica
Ventanas de MATLAB
Ventana Propósito
Command Window Ventana principal, donde se introducen las variables y se corren
los programas.
Figure Window Contiene las salidas de los comandos gráficos.

Editor Window Crea y permite depurar archivos de funciones y scripts.

Help Window Provee una gran variedad de información de ayuda.

Launch Pad Window Provee acceso a herramientas, demos y documentos.

Command History Window Retiene los comandos introducidos en la ventana de comandos.

Workspace Window Provee información sobre las variables que está en uso.

Current Directory Window Muestra los archivos que se encuentran en el directorio en el cual
se está trabajando.
Nomenclatura de variables
Regla Comentarios

Las variables son sensibles a las Fruta, fruta, FruTA y


mayúsculas. FRUTA son todas variables
diferentes en MATLAB.

Las variables deben comenzar con No se permiten los caracteres de


una puntuación
letra, seguida por cualquier número Ya que muchos tiene un significado
de especial en MATLAB.
letras, dígitos o guiones de
subrayado.
Variables especiales
Variable Valor
pi Razón de una circunferencia a su diámetro
inf Infinito, p.e., 1/0
NaN Magnitud no numérica (Not-a-Number),
p.e., 0/0
i y j i = j = 1
Realmin El número real positivo más pequeño que es
utilizable
realmax El número real positivo más grande que es
utilizable
FORMATO NUMÉRICO
Command Window Workspace Ejemplos Comentario

Format short short 3.5111 5 dígitos


35.111
Format short e shortE 3.5111e+01 5 dígitos más exponente

Format short g shortG 3.5111 5 dígitos máximo


35.11
Format long long 3.511111111111111 16 dígitos
Format long e longE 3.511111111111111e+ 16 dígitos más exponente
01
Format long g longG 3.51111111111111 15 dígitos máximo
3.51111111
Format hex hex 400c16c0d6f544bb hexadecimal
Format bank bank 3.51 2 dígitos decimales
Format + + + positivo, negativo o cero

Format rat rational 35111/1000 aproximación racional


Tipos de archivos en MATLAB
Extensión Descripción
m Los archivos “m” son los más comunes, se utilizan
para crear funciones y generar rutinas de programación
que se ejecutan directamente a través de la ventana de
comandos
mat Los archivos mat guardan las variables que contiene un
espacio de trabajo
fig Los archivos fig son archivos que guardan figures
mdl Los archivos mdl contienen programas hechos con
simulink
(otros) Existen otros extensiones que son particulares de un
toolbox específico (.fis, .fda, etc.)
Archivos M
 Scripts: archivos simples con extensión .m que
contienen una secuencia de enunciados con lenguaje
para MATLAB
 Functions: Son funciones que aceptan variables de
entrada y dan como resultado variables de salida (y =
f(x)). Tienen sus propias variables locales.
 Sintaxis
function [mean,stdev] = stat(x)
n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/n));
 Esta funciones puede llamarse a través de un script o
directamente en la ventana de comandos, por ejemplo
[mean,stdev] = stat(x)
 Si una función tiene más de una variable de salida, las
variables se encierran entre corchetes [], y se separan
por comas, mientras que si la función requiere de más de
una variable de entrada, entonces se deben separar
solamente por comas.
CURSO TALLER
BÁSICO DE MATLAB

2: El álgebra y MATLAB
Matrices
 En MATLAB las matrices y vectores son variables
que tienen nombres.
 Para definir una matriz no hace falta establecer
de antemano su tamaño (puede cambiarse
posteriormente).
 Las matrices se definen por filas,
 los elementos de una misma fila están separados
por espacios o comas,
 mientras que las filas están separadas por Enter
o por caracteres punto y coma (;).
 Los términos de matrices y vectores deberán ir
dentro de caracteres corchetes [].
Matrices elementales
Matrices Elementales
>> eye(3)
eye Matriz identidad ans =
1 0 0
0 1 0
0 0 1

>> ones(3,2)
ones Matriz de unos ans =
1 1
1 1
1 1

>> rand(3)
rand Números aleatorios con ans =
0.4447 0.9218 0.4057
distribución uniforme 0.6154 0.7382 0.9355
0.7919 0.1763 0.9169

>> randn(3)
randn Números aleatorios con ans =
-0.1867 2.1832 1.0668
distribución normal 0.7258 -0.1364 0.0593
-0.5883 0.1139 -0.0956

>> zeros(3)
zeros Matriz de ceros ans =
0 0 0
0 0 0
0 0 0

>> diag([3 1 2])


diag Matriz diagonal ans =
3 0 0
0 1 0
0 0 2
Vectores
Nombre Descripción
linspace(X1,X2,[n]) Genera un vector renglón linealmente
distribuido entre el intervalo [x1, x2]. n
especifica el número de elementos del vector;
si n no se incluye el vector tendrá 100
elementos.
logspace(X1,X2,[n]) Genera un vector renglón logarítmicamente
distribuido entre el intervalo [x1, x2]. n
especifica el número de elementos del vector;
si n no se incluye el vector tendrá 50
elementos.
X1:X2 Produce un vector entre el rango [x1, x2] con un
incremento de 1
X1:dX:X2 Produce un vector entre el rango [x1, x2] con un
incremento igual a dX
OJO
 Como se podrá observar, en MATLAB los
caracteres
 [] (corchetes),
 () (paréntesis),
 {} (llaves),
 , (comas),
 ; (punto y como) y
 : (dos puntos)
tiene significados y aplicaciones muy
específicas y es importante no confundirlos
Operaciones matemática básicas
Operaciones Matemáticas Elementales
+ adición o suma
– sustracción o resta
* multiplicación
^ 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
Funciones matemáticas elementales
abs Valor absoluto coth Cotangente hiperbólica
acos Arco seno csc Cosecante
acosh Argumento coseno hiperbólico csch Cosecante hiperbólica
acot Arco cotangente exp Exponencial
acoth Argumento cotangente hiperbólica fix Redondeo hacia cero
acsc Arco cosecante floor Redondeo hacia menos infinito
acsh Argumento cosecante hiperbólica gcd Máximo común divisor
angle Ángulo de fase imag Parte imaginaria compleja
asec Arco secante lmc Mínimo común múltiplo
asech Argumento secante hiperbólica log Logaritmo natural
asin Arco seno log10 Logaritmo decimal
asinh Argumento seno hiperbólico real Parte real compleja
atan Arco tangente round Redondeo al entero más próximo
atan2 Arco tangente de cuatro cuadrantes sec Secante
atanh Argumento tangente hiperbólica sech Secante hiperbólico
ceil Redondeo hacia más infinito sin Seno
conj Complejo conjugado sinh Seno hiperbólico
cos Coseno sqrt Raíz cuadrada
cosh Coseno hiperbólico tan Tangente
cot Cotangente tanh Tangente hiperbólica
Operaciones comunes con
matrices

Nomenclatura Operación
A’ Transpuesta de A
eig(A) - Eigenvalores de A
[D,E] = eig(A) - Eigenvalores y eigenvectores de A
[L,U] = lu(A) Factorización LU de A
R = chol(A) Factorización de Cholesky de A
[U,S,V] = svd(A) Descomposición en valores singulares para la
matriz A
[Q,R] = qr(A) Descomposición ortogonal-triangular de A
inv(A) Inversa de A
det(A) Determinante de A
Ejemplo:

1000 1  1000C A1  V1 k1cA 1


Reactor Vi (L) ki (h-1) Reactor Vi (L) ki (h-1)
1000C A1  100C A3  1100C A2  V2 k2 C A2
1 1000 0.1 3 100 0.4
1100C A 2  100C A 4  1200C A3  V3 k3 C A3
2 1500 0.2 4 500 0.3
1100C A3  1100C A4  V4 k4 C A4
Ejemplo
 Sistema lineal
1000  V1 k1 0 0 0   C A1  1000 
    
 1000  1100  V 2 k 2  100 0 C
  A2    0 
 0 1100  1200  V3 k3  100   C A3   0 
     
 0 0 1100  1100  V k 
4 4   A4  C  0 
 Valor numérico
1000  1000  0.1 0 0 0   C A1  1000 
 
 1000  1100  1500  0.2   100 0  
  C A2   0 

 0 1100  1200  100  0.4   100 C    0 
   A3   
 0 0 1100  1100   500  0.3     C A4   0 
 

 Solución

A\b = (0.9091, 0.6969, 0.6654, 0.5856)


Instrucciones básicas con polinomios
Polinomios
poly(A) polinomio característico de la matriz A
roots(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
x
polyvalm(pol,A) evaluación del polinomio pol de la matriz A

conv(p1,p2) producto de convolución de dos polinomios p1 y p2

[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ón
CURSO TALLER
BÁSICO DE MATLAB

3: Visualización de datos
Las figuras en MATLAB
 Los archivos con extensión Nombre de Descripción de Valores de la
la propiedad la propiedad propiedad
“.fig” son objetos gráficos position Localización y Valor: un vector de 4
denominados figuras, los tamaño de la elementos [izquierda,
cuales son una ventana figura fondo, ancho, alto]

individual en la pantalla, color Color del fondo Valores: Espacio de


de la figura colores (RGB)
donde MATLAB despliega
salidas gráficas. Ejemplo:
>> figure(1)
>> get(gcf,’position’)
Sus propiedades se modifican >> set(gcf,’color’,[0.1 0.4 0.6])
con
get(H,'PropertyName')
Y se obtienen con

set(H,'PropertyName‘,PropertyValue,...)
Elementos de las figuras
 Dentro de la figura existen varios
elementos que se pueden modificar
Comandos básicos para graficar

plot Gráfica en 2 dimensiones con escala lineal

loglog Gráfica con escala logarítmica en las dos axisas

semilogx Gráfica con escala logarítmica en x y lineal en y

semilogy Gráfica con escala logarítmica en y y lineal en x

plotyy Gráfica con dos escalas, a la derecha e izquierda

stem Gráfica de barras

plot3 Gráfica en 3 dimensiones con escala lineal


Control de las gráficas
Funciones
title('título') añade un título al dibujo
xlabel('tal') añade una etiqueta al eje de abscisas. Con xlabel off
desaparece
ylabel('cual') añade una etiqueta al eje de ordenadas. Con ylabel off
desaparece
text(x,y,'texto') introduce 'texto' en el lugar especificado por las
coordenadas x e y. Si x e y son vectores, el texto se repite
por cada par de elementos. Si texto es también un vector de
cadenas de texto de la misma dimensión, cada elemento se
escribe en las coordenadas correspondientes
gtext('texto') introduce texto con ayuda del ratón: el cursor cambia de
forma y se espera un clic para introducir el texto en esa
posición
legend() define rótulos para las distintas líneas o ejes utilizados en
la figura. Para más detalle, consultar el Help
grid activa la inclusión de una cuadrícula en el dibujo. Con grid
off desaparece la cuadrícula
Estilos de líneas y marcadores
Símbolo Color Símbolo Marcadores (markers)

y Yellow . puntos
m magenta o círculos
c cyan x marcas en x
r red + marcas en +
g green * marcas en *
b blue s marcas cuadradas (square)
w white d marcas en diamante (diamond)
k black ^ triángulo apuntando arriba
Símbolo Estilo de línea v triángulo apuntando abajo
- líneas continuas > triángulo apuntando a la derecha
: líneas a puntos < triángulo apuntando a la izquierda
-. líneas a barra-punto p estrella de 5 puntas
-- líneas a trazos h estrella se seis puntas
CURSO TALLER
BÁSICO DE MATLAB

4: Programación básica
¿Dónde programar?
Archivo m script Archivo m function
No acepta ni regresa Puede aceptar argumentos de
argumentos de entrada o de entrada y regresa argumentos de
salida salida
Las variables que se utilizan en Las variables internas son locales
estos programas operan en el (cuando se termina el programa) el
workspace workspace no se altera

Útil para automatizar una serie Útil para ampliar el lenguaje de


de pasos que se necesitan MATLAB para su aplicación
realizar muchas veces
Operadores y funciones lógicas
Operador Expresión en Función A = [2 7 6;9 0 5;3 0.5 6];
lógico MATLAB Equivalente B = [8 7 0;3 2 5;4 -1 7];
Y A & B and(A,B) A == B
ans =
O A | B or(A,B)
0 1 0
O xor(A,B) 0 0 1
excluyente 0 0 0
No A ~ B not(A)

Tabla de verdad
Operador Descripción
< Menor que A = [1 1 0 0]';
<= Menor o igual que B = [1 0 1 0]';
> Mayor que C = and(A,B);
>=
D = or(A,B);
Mayor o igual que
E = xor(A,B);
== Egual que ['A B Y O XO' ;
~= No igual que num2str([A B C D E])]
Controles de flujo
 if, junto con else y elseif, ejecuta un grupo de sentencias
basadas en alguna condición lógica.
 switch, junto con case y otherwise, ejecuta diferentes
grupos de sentencias dependiendo del valor lógico de alguna
condición.
 while, ejecuta un grupo de sentencias un indefinido número
de veces, basándose en alguna condición lógica.
 for, ejecuta un grupo de sentencias un número fijo de veces.
 continue, pasa el control de flujo a la siguiente iteración de
un ciclo for o while, saltando las sentencias remanentes en
el cuerpo del loop.
 break, termina la ejecución de un ciclo for o while.
 Try...catch, cambia el control de flujo si un error se detecta
durante la ejecución.
 return, hace que la ejecución se regrese a una función.
Todas las sentencias anteriores usan end para indicar el final del
bloque de control de flujo.
Sentencia If
if expresión_lógica_0
Sentencias_0
{ elseif expresión_lógica_1
sentencias_elseif_1
elseif expresión_lógica_2
sentencias_elseif_2
...
else
sentencias_else }
end
Sentencia switch
switch expresión (escalar o texto)
case Valor_1
sentencias_1 % Se ejecutan si la expresión es valor_1
case Valor_2
sentencias_2 % Se ejecutan si la expresión es valor_2
.
.
.
otherwise
sentencias % Se ejecutan si la expresión no coincide
end
Sentencia while y for
while expresión
sentencias
end

for contador = inicio:incremento:fin


sentencias
end
Secuencia try … catch
try,
Sentencia,
...,
Sentencia,
catch,
Sentencia,
...,
sentencia,
end
CURSO TALLER
BÁSICO DE MATLAB

5: Métodos numéricos
Integración Numérica

Función Características

Quad Usa la cuadratura adaptativa de


Simpson
Quadl Usa la cuadratura adaptativa de
Lobatto
Dblquad Integral doble evaluada
numéricamente
triplequa Integral triple evaluada
d numéricamente
Derivación Numérica

Función Características

diff(X) Calcula las diferencias entre los


elementos adyacentes de X
diff(X,n) Calcula las diferencias n-esimas de los
elementos adyacentes de X
Gradient Calcula el gradiente numérico

del2 Calcula el Laplaciano discreto


Solución de ecuaciones
no lineales

Función Características
fzero(fun,xo,... Encuentra el valor de x para el cual
options,P1,P2,…) f(x) = 0. Donde x es un escalar.

fminbnd(fun,x1,x2,... Encuentra el valor de x para el cual


options,P1,P2,…) f(x) tiene un valor mínimo en el
intervalo (x1,x2). x es un escalar.

fminsearch(fun,xo,... Encuentra el valor del vector x para


options,P1,P2,…) el cual f(x) tiene un valor mínimo.
Solución de EDOs
Resuelve este tipo de
Función Método empleado Precisión Cuándo utilizar
problemas
ode45 Ecuaciones Fórmula explícita de Media La mayoría de las veces. Este debe ser la
diferenciales fáciles Runge-Kutta (4,5) primera opción
ode23 Ecuaciones Fórmula explícita de Baja Si se utilizan tolerancias de error
diferenciales fáciles Runge-Kutta (2,3) pequeñas o se para resolver problemas
moderadamente difícil
ode113 Ecuaciones Método de Adams- De baja a Si se usas tolerancias de error demasiado
diferenciales fáciles Bashfoth-Moulton de orden alta pequeñas o para resolver una ODE
variable computacionalmente intensiva
ode15s Ecuaciones Formulas numéricas de De baja a Si ode45 es lento debido a que el
diferenciales y DAEs diferenciación (NDFs) alta problema es difícil
difíciles
ode23s Ecuaciones Fórmula de Rosenbrock Baja Si se utilizan tolerancias de error
diferenciales difíciles modificada de orden 2 pequeñas par resolver sistemas difíciles y
matrices de masa constante.
ode23t Ecuaciones Regla trapezoidal de Baja Si el problema es sola moderadamente
diferenciales y DAEs interpolación libre difíciles y se necesita una solución
moderadamente numérica sin amortiguamiento.
difíciles
ode23tb Ecuaciones Fórmula implícita de Baja Si se tiene tolerancias pequeñas de error
diferenciales difíciles Runge-Kutta (TR-BDF2) para resolver problemas difíciles
ode solvers
 Ode se aplica a sistemas de la forma

M t, x  x  f t, x 
x  0  a
 Su nomenclatura es
[t,x] = ode#(odefun,tspan,xo)
donde ode# es cualquiera de las funciones ode que se
muestran en la tabla anterior. Mientras que los
argumentos básicos son
 odefun Función que evalúa el sistema de ecuaciones
diferenciales. Este tiene la forma
dxdt = odefun(t,x)
donde t es un escalar, y dxdt y x son vectores columna.
 tspan es un vector que especifica el intervalo de
integración. Este puede ser un vector de dos elementos
[t0, tf] que especifican el tiempo inicial (t0) y el final (tf),
o un vector de mayor longitud que indica en que valores
dentro del intervalo de tiempo se desea la solución.
 xo es un vector de condiciones iniciales para los estados
del sistema.
Ecuaciones diferenciales con retardo
 Para sistemas de la forma
 f  t , x  t  , x  t  1  , , x t   k 
dx
t  t0 , t f 
dt
x  t     t  t  t0
donde t es la variable independiente, x es la variable dependiente, y
t1,…, tk, son los retardos (positivos y constantes) que presenta la
variable dependiente, MATLAB dispone el la función dde23 para
resolverlos. El método de solución que utiliza es el explícito de Runge-
Kutta (2,3) interpolante. La sintaxis básica de esta función es
[t,x] = dde23(ddefun,lags,historytspan)
donde los argumentos básicos son
 ddefun Función que evalúa el sistema de ecuaciones diferenciales. Este
tiene la forma
dxdt = ddefun(t,x,z)
donde t es un escalar, dxdt y x son vectores columna de la variable
dependiente, y Z(:, j) es x(t – tj) para tj = lags(j).
 lags es un vector de constantes positivas que representa los retardos t1,…,
tk.
 history es una función de t que evalúa las solución para x(t) en t  t0, es
decir .
 tspan es un vector que especifica el intervalo de integración de la forma [t0,
tf] que especifican el tiempo inicial (t0) y el final (tf).
Problemas con valores en la frontera
 La función bvp4c resuelve problemas con valores en dos fronteras
para ecuaciones diferenciales ordinarias de la forma
dy
 f  x, y , p  , x   a, b 
dx
g  y  a  , y b  , p   0

 La sintaxis básica de bvp4c es


sol = bvp4c(odefun,bcfun,solinit)
donde los argumentos son
 odefun Función que evalua las ecuaciones diferenciales. Este tiene la forma
dydx = odefun(x,y)
donde x es un escalar, dydx y y son vectores columna de la variable
dependiente. odefun también puede aceptar un vector de parámetros
desconocidos y un número variable de parámetros conocidos.
 bcfun Función que evalúa el residuo en las condiciones frontera. Tiene la
forma básica
res = bcfun(ya,yb)
 donde ya y yb son vectores columna que representan a y(a) y y(b),
mientras que res es un vector columna de residuos de las condiciones
frontera. También puede haber parámetros desconocidos.
 solinit es una estructura con campos x y y, que se genera utilizando la
función bvpinit, la sintaxis básica de esta función es
solinit = bvpinit(x,v)
donde x es la malla a utilizar y v es un vector de valores iniciales.
Ecuaciones diferenciales parciales
 El tipo de ecuaciones que se resuelven son
 u  u    u    u 
c  x, t , u,   xm  xm f     
x   
x , t , u , s x , t , u ,
 x  t x   x 
 u 
u  x, t0   u0  x  p  x, t , u   q  x, t  f  x, t , u,   0
 x 
La función es pdepe cuya sintaxis es
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options,p1,p2...)
donde los argumentos son:
 m Un parámetro correspondiente a la geometría del problema. m puede
ser cartesiano = 0, cilíndrico = 1, o esférico = 2.
 pdefun Una función que define los componentes de la ecuación diferencial
parcial. Su forma es:
[c,f,s] = pdefun(x,t,u,dudx)
donde c, f, y s, son vectores columna
 icfun Una función que define las condiciones iniciales. De la forma u =
icfun(x)
 bcfun Una función que define las condiciones frontera. De la forma
[p1,q1,p2,q2] = bcfun(x1,u1,x2,u2,t)
 xmesh Un vector [xo, x1, …, xn] que especifica los puntos en los cuales se
requiere la solución para cada valor de tspan. Debe ser mayor igual a 3.
 tspan Un vector [t0, t1, …, tf] que especifica los puntos en los cuales se
requiere la solución para cada valor de xmesh.
CURSO TALLER
BÁSICO DE MATLAB

6: Introducción a Simulink

También podría gustarte