Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Bsico MATLAB Breve
Curso Bsico MATLAB Breve
DE
MATLAB
ndice
1
1.1
1.2
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.4
1.5
2
2.1
2.1.1
2.1.2
2.1.3
2.1.4
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
Introduccin.
La Ventana de MATLAB
Estructura de la Ayuda
Comandos y sintaxis bsica
Comandos de informacin general
Comandos de administracin del espacio de trabajo
Comandos y funciones de administracin
Constantes y variables especiales
Funciones matemticas
Hiperblicas
Complejas
Estadsticas
Operadores aritmticos y caracteres especiales
Operadores lgicos y relacionales
M-Files
Temporizacin
Control de la ejecucin y flujo de programas
Formato de Salida
Salvar una sesin de trabajo
Trabajo con arreglos, matrices y vectores
Definiciones
Generacin de matrices
Formacin de un vector fila
Formacin de un vector columna
Matrices elementales definidas en MATLAB
Libretos o guiones (scripts M-Files)
Funciones M-Files
Sub funciones y funciones anidadas
Crear nuevas funciones
Funciones annimas
Funcin funcin
Que usar? Libretos o Funciones?
Cadena de textos, entrada de datos y mensajes de errores
Creacin de variables globales
Lazos for y while
5
6
7
7
8
8
9
9
9
11
12
12
12
13
13
13
14
15
15
16
18
18
19
21
21
22
23
23
24
25
2
2.11.1 for
2.11.2l while
Condiciones if y switch
2.12
2.12.1 if
2.12.2 swith
Depurar y perfilar
2.13
Grficos
3
Grficos en dos dimensiones
3.1
Grficos tridimensionales
3.2
Ms sobre el comando plot
3.3
Salvar una figura
3.4
Publicacin de figuras
3.5
Subplot
3.6
Grficos de argumentos complejos
3.7
Mtodos numricos en MATLAB
4
Polinomios
4.1
Ms sobre ajustes de polinomios
4.2
Solucin de ecuaciones
4.3
Sistemas de ecuaciones lineales
4.4
Ecuaciones de regresin mltiple
4.5
4.5.1 Ecuaciones de regresin lineal mltiple
4.5.2 Ecuaciones de regresin polinmicas
Estadstica en MATLAB
4. 6
Matemtica simblica
5
Creacin de variables simblicas
5.1
Creacin de funciones matemticas simblicas
5.2
Simulink
6
Creacin de un modelo
6.1
Subsistemas
6.2
Enmascarar un sistema
6.3
Otros bloques de inters
6.4
25
25
26
26
27
28
28
28
30
31
32
32
33
34
34
34
36
37
38
40
40
41
41
42
42
44
48
48
49
50
53
Introduccin:
El propsito de este curso es realizar una conquista til, y en cierto grado especializada, de los fundamentos
esenciales del MATLAB con el objetivo de lograr las habilidades suficientes para incursar con xito en este
campo imprescindible del momento. MATLAB es un compendio computacional interdisciplinario en las
ciencias, ingeniera y en las matemticas aplicadas, con un poderoso lenguaje de programacin, clculo y
visualizacin que es comn emplearlo como herramienta de afinacin y validacin antes de que muchos
algoritmos y modelos sean definitivamente depositados en un lenguaje comercial ms propio para un
pblico general. Las aplicaciones tpicas de MATLAB incluyen:
Matemticas y clculos
Desarrollo de algoritmos
Modelaje, simulacin y establecimiento de prototipos
Anlisis de datos, exploracin y visualizacin
Grficos cientficos y de ingeniera
Desarrollo de aplicaciones, incluyendo la construccin de interfases grficas
MATLAB aporta una gran capacidad para la investigacin, el desarrollo y el anlisis de sistemas. En cada
versin MATLAB proporciona nuevos recursos y un escenario ms enriquecido. MATLAB posee una
familia de aplicaciones especficas conocidas como toolboxes desarrolladas para estudios especializados
que permiten resolver problemas diversos o muy particulares. Estas herramientas ocupan campos en redes
neuronales, lgica difusa, algoritmos genticos, sistemas de control, lgebra financiera, procesamiento de
imgenes y seales, fijacin de curvas, adquisicin de datos, y muchos otros que incrementarn la
productividad para resolver problemas esenciales. Estas herramientas no son ms que funciones de
MATLAB; M- Files que es posible enriquecer al crear funciones propias.
MATLAB, por tradicin, responde a rdenes escritas en la lnea de comandos o desde archivos. Sin
embargo, en las ltimas ediciones, se ha incrementado su accesibilidad desde interfases grficas con un
elevado nivel de interactividad especialmente til para comenzar. Los comandos tienen la ventaja de facilitar
la reproduccin y la repeticin de los resultados. MATLAB es relativamente sencillo de aprender y la mejor
forma de lograrlo es pasar directamente a ejecutarlo.
La formacin de variables en MATLAB se realiza con caracteres alfanumricos y cada variable debe estar
definida antes de que pueda ser empleada. Cuando una expresin arroja un valor, ste se almacena en la
variable ans la cual puede ser utilizada como cualquier otra variable. El mximo error, o la mxima precisin
con que se trabaja en la aritmtica de punto flotante, lo da la variable eps. Una vez que las variables hayan
sido definidas, existen en el espacio de trabajo; workspace. La existencia de una variable en el espacio de
trabajo permite ser empleada para mltiples objetivos.
1.1 La ventana de MATLAB
Cuando se inicia MATLAB, se presenta una ventana de varios paneles que es posible personalizar mostrada
en la Figura 1
(File/set path). Mucho ms fcilmente se realiza seleccionando el directorio deseado en la pestaa grfica
del directorio actual. Es posible adicionar archivos a un directorio.
Aledao al Directorio Actual, est la pestaa del espacio de trabajo (Workspace) donde se muestra qu
variables estn definidas y cierta informacin sobre su contenido. En la ventana inferior se muestra el
Historial de Comandos (Command History) donde se registran las rdenes efectuadas en la ventana de
comandos. El registro histrico de comandos es persistente y se mantiene en distintas sesiones de trabajo de
modo que si es necesario, se puede copiar y archivar en un lugar apropiado.
Presionando el botn inicio de MATLAB; (Start), se encuentran las herramientas de aplicaciones, el acceso
a sus interfases grficas, la simulacin dinmica de sistemas, la conexin con la ayuda y otros temas que
facilitan el trabajo en el ambiente de MATLAB.
1.2 Estructura de la Ayuda
Una caracterstica especial e importante de MATLAB es el acceso en todo momento a la ayuda con una
viabilidad extraordinaria. En ella se abordan todos los tpicos con ejemplos y demostraciones. Por esta razn,
para iniciar el trabajo, es til conocer cmo est estructurada y qu posibilidades de ayuda brinda
MATLAB. Existen dos niveles de ayuda:
1. Si se necesita una ayuda rpida durante la sintaxis de un comando, se puede escribir sobre la ventana
de comandos la palabra help seguida del comando especfico que se desea investigar; por ejemplo
help plot. Si slo se escribe la palabra help recibir como respuesta una lista de categoras de ayuda
que contiene en el listado de todos los comandos.
2. Escribiendo doc seguido del nombre de un comando, recibir una ayuda ms general en una ventana
adicional mucho ms elaborada e informativa que con la alternativa help. En el panel izquierdo se
ver desplegado jerrquicamente toda la documentacin disponible. Si slo se escribe doc, o se
selecciona help del men, acudir la ventana raz de la ayuda.
Existen otros comandos de auxilio entre los que pueden mencionarse helpdesk que reporta una
documentacin para la solucin de problemas en forma de un hipertexto comprensivo, lookfor para la
bsqueda de M-files por palabras claves; info y support para informacin de MATLAB y MathWorks, etc
que deben ser explorados en trabajo individual recurriendo al listado de categoras de comandos.
Acciones
Muestra todas las demostraciones que acompaan a la versin del MATLAB
Da informacin sobre la versin de MATLAB, Simulink y las herramientas del sistema
Muestra informacin sobre la versin en ejecucin de MATLAB
Acciones
Limpia la ventana de comandos
clear
pack
exist
global
help
lookfor
quit
Detiene el MATLAB
who
whos
load
save
recycle
exit
type
open
which
inmem
Interpretacin
ans
Respuesta ms reciente
eps
i,j
Unidad imaginaria
inf
Infinito
NaN
pi
why
No es un nmero
Nmero
Respuesta breve
Exponencial
ex
log(x)
Logaritmo Natural
ln(x)
log10(x)
Logaritmo base 10
log10 ( x)
sqrt(x)
Raz cuadrada
nthroot(x)
x
n
Trigonomtricas
acos(x)
Coseno inverso
cos 1 ( x)
asin(x)
Seno inverso
sen 1 ( x)
atan(x)
Tangente inversa
tan 1 ( x)
cos(x)
Coseno
cos(x)
sin(x)
Seno
sen(x)
tan(x)
Tangente
tan(x)
sec(x)
Secante
sec(x )
csc(x)
Cosecante
csc(x)
Hiperblicas
acosh(x)
cosh 1 ( x)
asinh(x)
senh 1 ( x)
atanh(x)
tanh 1 ( x )
cosh(x)
Coseno hiperblico
cosh(x )
senh(x)
Seno hiperblico
senh(x)
tanh(x)
Tangente hiperblica
tanh(x )
sech(x)
Secante hiperblica
sec h( x)
csch(x)
Cosecante hiperblica
csc h( x )
Complejas
abs(z)
Valor absoluto
angle(z)
conj(z)
Complejo conjugado de Z
img(z)
Valor imaginario de Z
real(z)
Valor real de Z
Estadsticas
erf(x)
mean(x)
Calcula el promedio
median(x)
Calcula la mediana
std(x)
Operador de adicin
Operador de resta
.*
.^
10
./
.\
Punto decimal
( ), { }
[]
[,]
Concatenacin Horizontal
[;]
Concatenacin vertical
Establece un comentario
.'
Transpuesta
'
Asignacin
Igual a
~=
Desigual
<
Menor que
>
Mayor que
<=
>=
&
xor
1.3.6 M-Files
eval
feval
Evala la funcin
function
global
11
nargin
nargout
script
1.3.7 Temporizacin
cputime
clock
tic, toc
case
else
elseif
end
error
for
if
otherwise
return
switch
warning
while
format short
format long
format short e
format long e
Format bank
Format rat
>> pi
12
ans =
3.1416
>> format short; pi
ans =
3.1416
>> format long; pi
ans =
3.14159265358979
>> format short e;pi
ans =
3.1416e+000
>> format long e; pi
ans =
3.141592653589793e+000
>> format rat;pi
ans =
355/113
1.5 Salvar una sesin de trabajo.
Cuando se abandona MATLAB, todas las variables que existen en el espacio de trabajo se pierden. Si se
utiliza el comando save, las variables se almacenan en un archivo llamado matlab.mat. Una vez de nuevo
dentro de MATLAB, el comando load reestablece el espacio de trabajo al estado anterior.
13
Aunque un arreglo es mucho ms general y menos matemtico que una matriz, los trminos se usan a veces
de forma intercambiable. Algo ms: en MATLAB no existe realmente una distincin formal entre un escalar
y una matriz de 11. Note que no existe un arreglo unidimensional en MATLAB. An los vectores son
arreglos bidimensionales con una dimensin trivial.
Para introducir una matriz como una lista de elementos, se deben seguir las convenciones bsicas siguientes:
La dimensin de A es:
>> ndims(A)
ans =
2
El tamao de A es:
>> size(A)
ans =
3 3
14
1
4
7
2
5
8
3
6
9
0
2
2
En ocasiones es necesario acceder a uno o ms elementos de un arreglo o matriz. Para ello se utilizan los
ndices dimensionales que identifican a cada elemento encerrado entre parntesis. El resultado es la
extraccin del elemento o bloque indicado. Ejemplos: Extraccin del elemento perteneciente a la fila 1
columna 2
>> E(1,2)
15
ans =
2
Extraccin de un bloque que comprende los elementos de la fila 1 y 2 que ocupan las columnas 2 y 3
>> E(1:2,2:3)
ans =
2 3
5 6
El operador colon (dos puntos); : , es muy importante en MATLAB. Con l se indica un intervalo de
variacin entre dos valores:
>> x = [1:10]
x=1 2 3
10
En este caso se asume por defecto un intervalo de 1 entre los puntos. Para especificar un paso de 0.5 se tiene:
x = [1:0.5:5]
x=
Columns 1 through 9
1.0000 1.5000
2.0000
2.5000
3.0000
3.5000 4.0000
4.5000
5.0000
En una matriz o vector el operador : permite seleccionar una parte del mismo. As en el vector y se obtienen
los elementos entre el 2 y el 5to. Lugar con la expresin:
>> y = x(2:5)
y = 1.5000 2.0000 2.5000 3.0000
Arreglo de ceros
ones(x,y)
Arreglo de unos
eye(x,y)
Matriz identidad
repmat(x,y)
rand(x,y)
randn (x,y)
linspace (x,y)
logspace(x,y)
16
length(A)
ndims(A)
Nmero de dimensiones
numel(A)
Nmero de elementos
disp(A)
isempty(A)
isequal(A)
min(A)
sum(A)
prod(A)
cat
Concatena arreglos
find
end
ltimo ndice
diag
triu
tril
Aritmtica Matricial
dot
cross
inv
rank
MATLAB posee, adems, un grupo de matrices especializadas para el trabajo en diferentes campos de la
ciencia que pueden ser consultadas en la ayuda. Entre ellas la matriz de Hilbert, Pascal, Mgica, Wilkinson,
Companion, Vandermonde, etc
17
Para ejecutarlo
>> trigonometrica
2.3 Funciones M-files
Las funciones son M-files que extienden las capacidades de MATLAB. Comparadas con los libretos son
mucho mejores para compartimentar las tareas. Cada funcin comienza con una lnea del tipo:
Las variables ini1,ini2,ini3, son las variables de entrada y las out1,out2,out3, son las variables de salida . Se
pueden tener tantas funciones como se desee y llamarlas cuando se desee. La condicin para que sea
reconocida una funcin es que sea guardada en un archivo con el mismo nombre declarado en la sintaxis; es
decir: en un archivo nombrefuncin.m . Para ejecutarla slo es necesario escribir en la lnea de comandos su
nombre al igual que en los libretos.
Unas de las principales caractersticas de una funcin es el carcter local de sus variables. Cualquier
argumento o variable creada durante la ejecucin de la funcin, son variables slo de esa funcin y poseen un
espacio privado de trabajo. Por su parte las variables existentes en la lnea de comandos o workspace, no son
reconocidas por la funcin.
Como ejemplo se ha creado un archivo con una funcin llamada stat cuyo objetivo es determinar la media y
la desviacin estndar de un vector x.
20
function[y]=sincos(x)
y=cos(x)-2*sin(2*x-pi/3);
Se salva en el subdirectorio de trabajo con el nombre sincos y la extensin .m. Esta es la forma en la cual
estn escritas las funciones en MATLAB. Note cmo no hay declaracin de variables, ni comandos de inicio
o fin de programa.
21
>> a=sqrt(4)
a=
16
22
ans =
3.1416
Otro ejemplo:
La funcin x = fminbnd (fun, x1, x2) trata de encontrar un mnimo local de la funcin fun en el intervalo
23
Los mensajes de error se muestran ms adecuadamente con el comando error ya que cuando se sita en un
M-File, se aborta la ejecucin del mismo.
En un M-File, se puede actuar interactivamente para la entrada de datos con la funcin input. Por ejemplo:
>> Pn = input ('Potencia nominal en kW, Pn= ');
Potencia nominal en kW, Pn =
En este caso se despliega un mensaje en el prompt y se realiza una pausa en la ejecucin del programa hasta
que se introduzca el dato solicitado. Presionando la tecla de aceptacin, el dato se asigna a la variable
solicitada y se contina la ejecucin del programa.
Finalmente es necesario saber que en las funciones de MATLAB se pueden encontrar rdenes que son
imposibles de ejecutar. En este caso se emite una seal de error desplegando un mensaje en la ventana de
comandos, se detiene la ejecucin del programa y se ignoran los argumentos de salida de la funcin. Similar
a un error es la seal de alerta (warning) la cual despliega un mensaje pero permite que la ejecucin
contine. Es posible crear estas seales de alerta e incluso tener la capacidad de esquivar un error en una
subrutina y continuar con un plan de contingencia usando los comandos try y catch. Con este objetivo se
debe consultar la ayuda
24
2.11.1 for
La instruccin for se utiliza para repetir un argumento un nmero especfico de veces. La sintaxis general es:
end
Los argumentos son ejecutados mientras la expresin sea cierta. Por ejemplo, dado un nmero positivo x, se
calcula y se muestra el menor nmero no negativo que cumple la relacin 2n +2n x
>> x = 16;
n = 0;
while 2^n +2*n < x
n = n+1;
end
>> n
n=
4
2.12 Condicionales if y switch
Cuando se necesita modificar la ejecucin de los argumentos en dependencia de las condiciones en la rutina,
se utilizan comandos condicionales similares a los utilizados en otros lenguajes.
2.12.1 if
La forma ms simple de un argumento condicional if es:
if relacin
argumento
end
En este caso el argumento ser ejecutado slo si la relacin es cierta. Tambin es posible utilizar mltiples
ramas como se muestra a continuacin:
if x > 6
y = x^2 +3
elseif -1< x<6
y = 2*x^2+3*x-1
else
y = 0.98
end
El condicionante if puede emplear operadores relacionales o funciones que retornen valores lgicos as como
condicionantes lgicos combinados evaluados de izquierda a derecha. Por ejemplo:
26
2.12.2 switch
El comando switch cambia o permuta entre varios casos de acuerdo a la expresin. La forma general de
sintaxis es:
switch switch_expr
case case_expr,
argumento
case {case_expr1, case_expr2, case_expr3,...}
argumento ...
otherwise
argumento
end
Los argumentos que siguen al primer caso son ejecutados si coinciden con la expresin de cambio declarada.
Cuando la expresin de cambio se encuentra en un arreglo como en el segundo caso, el cambio se ejecuta si
slo uno de los elementos del arreglo coincide con la expresin de cambio. Si ninguno coincide, se pasa a la
opcin otherwise. Slo se ejecuta un caso y la ejecucin concluye con el argumento final end. Por ejemplo:
>> x = 6;
switch x
case x > 2
disp ('bien')
case x <2
disp ('mal')
otherwise
x = 0.1
end
x=
0.1000
27
3. Grficos
Una de las fortalezas de MATLAB es el tratamiento grfico. MATLAB posee control sobre todos los
aspectos de un grfico adjudicndole poder, elegancia y disfrute en la ejecucin.
x=[-pi:0.1:pi];
y=cos(x) - 2*sin(2*x-pi/3);
plot(x,y);
xlabel('coordx');
ylabel('coordy');
title('funcin trigonomtrica');
28
grid on;
En la primera lnea se define el intervalo de variacin de las x, en la segunda se calcula la expresin de y a
partir de las funcin trigonomtrica definida. En la tercera lnea el comando plot calcula y muestra la
grfica de los pares (x, y). Los comandos xlabel , ylabel y title tienen como objetivo imprimir en el grfico
el nombre que se le dar a los ejes x ,y y su ttulo. La funcin grid on activa una rejilla en el intervalo en
que ha sido evaluada la funcin. La ayuda de MATLAB brinda ms posibilidades para cambiar el color de
las lneas, marcar con puntos, cruces, crculos, etc los pares (x,y). Consulte la ayuda del MATLAB para ms
posibilidades. Los comandos zoom y ginput permiten aproximar y precisar puntos sobre la grfica.
Si se desean obtener varios grficos superpuestos (deben ser compatibles), se emplea el comando hold on
Con la interfase grfica y los botones de la
barra de men principal se pueden realizar
diversas transformaciones y obtener una
figura como la mostrada a la derecha.
En el ejemplo a continuacin se muestra el
trabajo con la herramienta de ploteo de
MATLAB para graficar una variable
existente en el espacio de trabajo;
(workspace), vs una expresin escrita en el
dilogo Add Data de Plot tools. Los pasos
son:
1.- Se crea una variable en el espacio de
29
Para adicionar el ttulo de la figura, de los ejes y las propiedades de stos, se utilizan las opciones de edicin
grafica que proporciona la barra de men de la figura. La rotacin, el rotulado de ejes y el ttulo de la figura
se han adicionado por este procedimiento y se muestra a la derecha.
Estilos
Smbolo
Color
slida
puntos
azul
con puntos
crculos
verde
-.
punto y raya
cruces
rojo
(none)
sin lnea
ms
cianurado
-- guionada
estrellas
magenta
cuadrados
amarillo
diamantes
negro
<
tringulos (a la izquierda)
>
tringulos (a la derecha)
pentagrama
hexagrama
Por ejemplo plot(x,y,g+:) grafica con una lnea de cruces color verde en cada punto donde se han
evaluado los datos. plot(x,y,bd) dibuja un diamante azul en cada punto pero sin lnea.
El comando plot, si no especifica el color, toma por asignacin el azul para grficos de una lnea y en el caso
de un grfico de mltiples lneas utiliza el ciclo de colores listado en la tabla. Si no se especifica el tipo de
lnea, se usa una lnea slida. Si no se especifica el smbolo, no se emplea ninguno. Para ms informacin
consultar help plot.
31
archivo del tipo *. fig con el nombre que se desee. Luego, con el comando; openfig myfig puede llamarse
para efectuar las transformaciones o recrearla como se desee.
3.6 Subplot
El comando subplot permite desplegar varias figuras en la misma ventana o imprimirlas en la misma hoja de
papel. La sintaxis:
32
subplot(m,n,p)
Tiene la funcin de crear una matriz de (m filasn columnas) de grficos numerados por filas comenzando
por la primera fila y a continuacin la segunda fila, etc. Subplot selecciona el orden p para ubicarlo. Por
ejemplo para plotear datos en cuatro regiones diferentes de una ventana de figuras:
t=[-pi:0.1:pi];
[X,Y,Z]=cylinder(4*cos(t) - 2*sin(2*t-pi/3));
subplot(2,2,1)
mesh(X)
xlabel('X');
ylabel('Y');
zlabel('Z')
title('Funcin muy especial');
subplot(2,2,2):mesh(Y)
xlabel('X');
ylabel('Y');
zlabel('Z')
subplot(2,2,3):mesh(Z)
xlabel('X');
ylabel('Y');
zlabel('Z')
subplot(2,2,4):mesh(X,Y,Z)
xlabel('X');
ylabel('Y');
zlabel('Z')
La posicin es:
subplot(2,2,1) subplot(2,2,2)
subplot(2,2,3) subplot(2,2,4)
Con las opciones el men en la barra de la figura se puede modificar cada uno de los grficos obtenidos.
33
poly
El comando poly(x), cuando x es el vector de las races del polinomio, arroja como respuesta un vector cuyos
elementos son los coeficientes del polinomio original con las races x. Si roots encuentra las races, poly
encuentra el polinomio que posee determinadas races. roots y poly son funciones inversas para vectores.
Para evaluar un polinomio en varios puntos se emplea la funcin polyval.
x = [0:.1:2];
a = [3,4,5];
y = polyval(a,x);
plot(polyval(a,x),'r')
Una cuestin que puede resultar
importante en el trabajo con polinomios
es el ajuste de un conjunto de datos
experimentales (x, y) a un polinomio de
cierto grado segn el criterio de los
mnimos cuadrados.
Esto se realiza con polyfit. Ejemplo:
Dado un conjunto de datos:
x = [ 1 2 3 4 5];
y = [ 3.5 8.9 19 30.6 49.3];
>> b= polyfit(x,y,2);
>> plot(x,y,'r+')
hold on
34
plot(polyval(b,x))
El polinomio de grado 2 que se ajusta por mnimos cuadrados es:
b= polyfit(x,y,2)
b =[2.0071 -0.7129 2.3200]
Las ltimas rdenes se han dado para graficar los puntos experimentales y el resultado de la ecuacin de
ajuste con la intencin de comprobar visualmente la aproximacin
La interpolacin es el proceso matemtico mediante el cual a partir de un conjunto de puntos discretos de una
funcin es posible estimar sus valores en el intervalo. Existen diversas funciones en MATLAB que permiten
realizar estos clculos. Una de ellas es interp1 que realiza una interpolacin lineal por el mtodo de los
mnimos cuadrados. Como ejemplo se toma el conjunto de pares ordenados de resistencia y temperatura de
un termopar con los valores siguientes:
R= [77.8
45.2 50.5]
Para determinar la temperatura en un punto intermedio de la tabla, por ejemplo 27.5 se procede:
Rt = interp1(T,R,26.5)
Rt = 78.3460
El resultado corresponde a la interpolacin lineal entre los dos primeros pares de los vectores T y R.
Existen otros mtodos de interpolacin que deben ser revisados consultando las posibilidades de ayuda de
MATLAB. Los polinomios pueden ser derivados e integrados con los comandos polyder y polyint.
4.2 Ms sobre
polinomios.
el
ajuste
con
35
polytool(x,y,n,alpha) predice una grfica que responde a un polinomio de orden n en los puntos (x,y) y
adicionalmente indica el intervalo de confidencial 100(1-alpha) en forma de dos lneas de color rojo. El
valor por asignacin de n es 1 y el de alpha es 0.05. Para ms informacin consulte la ayuda help polytool
4.3 Solucin de Ecuaciones.
Una de las formas en que MATLAB resuelve ecuaciones es con el empleo de las funciones: fzero, fplot,
quad y quad8 que permiten hallar los ceros, graficar y realizar la integracin numrica de funciones no
lineales. Considere el clculo de los ceros empleando la funcin fzero de la funcin:
1
y ( x)
2
5.x 6
Fun1(x)
10
-5
-10
-15
0
0.5
1.5
2.5
x
3.5
4.5
cero1=fzero('fun1',0)
cero1 =1.6340
cero2=fzero('fun1',3.2)
cero2 = 3.3660
Es posible calcular la integral numrica de la funcin fun1 entre dos puntos, con la funcin quad. Para ello
se escogen valores donde no se indefine la funcin:
area=quad('fun1',2.1,2.9)
area = -5.9945
4.4 Sistemas de ecuaciones lineales.
Para la solucin de sistemas de ecuaciones lineales se emplea el lgebra lineal. El sistema de ecuaciones
lineales:
36
x1 + x2 + 2 x3 = -1
2x1 - x2 + 2x3 = -4
4x1 + x2 + 4x3 = -3
Es posible representarlo por la matriz A de los coeficientes de las incgnitas y el vector columna b de los
trminos independientes:
Ax=b
A = [1 1 2; 2 -1 2; 4 1 4]
A=
1
2
4
1
-1
1
2
2
4
b = [-1 -4 -3]'
b=
-1
-4
-3
Para que el sistema tenga solucin, el determinante debe ser no singular. Esto se comprueba con la funcin
det.
det(A)
ans = 6
Una solucin del sistema se obtiene al emplear el mtodo de Kramer, donde x1 se obtiene al sustituir en
la matriz original la columna 1 por el vector columna del trmino independiente y efectuar la divisin
entre los determinantes correspondientes:
A1 =
-1
-4
-2
1
-1
1
2
2
4
x1=det(A1)/det(A)
37
x1 =
1
Y as sucesivamente para cada variable. Sin embargo esto es posible hacerlo en forma directa con el
operador \ . Obteniendo directamente el vector x de las incgnitas:
x= A \ b
x=
1
2
-2
Tambin puede implementarse el mtodo de eliminacin de Gauss o factorizacin LU, que expresa que
cualquier matriz cuadrada se puede descomponer en el producto de dos matrices L y U triangulares, una L
triangular inferior permutada y otra U triangular superior. Esto se calcula con la funcin lu.
[L, U] = lu(A)
L=
0.2500 -0.5000
0.5000 1.0000
1.0000
0
1.0000
0
0
U=
4.0000 1.0000 4.0000
0 -1.5000
0
0
0 1.0000
L*U
ans =
1 1
2 -1
4 1
2
2
4
x = U \ (L \ b)
x=
1
38
2
-2
X = [ones(size(MP)) MP P B];
Kiwh=X\MWh;
Quedando definida la funcin al conocer cada uno de los coeficientes KowhKiwh.
+ a 1t + a 2 t
39
2
y1 1 t1 t1
y 1 t t 2
2 2 2 2 a0
y3 1 t 3 t 3
= 1 t t 2 * a1
y 4 4 4 2 a 2
y5 1 t 5 t 5
y
6 1 t 6 t 6 2
X = [ones(size(t)) t t.^2]
a = X\y
4.6 Estadstica en MATLAB.
Existe un paquete de funciones de estadstica muy fuerte que pueden observarse al consultar la
documentacin estadstica de MATLAB. Las funciones de uso ms frecuente mean [promedio], median
[mediana], range [rango], std [desviacin estandard] y var [varianza] se implementan fcilmente.
Finalmente la interfase grfica disttool posibilita trabajar con las funciones de distribucin ms importantes.
5 MATEMATICA SIMBOLICA.
5.1 Creacin de variables y expresiones simblicas
En matemtica simblica los resultados obtenidos no son numricos sino smbolos que siguen las mismas
convenciones que diaria y normalmente son empleadas en el algebra. Para que MATLAB reconozca las
variables simblicas stas deben primeramente ser declaradas. Para ello se utilizan los comandos sym o
syms.
syms x a b c
(a+b)^2
ans =
(a+b)^2
expand(ans)
ans =
a^2+2*a*b+b^2
Despus de declaradas las variables simblicas a y b, se puede obtener el binomio cuadrado perfecto
resolviendo la factorizacin con expand. El comando factor efecta el proceso inverso. En matemtica
simblica es posible definir funciones y calcular sus derivadas.
40
y = sin(a*x+b)
y=
sin(a*x+b)
dydx=diff(y)
dydx =
cos(a*x+b)*a
El comando sym permite construir variables y expresiones simblicas con el objetivo de efectuar operaciones
con ella. Por ejemplo el comando m = sym(sqrt(cosfi^2 + 2*senfi)) declara a m una variable simblica que
representa a una expresin. Ahora es posible efectuar operaciones con esa variable que representa la
expresin.
f = 2*m^2 3*m +1
En general se puede usar sym o syms para crear variables simblicas. Es preferible usar syms ya que
requiere menos escritura. Debe notarse que para declarar una constante como variable simblica, es necesario
utilizar el comando sym. Si se utiliza una variable para representar una expresin simblica, y se vuelve a
aplicar el comando syms a esta variable, MATLAB actualiza y desconoce las variables previamente
declaradas. Por ejemplo:
syms a b
f=a+b
f=
a+b
Si de Nuevo se declara syms f
MATLAB arroja
f=
f
Esto muestra la utilidad de emplear el comando syms para limpiar variables o definiciones previamente
asignadas en una sesin de MATLAB. El comando findsym determina las variables simblicas en una
expresin. Por ejemplo dadas las expresiones simblicas f y g definidas por
syms a b n t x z
41
Existen dos vas para crear funciones: Usar expresiones simblicas o crear un M-File usando expresiones
simblicas. La secuencia de comandos para generar las expresiones simblicas r, t y f. son:
syms x y z
r = sqrt(x^2 + y^2 + z^2)
t = atan(y/x)
f = sin(x*y)/(x*y)
42
Utilizando los comandos diff, int, subs, y otras funciones existentes en la caja de herramientas de
Matemtica Simblica (Symbolic Math Toolbox ) , se pueden manipular tales expresiones. Creando un MFile es posible un uso ms general. Por ejemplo: se desea crear la funcin sinc; sin(x)/x.
Para hacer esto se crea un M-file en el directorio @sym:
function z = sinc(x)
%sinc la funcin simblica sinc
% sin(x)/x. esta funcin acepta sym como el argumento de entrada
if isequal(x,sym(0))
z = 1;
else
z = sin(x)/x;
end
Es posible extender estos ejemplos a funciones de varias variables. Para ello se recomienda solicitar la
ayuda, ver los aspectos de Programming and Data Types en la documentacin en lnea de MATLAB o
para una discusin ms detallada, revisar la programacin orientada por objeto.
Para resolver ecuaciones algebraicas, se utiliza la funcin simblica solve. Por ejemplo para resolver la
ecuacin de segundo grado:
syms x a b c
y=a*x^2+b*x+c
y=
a*x^2+b*x+c
solve(y)
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
43
3 x1 + 2 x 2 = 1
x1 0.3 x 2 = 1
2
1
0
-1
-2
-3
-4
d ( y)
= 1+ y2
y(0) = 1 condicin inicial.
dx
La solucin se calcula como:
y= dsolve('Dy=1+y^2','y(0)=1')
y=
tan(t+1/4*pi) Note que la solucin es una funcin .
tan(t+1/4*pi)
-2
-4
-6
-6
-4
-2
0
t
44
Otros comandos importantes en Matemtica Simblica son collect, horner, simplify y simple. Analice
los ejemplos mostrados y consulte la ayuda para ms informacin. Para polinomios, collect, reagrupa
todos los coeficientes con la misma potencia de x:
y=(x-1)*(x-1/2)*(x+5);
collect(y)
ans = x^3+7/2*x^2-7*x+5/2
horner(ans) Resuelve segn el esquema de Horner
ans = 5/2+(-7+(7/2+x)*x)*x
Simplify y simple son potentes herramientas algebraicas.
simplify(log(x*y))
ans = log(x*y)
Simulink es un software especializado para modelar, simular y analizar sistemas dinmicos lineales o no
lineales. En su ambiente es posible construir modelos propios o simular y modificar modelos existentes
mediante la adicin de nuevos elementos. Las simulaciones son interactivas de modo que permite cambiar
los parmetros y observar que sucede a la vez que brinda acceso a todas las herramientas de anlisis de
MATLAB, para visualizar y analizar los resultados.
Un objetivo de Simulink es dar sentido funcional a la simulacin de modo que, realizando sta, es posible
ver que sucede antes de que un modelo sea llevado a la realidad. Simulink permite sobrepasar los lmites de
la linealizacin y explorar otros modelos ms reales. En resumen, la meta principal es convertir su PC en un
laboratorio para desarrollar ideas que amplen todo tipo de posibilidad.
45
Para crear un modelo simplemente se busca el bloque de inters en cualesquiera de las bibliotecas bsicas del
ambiente Simulink ( Sources, Sinks, Linear, Nonlinear, Discrete, Connections y Blocksets & Toolboxes.
Como indicaciones generales la biblioteca Source define los tipos de estmulo o seales, Sink brinda los
bloques de visualizacin y Connections, los elementos o bloques en las conexiones. Consulte la ayuda para
una descripcin ms detallada de las mismas
Para tomar un bloque de una biblioteca en particular, solo es necesario indicarlo con el botn izquierdo del
mouse y arrastrarlo hacia la ventana del Simulink y liberarlo. As se procede con todos los bloques
necesarios. Otras operaciones con los bloques son:
Conectar bloques entre si: posesionar el cursor sobre el terminal de salida del bloque origen, hacer
click y enlazar con el terminal de entrada correspondiente del bloque destino.
Especificar parmetros del bloque: como corresponda segn la ventana del bloque.
46
Como ejercicio dibuje el sistema de la figura: Practique las principales operaciones sobre el sistema descritas
anteriormente. Establezca una seal de amplitud 1 y frecuencia angular 1, continua. Salve el modelo con un
nombre en el directorio de trabajo y ajuste los parmetros de la simulacin en el men <Simulation\
Parameters> en particular el tiempo de simulacin e inicie la simulacin con <Simulation \ Start>. Para ver
los resultados de la simulacin, doble click en el osciloscopio.
6.2 Subsistemas.
Agrupando los bloques de inters dentro del diagrama de trabajo y crear un subsistema con estos.
El bloque para crear un subsistema se encuentra en la biblioteca < connections>, adems deben de usarse los
bloques <in > <out > dentro de esa misma biblioteca que definen las entradas y salida al bloque del
subsistema.
En el ejemplo anterior, se crear un subsistema con los bloques que actan sobre la seal. Para proceder a
crear el subsistema a partir de bloques ya construidos, basta con agruparlos, marcarlos e ir al men EDIT/
create subsystems el cual es activado al marcar. Abra el subsistema creado y note cmo automticamente se
47
han aadido los puertos <in > <out > que definen la entradas y salidas del subsistema. Para crear el
subsistema a partir de cero, copie el bloque <subsysms> , abra el mismo, copie los componentes necesarios
incluyendo los puertos de entrada y salida.
Puede ser conveniente que un determinado subsistema, definido por un conjunto de parmetros, permita
modificarlos sin tener que acceder al interior del mismo. Mediante una mscara el subsistema se representa
por un icono grfico, y al acceder a ste aparece un cuadro de dilogo donde se especifican los parmetros
particulares en la aplicacin. La mayora de los bloques del Simulink en las distintas bibliotecas estn
construidos de esta forma.
En este ejemplo se quiere construir un nuevo bloque que modele a una termo resistencia, de acuerdo a los
parmetros de la ecuacin fundamental de la misma:
r (t ) = r0 (1 * t )
48
Dibujar el bloque
Estos cuadros definen los parmetros del sistema, la ayuda del mismo y la forma del icono grfico que va a
representar el sistema.
En este cuadro se escribe la informacin que va a efectuar la descripcin del bloque en la mscara y la que
brindar una ayuda de como operar el bloque.
En este men se indican los nombres que van a tener las variables asignadas en el texto de la mscara, en este
caso SENSE y ALFA, las cuales se corresponden con las variables
ALFA y R0 del modelo. Defina como tipo de mscara a Simple
Masked Block, adicione o borre las variables con ADD y DELETE
segn se escriban en el mismo. Finalmente con el cuadro de icono,
se procede a dibujar un grfico que represente al bloque, empleando
el comando plot, como se indica en el siguiente cuadro de dilogo.
Los bloques de la biblioteca Sources, definen un conjunto de seales de entrada de formas distintas. Note
cmo las seales pueden partir del ambiente MATLAB mediante un file name.mat que archive las
variables de inters o directamente del workspace.
Los bloques de la biblioteca Sink, definen como se van a mostrar las salidas de las seales. Adems del
osciloscopio y el graficador, las seales se pueden enviar hacia un file.mat o hacia el rea de trabajo.
50
En los bloques de las bibliotecas Block Sets y Toolboxes aparecen un conjunto de aplicaciones
especficas de Simulink tales como comunicaciones, lgica difusa, procesamiento digital de seales etc.
Cada nueva versin del MATLAB incorpora nuevas aplicaciones en estos campos.
Consulte la ayuda, la documentacin grfica y los demos del MATLAB y Simulink para ms
informacin.
51