Está en la página 1de 101

1

TUTORIAL DE MATLAB

TUTORIAL DE MATLAB 1
1. QU ES MATLAB? 4
1. 1 Uso de Mat r i ces 5
1. 2 Or i gen de Mat Lab 5
1. 3 Pl at aformas 5
1. 4 Pr oduct os 5
2. LIBRERA DE APLICACIONES DE MATLAB 7
2. 1 SIGNAL PROCESSING TOOLBOX 7
2. 2 THE MATLAB C MATH LIBRARY 7
2. 2. 1 Desarrol l o de apl i caci ones ut i l i zando l a MATLAB C Mat h Li brary 8
2. 2. 2 Ut i l i zaci n de MATLAB y de su compi l ador 8
2. 2. 3 Vel oci dad y Preci si n 9
2. 2. 4 Li st a parci al de funci ones 9
Funci ones mat emt i cas 9
Funci onal es especi al es y el ement al es 9
Al gebra l i neal numri ca 9
Pol i nomi os e i nt erpol aci n 9
Mt odos numri cos no l i neal es 10
Est ad st i ca y anl i si s de Four i er 10
Operaci ones al gebri cas y l gi cas 10
2. 2. 5 Ut i l i dades 10
2.2.6 Requeri mi entos 10
2. 3 THE MATLAB COMPILER TOOLBOX 11
2.3.1 Generaci n Automti ca de fi cheros MEX. 11
2.3.2 Rendi mi ento del compi l ador 12
2.3.3 Opci ones de ajuste del rendi mi ento 12
2.3.4 Requeri mi entos del si stema 12
2.3.5 Li mi taci ones del cdi go compi l ado 13
2. 4 SYMBOLIC MATH TOOLBOX 13
2. 5 OPTIMIZATION TOOLBOX 14
2. 6 IMAGE PROCESSING TOOLBOX 15
2. 7 Neural Network Tool box 16
2. 8 NON LINEAR CONTROL DESIGN TOOLBOX 17
2. 9 NAG FOUNDATION TOOLBOX 18
3. INICIANDO MATLAB 20
2
4. USO DE COMANDOS 20
4. 2 I nst r ucci ones de MATLAB y Var i ables 22
4. 3 Obt eni endo Informaci n del Espaci o de Trabaj o 23
4. 4 Vari abl es Permanent es 23
4. 6 Sal i endo y Guardando el Espaci o de Trabaj o 23
4. 7 Mani pul aci n de Vect or es y Mat r i ces 24
4. 8 Operaci ones de Mat ri ces 25
4. 9 Oper aci ones de Ar r egl os 28
4. 10 Ej empl os: Operaci ones Ari t mt i cas 29
5. PROGRAMANDO CON MATLAB 33
5. 1 General i dades 33
5. 1. 1 Ar chi vos-M: Comandos y Funci ones 33
5. 1. 2 Ot ras funci ones 37
5. 1. 3 Decl araci n funct i on 41
5. 2 Operadores rel aci onal es 41
5. 3 Operadores l gi cos 42
5. 4 Caract eres especi al es 43
5. 5 Cont rol de fl uj o 44
5. 5. 1 Decl araci n FOR si mpl e 44
5. 5. 2 Decl araci n FOR ani dada. 45
5. 5. 3 Decl araci n WHILE 46
5. 5. 4 Decl ar aci ones I F, ELSE, ELSEI F y BREAK 47
5. 6. 1 Cr eaci n de una mat r i z 50
5. 6. 2 Cambi o del or den de una mat r i z: reshape 50
5. 6. 3 Modi f i caci n i ndi vi dual de el ement os 50
5. 6. 4 Modi f i caci ones adi ci onales de una mat r i z 51
5. 7. 1 Decl araci n f open 57
Ejemplo 57
5. 7. 2 Decl araci n f cl ose 57
5. 7. 3 Decl araci n f read 57
5. 7. 4 Decl araci n fwrite 58
5. 7. 5 Decl araci n f pri nt f 58
5. 8 Vari abl es gl obal es 58
5. 9 Vect ori zaci n de al gori t mos y est ruct uras (for, whi l e) 59
5.10 Grfi cas en Dos Di mensi ones 60
COMANDO PLOT 60
S mbol o Col or 60
S mbol o Est i l o de l nea 61
5. 10. 6 Comandos grfi cos 63
5.11 Grfi cos en 3 di mensi ones 66
5. 12 Ar chi vos de di sco 73
5. 12. 1 Mani pul aci n de Ar chi vos de Di sco 73
5. 12. 2 Ej ecut ando Programas Ext ernos 73
5. 12. 3 I mpor t ando y Expor t ando Dat os 73
5. 13 I NDI CE ALFABETI CO 74
6. SI MULI NK 75
6. 1 Acel er ador de Si mul i nk 77
6. 2 Gener ador de cdi go - C en Si mul i nk 77
7. COMANDOS DE MATLAB 78
7. 1 Gener al pur pose commands: 78
Control System Tool box Commands: 81
3
8. APLICANDO MATLAB AL CONTROL DE PROCESOS 86
8.1 Respuesta en el domi ni o del ti empo 86
8. 2 Respuest a en el domi ni o de l a frecuenci a 91
8. 3 Lugar de l as ra ces 95
8. 4 Cont rol adores PID 97
9. TRUCOS EN MATLAB 99
Paper semi l ogar t mi co gr at i s: papel bod. m 99

4

1. QU ES MATLAB?
MatLab es un programa i nteracti vo para computaci n numri ca y vi sual i zaci n de
datos. Es ampl i amente usado por Ingeni eros de Control en el anl i si s y di seo,
posee adems una extraordi nari a versati l i dad y capaci dad para resol ver
probl emas en matemti ca apl i cada, f si ca, qu mi ca, i ngeni er a, fi nanzas y muchas
otras apl i caci ones. Est basado en un sofi sti cado software de matri ces para el
anl i si s de si stemas de ecuaci ones. Permi te resol ver compl i cados probl emas
numri cos si n necesi dad de escri bi r un programa.
MATLAB es un entorno de computaci n y desarrol l o de apl i caci ones total mente
i ntegrado ori entado para l l evar a cabo proyectos en donde se encuentren
i mpl i cados el evados cl cul os matemti cos y l a vi sual i zaci n grfi ca de l os
mi smos.
MATLAB i ntegra anl i si s numri co, cl cul o matri ci al , proceso de seal y
vi sual i zaci n grfi ca en un entorno compl eto donde l os probl emas y sus
sol uci ones son expresados del mi smo modo en que se escri bi r an
tradi ci onal mente, si n necesi dad de hacer uso de l a programaci n tradi ci onal .
El nombre de MATLAB provi ene de l a contracci n de l os trmi nos MATri x
LABoratory y fue i ni ci al mente concebi do para proporci onar fci l acceso a l as
l i brer as LINPACK y EISPACK, l as cual es representan hoy en di a dos de l as
l i brer as ms i mportantes en computaci n y cl cul o matri ci al .
MATLAB es un si stema de trabajo i nteracti vo cuyo el emento bsi co de trabajo
son l as matri ces. El programa permi te real i zar de un modo rpi do l a resol uci n
numri ca de probl emas en un ti empo mucho menor que si se qui si esen resol ver
estos mi smos probl emas con l enguajes de programaci n tradi ci onal es como
pueden ser l os l enguajes Fortran, Basi c o C.
MATLAB goza en l a actual i dad de un al to ni vel de i mpl antaci n en escuel as y
centros uni versi tari os, as como en departamentos de i nvesti gaci n y desarrol l o
de muchas compa as i ndustri al es naci onal es e i nternaci onal es. En entornos
uni versi tari os, por ejempl o, MATLAB se ha converti do en una herrami enta
bsi ca, tanto para l os profesi onal es e i nvesti gadores de centros docentes, como
una i mportante herrami enta para l a i mparti ci n de cursos uni versi tari os, tal es
como si stemas e i ngeni eri a de control , l gebra l i neal , proceso di gi tal de i magen,
seal , etc. En el mundo i ndustri al , MATLAB est si endo uti l i zado como
herrami enta de i nvesti gaci n para l a resol uci n de compl ejos probl emas
pl anteados en l a real i zaci n y apl i caci n de model os matemti cos en i ngeni er a.
Los usos ms caracter sti cos de l a herrami enta l os encontramos en reas de
computaci n y cl cul o numri co tradi ci onal , prototi paje al gor tmi co, teor a de
control automti co, estad sti ca, anl i si s de seri es temporal es para el proceso
di gi tal de seal .

5
MATLAB di spone tambi n en l a actual i dad de un ampl i o abani co de programas de
apoyo especi al i zados, denomi nados Tool boxes, que exti enden si gni fi cati vamente
el nmero de funci ones i ncorporadas en el programa pri nci pal . Estos Tool boxes
cubren en l a actual i dad prcti camente casi todas l as reas pri nci pal es en el
mundo de l a i ngeni er a y l a si mul aci n, destacando entre el l os el 'tool box' de
proceso de i mgenes, seal , control robusto, estad sti ca, anl i si s fi nanci ero,
matemti cas si mbl i cas, redes neural es, l gi ca di fusa, i denti fi caci n de
si stemas, si mul aci n de si stemas di nmi cos, etc.
Adems tambi n se di spone del programa Si mul i nk que es un entorno grfi co
i nteracti vo con el que se puede anal i zar, model i zar y si mul ar l a di nmi ca de
si stemas no l i neal es.

1.1 Uso de Matrices
MatLab empl ea matri ces porque con el l as se puede descri bi r i nfi ni dad de cosas
de una forma al tamente fl exi bl e y matemti camente efi ci ente. Una matri z de
pi xel es puede ser una i magen o una pel cul a. Una matri z de fl uctuaci ones de una
seal puede ser un soni do o una voz humana. Y tal vez ms si gni fi cati vamente,
una matri z puede descri bi r una rel aci n l i neal entre l os componentes de un
model o matemti co. En este l ti mo senti do, una matri z puede descri bi r el
comportami ento de un si stema extremadamente compl ejo. Por ejempl o una
matri z puede representar el vuel o de una avi n a 40. 000 pi es de al tura, o un
fi l tro di gi tal de procesami ento de seal es.

1.2 Origen de MatLab
MatLab fue ori gi nal mente desarrol l ado en l enguaje FORTRAN para ser usado en
computadoras mai nframe. Fue el resul tado de l os proyectos Li npack y Ei spack
desarrol l ados en el Argonne Nati onal Laboratory. Su nombre provi ene de
MATri x LABoratory. Al pasar de l os aos fue compl ementado y rei mpl ementado
en l enguaje C. Actual mente l a l i cenci a de MatLab es propi edad de MathWorks
Inc .

1.3 Plataformas
MatLab est di sponi bl e para una ampl i o nmero de pl ataformas: estaci ones de
trabajo SUN, Apol l o, VAXstati on y HP, VAX, Mi croVAX, Goul d, Appl e Maci ntosh
y PC AT compati bl es 80386 o superi ores. Opera bajo si stemas operati vos
UNIX, Maci ntosh y Wi ndows.

1.4 Productos
La empresa MathWorks ofrece MatLab como su pri nci pal producto para
computaci n numri ca, anl i si s y vi sual i zaci n de datos. Tambi n ofrece Si mul i nk
6
como un anexo a MatLab y que i nteractua con l en l enguaje de MatLab y
l enguaje de bajo ni vel C. Si mul i nk es usado para si mul aci n model ado no l i neal
avanzado. Se ofrecen adems numerosas herrami entas especi al es en "Tool boxes"
para resol ver probl emas de apl i caci ones espec fi cas, por ejempl o control ,
procesami ento de seal es, redes neural es, etc. Estas herrami entas son
col ecci ones de ruti nas escri tas en MatLab.
7

2. Librera de Aplicaciones de MATLAB

2.1 SIGNAL P ROCESSING TOOLBOX
MATLAB ti ene una gran col ecci n de funci ones para el procesami ento de seal
en el Si gnal Processi ng Tool box. Este i ncl uye funci ones para:
Anl i si s de fi l tros di gi tal es i ncl uyendo respuesta en frecuenci a, retardo de
grupo, retardo de fase.
Impl ementaci n de fi l tros, tanto di recto como usando tcni cas en el domi ni o
de l a frecuenci a basadas en l a FFT.
Di seo de fi l tros IIR, i ncl uyendo Butterworth, Chebyschev ti po I,
Chebyshebv ti po II y el pti co.
Di seo de fi l tros FIR medi ante el al gor tmo pti mo de Parks-McCl el l an.
Procesami ento de l a transformada rpi da de Fouri er FFT, i ncl uyendo l a
transformaci n para potenci as de dos y su i nversa, y transformada para no
potenci as de dos.

2.2 THE MATLAB C MATH LIBRARY
La MATLAB C Math Li brary proporci ona al usuari o l a capaci dad computaci onal de
MATLAB en una l i breri a en formato objeto enl azabl e. El objeti vo pri nci pal de l a
C Math Li brary es soportar el desarrol l o de apl i caci ones 'stand al one' uti l i zando
MATLAB y su compi l ador. Puede ser uti l i zada i ndependi entemente de MATLAB
por programadores avezados en l enguaje C que necesi ten prestaci ones
computaci onal es robustas y de al to rendi mi ento.
Junto con el compi l ador de MATLAB, l a C Math Li brary permi ti r a l os
programadores de apl i caci ones uti l i zar MATLAB para l a creaci n de apl i caci ones
'stand al one'. Para l os usuari os cl si cos de MATLAB, se el i mi na as cual qui er
necesi dad de vol ver a reescri bi r al gori tmos en l enguaje C para ser uti l i zada por
programas externos. Para aquel l os usuari os que sean nuevos en l a tecnol og a
MATLAB, esta tecnol og a ofrece una nueva v a para l a reducci n del ti empo de
desarrol l o y puesta a punto de apl i caci ones.
La MATLAB C Math Li brary proporci ona una ampl i a gama de funci ones cl si cas
del programa MATLAB, proporci onadas como l i breri as objeto, i ncl uyendo
bsi camente l as si gui entes categor as de funci ones presentes en MATLAB y
fi cheros M compi l ados:

Al gebra l i neal .
Funci ones matemti cas el emental es y especi al i zadas.
Operadores l gi cos y ari tmti cos.
8
Matri ces el emental es y mani pul aci n de vectores.
Matri ces especi al es.
Estad sti ca bsi ca y anl i si s de datos.
Pol i nomi os e i nterpol aci n.
Gesti n de cadenas de caracteres.
Entradas y Sal i das.
Gesti n de memori a y errores.

(Nota: Las funci ones del ti po Handl e Graphi cs no estn i ncl ui das en l a C Math
Li brary).

2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math
Library
La construcci n y desarrol l o de apl i caci ones uti l i zando esta l i brer a es un
proceso de ampl i as perspecti vas una vez se ti ene un domi ni o adecuado de su
operati va. El producto est di vi di do en dos categor as (como l i brer as objeto):
l a l i brer a (bui l t-i n l i brary) conti ene versi ones de l as funci ones de MATLAB en
l enguaje C del ti po numri co, l gi co y uti l i dades. Por otra parte l a l i brer a de
tool boxes (tool box l i brary) conti ene versi ones compi l adas de l a mayor a de
fi cheros M de MATLAB para cl cul o numri co, anl i si s de datos y funci ones de
acceso a fi cheros y matri ces.
En equi pos UNIX estas l i breri as pueden ser i gual mente obteni das como l i brer as
de tipo estti co (stati c l i brari es) o bi en como l i brer as comparti das (shared
l i brari es). Respecto al mundo PC, estas l i brer as pueden obtenerse como DLL's
en el entorno Mi crosoft Wi ndows o como l i breri as comparti das en equi pos Appl e
MacIntosh.

2.2.2 Utilizacin de MATLAB y de su compilador
Para construi r una apl i caci n del ti po 'stand al one' que i ncorpore cdi go
ori gi nal mente desarrol l ado como fi cheros M de MATLAB , debern segui rse l os
pasos si gui entes:
1. Uti l i zar el compi l ador de MATLAB para converti r fi cheros M en C medi ante
l a uti l i zaci n de l a i nstrucci n mcc -e (l a cual es externa a MATLAB).
2. Compi l ar el cdi go C fuente en cdi go objeto uti l i zando un compi l ador ANSI
C.
3. Enl azar el cdi go resul tante con l a MATLAB C Math Li brary y con cual qui er
ti po de fi cheros y prog ramas espec fi cos que hayan si do previ amente
defi ni dos por el usuari o.
9

2.2.3 Velocidad y Precisin
Los al gori tmos uti l i zados en l a MATLAB C Math Li brary han si do desarrol l ados
por un grupo de renombrados expertos en programaci n al gor tmi ca de funci ones
de ti po matemti co (al gebra l i neal y cl cul o numri co). Las funci ones de l gebra
l i neal han si do obteni das de l as l i breri as mundi al mente reconoci das LINPACK y
EISPACK. La MATLAB C Math Li brary conti ene ms de 300 funci ones numri cas,
l gi cas y de uti l i dad. Todas estas funci ones l e permi ti rn operar en datos de
ti po escal ar, vectori al o matri ci al con l a mi sma faci l i dad si ntcti ca.

2.2.4 Lista parcial de funciones
Funciones matemticas
Funcionales especiales y elementales
Funci ones gamma, beta y el p ticas.
Transformaci n de si stemas de coordenadas.
Matri z i denti dad y otras matri ces el emental es.
Matri ces de Hi l bert, Toepl i tz, Vandermonde, Hadamard, etc.
Partes real es, i magi nari as y compl ejas conjugadas.
Funci ones tri gonom tri cas y de potenci as.
Algebra lineal numrica
Val ores propi os y descomposi ci n de matri ces.
Funci ones general es de eval uaci n de matri ces.
Determi nantes, normas, rangos, etc.
Matri ces i nversas y factori zaci n de matri ces.
Ma tri z exponenci al , l ogar tmi ca y ra ces cuadradas.
Polinomios e interpolacin
Interpol aci n 1 -D y 2-D.
Construcci n pol i nomi al .
Interpol aci n por spl i nes cbi cos.
Di ferenci aci n de pol i nomi os.
Eval uaci n de pol i nomi os.
Mul ti pl i caci n y di vi si n de pol i nomi os.
Resi duos de pol i nomi os y resi duos.
10
Mtodos numricos no lineales
Bsqueda de ceros en funci ones de una ni ca vari abl e.
Mi ni mi zaci n de funci ones de una o ms vari abl es.
Resol uci n numri ca de i ntegral es.
Sol uci n numri ca de ecuaci ones di ferenci al es ordi nari as.
Estadstica y anlisis de Fourier
Convol uci n 1 -D y 2-D.
Fi l tros di gi tal es 1-D y 2-D.
Transformadas de Fouri er 1 -D y 2-D y su i nversa.
Coefi ci entes de correl aci n y matri ces de covari anza.
Deconvol uci n.
Magni tudes y ngul os de fase.
Funci ones max, mi n, sum, mean y otras funci ones de estad sti ca bsi ca.
Operaciones algebricas y lgicas
Suma, resta, mul ti pl i caci n, di vi si n y potenci as de matri c es.
Matri x traspuesta.
Operadores l gi cos AND, OR, NOT y XOR.

2.2.5 Utilidades
Gesti n y manteni mi ento de errores.
Conversi n de ti pos de datos Fortran.
Funci ones de fecha y hora.
Cl asi fi caci n de matri ces.
Conversi n de nmeros a cadenas y vi ceversa.

2.2.6 Requerimientos
La l i breri a MATLAB C Math Li brary cumpl e con l a normati va estndar ANSI
para compi l adores C.
Fi nal mente, l a l i brer a trabajar con aquel l os enl azadores que vi enen
sumi ni strados con l a mayor a de compi l adores ANSI C.


11

2.3 THE MATLAB COMPILER TOOLBOX
El nuevo compi l ador de MATLAB -The MATLAB Compi l er - permi te crear cdi go C
opti mi zado procedente de fi cheros M -M fi l es - de MATLAB. Este compi l ador
puede ser uti l i zado de dos modos:
1. Como un generador MEX automti co. Pueden converti rse fi cheros M en
funci ones C ejecutabl es que se ejecutaran desde dentro de MATLAB. Como
un generador de cdi go C fuente.
2. Pueden construi rse apl i caci ones que se ejecutaran i ndependi entemente de
MATLAB. Estas apl i caci ones externa s requi eren de l a MATLAB C Math
Li brary, que est di sponi bl e separadamente.

Medi ante l a conversi n automti ca de fi cheros M en cdi go C fuente, el
compi l ador MATLAB el i mi na consumo de ti empo y l a conversi n manual de cdi go.
Todo el proceso de conversi n, compi l aci n y enl azado se i ni ci a a travs de una
si mpl e i nstrucci n de MATLAB.

2.3.1 Generacin Automtica de ficheros MEX.
El compi l ador de MATLAB automati za l a creaci n de fi cheros MEX de C
(MATLAB Ejecutabl es).
Los fi cheros MEX conti enen cdi go objeto que es di nmi camente enl azado como
'runti me' en el entorno MATLAB por el i ntrprete del programa.
El proceso en cuesti n se real i za en tres pasos:
1. El compi l ador de MATLAB traduce l as funci ones MATLAB en sus funci ones
equi val ente en l enguaje C.
2. La i nstrucci n MATLAB cmex l l ama al compi l ador y al enl azador del si stema
para construi r un fi chero MEX objeto.
3. El i ntrprete de MATLAB enl aza automti camente l a funci n de MATLAB
como 'runti me'.
Mi entras se efecta una conversi n de l os fi cheros M en fi cheros MEX, el
compi l ador real i za l l amadas a l as ruti nas de l a l i breri a C para muchas de l as
i nstrucci ones conteni das en el propi o ncl eo de MATLAB. Exi sten al gunas
funci ones, i ncl uyendo l as ruti nas 'Handl e Graphi cs', para l as cual es se generan
de nuevo l l amadas 'cal l backs' a MATLAB.
Pueden converti rse conveni entemente fi cheros M en cdi go fuente C para
i ncorporarl os posteri ormente en l os fi cheros externos desarrol l ados en l enguaje
C, si ese es el caso. Esta opci n es i deal para usuari os que qui eren sacar l a
mxi ma ventaja de MATLAB desde cual qui er otra apl i caci n o produci r cdi go C
efi ci ente a parti r de l os al gori tmos desarrol l ados con MATLAB. Los desarrol l os
12
del ti po 'stand-al one' requi eren para el l o de l a MATLAB C Math Li brary.
Obsrvese que l as funci ones grfi cas de MATLAB no estn i ncl ui das.
Para construi r apl i caci ones 'stand-al one' se deber a segui r l os si gui entes pasos:
1. Uti l i zar el compi l ador de MATLAB para converti r fi cheros M en C con l a
i nstrucci n externa mcc -e.
2. Compi l ar el cdi go C fuente en cdi go objeto uti l i zando un compi l ador C.
3. Enl azar el cdi go resul tante con l as l i brer as matemti cas C de MATLAB y
l os fi cheros espec fi cos que di spongamos.

2.3.2 Rendimiento del compilador
Medi ante l a compi l aci n de l os fi cheros M se puede obtener un rendi mi en to
si gni fi cati vo. La vel oci dad de mejora de este rendi mi ento, depende fuertemente
de cada apl i caci n. En al gunos casos el rendi mi ento puede mejorar hasta en 200
veces l a ejecuci n si l a comparamos con el modo de trabajo i nterpretado del
programa. Las opera ci ones matri ci al es y vectori al es ejecutadas desde MATLAB
ya estn fuertemente opti mi zadas en su di seo. Si n embargo, medi ante l a
uti l i zaci n del compi l ador se obtendrn si gni fi cati vas mejoras.

2.3.3 Opciones de ajuste del rendimiento
El compi l ador de MATLAB ofrece vari as opci ones que permi ten generar el
programa fi nal de l a forma ms efi ci ente. Por ejempl o, Ud. puede di rectamente:
Tratar todas l as vari abl es en fi cheros como datos enteros y/o real es.
Uti l i zar una vari abl e concreta como vari abl e escal ar, vectori al , entera, real o
una combi naci n de estas.
Desacti var el control de parmetros de entrada y el redi mensi onami ento
di nmi co de vectores.

2.3.4 Requerimientos del sistema
Para uti l i zar el compi l ador de MATLAB para crear fi cheros MEX se necesi ta l a
versi n de MATLAB 4. 2c y tener i nstal ado uno de l os si gui entes compi l adores de
l enguaje C:
PC/Mi crosoft Wi ndows
Metaware Hi gh C/C++ V. 3. 0 o superi or.
Watcom C V. 10. 0 o superi or
Power MacIntosh
MetroWer ks CodeWarri or C V. 7
13
MPW MrC V. 1. 0b2 o PPCC versi on 1. 0. 5
680x0 MacIntosh
MPW C Versi n 3. 4
UNIX y VMS

Cual qui er compi l ador ANSI C (Nota: El compi l ador de SunOS 4. 1. X no es un
compi l ador ANSI C).
Cual qui era que sea el equi po i nformti co que vaya a uti l i zarse para desarrol l ar
apl i caci ones 'stand al one' se requi ere, adems del compi l ador de MATLAB, que
se tengan l as MATLAB C Math Li brary y un compi l ador ANSI C.

2.3.5 Limitaciones del cdigo compilado
Ci ertas i nstrucci ones, como l oad y eval , no estn soportadas por el compi l ador
de MATLAB . Este no puede generar cdi go de l os di agramas de bl oques de
SIMULINK. Los tool boxes de MATLAB pueden i ncl ui r fi cheros MEX y otros
componentes que no son compi l abl es.


2.4 SYMBOLIC MATH TOOLBOX
El Tool box de Matemti ca Si mbl i ca, aade a MATLAB l a capaci dad de real i zar
cl cul os si mbl i cos basados en MAPLE V soportando adems (The Extended
Symbol i c Math Tool box) l as l i brer as especi al i zadas, y l os programas real i zados
para este l ti mo. Entre otros, l os pri nci pal es ti pos de operaci ones soportados
son l os si gui entes:
Al gebra si mbl i ca: Deri vaci n, i ntegraci n y si mpl i fi caci n de expresi ones
matemti cas.
Al gebra l i neal exacta: Inversas, determi nantes, autoval ores y formas
canni cas de matri ces si mbl i cas.
Ari tmti ca de preci si n vari abl e: Eval uaci n de expresi ones matemti cas con
di versos grados de preci si n.
Resol uci n de ecuaci ones: Resol uci n numri ca y si mbl i ca de ecuaci ones
al gebrai cas y di ferenci al es.
Funci ones matemti cas especi al es: Eval uaci n de l a mayor a de l as funci ones
uti l i zadas en matemti cas apl i cadas.

Exi sten dos versi ones del mi smo Tool box. The Basi c Symbol i c Math Tool box es
una col ecci n de ms de 50 funci ones MATLAB l as cual es permi ten acceder al
14
kernel de MAPLE uti l i zando l a Si ntaxi s y el esti l o del l enguaje MATLAB. The
Extended Symbol i c Math Tool box aumenta esta funci onal i dad i ncl uyendo todas
l as caracter sti cas de programaci n de MAPLE, y el acceso a l os paquetes de
funci ones de ms de vei nte campos de l as matemti cas especi al es apl i cadas.
Es posi bl e uti l i zar este Tool box si n conoci mi ento previ os de MAPLE, ya que l os
fi cheros conteni dos en l son total mente autnomos. Si n embargo, si l o que se
desea es obtener toda l a potenci a de cl cul o del entorno, ser necesari o un
ampl i o conoci mi ento del manejo y l a programaci n de MAPLE


2.5 OPTIMIZATION TOOLBOX
El tool box de opti mi zaci n consta de un conjunto de funci ones que resuel ven
probl emas de extremos, con o si n condi ci ones, de funci ones real es l as cual es son
general mente mul ti vari abl es y no l i neal es.
Asi mi smo, posee funci ones para l a resol uci n de al gunos ti pos de probl emas
matri ci al es en extremos.
Resul ta conveni ente para una comprensi n y mejor manejo de l a tool box poseer
conoci mi entos bsi cos previ os de anl i si s de funci ones real es, matri ces y teor a
de extremos.
Al gunas de l as reas bsi cas que cubre este tool box para MATLAB son l as
si gui entes:
Cl cul o de un extremo l ocal (mxi mo o m ni mo) de una funci n real f(x), en
general mul ti vari abl e y no l i neal , si n i mponer ni nguna restri cci n o condi ci n
a l a sol uci n. Como caso parti cul ar, se i ncl uye una ruti na especi al para
probl emas de m ni mos cuadrados no l i neal es.
Cl cul o de un extremo l ocal (mxi mo o m ni mo) de una funci n real f(x), en
general mul ti vari abl e y no l i neal , condi ci onado a que l a sol uci n sati sfaga
ci ertas condi ci ones de desi gual dad (g(x)<=0) y/o i gual dad (g(x)=0).
Probl emas de aproxi maci n a un conjunto de objeti vos.
Cl cul o de sol uci ones de un si stema de ecuaci ones conti nuas y, en general , no
l i neal es.
Sol uci n de probl emas mi ni max.
Programaci n l i neal .
Programaci n cuadrti ca.
Probl emas de m ni mos cuadrados no negati vos.


15
2.6 IMAGE PROCESSING TOOLBOX

Este Tool box proporci ona a MATLAB de un conjunto de funci ones que ampl i a l as
capaci dades del producto para real i zar desarrol l o de apl i caci ones y de nuevos
al gori tmos en el campo del proceso y anl i si s de i magenes. El entorno
matemti co y de creaci n de MATLAB es i deal para el procesado de i mgenes, ya
que estas i mgenes son, al fi n y al cabo, matri ces. Este tool box i ncorpora
funci ones para:
Di seo de fi l tros.
Mejora y retocado de i mgenes.
Anl i si s y estad sti ca de i mgenes.
Operaci ones morfol gi cas, geomtri cas y de col or.
Transformaci ones 2D.
El proceso de i mgenes es un campo de trabajo absol utamente cruci al para
aquel l os col ecti vos e i ndustri as que estn trabajando en reas como di agnsti co
mdi co, astronom a, geof si ca, ci enci a medi oambi ental es, anl i si s de datos en
l aboratori os, i nspecci n i ndustri al , etc. Los programas actual es de procesado y
anl i si s de i mgenes se cl asi fi can actual mente en dos categor as: l i brer as de
bajo ni vel para programadores profesi onal es y paquetes de apl i caci n con
capaci dades l i mi tadas de personal i zaci n. Ambos ti pos de apl i caci ones estn,
general mente, pensados para ta reas bsi cas de vi sual i zaci n de datos y
'renderi ng'. Si n embargo, muchos de el l os adol ecen de l a posi bi l i dad de efectuar
anl i si s numri cos de l os mi smos. El Image Processi ng Tool box entra dentro de
l a categor a de fami l i as de funci ones que, desde el ento rno de trabajo de
MATLAB , permi ti r al profesi onal efectuar una expl oraci n exhausti va y desde
un punto de vi sta matemti co de l as i mgenes y grfi cos que se deseen tratar o
anal i zar.
Al gunas de l as funci ones ms i mportantes i ncl ui das dentro de este tool box son
l as si gui entes:
Anl i si s de i mgenes y estad sti ca.
Di seo de fi l tros y recuperaci n de i mgenes.
Mejora de i mgenes.
Operaci ones morfol gi cas.
Defi ni ci n de mapas de col ores y modi fi caci n grfi ca.
Operaci ones geomtri cas.
Transformaci n de i mgenes.
Proceso de bl oques

16

2.7 Neural Network Toolbox
Este tool box proporci ona funci ones para el di seo, i ni ci al i zaci n, si mul aci n y
entrenami ento de l os model os neuronal es de uso ms extendi do en l a actual i dad:
Perceptrn, redes l i neal es, redes de retropropagaci n, redes de base radi al ,
aprendi zaje asoci ati vo y competi ti vo, apl i caci ones autoorgani zati vas,
aprendi zaje de cuanti zaci n vectori al , redes de El man y redes de Hopfi el d.
Medi ante l a i ncl usi n de un ampl i o abani co de funci ones y procedi mi entos
escri tos para MATLAB, el usuari o puede medi ante el Neural Network Tool box
efectuar el di seo de arqui tecturas compl ejas, combi nando l os model os que ya
estan proporci onados por defecto en el tool box. Asi mi smo, el usuari o puede
defi ni r sus propi as funci ones de transferenci a e i ni ci al i zaci n, regl as de
aprendi zaje, funci ones de entrenami ento y esti maci n de error para usarl as
posteri ormente con l as funci ones bsi cas.
El tool box, aporta l as faci l i dades y prestaci ones grfi cas de MATLAB para el
estudi o del compor tami ento de l as redes: vi sual i zaci n grfi ca de l a matri z de
pesos y vector de despl azami ento medi ante di agramas de Hi nton, representaci n
de errores a l o l argo del entrenami ento, mapas de superfi ci e de error en
funci n de pesos y vector de despl azami ento, etc. Estos grfi cos resul tan muy
ti l es en el estudi o de l a convergenci a y estabi l i dad de l os al gori tmos de
aprendi zaje. Este tool box i ncl uye un manual de i ntroducci n al campo de l as
redes neuronal es junto con una col ecci n de demostraci ones y apl i caci ones muy
di dcti cas, ti l es para el estudi o y l a profundi zaci n en l as cuesti ones
fundamental es de l os paradi gmas de redes neuronal es bsi cos. Asi mi smo, se
proporci onan l as referenci as bi bl i ogrfi cas ms si gni fi cati vas referi das a l os
di sti ntos model os que aparecen en l a apl i caci n.
A pesar de que el estudi o de l as redes neuronal es se i ni ci ya hace al gunas
decadas, l as pri meras apl i caci ones sl i das dentro de este campo no han teni do
l ugar hasta hace unos doce aos y aun ahora consti tuyen un rea de
i nvesti gaci n en rpi do desarrol l o. Este tool box ti ene por tanto una ori entaci n
di ferente a aquel l os desti nados a campos como el de si stemas de control u
opti mi zaci n donde l a termi nol og a, fundamentos matemti cos y procedi mi entos
de di seo estan ya fi rmemente establ eci dos y se han apl i cado durante aos.
Este tool box pretende que sea uti l i zado para l a val oraci n y di seo de di seos
neuronal es en l a i ndustri a y sobre todo en educaci n e i nvesti gaci n.
Esta herrami enta ti ene el soporte de MATLAB 4. 2c y SIMULINK. La li brer a de
SIMULINK conti ene model os de capas de redes neuronal es de cada ti po de
neurona i mpl ementada en el tool box de redes neuronal es. Es posi bl e por tanto
di sear si stemas SIMULINK para si mul ar redes neuronal es creadas usando esta
herrami enta. Si mpl emente, l as capas se conectan de acuerdo con l a arqui tectura
de l a red y se proporci onan como entrada a l a caja de di l ogo de cada capa l a
matri z de pesos apropi ada y el vector de despl azami ento. Usando el generador
de cdi go C de SIMULINK es posi bl e generar automti camente el cdi go
correspondi ente a un di seo neuronal .
17
Dentro de l as apl i caci ones bsi cas de este tool box, cabe destacar aquel l as que
estn ori entadas a aquel l as que se enmarcan dentro del campo de l a i ndustri a
aeroespaci al y automoci n (si mul aci n, si stemas de control , autopi l otaje), banca,
defensa (reconoci mi ento de patrones, procesami ento de seal es, i denti fi caci n
de i mgenes, extracci n de caracter sti cas, compresi n de datos), el ectrni ca
(control de procesos, anl i si s de errores, model ado no l i neal , s ntesi s de voz,
vi si n por ordenador), econom a (anl i si s fi nanci ero, anl i si s predi cti vo),
i ndustri a (control de procesos, i denti fi caci n en ti empo real , si stemas de
i nspecci n), medi ci na, robti ca (control de trayectori as, si stemas de vi si n),
reconoci mi ento y s ntesi s del habl a, tel ecomuni caci ones (control de datos e
i mgenes, servi ci os de i nformaci n automati zada, traducci n del l enguaje
habl ado en ti empo real , di agnosi s, si stemas de enrutami ento), etc. El tool box
conti ene muchos ejempl os de al gunas de estas apl i caci ones.


2.8 NON LINEAR CONTROL DESIGN TOOLBOX
Se trata del pri mer producto comerci al mente di sponi bl e en l a actual i dad para el
di seo de control adores automti cos en entornos de si stemas no l i neal es. Este
nuevo tool box est pensado para ser uti l i zado exhausti vamente por i ngeni eros
que di sean control adores para i ndustri as avanzadas, destacando el sector del
automvi l , i ngeni eri a aeroespaci al , control de procesos y empresas
petroqu mi cas. Segn i ndi ca Ji m Tung, Vi cepresi dente del rea de desarrol l o de
The MathWorks Group, Inc. "El proceso de aproxi maci n tradi ci onal en el di seo
de control adores en si stemas no l i neal es ha si do hasta l a fecha l i neal i zarl os de
al gn modo para apl i car posteri omente un mtodo de di seo l i neal que requi ere
de i mportantes ajustes manual es. El tool box NCD permi te por pri mera vez a l os
i ngeni eros de control di sear di rectamente sus control adores en un ambi ente no
l i neal , obvi ando l a aproxi maci n l i neal y otros procedi mi entos auxi l i ares que
antes se necesi taban de modo i mperati vo.
Los resul tados ahora son de el evada cal i dad, control adores ms robustos y un
ci cl o de di seo mucho ms rpi do.
El tool box NCD exti ende, adems, l as prestaci ones que i ncorpora SIMULINK, el
entorno de desarrol l o de di agramas de bl oques para l a model aci n y anl i si s de
si stemas di nmi cos de The MathWorks, Inc. El usuari o puede i ncl ui r uno o ms
bl oques NCD en el si stema y descri bi r posteri ormente de modo total mente
grfi co l as restri cci ones, tol eranci as y l mi tes de permi si vi dad de cada uno de
estos bl oques. Los mtodos avanzados de opti mi zaci n y l a si mul aci n del
proceso son posteri ormente anal i zados y ajustados medi ante l a i ncl usi n de unas
ci ertas vari abl es de contorno para poder obtener l os ti empos de respuesta
deseados. Este tool box puede ser uti l i zado para ajustar una ampl i a vari edad de
control adores que se uti l i cen en un si stema, destacando l os control adores PID,
LQR, LQG y estructuras H i nfi ni to. El di seador de si stemas puede uti l i zar el
mtodo de Montecarl o para el di seo y anl i si s de control adores robustos,
18
si empre que se detecten determi nadas vari aci ones en l os componentes del
si stema.
El tool box NCD es un componente avanzado del entorno i ntegrado de desarrol l o
que ofrecen a l os especi al i stas l os programas MATLAB y SIMULINK. Por el l o,
l os di seadores podrn benefi ci arse de muchos de l os tool boxes desarrol l ados
para este entorno en materi a de di seo de si stemas l i neal es.
Por ejempl o, podrn uti l i zarse tool boxes para el anl i si s de si stemas l i neal es
para el di seo i ni ci al ; posteri ormente, podrn uti l i zarse model os no l i neal es ms
sofi sti cados uti l i zando SIMULINK.
Adems, puede i nvocarse NCD para un mejor ajuste paramtri co y para l a
opti mi zaci n de l os control adores. Este tool box se encuentra actual mente
di sponi bl e para una ampl i a va ri edad de pl ataformas i nformti cas, destacando
ordenadores personal es ti po PC o Appl e MacIntosh, numerosas estaci ones UNIX
y ordenadores Di gi tal VAX VMS.


2.9 NAG FOUNDATION TOOLBOX
Este tool box proporci ona un acceso i nteracti vo, desde dentro de MATLAB, a un
ampl i o conjunto de funci ones matemti cas y estad sti cas conteni das en l as
cl si cas NAG Fortran Li brari es de l a empresa The Numeri cal Al gori thms Group
Incorpora ms de 200 fi cheros M, l os cual es cubren un ampl i o espectro de reas
de i nters, entre l as que cabe destacar opti mi zaci n, ecuaci ones di ferenci al es
ordi nari as y en deri vadas parci al es, cuadratura, estad sti ca, etc. La NAG
Foundati on Tool box aade tambi n ruti nas concretas para campos espec fi cos
tal es como l a resol uci n de probl emas con condi ci on es de contorno, probl emas
de cuadratura adaptati va mul ti di mensi onal , ajuste de curvas y superfi ci es y el
acceso a l os al gori tmos LAPACK para l a resol uci n de ecuaci ones l i neal es. Los
nombre de l as funci ones han si do di rectamente tomados de l as especi fi caci ones
de funci n cl si ca que aade The Numeri cal Al gori thms Group para sus l i brer as.
Como resul tado de esto, aquel l os usuari os de l as l i brer as Fortran de NAG que a
l a vez sean usuari os de MATLAB, encontraran bastante cmodo acceder a l as
ruti nas NAG uti l i zando l a nomencl atura ori gi nal .
La NAG Foundati on Tool box es resul tado de l a col aboraci n corporati va que
actual mente estn l l evando a cabo The MathWorks Group y The Numeri cal
Al gori ths Group para proporci onar un rpi do acceso desde MATLAB a un
i mportante de ruti nas matemti cas conteni das en l a NAG Foundati on Li brary.
Actual mente, este tool box i ncorpora 250 ruti nas matemti cas.
Al gunas de l as reas de cobertura de l a NAG Foundati on Tool box son l as
si gui entes:
Ceros de pol i nomi os
Ra ces de una o ms ecuaci ones de ti po trascendental .
19
Suma de seri es.
Cuadraturas.
Ecuaci ones di ferenci al es ordi nari as.
Ecuaci ones di ferenci al es en deri vadas parci al es.
Estad sti ca no paramtri ca.
Anl i si s de seri es temporal es.
Ruti nas de cl asi fi caci n.
Aproxi maci n de funci ones especi al es.
Aproxi maci n de curvas y superfi ci es.
Maxi mi zaci n y mi ni mi zaci n de funci ones.
Factori zaci n de matri ces.
Val ores y vectores propi os.
Resol uci n de ecuaci ones l i neal es si mul tneas.
Ecuaci ones l i neal es (LAPACK).
Estad sti ca bsi ca.
Anl i si s de correl aci n y regresi ones.
Mtodos mul ti vari antes.
Generaci n de nmeros al eatori os.
20

3. INICIANDO MATLAB
Despus de ejecutar el programa MatLab desde el si stema operati vo empl eado,
por ejempl o haci endo dobl e cl i ck sobre el i cono de MatLa b en ambi entes
Wi ndows, aparece el i ndi cador de comandos el cual est l i sto para reci bi r
i nstrucci ones en l enguaje MatLab. Este i ndi cador es de l a si gui ente forma:
>>
Al i ni ci ar el uso de MatLab estn di sponi bl es dos comandos de ayuda y
demostraci n. Para ejecutarl os se escri be el comando en l a l nea de comandos
despus del s mbol o >> y se presi ona l a tecl a Enter. Por ejempl o:
>>help
permi te obtener una ayuda sobre l os di ferentes comandos de MatLab.
>>demo
hace una demostraci n de l as di ferentes apl i caci ones de MatLab.
Para cerrar o fi nal i zar el uso de MatLab se usa el comando quit .
>>quit

4. USO DE COMANDOS
La pri mera forma de i nteractuar con MatLab es a travs de l a l nea de
comandos. Puede ejecutarse un comando si este est escri to despus del s mbol o
>> y se presi ona l a tecl a Enter.
MATLAB trabaja esenci al mente con matri ces numri cas rectangul ares. La
manera ms fci l de entrar matri ces pequeas es enumerando l os el ementos de
sta de tal manera que:
l os el ementos estn separados por bl ancos comas.
l os el ementos estn cerrados entre corchetes, [ ].
muestre el fi nal de cada fi l a con ; (punto y coma).
Ejempl o:
A = [ 1 2 3; 4 5 6; 7 8 9 ]
resul tar a en l a matri z
A =
1 2 3
4 5 6
7 8 9
MATLAB guarda esta matri z para uti l i zarl a l uego bajo el nombre de A.
Si l a matri z a i ntroduci r es muy grande se puede uti l i zar el si gui ente formato:
21

A = [1 2 3
4 5 6
7 8 9]

El comando l oad y l a funci n fread pueden l eer matri ces generadas en sesi ones
anteri ores generadas por otros programas.
Ya que MatLab se basa en el l gebra de matri ces como ejempl o crearemos una
matri z. Estas pueden estar formadas por un sl o el ementos (escal ar), por una
fi l a o una col umna (vector) o por una seri e de fi l as y col umnas (matri z
propi amente di cha).
>>A=1
defi ne A como un escal ar de val or 1. Al defi ni r A automti camente MatLab
presenta en pantal l a su val or.
A =
1
Para no presentar el val or de l a vari abl e creada, debe agregarse punto y coma
(; ) al fi nal del comando.
Despus de crear una vari abl e, puede presentarse su val or en pantal l a
escri bi endo l a vari abl e despus del prompt (>>).
>>A
Se pueden redefi ni r vari abl es, por ejempl o:
>>A=[1 2 3]
defi ne A como un vector de tres el ementos, A(1)=1, A(2)=2 y A(3)=3. Estos
el ementos deben separase con espaci os en bl anco o comas (, ).
Para defi ni r una matri z se deben separar l as fi l as con punto y coma (; ) o con
retorno (Enter).
>>A=[1 2 3; 4 5 6]
o
>>A=[ 1 2 3
4 5 6]
ambos comandos producen el mi smo efecto:
A =
1 2 3
4 5 6


22


4.1 Elementos de matrices
Los el ementos de una matri z pueden ser cual qui er expresi n de MATLAB.
Ejempl o:
x = [-1. 3, sqrt (3), (1+2+3) *4/ 5]
resul tar a en
x =
-1. 3000 1. 7321 4. 8000

Nos podemos referi r a el ementos i ndi vi dual es de l a matri z con ndi ces entre
parntesi s.
Ejempl o: En el ejempl o anteri or
x(4) = abs(x(1))
resul tar a
x =
-1. 3000 1. 7321 4. 8000 0 1. 3000

Para aadi r otra fi l a a l a matri z A de arri ba podemos hacer l o si gui ente:
r = [10 11 12];
A = [A; r]
y resul tar a
A =
1 2 3
4 5 6
7 8 9
10 11 12

4.2 Instrucciones de MATLAB y Variables
Si omi tes el nombre de l a vari abl e y el si gno "=", MATLAB automti camente crea
l a vari abl e ans para guardar el resul tado. Tambi n di sti ngue l as l etras
mayscul as de l as mi nscul as. Todos l os nombres de funci ones deben ser en
l etras mi nscul as.

23
4.3 Obteniendo Informacin del Espacio de Trabajo
Los ejempl os que hemos dado se han guardado en vari abl es que estn en el
espaci o de trabajo de MATLAB. Para l i star l as vari abl es en el espaci o de
trabajo se uti l i za el comando who . Para ver i nformaci n adi ci onal acerca de
estas vari abl es se uti l i za el comando whos.

4.4 Variables Permanentes
Las vari abl es permanentes son aquel l as con si gni fi cado especi al , y que no se
pueden el i mi nar. Estas son por ejempl o l as vari abl es ans y eps .
La vari abl e eps es una tol eranci a para determi nar. Por ejempl o l a si ngul ari dad y
el rango. Su val or i ni ci al es l a di stanci a de 1. 0 al prxi mo nmero de punto
fl otante mayor.

4.5 Funciones
Las funci ones que uti l i za MATLAB son i ntr nsecas al procesador de ste. Otras
funci ones estn di sponi bl es en l a l i brer a externa de archi vos -M. Adems de
stas funci ones todo usuari o tambi n puede crear otras funci ones. Puedes
combi nar l as funci ones de acuerdo a tu necesi dad.
Ejempl o:
x = sqrt (l og(z))

4.6 Saliendo y Guardando el Espacio de Trabajo
Para sal i r de MATLAB se escri be quit exit . Al termi nar una sesi n de MATLAB,
l as vari abl es en el espaci o de trabajo se borran. Si deseas guardar tu espaci o de
trabajo escri bes save.
save guarda todas l as vari abl es en un archi vo l l amado matl ab. mat.
Se puede uti l i zar save y l oad con otros nombres de archi vos, para guardar sol o
vari abl es sel ecci onadas
Ejempl o:
save t emp X Y Z
Este ejempl o guarda l as vari abl es X, Y, Z en el archi vo temp. mat. Usando el
comando load temp l as obti enes nuevamente del archi vo temp. mat. l oad y save
tambi n pueden i mpor tar y exportar i nformaci n de archi vos ASCII.

24



4.7 Manipulacin de Vectores y Matrices
Generando Vectores
Los dos puntos, : , son i mportantes en MATLAB. Por ejempl o
x = 1: 5
genera un vector fi l a que conti ene l os nmeros enteros del 1 al 5:
x =
1 2 3 4 5
No necesari amente se ti ene que i ncrementar por nmeros enteros, pueden ser
deci mal es, nmeros negati vos constantes.

ndices
Podemos referi rnos a el ementos i ndi vi dual es de matri ces encerrando sus ndi ces
en parntesi s.
Ejempl o:
A =
1 2 3
4 5 6
7 8 9

A(3, 3) = A(1, 3) + A(3, 1)
resul tar a
A =
1 2 3
4 5 6
7 8 10

Un ndi ce puede ser un vector. Si x y v son vectores, entonces x(v) es [x(v(1)),
x(v(2)), . . . , x(v(n))]. Para matri ces, l os ndi ces de vectores permi ten acceso a
submatri ces conti guas y no -con ti guas.



25
Por ejempl o, suponga que A es una matri z 10 por 10. Entonces
A(1:5, 3)
especi fi ca l a submatri z 5 x 1, vector col umna, que consi ste de l os pri meros
ci nco el ementos en l a tercera col umna de A.
Tambi n
A(1: 5, 7: 10)
es l a submatri z 5 x 4 de l as pri meras ci nco fi l as y l as l ti mas cuatro col umnas.
Uti l i zando sol o l os dos puntos denota todo l o correspondi ente a l a fi l a
col umna. Podr amos tener una i nstrucci n como:
A(: , [3 5 10]) = B(: , 1: 3)
que reempl aza l a tercera, qui nta y dci ma col umna de A con l as pri meras tres
col umnas de B.

Mani pul aci n de Matri ces
di ag - extrae crea una di agonal
t r i l - parte i nferi or tri angul ar
t ri u - parte superi or tri angul ar
' - transposi ci n

4.8 Operaciones de Matrices
Matrices Transpuestas
El caracter ' (apstrofe) denota l a transpuesta de l a matri z. Si tenemos l a
matri z A y l l amamos B = A', B es l a transpuesta de l a matri z A.

Sumando y Restando Matrices
Las operaci ones suma (+) y resta (-) son defi ni das para l as matri ces si empre y
cuando stas tengan l a mi sma di mensi n. Es deci r, si A y B son matri ces 3 x 3,
entonces A + B se puede cal cul ar.
Las operaci ones suma y resta tambi n est defi ni das si uno de l os operandos es
un escal ar, es deci r, una matri z 1 x 1.
Ejempl o:
x =
-1
0
2
26

y = x - 1
resul tar a
y =
-2
-1
1

Ejempl o:
>>A=[1 2 3; 4 5 6]; B=[6 5 4; 3 2 1];
defi ne l as matri ces A y B. Para sumarl as se escri be l a operaci n:
>>A+B
El resul tado de l a operaci n es por defecto al macenado en l a vari abl e ans e
i nmedi atamente presentado en pantal l a:
ans =
7 7 7
7 7 7
Para al macenar l a suma de A y B en l a vari abl e C:
>>C=A+B
C =
7 7 7
7 7 7

Multiplicando Matrices
La operaci n de mul ti pl i caci n de matri ces est defi ni da si empre que el nmero
de col umnas de l a pri mera matri z sea i gual a el nmero de fi l as de l a segunda
matri z.

Producto escalar
El producto i nteri or (producto escal ar producto punto) se consi gue de l a
si gui ente manera:
x' * y
asumi endo que x y y son vectores col umnas. Note que y' * x produce el mi smo
resul tado.
27

Producto de una matriz por un vector
El producto de una matri z y un vector es un caso especi al del producto matri z-
matri z y natural mente, un escal ar como pi , puede mul ti pl i car, ser mul ti pl i cado
por, cual qui er matri z.

Dividiendo Matrices
En di vi si n de matri ces, si A es una matri z cuadrada no-si ngul ar, entonces A\B y
B/A corresponden a l a mul ti pl i caci n i zqui erda y derecha de B por el i nverso de
A, esto es, i nv(A) * B y B * i nv(A) respecti vamente. El resul tado es obteni do
di rectamente si n l a computaci n del i nverso.

X = A\B es una sol uci n a A * X = B
X = B/A es una sol uci n a X * A = B

A\B es defi ni do cuando B ti ene l a mi sma canti dad de fi l as que A. Si A es
cuadrada, el mtodo usado es l a El i mi naci n Gaussi ana. El resul tado es una
matri z X con l as mi smas di mensi ones que B.
Si A no es cuadrada, se factori za uti l i zando l a ortogonal i zaci n de Househol der
con pi voteo de col umnas.
Los factores son usados para resol ver si stemas de ecuaci ones sub-determi nados
y sobre -determi nados. El resul tado es una matri z X m-por-n donde m es el
nmero de col umnas de A y n es el nmero de col umnas de B. Cada col umna de X
ti ene, al menos, k componentes di ferentes de cero, donde k es el rango efecti vo
de A.

B/A esta defi ni do en trmi nos de A\B por B/A = (A' \B' ) ' .

Usando Exponentes con Matrices
La expresi n A^n el eva A a l a n-si ma potenci a y esta defi ni do si A es una
matri z cuadrada y n un escal ar.

Funciones Matriciales Trascendentales y Elementales
MATLAB consi dera expresi ones como exp(A) y sqrt(A) como operaci ones de
arregl os, defi ni das en los el ementos i ndi vi dual es de A. Tambi n puede cal cul ar
funci ones trascendental es de matri ces, como l a matri z exponenci al y l a matri z
28
l ogar tmi ca. Estas operaci ones especi al es estn defi ni das sol amente para
matri ces cuadradas.

Otras funciones elementales de matrices son:
poly - pol i nomi o caracter sti co
det - determi nante
t race - traza
kron - producto tensori al de Kronecker
eig - cal cul a l os val ores propi os de l a matri z

4.9 Operaciones de Arreglos
El trmi no operaci ones de arregl o se refi ere a l as operaci ones de ari tmti ca
el emento por el emento. Un punto (. ) antes de un operador i ndi ca una operaci n
de arregl os el emento por el emento.

Suma y Resta de Arreglos
Para suma y resta, l as operaci ones de arregl os y l as operaci ones de matri ces son
i gual es.

Multiplicacin y Divisin de Arreglos
El s mbol o . * denota mul ti pl i caci n de arregl os el emento por el emento.
Ejempl o:
x = [1 2 3]; y = [4 5 6];
z = x. *y
resul ta
z =
4 10 18

Las expresi ones A. /B y A. \B dan l os coci entes de l os el ementos i ndi vi dual es.
Ejempl o:
z = x. \ y
resul ta
z =
4. 0000 2. 5000 2. 0000
29

Exponentes con Arreglos
El s mbol o . ^ denota exponenci aci n el emento por el emento.


4.10 Ejemplos: Operaciones Aritmticas

Ejempl os:
>> 1/ 2
ans =
0. 5000

>> 2\ 1
ans =
0. 5000

>> a=[ 2; 1; 2]
a =
2
1
2


>> b=[1; 2; 3]
b =
1
2
3

>> a'
ans =
2 1 2

>> b'
ans =
1 2 3
30

>> a*b
??? Error usi ng ==> *
I nner mat r i x di mensi ons must agr ee.


>> a. *b
ans =
2
2
6

>> a*b'
ans =
2 4 6
1 2 3
2 4 6

>> a. *b'
??? Error usi ng ==> . *
Mat ri x di mensi ons must agree.


>> a*3
ans =
6
3
6

>> b. *3
ans =
3
6
9



31
>> a/ 3
ans =
0. 6667
0. 3333
0. 6667

>> a. / 3
ans =
0. 6667
0. 3333
0. 6667

>> a^b
??? Error usi ng ==> ^
Mat ri x di mensi ons must agree.

>> a. ^b
ans =
2
1
8

>> a^2
??? Error usi ng ==> ^
Mat ri x must be square.

>> a. ^2
ans =
4
1
4

>> 2^a
??? Error usi ng ==> ^
Mat ri x must be square.


32
>> 2. ^a
ans =
4
2
4

Precisin utilizada.- Aproxi madamente 16 d gi tos si gni fi cati vos en
computadoras uti l i zando ari tmti ca fl otante IEEE. El rango aproxi mado es:
1 0^-308 a 10^308.

Formatos de salida:
4/3
a) format short
1. 3333
b) format short e
1. 3333e+00
c) format l ong
1. 33333333333333
d) format l ong e
1. 33333333333333e00
e) format bank
1. 33
f) format hex
3ff5555555555555
33

5. PROGRAMANDO CON MATLAB
5.1 Generalidades
Programar en MatLab es usar una seri e de comandos que permi tan real i zar una
tarea o funci n espec fi ca. Estos pueden ser escri tos uno por uno a travs de l a
l nea de comandos:
>>A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>>A'
ans =
1 4 7
2 5 8
3 6 9
El pri mer comando A=[1 2 3; 4 5 6; 7 8 9] defi ne l a matri z A y el si gui ente
comando A' cal cul a y presenta en pantal l a l a transpuesta de A.

5.1.1 Archi vos-M: Comandos y Funci ones
Los archi vos de di sco que conti enen i nstrucci ones de MATLAB se l l aman
archi vos-M. Esto es as porque si empre ti enen una extenci n de ". m" como l a
l ti ma parte de su nombre de archi vo.
Un archi vo -M consi ste de una secuenci a de i nstrucci ones normal es de MATLAB,
que probabl emente i ncl uyen referenci as a otros archi vos-M. Un archi vo -M se
puede l l amar a s mi smo recursi vamente. Puedes crear archi vos-M uti l i zando un
edi tor de texto procesador de pal abras.
Hay dos ti pos de archi vos -M: l os de comandos y l as funci ones. Los archi vos de
comandos, automati zan secuenci as l argas de comandos. Los archi vos de
funci ones, permi ten aadi r a MATLAB funci ones adi ci onal es expandi endo asi l a
capaci dad de este programa. Ambos, comandos y funci ones, son
archi vosordi nari os de texto ASCII.

Archivos de Comandos
Cuando un archi vo de comandos es i nvocado, MATLAB si mpl emente ejecuta l os
comandos encontrados en di cho archi vo. Las i nstrucci ones en un archi vo de
comando operan gl obal mente en l os datos en el espaci o de trabajo. Los comandos
son uti l i zados para hacer anl i si s, resol ver probl emas, di sear secuenci as
34
l argas de comandos que se convi ertan en i nteracti vas. Por ejempl o, suponga que
el archi vo f i bo. m conti ene l os si gui entes comandos de MATLAB:

% Un ar chi vo-M par a cal cul ar l os el ement os de l a ser i e de Fi bonacci
f = [1 1]; i = 1;
whi l e f ( i ) + f ( i +1) < 1000
f(i +2) = f(i ) + f(i +1);
i = i + 1;
end
pl ot (f)

Si escri bi mos fi bo en una ventana de MATLAB segui do de "enter" vemos que
MATLAB cal cul a l os pri meros 16 nmeros de Fi bonacci , y l uego grafi ca estos.
Luego que l a ejecuci n del archi vo es compl etada, l as vari abl es f y i permanecen
en el espaci o de trabajo.
Los programas de demostraci ones i ncl ui dos en MATLAB son ejempl os de como
usar comandos para hacer tareas ms compl i cadas. Para uti l i zar estos escri ba
demos en el "prompt" de MATLAB.

Archivos de Funciones
Un archi vo -M que conti ene l a pal abra functi on al pri nci pi o de l a pri mera l nea, es
un archi vo de funci n. En una funci n, a di ferenci a de un comando, se deben de
pasar l os argumentos. Las vari abl es defi ni das y mani pul adas dentro de l a funci n
son l ocal es a esta y no operan gl obal mente en el espaci o de trabajo. Los archi vos
de funci ones se uti l i zan para extender a MATLAB, i . e. , crear nuevas funci ones
para MATLAB uti l i zando el l enguaje propi o de MATLAB.
El archi vo mean. m conti ene l as i nstrucci ones:
funct i on y = mean(x)
% Val or medi o.
% Par a vect or es, mean( x) r et or na el val or medi o de l os el ement os del vect or x.
% Para mat ri ces, mean(x) es un vect or fi l a cont eni endo el val or medi o de cada col umna.
[m, n] = si ze(x);
if m == 1
m = n;
end
y = sum(x)/ m;

35
(Las l i neas que comi enzan con "%" son i nterpretadas como comentari os por
MATLAB). La exi stenci a de este archi vo en el di sco duro defi ne una nueva
funci n en MATLAB l l amada mean. Si z es un vector de l os enteros desde 1 a 99,
por ejempl o,
z = 1: 99;
entonces, el val or promedi o es encontrado escri bi endo
mean( z)
que resul tar a
ans =
50

Veamos al gunos detal l es de mean. m:
La pri mera l nea decl ara el nombre de l a funci n, l os argumentos de entrada, y
l os argumentos de sal i da. Si n esta l nea ser a un archi vo de comando.
% i ndi ca que el resto de l a l nea es un comentari o.
Las pri meras l neas documentan el archi vo -M y aparecen en l a pantal l a cuando
escri bi mos hel p mean.
Las vari abl es m, n, e y son l ocal es a mean y no exi sten en el espaci o de trabajo.
(O si exi sten, permanecen si n cambi os. )
No es necesari o asi gnar l os enteros de 1 al 99 en l a vari abl e x. Uti l i zamos mean
con una vari abl e l l amada z.
Este vector que conten a l os enteros de 1 a 99 fue pasado copi ado a mean
donde se convi rti en una vari abl e l ocal l l amada x.
Ejempl o
% Ej empl o de un ar chi vo- m
% Creaci n del vect or x usando el comando f or
n=5;
for i=1:n
x(i)=i^2;
end
x
% Fi n del ar chi vo- m
Este ejempl o es un archi vo -m ti po comando. Para ejecutarl o, en l a l nea de
comandos se debe escri bi r el nombre del archi vo:
>>ejemplo
x =
1 4 9 16 25
36

Ejempl o
% Calcul a el pr omedi o de l os el ement os de un vect or y di buj a di cho vect or
% Sintaxis : pr omedi o( x) donde x es el vect or a pr omedi ar
funct i on p = promedi o(x)
n=length(x);
p=0;
for i=1:n
p=p+x(i );
end
p=p/ n;
plot(x);

Para ejecutar l a funci n, se hace l a l l amada en l a l nea de comandos i ncl uyendo
el parmetro. La funci n promedi o usa por parmetro un vector. Este vector
debe ser defi ni do previ amente.
>>A=[1 2 4 3 7 5 6 1 2 0 8 5];
>>promedi o(A)
ans =
3. 6667

MatLab presenta l as i mgenes en una ventana de fi guras. Al observar el
conteni do de di cha ventana l uego de ejecutar l a funci n promedi o, se ti ene:












37
Esta i magen es el resul tado del comando pl ot (x) al ejecutar l a funci n promedi o.
MatLab posee un conjunto de archi vos-m i ncorporados ( bui l t-i n). Puede
agregrsel e archi vos -m defi ni dos por el usuari o al macenando l os mi smos en el
di rectori o pri nci pal de MatLab. Los comentari os i ncl ui dos en estos scri pts y
funci ones se vi sual i zan al usar el comando hel p segui do del nombre del archi vo.
>>hel p promedi o
Cal cul a el pr omedi o de l os el ement os de un vect or y di buj a di cho vect or
Sintaxis : pr omedi o( x) donde x es el vect or a pr omedi ar

Para ver el conteni do de un archi vo-m se usa el comando t ype segui do del nombre
del archi vo.

5.1.2 Otras funci ones
Funciones Matemticas
Al gunas funci ones tri gonomtri cas uti l i zadas por MATLAB son:
sin - seno
cos - coseno
t an - tangente
asin - seno i nverso
acos - coseno i nverso
at an - tangente i nversa

Al gunas funci ones el emental es son:
real (a) Pa rte real
i mag(a) Parte i magi nari a
conj (a) Conjugado de a
fft (x) Transformada di screta de Fouri er del vector x
fft (x, n) FFT de n puntos muestral es
i fft (x) Transformada i nversa rpi da de Fouri er del vector x
i fft (x, n) FFT i nversa de n puntos muestrados
zeros Ini ci al i za a ceros
zeros(n) Matri z de nxn de ceros
zeros(m, n) Matri z de mxn de ceros
y=zeros(si ze(A) Matri z del tamao de A, todos ceros
38

Ejempl o
si ze Regresa el nmero de fi l as y col umnas
A =
0 7 - 6
1 0 0
0 1 0

>> [ m n] =si ze( A)
m =
3
n =
3

Funci ones matri ci al es
t ri l (A) Matri z tri angul ar i nferi or
t ri u(A) Matri z tri angul ar superi or
pascal Tri angul o de Pascal
t ocpl i t z Tocpl i tz

Ejempl os
>> A =
0 7 - 6
1 0 0
0 1 0
>> t oepl i t z( A)
ans =
0 1 0 7 0 1 - 6 0 0
1 0 1 0 7 0 1 - 6 0
0 1 0 1 0 7 0 1 - 6

Producto de dos matri ces tri angul ares.
Esta factori zaci n se uti l i za para obtener el i nverso y el determi nante. Tambi n
es l a base para l a sol uci n de si stemas l i neal es. Para obtener l a factori zaci n LU
de A escri bi mos,
[L, U] = l u(A).
39

Factori zaci n Ortogonal Factori zaci n QR.
Se uti l i za para matri ces cuadradas rectangul ares. Esta factori zaci n se uti l i za
para resol ver si stemas l i neal es con ms ecuaci ones que desconoci das. Esta
factori zaci n tambi n es l a base para l as funci ones nul l y ort h, que generan
bases orto normal es para el espaci o nul o y rango de una matri z rectangul ar dada.

Descomposicin de Valores Singulares
La descomposi ci n de Val ores Si ngul ares es i mportante para el anl i si s de
probl emas que envuel van matri ces.
La asi gnaci n tri pl e [ U, S, V] = svd( A) produce l os tres factores en l a
descomposi ci n de val ores si ngul ares A = U*S*V'. Las matri ces U y V son
ortogonal es y l a matri z S es di agonal .
La funci n svd( A) devuel ve sol amente l os el ementos de l a di agonal de S, que son
l os val ores si ngul ares de A.

Descomposicin de Valores Propios
La Descomposi ci n de Val ores Propi os se uti l i za para obtener l os val ores y
vectores propi os de una matri z cuadrada A.
La funci n ei g( A) devuel ve l os val ores propi os de A en un vector col umna.
La asi gnaci n [ X, D] =ei g( A) produce una matri z di agonal D cuyos el ementos
di agonal es son l os val ores propi os de A y l as col umnas de X son l os vectores
propi os correspondi entes.

Las Funci ones de norma, rango y acondi ci onami ento asoci adas son:
cond - nmero de condi ci n en l a norma 2
nor m - norma 1, norma 2, norma F, norma
rank - rango
rcond - esti mado del nmero de condi ci n

Funciones de Funciones
MATLAB representa funci ones matemti cas medi ante archi vos-M de tipo
funci n. Un ejempl o de una funci n es el archi vo -M l l amado humps . m.

Ejempl o: El archi vo-M l l amado humps . m conti ene l as si gui entes i nstrucci ones:
funct i on y = humps(x)
40
y = 1. / ( ( x- . 3). ^2 +. 01) + 1. / ((x- . 9). ^2 +. 04) - 6;
y para l a grfi ca de l a funci n escri bi mos
x = - 1:. 01:2;
pl ot (x, humps(x))

Integraci n Numri ca (Cuadratura)
El rea bajo l a grfi ca de l a funci n f(x) se puede aproxi mar i ntegrando f(x)
numri camente medi ante una regl a de cuadratura. Para i ntegrar l a funci n
defi ni da por humps . m desde 0 hasta 1 escri bi mos:
q = quad(' humps' , 0, 1)
q =
29. 8583

Note que el argumento de quad conti ene un nombre de una funci n. Por esto quad
se l l ama una funci n de funci n, i . e. , es una funci n que opera en otras
funci ones.

Ecuaci ones No -l i neal es y Funci ones de Opti mi zaci n
Las funci ones de funci ones para ecuaci ones no -l i neal es y opti mi zaci n i ncl uyen:
fmin - m ni mo de una funci n de una vari abl e
fmi ns - m ni mo de una funci n mul ti -vari abl e (mi ni mi zaci n no-l i neal si n
restri cci ones)
fzero - cero de una funci n de una vari abl e
cons t r - mi ni mi zaci n con restri cci ones
fsol ve - sol uci n de ecuaci n no-l i neal
l east sq - cuadrados m ni mos no-l i neal es

Funciones para Ecuaciones Diferenciales
Las funci ones de MATLAB para resol ver probl emas de val or i ni ci al para
ecuaci ones di ferenci al es ordi nari as son:
ode23 - mtodo Runge-Kutta de l argo de paso vari abl e que combi na un mtodo de
orden dos con uno de orden tres.
ode45 - mtodo Runge -Kutta -Fehl berg de l argo de paso vari abl e que combi na un
mtodo de orden cuatro con uno de orden ci nco.


41
Ejempl o
t o=0; t f=10;
[t , x]=ode23(`edi f' , t o, t f, xo);

[t, x] =ode23(`deri v' , t o, t f, xo);
ode45

[t , x]=ode23(`deri v' , t o, t f, xo, t o1, t race);
ode45
trace => 0 - no r esunt ados i nt er medi os
1 - r esul t ados i nt er medi os

def aul t t ol : ode23 -> 1. 0e - 03
ode45 - > 1. oe- 06

5.1.3 Decl araci n functi on
Si ntaxi s:
f unct i on nombre_1=nombr e_2(paramet ro_1, . . . , paramet ro_n)
Ej empl os:
f unct i on y=promedi o(x)
f unct i on i =i nodal (t , v)
f unct i on xpunt o=vdpol (t , x)
xpunt o=zeros(2, 1);
xpunt o(1)=x(1). *(1 -x( 2) . ^2)-x(2);
xpunt o(2)=x(1);


5.2 Operadores relacionales
Los operadores rel aci onal es de MatLab son:
< menor que
<= menor o i gual a
> mayor que
>= mayor o i gual a
== i gual a
=~ no i gual a
42
Ejempl o:
if n< maxn
...
i f n>=0, br eak, end

5.3 Operadores lgicos
Los operadores &, | y ~ son l os operadores de l gi ca "y", "" y "no"
respecti vamente.
El resul tado de C = A & B es una matri z cuyos el ementos son unos donde A y B
sean ambos di sti ntos de cero, y ceros donde A B sean cero. A y B deben de ser
matri ces con l as mi smas di mensi ones, a menos que una de el l as sea un escal ar.
El resul tado de C = A | B es una matri z cuyos el ementos son unos donde A B
ti enen un el emento di ferentede cero, y ceros donde ambas ti enen el ementos
cero. A y B deben de ser matri ces con l as mi smas di mensi ones, a menos que una
sea un escal ar.
El resul tado de B = ~A es una matri z cuyos el ementos son uno donde A ti ene un
el emento cero, y ceros donde A ti ene el ementos di ferentes de cero.

Funci nes any, al l
La funci n any(x) devuel ve 1 si cual qui era de l os el ementos de x es di ferente de
cero, de l o contrari o devuel ve 0.
La funci n al l (x) devuel ve 1 sol amente si todos l os el ementos de x son di ferentes
de cero.
Estas funci ones se usan en cl usul as i f. Por ejempl o:
i f al l (A <. 5)
. . .
end
Para argumentos matri ci al es, any y al l trabajan por col umnas para devol ver un
vector fi l a con el resul tado para cada col umna. Apl i cando l a funci n dos veces,
any(any(A)), si empre reduce l a matri z a una condi ci n escal ar.
Las funci ones rel aci onal es y l gi cas en MATLAB son:
any - condi ci ones l gi cas
al l - condi ci ones l gi cas
find - hal l a ndi ces de arregl os de val ores l gi cos
exi st - veri fi ca si exi sten vari abl es
i si nf - detecta i nfi ni tos
43
fi ni t e - veri fi ca para l os val ores fi ni tos

5.4 Caracteres especiales
Los caracteres especi al es de MatLab son:
[ ] Se uti l i zan para formar vectores y matri ces
( ) Defi ne precedenci a en expresi ones ari tmti cas. Enci erra argumentos de
funci ones en forma usual
, Separador de el ementos de una matri z, argumentos de funci ones y
decl araci ones en l neas con decl araci ones ml ti pl es
; Termi na fi l as de una matri z, separador de decl araci ones
% Comentari o

Ejempl os:
[6. 0 9. 0 3. 4 ]
sqr t ( 2)
for i =1: n, a(i )=0, end
for i =1: n; a(i )=0; end
% i ni ci a vect or a en 0

44

5.5 Control de flujo
5.5.1 Decl araci n FOR si mpl e
Si ntaxi s
f or vari abl e=i nci o: paso: f i nal
decl ar aci n 1;
. . .
decl araci n n;
end

f or vari abl e=i ni ci o: f i nal
decl araci n 1;
. . .
decl araci n n;
end

Ejempl o:
for i=1:n
c(i )=a(i )*b(i );
end
o
for i =1: n; c(i )=a(i )*b(i ); end

El ci cl o FOR permi te que una i nstrucci n, grupo de i nstrucci ones, pueda
repeti rse un nmero determi nado de veces. Por ejempl o,
for i = 1: n, x(i ) = 0, end
asi gna 0 a l os pri meros n el ementos de x. Si n es menor de 1, el ci cl o si gue
si endo vl i do pero MATLAB no ejecuta l a i nstrucci n i ntermedi a. Si x no esta
defi ni do, si ti ene menos de n el ementos, entonces un espaci o adi ci onal es
l ocal i zado automti camente a x cada vez que sea necesari o.
45


5.5.2 Decl araci n FOR ani dada.
Si ntaxi s
f or vari abl e 1 = i ni ci o1: paso1: f i n1
f or vari abl e2 = i ni ci o2: paso2: f i n2
decl araci n 1;
. . .
decl araci n n;
end
end

Ejempl o
y=1
f or t 1=0: 0. 1: 1
for t 2=1: - 0. 1: 0
y(1)=si n(t 1*t 2)
end
i=i+1;
end

Ejempl o
f or i = 1: m
for j = 1:n
A(i , j ) = 1/ (i +j- 1);
end
end
A
La "A" al termi nar el ci cl o muestra en l a pantal l a el resul tado fi nal . Es
i mportante que para cada for hal l a un end.
46

5.5.3 Decl araci n WHILE
Si ntaxi s:
whi l e expresi on
proposi ci n 1;
. . .
proposi ci n 2;
end

Ejempl os
e=1. 0;
whi l e ( 1. 0+e) >1. 0001
e=e/2. 0;
end

i t =1; t =0; wo=2. 0*pi *60. 0;
whi l e i t <=npt s, ut =si n(wo*t ); t =t +dt ; end

El ci cl o WHILE permi te a una i nstrucci n, grupo de i nstrucci ones, repeti rse un
nmero i ndefi ni do de veces, bajo el control de una condi ci n l gi ca. El si gui ente
ci cl o whi l e hal l a el pri mer entero n para el cual n! es un nmero de 100 di gi tos:

n = 1;
whi l e pr od( 1: n) < 1. 0e100, n = n+1; end
n

Un cl cul o ms prcti co i l ustrando el ci cl o whi l e es en el cmputo del
exponenci al de una matri z, l l amado expm( A) en MATLAB. Una posi bl e defi ni ci n
de l a funci n exponenci al es medi ante l a seri e:

expm( A) = I + A + A^2/ 2! + A^3/ 3! + . . .

La i dea es sumar todos l os trmi nos necesari os hasta produci r un resul tado que,
en l a preci si n fi ni ta l a de computadora, no cambi e aunque ms trmi nos sean
aadi dos. Para esto procedemos de l a forma si gui ente:

47
E = zeros(si ze(A));
F = eye(si ze(A));
k = 1;
whi l e nor m( E+F- E, 1) > 0
E = E + F;
F = A*F/ k
k = k+1;
end
Aqui A es l a matri z dada, E representa l a suma parci al de l a seri e, F es un
trmi no i ndi vi dual en l a seri e, y k es el ndi ce de este trmi no.

5.5.4 Decl araci ones IF, ELSE, ELSEIF y BREAK
Si ntaxi s
a) i f expresi n
proposi ci n 1;
. . .
proposi ci n n;
end

b) i f expresi n
proposi ci n 1;
. . .
proposi ci n n;
el se
proposi ci n 1;
. . .
proposi ci n m;
end









48
c) i f expresi n
proposi ci n 1;
. . .
proposi ci n n;
el sei f
proposi ci n 1;
. . .
proposi ci n m;
el se
proposi ci n 1;
. . .
proposi ci n r;
end

d) i f expresi n, break, end

Ejempl os
i f dv(i ) > maxer
maxer=dv(i );
nmaxe=i ;
end

sum=0. 0; y=1;
whi l e i <=so
n=i nput (`Int roduzca n, i nt errumpe con val or negat i vo `);
i f n<0, br eak, end;
i f n==0
sum=sum+n;
el sei f n<=10
sum=sum+n/ 2;
el se
sum=sum+n/ 10;
end
end


49
A conti nuaci n se muestra como un cl cul o se puede di vi di r en tres casos,
dependi endo del si gno pari dad de un entero n:

i f n < 0
A = negat i ve( n)
el se i f rem(n, 2) == 0
A = even( n)
el se
A = odd( n)
end

En el segundo, parti endo de un entero posi ti vo n, si este es par, se di vi de entre
dos; si es i mpar, se mul ti pl i ca por tres y se l e suma uno. Habr al gn entero
para el cual el proceso nunca termi ne? Aqu se i l ustran l os enunci ados while y i f,
tambi n se muestra l a funci n i nput (en este caso es una entrada del tecl ado), y
el enunci ado br eak, que provee sal i das abruptas de l os ci cl os. Veamos:

% Pr obl ema "3n+1" cl si co de l a t eor i a de nmer os.
whi l e 1
n = i nput (' Ent re n, negat i vo t ermi na. ' );
i f n <= 0, break, end
whi l e n > 1
i f rem(n, 2) == 0
n = n/ 2
el se
n = 3*n+1
end
end
end

50
5.6 Algebra Matricial
5.6.1 Creaci n de una matri z
Ejempl o
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9

5.6.2 Cambi o del orden de una matri z: reshape
Si ntaxi s:
mat ri z_modi f i cada = reshape(mat ri z_ori gi n al , f i l as, col umnas)
Ejempl o
>> A=[1 4 7 10; 2 5 8 11; 3 6 9 12]
A =
1 4 7 10
2 5 8 11
3 6 9 12

>> B=reshape(A, 2, 6)
B =
1 3 5 7 9 11
2 4 6 8 10 12

5.6.3 Modi fi caci n i ndi vi dual de el ementos
Ejempl os
>> A=[1 2; 3 4]
A =
1 2
3 4

>> A(1, 1)=A(1, 2)+A(2, 1)
A =
5 2
3 4
51

>> A(1, 2)=A(2, 1)
A =
5 3
3 4

>> A( 2, 2) =10
A =
5 3
3 10

5.6.4 Modi fi caci ones adi ci onal es de una matri z
Ejempl o
>> A=[1 2; 3 4; 5 6 ]
A =
1 2
3 4
5 6

Conversi n de una matri z en un vector

>> A=[1 2; 3 4; 5 6 ]
A =
1 2
3 4
5 6

>> b=A( : )
b =
1
3
5
2
4
6


52
Modi fi caci n de l os el ementos
>> A( : ) =10: 15
A =
10 13
11 14
12 15

Generaci n de vectores:
Ejempl os
>> x=1: 5
x =
1 2 3 4 5

>> x=5:- 1: 1
x =
5 4 3 2 1

>> x=0: 0. 25: 1
x =
0 0. 2500 0. 5000 0. 7500 1. 0000

Acceso a submatri ces conti guas y no conti gua s
Ejempl os
Si l a matri z ori gi nal A es de 10*10, entonces:
A(1: 3, 5) matri z de 3x1 que ti ene l os tres pri meros el ementos de l a col umna 5
de A
A(1: 3, 5: 9) matri z de 3x4 que ti ene l os tres pri meros fi l as y l as col umnas de 5 a
9 de A
A(: , 5) qui nta col umna de A
A(1: 5, : ) pri meras ci nco fi l as de A
A(: , [4 6])=B(: , 1: 2) rempl aza l a cuarta y sexta col umnas de A con l as dos
pri meras de A



53
Matri ces vaci as
La decl araci n
x = [ ]
asi gna una matri z de di mensi n 0x0 a x

Para l a matri z A consi derada previ amente
A(: , [3, 5])=[ ] borra col umnas 3 y 5 de A
A([3, 5 ], : )=[ ] borra fi l as 3 y 5 de A

Decl araci n de matri ces compl ejas
A=[1 2; 3 4] + i *[5 6 ; 7 8]
o
A=[1 2; 3 4] + i *[5 6 ; 7 8]
o
A=[1+5i 2+6i ; 3+7i 4+8i ]
A =
1. 0000 + 5. 0000i 2. 0000 + 6. 0000i
3. 0000 + 7. 0000i 4. 0000 + 8. 0000i

Generaci n de tabl as

>> x=(0. 0: 0. 2: 3. 0);
>> y=exp( - x). *sin(x);
>> [x; y]
ans =
Col umns 1 t hrough 7
0 0. 2000 0. 4000 0. 6000 0. 8000 1. 0000 1. 2000
0 0. 1627 0. 2610 0. 3099 0. 3223 0. 3096 0. 2807
Col umns 8 t hr ough 14
1. 4000 1. 6000 1. 8000 2. 0000 2. 2000 2. 4000 2. 6000
0. 2430 0. 2018 0. 1610 0. 1231 0. 0896 0. 0613 0. 0383
Col umns 15 t hr ough 16
2. 8000 3. 0000
0. 0204 0. 0070
54
Determi nante de A: det(A)
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> det ( A)
ans =0

Di agonal de A: di ag(A)
>> di ag( A)
ans =
1
5
9

Val ores y vectores caracter sti cos: ei g( A)
>> A=[0 7 - 6; 1 0 0;0 1 0]
A =
0 7 - 6
1 0 0
0 1 0

>> ei g( A)
ans =
-3. 0000
2. 0000
1. 0000

v - Vect ores caract er st i cos
d - val or es car act er st i cos





55
>> [ v d] =ei g( A)
v =
0. 9435 -0. 8729 0. 5774
-0. 3145 - 0. 4364 0. 5774
0. 1048 -0. 2182 0. 5774
d =
-3. 0000 0 0
0 2. 0000 0
0 0 1. 0000

- Exponenci al de una matri z: expm( A)
>> A=[0 7 - 6; 1 0 0;0 1 0]
A =
0 7 - 6
1 0 0
0 1 0

>> expm( A)
ans =
5. 2541 11. 0757 - 13. 6115
2. 2686 5. 2541 - 4. 8044
0. 8007 2. 2686 - 0. 3510

- Factori zaci n LU de A: l u( A)
>> [ L U] =l u( A)
L =
0 1. 0000 0
1. 0000 0 0
0 0. 1429 1. 0000
U =
1. 0000 0 0
0 7. 0000 - 6. 0000
0 0 0. 8571



56

- Inversa de A: i nv(A)
>> i nv(A)
ans =
0 1. 0000 0
0 0 1. 0000
-0. 1667 0 1. 1667

- Ecuaci n caracter sti ca de l a matri z A: pol y(A)
>> p=pol y( A)
p =
1. 0000 0. 0000 - 7. 0000 6. 0000

- Rai ces de l a ecuaci n caracter sti ca : root s( p)
>> r =r oot s( p)
r =
-3. 0000
2. 0000
1. 0000

57

5.7 Archivos de E/S
5.7.1 Decl araci n fopen
Si ntaxi s
i d = f open(`nombre. dat ' , `permi so' )
donde per mi so puede ser:
`r' Abre archi vo para l ect ura
`r+ Abre archi vo para l ect ura y escri t ura
`w' Borra el cont eni do del archi vo exi st ent e o crea un nuevo archi vo y l o abre para
escri t ura
`w+' I dem que `w' ni cament e que el archi vo se abre para l ect ura y escri t ura
`a' Crea y abre un nuevo archi vo o abre un archi vo
` a+' I dem que `a' ni camente que el archi vo es abi erto para l ectura y escri tura

Ejempl o
fi d = fopen(`archi vo. dat ' , ' r' )
f i d = - 1, er r or
0, l ect ur a/ escr i t ur a nor mal
[fi d, mensaj e = fopen(`archi vo. dat ' , ' r ' )

5.7.2 Decl araci n fclose
Si ntaxi s
st at us = f cl ose(f i d)
o
st at us = f cl ose (`al l ' ) - ci erra t odos l os archi vos abi ert os

5.7.3 Decl araci n fread
Lee un archi vo abi erto con una preci si n i ndi cada
Si ntaxi s
f read(f i d, regi st ros, ' preci si on' )
regi st ros
`char' o `uchar'
`short ' o `l ong'
`f l oat ' o `doubl e'

58
Ejempl o:
A = fread(fi d, 10, ' fl oat ')

5.7.4 Decl araci n fwrite
Sintaxis
f wri t e(f i d, A, ' short ' )

5.7.5 Decl araci n fprintf
Sal i da con formato
Ejempl os:
fpri nt f(fi d, ' t i t ul o \ n' );
f pr i nt f ( f i d, ' %f %12. 7f\ n' , y);
Forma to
%s - cadena deci mal
%d - nmero deci mal
%f - punto fl otante
% g - formato g

5.8 Variables globales
Son vari abl es, de l as cual es una sol a copi a es comparti da por el programa
pri nci pal y sus funci ones.
Si ntaxi s:
gl obal vari abl e1, . . . , vari abl e_N

Ejempl o
funct i on x=ccdi fs(t , x)
gl obal ka, kb
xp=[ x( 1)- ka*x(1)*x(2); - x(2)+kb*x(1)*x(2)];
...
gl obal ka, kb
ka=0. 01
kb=0. 02
[t , x]=ode23(' ccdi fs' , 0, 10, [1: 1]);
59
5.9 Vectorizacin de algoritmos y estructuras (for, while)
Para que l os programas en MATLAB ejecuten ms r pi do, debemos vectori zar
estos si empre que sea posi bl e. Esto es, debemos converti r l os ci cl os for y whi l e
a operaci ones de vectores de matri ces. Por ejempl o, un modo de cal cul ar l a
funci n "si n" para 1001 nmeros entre 1 y 10 es:
i = 0;
f or t = 0: . 01: 10
i = i + 1;
y(i) = sin(t);
end
Una versi n vectori zada del mi smo cdi go es
t = 0: . 01: 10; y = si n(t );
En una computadora l enta, el pri mer ejempl o tom 15 segundos, mi entras que el
segundo tom 0. 6 segundos.

Vectores Pre-Asi gnados
Si no podemos vectori zar un pedazo de cdi go, podemos hacer que l os ci cl os for
vayan ms rpido pre-asi gnando cual qui er vector en el cual el resul tado de sal i da
sea guardado. Veamos un ejempl o:
y = zeros (1, 100);
for i = 1: 100
y(i ) = det (X^i );
end
Si no pre -asi gnamos el vector "y", el i nterpretador de MATLAB i r aumentando
el tamao de "y" por uno cada vez que se i tera en el ci cl o.
Permi te i ncrementar l a vel oci dad de proceso de MATLAB
Si ntaxi s
vari abl e=i ni ci o: i ncrement o: f i nal
Ejempl o
i =1, wo=2*pi *fo;
for t =0: dt : per
f(i )=si n(wo*t );
i=i+1;
end

t =0: dt : per;
fi =si n(wo*t);
60
5.10 Grficas en Dos Dimensiones
5.10.1 Funciones elementales para graficar
pl ot - crea una grfi ca de vectores col umnas de matri ces.
loglog - crea una grfi ca uti l i zando una escal a l ogar tmi ca para ambos ejes.
semi l ogx - crea una grfi ca uti l i zando una escal a l ogar tmi ca para el eje-x y una
escal a l i neal para el eje-y.
semi l ogy - crea una grfi ca uti l i zando una escal a l ogar tmi ca para el eje -y y una
escal a l i neal para el eje-x.
Puedes aadi r t tul os, encabezami en tos de ejes, l neas entre cortadas y texto a
tus grfi cas uti l i zando:
ti ttl e - aade t tul o a l a grfi ca
xl abel - aade encabezami ento al eje-x
yl abel - aade encabezami ento al eje-y
text - aade una cadena de texto en una l ocal i zaci n espec fi ca
gt ext - aade texto a l a grfi ca uti l i zando el ratn
gri d - crea l neas entrecortadas

5.10.2 Creando una grfica
Comando Plot
Si ntaxi s:
a) pl ot (y)
b) pl ot (x, y)
c) pl ot (x, y, ' t i po_l nea' )
d) pl ot (x1, y1, ' t i po_l nea_1' , x2, y2, ' t i po_l nea_2' , . . . , xn, yn, ' t i po_l nea_n' )

Si y es un vector, pl ot ( y) produce una grfi ca l i neal de l os el ementos de y versus
el ndi ce de estos. Si especi fi ca dos vectores como argumentos, pl ot ( x, y)
produce una grfi ca de y versus x.

S mbol o Col or
y amari l l o
m magent a
c cyan (azul cl aro)
r roj o
g verde
61
b azul
w bl anco
k negro

S mbol o Esti l o de l nea
. punt o
o ci rcul o
x marca
+ mas
* ast eri sco
- sl i do
: punt eado
-. segment o punt o
-- segment o

Ejempl o
t=0:pi/200:2*pi;x=sin(t);y1=sin(t+0.5);y2=sin(t+1.0);
plot(x,y1,' r-' , x, y2, ' g--' ); title(' Angulo difuso' ); xlabel(' x=sin(t)' ); ...
ylabel(' y=sin(t+)' )

5.10.3 Graficando Matrices
plot(Y) - di buja una l nea para cada col umna de Y. El eje-x es encabezado por el
vector ndi ce de fi l a, 1: m, donde m es el nmero de fi l as en Y.
Si pl ot es usado con dos argumentos y si X Y ti enen ms de una fi l a col umna,
entonces:
si Y es una matri z, y x es un vector, pl ot(x, Y) grafi ca l as fi l as col umnas de Y
versus el vector x;
si X es una matri z y y es un vector, pl ot(X, y) grafi ca cada fi l a col umna de X
versus el vector y;
si X y Y son ambas matri ces del mi smo tamao, pl ot(X, Y) grafi ca l as col umnas
de X versus l as col umnas de Y.

Tambi n puedes usar l a funci n pl ot con ml ti pl es pares de argumentos
matri ci al es:
pl ot (X1, Y1, X2, Y2, . . . )
Cada par X-Y es grafi cado, generando l neas ml ti pl es. Los pares di ferentes
pueden ser de di mensi ones di ferentes.

62
5.10.4 Importando Datos
Puede i mportar y grafi car datos generados fuera de MATLAB uti l i zando el
comando l oad.

5.10.5 Graficando Funciones Matemticas
Hay di feren tes formas de grafi car funci ones y = f(x). Una de estas formas es
eval uar l a funci n en mi l es de puntos en el i nterval o de i nters. La si gui ente
funci n osci l a i nfi ni tamente rpi do en el i nterval o, 0 x 1.
Podemos grfi carl a como si gue:
x = (0:1/2000:1)' ;
pl ot (x, cos(t an(pi *x)))
Para hacer esto ms efi ci ente podemos usar l a funci n fpl ot l a cual concentra su
eval uaci n sobre l as regi ones donde l a rapi dez de cambi o de l a funci n es ms
grande.

Para eval uar una funci n, se crea un archi vo de esta funci n y se l e pasa el
nombre del archi vo a fpl ot. El si gui ente archi vo -M de ti po funci n defi ne l a
funci n anteri or como fofx.
funct i on y = fofx(x)
y = cos(t an(pi *x));
Este archi vo se guarda con el nombre de f of x. m. Ahora l a i nstrucci n
fpl ot (' fofx' , [0 1])
produce l a grfi ca:
63

Aqu , fpl ot usa menos puntos para eval uar l a mi sma funci n a i nterval os ms
cerrados en l a regi n donde l a rapi dez de cambi o es mayor.

5.10.6 Comandos grfi cos

hol d Permi te aadi r l neas al di bujo previ o
on Acti va hold
off Desacti va hold
Ejempl o
pl ot (x); hol d on; pl ot (y' , ' : ' ); pl ot (yz, ' -. ' )

loglog
Si ntaxi s
a) l ogl og(x, y)
b) l ogl og(x, y, 'ti po_l nea')
c)l ogl og(x1', y1', 'ti po_l nea_1', . . . ,
xn, yn, 'ti po_l nea_n')
Ejempl o
x=l ogspace(- 1, 3); l ogl og(x, exp(x))
donde l ogspace ti ene l as formas:
l ogspace( a, b)
l ogspace(a, b, n)
a, b exponent es de l os l mi t es. Es deci r, 10^a y 10^b

semi l og( x) , semi l og( y)
Si ntaxi s
a) semi l ogx(x, y)
b) semi l ogy(x, y)
Ejempl o
x=0: . 1: 20; semi l ogy(x, 10. ^x)




64
fi l l
Di buja el area i nteri or de una curva en determi nado col or
Sintaxi s:
a) f i l l (x, y, ' c' )
b) f i l l (x1, y1, ' c1' , . . . , xn, yn, cn)
Ejempl o
t =0: 0. 5: 2*pi ; x=si n(t ); fi l l (t , x, ' b' )
t =0: 0. 5: 2*pi ; x=si n(t ); y=cos(t ); fi l l (y, x, ' r' )

subpl ot
Di buja l a pantal l a en mxn subdi vi si oens, numeradas por el parmetro p, de
i zqui erda a derecha, i ni ci ando por l a fi l a superi or
Si ntaxi s:
subpl ot (m, n, p)
Ejempl o:
vt =smvars(: , 1);
i t =smvars(: , 2);
rang=smvars(: , 3);
i kd=smvars(: , 4);
subpl ot (2, 2, 1);
pl ot (vt )
subpl ot (2, 2, 2)
pl ot (i t )
supl ot (2, 2, 3)
pl ot ( r ang)
subpl ot (2, 2, 4)
pl ot (i kd)

bar
Crea una grfi ca de barras
Si ntaxi s:
a) bar(y);
b) bar(x,y);
c) [ xb, yb] =bar(y); => pl ot (xb, yb)
d) [ xb, yb] =bar(x, y); => pl ot (xb, yb)

65
Ejempl o
x=- 2. 8: 0. 2: 2. 8
bar ( x, exp(- x. *x)
Nota: Los val ores de x deben estar i gual mente espaci ados

stai rs
Igual que b a r, ni camente si n l neas i n ternas

fpl ot
Di buja l a grfi ca de una funci n
Si ntaxi s:
a) f pl ot (`f unci n' , [ i ni ci o, f i nal ] )
b) f pl ot (`f unci n' , [ i ni ci o, f i nal ] , n)
c) f pl ot (`f unci n' , [ i ni ci o, f i nal ] , n, ngul o)
d) [ x, y] =f pl ot (`f unci n' , [ i ni ci o, f i nal ] ) => pl ot (x, y)
n - nmero de punt os
ngul o - ngul o ent re segment os sucesi vos de l a f unci n

Ejempl o
fpl ot (`si n' , [0, pi ])
fpl ot (`t anh' , [ -2 2] )
funct i on y=func(x)
y=200*si n(x(: )). / x(: );
fpl ot (`func' , [- 30 30] , 60, 2)

pol ar
Di bujo en coordenadas pol ares
Si ntaxi s:
a) pol ar(ngul o, radi o)
b) pol ar(ngul o, radi o, `t i po_l nea' )

Ejempl o
t=0: 0. 01: 2*pi ;
pol ar(t, si n(5*t))

66


col ormap
Col orea con sombreado el i nteri or de una curva o pol gono
Si ntaxi s
col ormap(col orbase)
donde col orbase es:
gray
hot
cool
copper
pink
Ejempl o
t =0: 0. 05: 2*pi ; x=si n(t ); y=cos(t ); col ormap(hot (130)); . . .
Nota: 130 es opci onal el rango 0-255
fi l l (y, x, x) => sombreado hori zontal
f i l l ( y, x, y) => sombreado verti cal

5.11 Grficos en 3 dimensiones
plot3
Di buja l neas y puntos en 3 di mensi ones
Si ntaxi s:
a) pl ot 3(x, y, z)
b) pl ot 3(x, y, z)
c) pl ot 3(x, y, z, ' t i po_l nea)
d) pl ot 3(x1, y1, z1, ' t i po_l nea' , . . . , xn, yn, zn, ' t i po_l nea' )
Ejempl o
t=0: 0. 05: 10*pi ; pl ot3(si n(t), cos(t), t)

contour, contour3
Genera di bujos compuestos de l neas de val ores de datos constantes obteni dos
de una matri z de entrada
Si ntaxi s:
a) cont our(z)
b) cont our(z, n)
67
c) cont our(x, y, z)
d) cont our(x, y, z, n)

Ejempl o
cont our(peeks)
cont our(peeks, 30)

contour3
Igual funci n de contour en 3 di mensi ones
Si ntaxi s:
a) cont our3(z)
b) cont our3(z, n)
c) cont our 3( x, y, z)
d) cont our3(x, y, z, n)

Ejempl o
cont our3(peaks, 30)

meshgri d
Genera arregl os X y Y para di bujos en 3 di mensi ones
Si ntaxi s:
a) [ X, Y] = meshgri d(x, y)
b) [ X, Y] = meshgri d(x) => meshgri d(x, y)

Ejempl o. Eval ue y di buje l a funci on z=x*exp( -x^2 -y^2) sobre el rango -2<=x<=2,
-2<=y<=2
[ X, Y] =meshgri d(-2: 2: 2) ; z=x. *exp(- x^2-y^2); . . .
mesh(Z)

x=- 8: 0. 5, 8; y=x; [x, y]=meshgri d(x, y); . . .
R=sqrt (x. ^2+y. ^2)+0. 001; z=si n(R). / R; . . .
mesh( z)



68


mesh, meshc y meshz
Di bujan una superfi ci e de mal l a tri di mensi onal , crando una perspecti va del
di bujo, sobre y bajo el pl ano de referenci a.
Si ntaxi s:
a) mesh( x, y, z, c)
b) mesh( x, y, z)
c) mesh( x, y, z, c)
d) mesh( x, y, z)
e) mesh( z, c)
f ) mesh(z)
g) meshc( . . . ) => mi smo que mesh
h) meshc( . . . ) => mi smo que mesh

meshc
Aade un pl ano de contorno debajo del di bujo

meshz
Aade un pl ano de referenci a o corti na al di bujo

Ejempl o:
[x, y] = meshgri d(-3: 2: 3); z=peaks(x, y); meshc(x, y, z)
[x, y] = meshgri d(-3: 2: 3); z=peaks(x, y); meshz(x, y, z)

surf, surfc
Crean superfi ci es sombreadas en 3 di mensi ones
Si ntaxi s:
a) surf (x, y, z, c)
b) surf (x, y, z)
c) sur f ( x, y, z, c)
d) surf (x, y, z)
e) surf (z, c)
f ) surf (z)
g) surf c(. . . ) => mi sma Si nt axi s que surf

69

Ejempl o
[x, y]=meshgri d(- 3: . 2: 3); z=peaks(x, y); surf(x, y, z)
k=5; n=2^k-1; [ x, y, z] =spher e( n) ; c=hadamar d( 2^k) ; . . .
surf(x, y, z, c); col ormap(hot )

hadamar d
Matri z hadamard compuesta de 1's y -1's, empl eada en procesami ento de seal es
y anl i si s numri co
Ejempl o (matri z de 4*4)
1 1 1 1
1 - 1 1 - 1
1 1 - 1 - 1
1 - 1 - 1 1

sphere
Genera una esfera
Si ntaxi s
[ x, y, z] = sphere(n)
n - nmero de meri di anos

Ejempl o
[x,y, z]=sphere(20);
mesh(x, y, z)
o con :
col ormap(hot )

surfl
Superfi ci e sombreada tri di mensi oanl con efecto de refl exi n de l uz
Si ntaxi s:
a) sur f l ( z)
b) surf l (z, s)
c) sur f l ( x, y, z)
d) surf l (x, y, z, s)
s - di recci n de l a l uz
70

Ejempl o
[x, y]=meshgri d(- 3: 0. 01: 3);
z=peaks(x, y);
surfl (x, y, z)

shadi ng
Establ ece l as propi edades de sombreado con col or
Si ntaxi s
shadi ng f acet ed
shadi ng i nt er p
shadi ng f l at

shadi ng fl at - cada segmento de l a superfi ci e ti ene un val or constante
determi nado por el col or de l os puntos extremos del segmento o sus esqui nas
shadi ng i nt erp - el col or en cada segmento vari a l i neal mente e i nterpol o l os
val ores extremos o esqui nas
shadi ng f acet ed - uti l i za sombreado "fl at" con l neas de mal l a negras
superpuestas

Para el ejempl o anteri or, aadi endo:
shadi ng i nt erp
y posteri ormente:
col ormap(gray);

axi s
Escal a y apari enci a de l os ejes
Si ntaxi s:
a) axi s([ xmi n, xmax, ymi n, ymax] )
b) axi s([ xmi n, xmax, ymi n, ymax, zmi n, zmax] )
c) axi s(`aut o' )
d) axi s(`i j ' )
e) axi s(`xy' )
f ) axi s(`square' )
g) axi s(`equal ' )
h) axi s(`of f ' )
71
i ) axi s(`on' )
donde:
axi s(`auto' ) real i za el escal ami ento de ejes a su modo de autoescal ami ento por
defecto.
axi s( ` i j ' ) di buja nuevamente l a grfi ca.
El eje y es verti cal y es numerado de arri ba haci a abajo.
El eje j es hori zontal y es numerado de i zqui erda a derecha.
axi s(`xy' ) regresa l a forma de ejes cartesi anos que exi ste por defecto . El eje x
es hori zontal y se numera de i zqui erda a derecha. El eje y es verti cal y se
numera de abajo haci a arri ba
axi s( ` square' ) determi na que l a regi n de l os ejes es cuadrada
axi s(`equal ' ) i ndi ca que l os factores de escal ami ento y marcas i ncremental es a l o
l argo de l os ejes x y y son i gual es.
axi s(`off' ) desacti va l as eti quetas de l os ejes y l as marcas
axi s( ` on' ) acti va l as eti quetas de l os ejes y l as marcas
Para el ejempl o l ti mo:
...
axis([ - 3 3 - 3 3 - 8 8])

fi l l 3 col orea pol gonos de 3 di mensi ones
a) f i l l 3(x, y, z, ' c' )
b) f i l l 3(x1, y1, z1, . . . , xn, yn, zn)

Ejempl o
col ormap(hot )
fi l l 3(rand(3, 4), rand(3, 4), rand(3, 4), rand(3, 4))

rand matri ces y nmeros al eato ri os di stri bui dos uni formemente
Si ntaxi s:
a) rand(n) - mat ri z de nxn
b) rnad(m, n) - mat r i z de mxn

Ejempl o
fi l l 3(rand(20), rand(20), rand(20), rand(20))

72

l oad carga en el area de trabajo un archi vo (i magen, soni do, datos, etc)
Si ntaxi s
a) l oad archi vo
b) l oad ar chi vo. ext
donde:
ext - ext ensi n

Ejempl o
l oad cl own

i mage crea un objeto i magen y l o presenta
Si ntaxi s:
a) i mage(x)
b) i mage( x, y, x)
c) present a l a mat ri z c como una i magen
d) especi f i ca l os l mi t es de l os dat os de l a i magen en l os ej es x e y. En b) , x e y
son vectores
Ejempl o
l oad cl own
col ormap(map)
i mage(x)

bri ghten hace ms bri l l ante o ms obscura l a i magen
Si ntaxi s:
a) bri ght en(al f a)
b) bri ght en(map, al f a)
donde:
0<al f a<1 ms bri l l ant e
-1<al f a<0 ms obscuro

Del ejempl o anteri or:
...
bri ght en(0. 6)
bri ght en(- 0. 6)
73

cl f borra l a fi gura

sound convi erte un vector en soni do (en computadoras sparc y maci ntosh)
Si ntaxi s
a) sound(y)
b) sound(y, Fs)
donde:
Fs f recuenci a especi f i cada en Hz

Ejempl o
l oad t rai n
sound( y, Fs)
t =(0: l engt h(y)- 1) / Fs;
pl ot ( t , y)


5.12 Archivos de disco
5.12.1 Mani pul aci n de Archi vos de Di sco
Al gunos comandos uti l i zados para l a mani pul aci n de archi vos de di sco son di r ,
t ype, del et e y cd . Si l a extenci n no se especi fi ca, MATLAB uti l i za . m
automti camente. El comando diary crea un di ari o de tu sesi n de MATLAB en un
archi vo de di sco. Para ms i nformaci n uti l i za l a Gu a de Referenci a de MATLAB
el comando hel p.

5.12.2 Ej ecutando Programas Externos
El si mbol o "! " l e i ndi ca a MATLAB que el resto de l a l nea de entrada es un
comando para el si stema operati vo. Por ejempl o,
! edt dar wi n. m
i nvoca un edi tor l l amado edt en un archi vo l l amado darwi n. m. Luego que este
programa sea compl etado, el si stema operati vo devuel ve el control a MATLAB.

5.12.3 Importando y Exportando Datos
Puedes i ntroduci r datos de otros programas a MATLAB por vari os mtodos.
Si mi l armente, puedes exportar datos de MATLAB a otros programas. Tambi n
puedes hacer que tus programas mani pul en datos di rectamente en archi vos-MAT,
74
el cal es el formato de archi vo uti l i zado por MATLAB. Para i nformaci n acerca
de l as tcni cas uti l i zadas para i mportar y exportar datos consul te l a secci n de
Importando y Exportando Datos de l a gu a de MATLAB uti l i ce al comando hel p
de MATLAB.

5.13 INDICE ALFABETICO
axi s, al l , any, bar, break, bri ghten, cl f, for, col ormap, conj, contour, contour3,
det, di ag, el se, el sei f, ei g, expm, fcl ose, fi l l , fi l l 3, fft, fftn, functi on, fopen,
fpl ot, fread, fwri te, gri d, gtext, hadamard, hol d, i f, i fft, i fftn, i mag, i mage,
i nv, l ogl og, l oad, l u, mesh, meshc, meshz, meshgri d, ode23, ode45, peaks, pl ot,
pl ot3, pol y, reshape, rot90, sphere, tri l , tri u, pascal , pol ar, real , topl i tz, rand,
reshape, semi l og, semi l ogy, shadi ng (fl at i nterp faceted), si ze, sound, stai rs,
subpl ot, surf, surfc, surfl , text, ti tl e, xl abel , yl abel , whi l e, zeros.

75
6. SIMULINK
Si mul i nk es una herrami enta para el model aje, anl i si s y si mul aci n de una ampl i a
vari edad de si stemas f si cos y matemti cos, i ncl usi ve aquel l os con el ementos no
l i neal es y aquel l os que hacen uso de ti empos conti nuos y di scretos. Como una
extensi n de MatLab, Si mul i nk adi ci ona muchas caracter sti cas espec fi cas a l os
si stemas di nmi cos, mi entras conserva toda l a funci onal i dad de propsi to
general de MatLab. As Si mul i nk no es compl etamente un programa separado de
MatLab, si no un anexo a l . El ambi ente de MatLab est si empre di sponi bl e
mi entras se ejecuta una si mul aci n en Si mul i nk.
Si mul i nk ti ene dos fases de uso: l a defi ni ci n del model o y el anl i si s del
model o. La defi ni ci n del model o si gni fi ca construi r el model o a parti r de
el ementos bsi cos construi dos previ amente, tal como, i ntegradores, bl oques de
gananci a o servomotores. El anl i si s del model o si gni fi ca real i zar l a si mul aci n,
l i neal i zaci n y determi nar el punto de equi l i bri o de un model o previ amente
defi ni do.
Para si mpl i fi car l a defi ni ci n del model o Si mul i nk usa di ferentes cl ases de
ventanas l l amadas ventanas de di agramas de bl oques. En estas ventanas se puede
crear y edi tar un model o grfi camente usando el ratn. Si mul i nk usa un ambi ente
grfi co l o que hace senci l l o l a creaci n de l os model os de si stemas.
Despus de defi ni r un model o este puede ser anal i zado sel ecci onando una opci n
desde l os mens de Si mul i nk o entrando comandos desde l a l nea de comandos de
MatLab.
Si mul i nk puede si mul ar cual qui er si stema que pueda ser defi ni do por ecuaci ones
di ferenci al es conti nuas y ecuaci ones di ferenci al es di scretas. Esto si gni fi ca que
se puede model ar si stemas conti nuos en el ti empo, di scretos en el ti empo o
si stemas h bri dos.
Si mul i nk usa di agramas de bl oques para representar si stemas di nmi cos.
Medi ante una i nterface grfi ca con el usuari o se pueden arrastrar l os
componentes desde una l i brer a de bl oques exi stentes y l uego i nterconectarl os
medi ante conectores y al ambre. La ventana pri nci pal de Si mul i nk se acti va
escri bi endo si mul i nk en l a l nea de comandos de MatLab, y se muestra a
conti nuaci n:
Haci endo dobl e cl i ck en cual qui era de l as l i brer as presentes en esta ventana se
abri r otra ventana conteni endo una canti dad de bl oques rel ati vos a di cha
l i brer a.
Para real i zar un si stema debe abri rse una nueva ventana de di agrama de bl oques
sel ecci onando l a opci n fi l e del men pri nci pal del Si mul i nk y al l l a opci n new.
En esta nueva ventana se col ocarn todos l os bl oques i nterconectados que
formarn el si stema deseado .

76
Como ejempl o se ha tomado un generador de ondas seno de l a l i brer a de fuentes
"sources" y un osci l oscopi o de l a l i brer a "si nks", ambos se uni eron medi ante un
conector usando el ratn. Este si stema se al macena como un archi vo -m.
Haci endo dobl e cl i ck so bre cada el emento del si stema se pueden ver y modi fi car
sus caracter sti cas.
Por ejempl o, al generador seno se l e puede modi fi car su ampl i tud, frecuenci a y
fase. Al osci l oscopi o se l e defi nen l as escal as hori zontal y verti cal .
Para ejecutar el programa se usa l a opci n si mul ati on en el men de l a ventana
del archi vo -m creado.
En este submen est l a opci n start que permi te ejecutar el programa. Tambi n
est l a opci n parameters que acti va el panel de control de Si mul i nk en donde se
defi nen l os mtodos y parmetros usados para l a si mul aci n, tal como se
muestra a conti nuaci n:
Al ejecutar el programa seno. m creado medi ante si mul i nk, se puede observar l a
respuesta al hacer dobl e cl i ck en el osci l oscopi o.
Exi sten numerosos bl oques y funci ones i ncorporados en l as l i brer as de si mul i nk
que pueden ser empl eados para si mul ar cual qui er si stema.
Por ejempl o, para i mpl ementar un si stema que empl ea un control ador PID
tenemos:







En este di agrama se ti ene al bl oque l l amado PID que fue defi ni do previ amente y
agrupado como uno sol o. El conteni do de di cho bl oque se obti ene haci endo dobl e
cl i ck sobre l . A conti nuaci n se muestra el bl oque PID:



77

6.1 Acelerador de Simulink
Para i ncrementar l a vel oci dad de Si mul i nk se debe i nstal ar el acel erador
"Accel erator". Este pe rmi te automti camente generar una versi n mejorada de
l os model os l os cual es corrern di ez veces ms rpi do que el ori gi nal . El
acel erador puede ser usado sobre model os conti nuos, di scretos en el ti empo y
h bri dos.
El acel erador trabaja generando y compi l ando un cdi go-C para un model o dado.
Una vez se compl eta l a compi l aci n, l a si mul aci n es ejecutada en l a ventada de
model os de Si mul i nk exactamente i gual que antes sl o que ms rpi damente. El
propsi to del acel erador es aumentar l a vel oci dad de si mul aci n.
Si el programa MatLab posee i nstal ado el "Accel erator" podr i ni ci arse l a acci n
acel eradora sel ecci onando l a opci n si mul ati on en el men pri nci pal del Si mul i nk
y dentro de esta sel ecci onando l a opci n Accel erate. Esta acci n es total mente
transparente en el senti do de que el i ncremento de l a vel oci dad se presenta si n
ni ngn otro requeri mi ento por parte del usuari o.

6.2 Generador de cdigo-C en Simulink
Una vez se ha creado un model o di nmi co en Si mul i nk, se puede i nvocar el
generador de cdi go-C que permi te converti r el di agrama de bl oques
i mpl ementado en un cdi go C. Este puede ser ti l para vari os propsi tos: puede
ser usado para control en ti empo real , si mul aci n en ti empo real o si mul aci n
acel erada en ti empo no real . Sus apl i caci ones pueden ser control de movi mi ento,
control de procesos, si stemas automotores, equi pos mdi cos, robti ca, etc.
El cdi go-C es di seado tal que puede ser ejecutado en ti empo real . No requi ere
ser escri to manual mente por un programador pues es creado a ni vel de
di agramas de bl oques en Si mul i nk. El cdi go generado puede correr sobre un
ampl i o rango de hardware ubi cado en estaci ones de trabajo, PC o
mi croprocesadores. Este cdi go es l a forma en l a que puede usare el Si mul i nk
para adqui si ci n de datos.
78

7. COMANDOS DE MATLAB

7.1 General purpose commands:
Managi ng commands and functi ons:
help - On -l i ne documentati on.
what - Di rectory l i sti ng of M-, MAT - and MEX-fi l es.
type - Li st M-fi l e.
l ookfor - Keyword search through the HELP entri es.
whi ch - Locate functi ons and fi l es.
demo - Run demos.
path - Control MATLAB's search path.

Managi ng vari abl es and the workspace:
who - Li st current vari abl es.
whos - Li st current vari abl es, l ong form.
l oad - Retri eve vari abl es from di sk.
save - Save workspace vari abl es to di sk.
cl ear - Cl ear vari abl es and functi ons from memory.
pack - Consol i date workspace memory.
size - Si ze of matri x.
l ength - Length of vector.
di sp - Di spl ay matri x or text.

Worki ng wi th fi l es and the operati ng system:
cd - Change current worki ng di rectory.
di r - Di rectory l i sti ng.
del ete - Del ete fi l e.
getenv - Get envi ronment val ue.
! - Execute operati ng system command.
uni x - Execute operati ng system command & return resul t.
di ary - Save text of MATLAB sessi on.
79

Control l i ng the command wi ndow:
cedi t - Set command l i ne edi t/recal l faci l i ty parameters.
cl c - Cl ear command wi ndow.
home - Send cursor home.
format - Set output format.
echo - Echo commands i nsi de scri pt fi l es.
more - Control paged output i n command wi ndow.

Starti ng and qui tti ng from MATLAB:
qui t - Termi nate MATLAB.
startup - M-fi l e executed when MATLAB i s i nvoked.
matl abrc - Master startup M-fi l e.

General i nformati on:
i nfo - Informati on about MATLAB and The MathWorks, Inc.
subscri be - Become subscri bi ng user of MATLAB.
hosti d - MATLAB server host i denti fi cati on number.
whatsnew - Informati on about new features not yet documented.
ver - MATLAB, SIMULINK, and TOOLBOX versi on i nformati on.

Operators and speci al characters:
Char Name HELP topi c
+ Pl us ari th
- Mi nus ari th
* Matri x mul ti pl i cati on ari th
. * Array mul ti pl i cati on ari th
^ Matri x power ari th
. ^ Array power ari th
\ Backsl ash or l eft di vi si on sl ash
/ Sl ash or ri ght di vi si on sl ash
. / Array di vi si on sl ash
80
kron Kronecker tensor product kron
: Col on col on
( ) Parentheses paren
[ ] Brackets paren
. Deci mal poi nt punct
. . Parent di rectory punct
. . . Conti nuati on punct
, Comma punct
; Semi col on punct
% Comment punct
! Excl amati on poi nt punct
' Transpose and quote punct
= Assi gnment punct
== Equal i ty rel op
< > Rel ati onal operators rel op
& Logi cal AND rel op
| Logi cal OR rel op
~ Logi cal NOT rel op
xor Logi cal EXCLUSIVE OR xor

Logi cal characteri sti cs:
exist - Check i f vari abl es or functi ons are defi ned.
any - True i f any el ement of vector i s true.
al l - True i f al l el ements of vector are true.
fi nd - Fi nd i ndi ces of non-zero el ements.
i snan - True for Not-A-Number.
i si nf - True for i nfi ni te el ements.
fi ni te - True for fi ni te el ements.
i sempty - True for empty matri x.
i ssparse - True for sparse matri x.
isstr - True for text stri ng.
i sgl obal - True for gl obal vari abl es.
81


Control System Tool box Commands:
Model bui l di ng:
append - Append system dynami cs.
augstate - Augment states as outputs.
bl kbui l d - Bui l d state -space system from bl ock di agram.
cl oop - Cl ose l oops of system.
connect - Bl ock di agram model i ng.
conv - Convol uti on of two pol ynomi al s.
desti m - Form di screte state esti mator from gai n matri x.
dreg - Form di screte control l er/esti mator from gai n matri ces.
drmodel - Generate random di screte model .
esti m - Form conti nuous state esti mator from gai n matri x.
feedback - Feedback system connecti on.
ord2 - Generate A, B, C, D for a second-order system.
pade - Pade approxi mati on to ti me del ay.
paral l el - Paral l el system connecti on.
reg - Form conti nuous control l er/esti mator from gai n matri ces.
rmodel - Generate random conti nuous model .
seri es - Seri es system connecti on.
ssdel ete - Del ete i nputs, outputs, or states from model .
sssel ect - Sel ect subsystem from l arger system.

Model conver si ons>:
c2d - Conti nuous to di screte -ti me conversi on.
c2dm - Conti nuous to di screte-ti me conversi on wi th method.
c2dt - Conti nuous to di screte conversi on wi th del ay.
d2c - Di screte to conti nuous-ti me conversi on.
d2cm - Di screte to conti nuous-ti me conversi on wi th method.
pol y - Roots to pol ynomi al conversi on.
resi due - Parti al fracti on expansi on.
82
ss2tf - State -space to transfer functi on conversi on.
ss2zp - State-space to zero -pol e conversi on.
tf2ss - Transfer functi on to state-space conversi on.
tf2zp - Transfer functi on to zero -pol e conversi on.
zp2tf - Zero-pol e to transfer functi on conversi on.
zp2ss - Zero-pol e to state-space conversi on.

Model r educt i on:
bal real - Bal anced real i zati on.
dbal real - Di screte bal anced real i zati on.
dmodred - Di screte model order reducti on.
mi nreal - Mi ni mal real i zati on and pol e-zero cancel l ati on.
modred - Model order reducti on.

Model r eal i zat i ons:
canon - Canoni cal form.
ctrbf - Control l abi l i ty stai rcase form.
obsvf - Observabi l i ty stai rcase form.
ss2ss - Appl y si mi l ari ty transform.

Model pr oper t i es:
covar - Conti nuous covari ance response to whi te noi se.
ctrb - Control l abi l i ty matri x.
damp - Dampi ng factors and natural frequenci es.
dcgai n - Conti nuous steady state (D. C. ) gai n.
dcovar - Di screte covari ance response to whi te noi se.
ddamp - Di screte dampi ng factors and natural frequenci es.
ddcgai n - Di screte steady state (D. C. ) gai n.
dgram - Di screte control l abi l i ty and observabi l i ty grami ans.
dsort - Sort di screte ei genval ues by magni tude.
ei g - Ei genval ues and ei genvectors.
esort - Sort conti nuous ei genval ues by real part.
83
gram - Control l abi l i ty and observabi l i ty grami ans.
obsv - Observabi l i ty matri x.
pri ntsys - Di spl ay system i n formatted form.
roots - Pol ynomi al roots.
tzero - Transmi ssi on zeros.
tzero2 - Transmi ssi on zeros usi ng random perturbati on method.

Ti me response:
di mpul se - Di screte uni t sampl e response.
di ni ti al - Di screte i ni ti al condi ti on response.
dl si m - Di screte si mul ati on to arbi trary i nputs.
dstep - Di screte step response.
fi l ter - SISO z -transform si mul ati on.
i mpul se - Impul se response.
i ni ti al - Conti nuous i ni ti al condi ti on response.
l sim - Conti nuous si mul ati on to arbi trary i nputs.
ltitr - Low l evel ti me response functi on.
step - Step response.
stepfun - Step functi on.

Frequency response:
bode - Bode pl ot (frequency response).
dbode - Di screte Bode pl ot (frequency response).
dni chol s - Di screte Ni chol s pl o t.
dnyqui st - Discrete Nyquist pl ot.
dsi gma - Di screte si ngul ar val ue frequency pl ot.
fbode - Fast Bode pl ot for conti nuous systems.
freqs - Lapl ace -transform frequency response.
freqz - Z-transform frequency response.
l ti fr - Low l evel frequency response functi on.
margi n - Gai n and phase margi ns.
ni chol s - Ni chol s pl ot.
84
ngri d - Draw gri d l i nes for Ni chol s pl ot.
nyqui st - Nyqui st pl ot.
sigma - Si ngul ar val ue frequency pl ot.

Root l ocus:
pzmap - Pol e-zero map.
rl ocfi nd - Interacti ve root l ocus gai n determi na tion.
rl ocus - Evans root-l ocus.
sgrid - Draw conti nuous root l ocus wn, z gri d.
zgri d - Draw di screte root l ocus wn, z gri d.

Gai n sel ecti on:
acker - SISO pol e pl acement.
dl qe - Di screte l i near-quadrati c esti mator desi gn.
dl qew - General di screte l i near quadrati c esti mator desi gn.
dl qr - Di screte l i near-quadrati c regul ator desi gn.
dl qry - Di screte regul ator desi gn wi th wei ghti ng on outputs.
l qe - Li near-quadrati c esti mator desi gn.
l qed - Di screte esti mator desi gn from conti nuous cost functi on.
l qe2 - Li near quadrati c esti mator desi gn usi ng Schur method.
l qew - General l i near-quadrati c esti mator desi gn.
l qr - Li near-quadrati c regul ator desi gn.
l qrd - Di screte regul ator desi gn from conti nuous cost functi on.
l qry - Regul ator desi gn wi th wei ghti ng on outputs.
l qr2 - Li near quadrati c regul ator desi gn usi ng Schur method.
pl ace - Pol e pl acement.

Equati on sol uti on:
are - Al gebrai c Ri ccati equati on sol uti on.
dl yap - Di screte Lyapunov equati on sol uti on.
l yap - Conti nuous Lyapunov equati on sol uti on.
l yap2 - Lyapunov equa ti on sol uti on usi ng di agonal i zati on.
85

Demonstrati ons:
ctrl demo - Introducti on to the Control Tool box.
boi l demo - LQG desi gn of boi l er system.
jetdemo - Cl assi cal desi gn of jet transport yaw damper.
di skdemo - Di gi tal control desi gn of hard di sk control l er.
kal mdemo - Kal man fi l ter desi gn and si mul ati on.
86


8. APLICANDO MATLAB AL CONTROL DE PROCESOS
8.1 Respuesta en el dominio del tiempo
Para obtener l a respuesta de un si stema en el ti empo ante una entrada estndar,
debe pri mero defi ni rse el si stema. Para el l o puede defi ni rse en MatLab l a
funci n de transferenci a propi a del si stema o l as ecuaci ones de estado.
La funci n de transferenci a de un si stema es una rel aci n formada por un
numerador y un denomi nador:








En MatLab debe defi ni rse el numerado r Y(s) y el denomi nador U(s) como
vectores, cuyos el ementos son l os coefi ci entes de l os pol i nomi os del numerador
y del denomi nador en potenci as decreci entes de S. Por ejempl o, para defi ni r l a
funci n de transferenci a:

>>y=[1];
>>u=[1 0. 25 1];

Para determi nar l a respuesta en el ti empo para una entrada escal n uni tari o de
este si stema se usa el comandos step i ndi cando el vector del numerador y del
denomi nador entre parntesi s. step(num, den)
>>step(y, u)

MatLab presenta l a respuesta en el ti empo en l a ventana de fi guras:




87

Puede defi ni rse el ti empo en el cual se desea l a respuesta al escal n, medi ante
un vector de ti empo T, step(num, den, T)
>>t=0: 0. 1: 20;
>>step(y, u, t)

Se defi ne t como un vector cuyo el emento i ni ci al es 0, su el emento fi nal es 20 y
exi sten el ementos que son el i ncremento desde 0 hasta 20 de 0. 1 en 0. 1. Al
ejecutar el comando step para y y u se obti ene en l a ventana de fi guras l a
respuesta escal n para l os pri meros 20 segundos.
Otra forma de defi ni r el si stema en MatLab es usando l as ecuaci ones de estado
de l a forma:
x = Ax + Bu
y = Cx + Du

MatLab permi te hacer l a conversi n de una funci n de transferenci a a su
equi val ente en ecuaci ones de estado, medi ante el comando tf2ss. Se deben
especi fi car l as cuatro matri ces de estado de l a forma:
[A, B, C, D]=tf2ss(num, den)

Para el ejempl o anteri or tenemos:
>>[a, b, c, d]=tf2ss(y, u)
a =
-0. 2500 -1. 0000
1. 0000 0
b =
1
0
c =
0 1
d =
0

88
Se puede hacer l a conversi n de una ecuaci n de estado a su equi val ente funci n
de transferenci a, medi ante el comando ss2tf. Se deben especi fi car l os vectores
para al macenar l os coefi ci entes del pol i nomi o numerador y del denomi nador. Su
Si ntaxi s es:
[ num, den] =ss2t f (a, b, c, d)

Ejempl o
>>[ num, den] =ss2t f ( a, b, c, d)
num =
0 0 1. 0000
den =
1. 0000 0. 2500 1. 0000

Para obtener l a respuesta escal n de un si stema a parti r de l as ecuaci ones de
estado se usa el
comando step con l a
Si ntaxi s:
st ep(A, B, C, D)

Ej empl o
>>st ep( a, b, c, d)

Para obtener l a respuesta en el ti empo para una entrada i mpul so uni tari o se usa
el comando i mpul se, con Si n taxi s i dnti ca a l a uti l i zada con el comando step:
Si se defi ne el si stema en MatLab por l os pol i nomi os del numerador y
denomi nador de l a funci n de transferenci a tenemos:
y=[1 5 4];
u=[1 6 11 6];
i mpul se( y, u)

Si por el contrari o el si stema se defi n e en MatLab por l as ecuaci ones de estado:
[A, B, C, D]=t f2ss(y, u)
A =
-6 - 11 - 6
1 0 0
0 1 0
89
B =
1
0
0
C =
1 5 4
D =
0
i mpul se( A, B, C, D)

En ambos casos, MatLab presenta l a respuesta en el ti empo en l a ventana de
fi guras:
90
MatLab permi te, adems de obtener l a respuesta en el ti empo para una entrada
escal n o i mpul so, tambi n obtener respuesta para otras entradas tal como
rampas o si nusoi des. El comando l si m permi te obtener l a respuesta en el ti empo
para un si stema con una entrada u, donde u se defi ne como una funci n del
ti empo.
La Si ntaxi s de este comando es: l si m(A, B, C, D, U, T) usando l as matri ces de estado
o l si m(NUM, DEN, U, T) usando l a funci n de transferenci a.
Para obtener l a respuesta en el ti empo para una funci n rampa, se defi ne U de l a
si gui ente forma:
>>T=0: 0. 1: 10
>>U=T;
>>NUM=[1];
>>DEN=[1 0. 25 1];
>>[Y, X]=l si m(NUM, DEN, U, T);
>>PLOT( T, Y, T, U)

Al hacer U=T se est defi ni endo l a funci n rampa. T es el vector de ti empo
vari ando desde 0 hasta 10
seg. NUM y DEN son l os vectores de l os coefi ci entes decreci en tes en potenci a
de S de l os pol i nomi os del numerador y del denomi nador respecti vamente. En l a
vari abl e Y se al macena l a sal i da del si stema en funci n del ti empo T. El comando
pl ot permi te presentar en l a ventana de fi guras l a vari abl e Y (sal i da) y l a
entra da U (rampa) en funci n del ti empo, obteni ndose:

91

8.2 Respuesta en el dominio de la frecuencia
Para el estudi o de un si stema en el domi ni o de l a frecuenci a exi sten tres
herrami entas di sponi bl es en MatLab como son: l os di agramas de Bode, de
Nyqui st y de Ni chol s.
Para obtener el di agrama de Bode de una funci n de transferenci a, se defi nen
dos vectores cuyos el ementos son l os coefi ci entes de l os pol i nomi os del
numerador y del denomi nador en potenci as decreci entes de S. Estos vectores
son usados en el comando bode con l a si gui ente
Si ntaxi s:
bode(num, den).
Se defi ne l a funci n de transferenci a:




Ejempl o
>>y=[1];
>>u=[1 0. 25 1];
>>bode(y, u)

MatLab presenta el di agrama de bode en l a ventana de fi guras:




92

Otro formato medi ante el cual el comando bode presenta el di agrama de bode,
es a travs de l as ecuaci ones de estado representadas por l as matri ces de
estado (A, B, C, D). Su
Si ntaxi s es:
bode(A, B, C, D).
Para especi fi car un rango deseado de frecuenci as en l as cual es se desea obtener
el di agrama de Bode, se empl ea un vector de frecuenci as en el que se especi fi ca
l a frecuenci a i ni ci al , el i ncremento y l a frecuenci a fi nal . Por ejempl o:
>>W=0: 0. 1: 100;
>>bode(y, u, W)
Este comando muestra el di agrama de Bode entre 0 y 100 rad/s.
Otra herrami enta de anl i si s en el domi ni o en l a frecuenci a que ofrece MatLab
es el di agrama de Ni chol s. Para obtener el di agrama de Ni chol s se uti l i za el
comando ni chol s, cuya Si ntaxi s es i dnti ca a l a del comando bode:
ni chol s(A, B, C, D, W) si se empl ean l as matri ces de estado o ni chol s(num, den, W) si
se empl ea l a funci n de transferenci a.

Si se defi ne y como el vector de l os coefi ci entes del pol i nomi o del numerador y
u como el del denomi nador:
>>y=[0 0 100];
>>u=[0. 04 1 0];
>>ni chol s(y, u)

MatLab presenta en l a ventana de fi guras el di agrama de Ni chol s:


93
Otra herrami enta de anl i si s en el domi ni o en l a frecuenci a que ofrece MatLab
es el di agrama de Nyqui st. Para obtenerl o se uti l i za el comando nyqui st, cuya
Si ntaxi s es i dnti ca a l a del comando bode y ni chol s: nyqui st(A, B, C, D, W) si se
empl ean l as matri ces de estado o nyqui st(num, den, W) si se empl ea l a funci n de
transferenci a.
Si se defi ne y como el vector de l os coefi ci entes del pol i nomi o del numerador y
u como el del denomi nador:
>>y=[1];
>>u=[1 6 5];
>>nyqui st ( y, u)
MatLab presenta en l a ventana de fi guras el di agrama de Nyqui st:


94
Para obtener el margen de gananci a, el margen de fase, l a frecuenci a de cruce
de gananci a y l a frecuenci a de cruce de fase MatLab di spone del comando
margi n. Las di ferentes formas de uti l i zar este comando son:
[Gm, Pm, Wcg, Wcp] = MARGIN(A, B, C, D) retorna l os val ores de margen de gananci a
(Gm), margen de fase (Pm), frecuenci a de cruce de gananci a (Wcg) y l a
frecuenci a de cruce de fase (Wcp) cuando se trabaja con l as matri ces de estado
(A, B, C, D).
[Gm, Pm, Wcg, Wcp] = MARGIN( NUM, DEN) cuando se trabaja con l a funci n de
transferenci a.
[Gm, Pm, Wcg, Wcp] = MARGIN(MAG, PHASE, W) toma l os vectores de magni tud,
fase y frecuenci a del di agrama de Bode.
MARGIN( A, B, C, D) di buja el di agrama de Bode y muestra con l neas verti cal es l os
mrgenes degananci a y de fase.

>>num=10;
>>den=[1 0. 25 1];
>>[ Gm, Pm, Wcg, Wcp] =mar gi n( num, den)
Gm =
Inf
Pm =
4. 7487
Wcg =
Na N
Wcp =
3. 3114
>>margi n(num, den)


95

8.3 Lugar de las races
Para obtener el l ugar de l as ra ces de un si stema como el mostrado en el
si gui ente di agrama:







Se debe determi nar su ecuaci n caracter sti ca, l a cual es de l a forma:






Para obtener el l ugar de l as ra ces, MatLab di spone del comando rl ocus. Las
di ferentes
Si ntaxi s para uti l i zar este comando son:
rl ocus( NUM, DEN) cal cul a y di buja el l ugar de l as ra ces cuando se trabaja con l a
funci n de transferenci a donde NUM y DEN son l os vectores de l os coefi ci entes
en potenci a descendi ente de S de l os pol i nomi os del numerador y denomi nador
de l a funci n de transferenci a G(S). MatLab g enerar automti camente un
conjunto de val ores de l a gananci a K.
rl ocus( NUM, DEN, K) : cal cul a y di buja el l ugar de l as ra ces cuando se trabaja con
l a funci n de transferenci a y ha si do previ amente defi ni do el rango de val ores
de K. Por ejempl o de 0 a 100 co n i ncrementos de 10: k=0: 10: 100
R = rl ocus(NUM, DEN, K) o [R, K] = rl ocus(NUM, DEN) no di buja el l ugar de l as
ra ces pero al macena en l a matri z R, de l ongi tud i gual al nmero de el ementos de
K, l a l ocal i zaci n de l as ra ces. R tendr tantas col umnas como ra ces exi stan,
estas pueden adems ser compl ejas.
rl ocus(A, B, C, D), R=rl ocus(A, B, C, D, K), o [R, K]=rl ocus(A, B, C, D) son equi val entes a
l as Si ntaxi s anteri ores pero empl eando l as matri ces de estado para hal l ar el
l ugar de l as ra ces.
96
Para l a si gui ente forma modi fi cada de l a ecuaci n caracter sti ca de un si stema
se desea hal l ar el l ugar de l as ra ces medi ante MatLab:
>>num=[0, 0, 0, 1];
>>den=[1, 3, 2, 0];
>>rl ocus(num, den)
MatLab di spone del comando rl ocfi nd que permi te determi nar l os pol os del
si stema para una val or dete rmi nado de k. Su
Si ntaxi s es:
[ K, POLES] = rl ocf i nd( num, den) permi te determi nar l os pol os para un val or
determi nado de k, cuando se trabaja con l a funci n de transferenci a. Por medi o
del curso en el l ugar de l as ra ces se sel ecci ona una l ocal i zaci n, MatLa b retorna
el val or de k para esta l ocal i zaci n y l os pol os asoci ados a esta gananci a.

Cuando se trabaja con l as matri ces de estado, l as Si ntaxi s para el comando
rl ocfi nd es: [ K, POLES] = rl ocf i nd( A, B, C, D) .
Al ejecutar el comando r l ocf i nd con l a funci n de transferenci a anteri or, MatLab
acti va l a ventana de fi guras en espera de que el usuari o sel ecci one un punto del
l ugar de l as ra ces medi ante el cursor. En este caso el punto sel ecci onado fue -
2. 4623 en l a parte real y - 0. 0132 en l a parte i magi nari a.
[k, pol es] =r l ocf i nd( num, den)
Sel ect a poi nt i n t he gr aphi cs wi ndow
sel ect ed_poi nt =
-2. 4623 - 0. 0132i
k =
1. 6655
pol es =
-2. 4625
-0. 2688 + 0. 7773i
-0. 2688 - 0. 7773i

Para sel ecci onar el punto en el cual cal cul ar l os pol os del l ugar de l as ra ces si n
usar el cu rsor se agrega un parmetro al comando rl ocfi nd. Este debe ser el
punto o l os puntos en donde se desea tomar el val or de k. La nueva
Si ntaxi s es:
[K, POLES] = rl ocfi nd(A, B, C, D, P) o [K, POLES] = rl ocfi nd(num, den, P)
P debe defi ni rse previ amente i ndi cando l a parte real e i magi nari a del mi smo. Por
ejempl o: P=3+0i o P=1 -0. 555i .

97

8.4 Controladores PID
Para i mpl ementar l os di ferentes ti pos de control adores (P, PD, PI, PID) en
MatLab se hace uso de l a funci n de transferenci a propi a del si stema a objeto
de estudi o . Si di cho si stema es de l a forma:







donde G(S) es l a funci n de transferenci a de l a pl anta o proceso; mi entras que
C(S) es l a funci n de transferenci a del control ador.
Para el caso del control ador proporci onal , C(S)=Kp, que es una constante o val or
escal ar. El control ador PI es C(S)=Kp + Ki /S que puede representarse como una
rel aci n ente dos pol i nomi os.
El control ador PID es C(S)=Kp + Ki /S + Kd S que se representa como:








que es de nuevo una rel aci n entre dos pol i nomi os. Los coefi ci entes decreci entes
en potenci as de S de estos pol i nomi o pueden ser al macenados en vectores en
MatLab. Si se mul ti pl i ca el control ador C(S) por l a funci n de transferenci a del
proceso o pl anta G(S) se formar l a funci n de transferenci a de l azo abi erto.
Por ejempl o un G(S) puede ser:



98
Para obtener l a respuesta en l azo abi erto ante una entrada escal n uni tari o
tenemos:
>>Kp=50;
>>Ki=1;
>>Kd=10;
>>num=[Kd Kp Ki ];
>>den=[1 10 20 0 0];
>>st ep( num, den)

Para obtener l a respuesta de l azo cerrado en el ti empo para una entra da escal n
uni tari o se empl ea el comando cl oop, el cual genera l os pol i nomi os del numerador
(numc) y denomi nador (denc) de l a funci n de transferenci a de l azo cerrado con
real i mentaci n uni tari a a parti r de l os pol i nomi os de l a funci n de transferenci a
de l azo abi erto (num y den). Su
Si ntaxi s es:
[numc, denc]=cl oop(num, den, si gn)
El si gno de l a real i mentaci n vi ene dado por si gn. Para el ejempl o anteri or,
tenemos:
>>Kp=500;
>>Ki=1;
>>Kd=100;
>>num1=[Kd Kp Ki ];
>>den1=[1 0];
>>num2=1;
>>den2=[1 10 20 0];
>>[numc, numd]=cl oop(conv(num1, num2), conv(den1, den2), - 1);
>>st ep(numc, denc)

Se usa el comando conv para obtener l a convol uci n y mul ti pl i caci n pol i nomi al de
dos vectores. La sal i da obteni da medi ante el comando st ep se muestra a
conti nuaci n:
99

9. TRUCOS EN MATLAB
Paper semilogartmico gratis: papelbod.m
Para cotejar sus di agramas de Bode:
>>bode(num, den)
donde num y den son vectores que conti enen l os coefi ci entes del numerador y
denomi nador de H(s) en orden de potenci as descendentes de s.

Nota: Esto da l as curvas exactas, no l as aproxi maci ones asi ntti cas con l neas
rectas.

Ejempl o: Para ,



Escri bi mos
>>bode([158. 11 15. 811], [1 5 0])

Precauci n: El punto ". " puede si gni fi car operaci n el emento -por -el emento o
punto deci mal .
Cuando escri bi mos un d gi to pegado al punto como "2. ", el i nterpretador cree
que es el nmero "2. 0". Entonces si queremos cal cul ar A2B2, donde A y B son
arregl os y no matri ces (o sea, queremos operaci n el emento -por-el emento),
debemos escri bi r
>>A. ^2 . *B. ^2 ( not ar el espaci o despus del pr i mer 2)
y no
>>A. ^2. *B. ^2

Para remover ejes de l a grfi ca:
>>set (gca, ' Vi si bl e' , ' off' )
o si mpl emente
>>axi s of f



100
Para cambi ar el col or de trasfondo de l a grfi ca:
>> whi t ebg(' c' )
donde c es el cdi go del col or descri to en hel p pl ot.

Para establ ecer propi edades de l a grfi ca, es ms fci l hacerl o al crearl a que
despus. Por ejempl o, para grafi car con una l nea gruesa,
>>pl ot (x, y, ' l i newi dt h' , 3) (En el momento de creaci n)
>>set (get (gca, ' chi l dren' ), ' l i newi dt h' , 3) (Despus de creada)




101

También podría gustarte