Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Taller Matlab
Curso Taller Matlab
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.
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
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
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:
Solución
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 cuales tamaño de la elementos [izquierda,
son una ventana individual en figura fondo, ancho, alto]
la pantalla, donde MATLAB color Color del fondo Valores: Espacio de
de la figura colores (RGB)
despliega salidas gráficas.
Ejemplo:
Sus propiedades se modifican >> figure(1)
>> get(gcf,’position’)
con
>> set(gcf,’color’,[0.1 0.4 0.6])
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
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
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
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);
>= Mayor o igual que
D = or(A,B);
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
5: Métodos numéricos
Integración Numérica
Función Características
Función Características
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.
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
dx
f t , x t , x t 1 , , x t k 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 , t , u , s x , t , u ,
x t x x x
u
u x , t 0 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