Sei sulla pagina 1di 39

MATLAB 6.

5
FUNDAMENTOS DE MATLAB
MATLAB es un programa para realizar clculos numricos con vectores y matrices.
Puede tambin trabajar con nmeros escalares tanto reales como complejos con
cadenas de caracteres y con otras estructuras de in!ormaci"n ms complejas.
#na de las capacidades ms atracti$as es la de realizar una amplia $ariedad de
grficos en dos y tres dimensiones.
MATLAB es un gran programa de clculo tcnico y cient%!ico..
&l nombre MATLAB pro$iene de Matri' Laboratory y !ue desarrollado originalmente
en (ortran por )ebe Moler.
Los actuales MATLAB estn escritos en * por T+& MAT+,-./0 12*.
&n la $ersion 3.4 se 5a incorporado una acelerador 61T 7ue mejora signi!icati$amente
la $elocidad de ejecuci"n de los !ic5eros 8.m.
MATLAB dispone de un c"digo bsico y de $arias librer%as especializadas
9toolboxes:.
DESCRIPCION DEL ENTORNO
&l Escritorio de Matlab 9Matlab Desktop: 7ue es la $entana o contenedor de m'imo
ni$el
en la 7ue se pueden situar 9to dock: las dems componentes.
;. Los componentes indi$iduales orientados a tareas concretas entre los 7ue se puede
citar<
a. La $entana de comandos 9Command Window:
b. La $entana 5ist"rica de comandos 9Command History:
c. &l espacio de trabajo 9Workspace:
d. La plata!orma de lanzamiento 9Launc !ad:
e. &l directorio actual 9Current Directory:
!. La $entana de ayuda 9Help:
g. &l editor de !ic5eros y depurador de errores 9Editor"Debugger:
5. &l editor de $ectores y matrices 9#rray Editor:.
i. La $entana 7ue permite estudiar c"mo se emplea el tiempo de ejecuci"n 9!rofiler:.
OPERACIONES ARITMTICAS BSICAS
Las operaciones usuales se realizan con los mismos s%mbolos y en la misma secuencia 7ue en
las calculadoras.
a=b 0uma
a>b .esta
a8b Multiplicaci"n
a ? b @ b A a )i$isi"n
aBb Potencia
VARIABLES
Las $ariables son sensibles a las letras maysculas.
Las $ariables pueden contener 5asta CD caracteres.
Las $ariables deben comenzar con una letra seguida por cual7uier nmero de letras
d%gitos o guiones de subrayado. 2o se permiten espacios en blanco.
Por de!ecto Matlab almacena resultados en la $ariable ans
&n el espacio de trabajo de Matlab se pueden borrar las $ariables utilizando la orden
clear seguida del nombre de la $ariable.
EE clear
F Preguntamos por una $ariable poniendo el nombre de la $ariable en la l%nea de
comandos.
Preguntamos por las $ariables con las "rdenes<
EE G5o
EE G5os
&jecutamos comandos del dos
Hcalc
dos calc
OTRAS CARACTERSTICAS
&l signo I J K 9punto y coma: al !inal de una instrucci"n 5ace 7ue el programa ejecute
dic5a instrucci"n sin mostrar el resultado.
Para introducir comentarios los iniciamos con el signo ILK 9tanto por ciento:.
0e pueden realizar $arias entradas en la misma l%nea separndolas por comas. 0i la
entrada no cabe en una l%nea se ponen tres puntos suspensi$os al !inal de la l%nea y se
continua en la siguiente.
#tilizando las teclas de edici"n.
Las teclas de !lec5as permiten modi!icar los datos introducidos<
.ecupera la l%nea pre$ia.
.ecupera la l%nea siguiente.
Mue$e el cursor 5acia la iz7uierda un carcter.
Mue$e el cursor 5acia la derec5a un carcter.
0i escribimos una secuencia de caracteres determinada y pulsamos la tecla
recuperamos la ltima entrada 7ue comienza con dic5a secuencia de caracteres
La orden sa$e nombredesesi"n guarda el espacio de trabajo en el disco en un !ormato
binario especial de matlab con la e'tensi"n .mat. #na sesi"n guardada de esta !orma
se puede cargar en el espacio de trabajo mediante la orden load seguida del nombre del
correspondiente !ic5ero.
La orden clc borra la $entana de comandos.
. *on e'it o 7uit !inalizamos la sesi"n de matlab.
Comando comun!
5elp 7uit
$ersion
clocM
!i'9clocM:
date
disp pi
disp9pi:
disp9N5ola como estasO:
demo
CONFI"URACI#N FORMATO
s5ort coma !ija con P decimales 9defecto:
long coma !ija con D4 decimales
5e' ci!ras 5e'adecimales
banM nmeros con dos ci!ras decimales
s5ort e notaci"n cient%!ica con P decimales
s5ort g notaci"n cient%!ica o decimal dependiendo del $alor
long e notaci"n cient%!ica con D4 decimales
long g notaci"n cient%!ica o decimal dependiendo del $alor
rat e'presa los nmeros racionales como cocientes de enteros
E$ERCICIOS.
&jemplo<
>> ;BC
Tambin se puede asignar el $alor a una $ariable<
>> '@4=CB;
0e pueden utilizar las !unciones matemticas 5abituales.
>> s7rt9;:
*alculos?comandos encadenados<
>> '@sin9C:y@cos9DQ:z@tan9R:
S si no caben en un renglon
>> '@sin9DQ:...
z@C83
.ealiza los siguientes clculos<
;C > P =93?C:8;
;C> P=3?9C.;:
;.C; = 3
9;.C:8; = 3
)etermina la super!icie comprendida entre un cuadrado de lado la@; y la
circun!erencia inscrita<
Tuarda los $alores con el comando sa$e
#tiliza el comando G5o para $er las $ariables
#tiliza el comando clear all
Uue sucede9 usa el comando G5o:
Luego utiliza el comando load
Uue sucede 9 usa el comando load:
%ADEMS
V MATLAB es la disponibilidad de los toolbo'es especializados. &stos son pa7uetes
especializados orientados a ingenieros cient%!icos y otros tipos de pro!esionales
tcnicos. &ntre los ms destacados estn<
F Procesamiento de 0eWal
F T5e MATLAB * Mat5 Library
F Matemticas 0imb"licas
F Procesamiento de 1magen
F T5e MATLAB *ompiler
F .edes 2euronales
F &stad%stica
F 0plines
F )iseWo de 0istemas de *ontrol
F *ontrol .obusto
F 1denti!icaci"n de 0istemas
F -ptimizaci"n
F 0imulaci"n
F )iseWo de *ontrol no Lineal
F L"gica )i!usa
F 2AT (undation Toolbo'
E&'IBICI#N DE N(MEROS)
Comando MATLAB
E*+,-,c,.n E/m01o
!ormat s5ort
!ormat s5ort e
!ormat long
!ormat long e
!ormat banM
!ormat 5e'
!ormat =
Por omisi"n
P decimales
DP decimales
D4 decimales
; decimales
e'p. 5e'adecimal
= > espacio
;.CCCC
;.CCCCe=QQQ
;.CCCCCCCCCCCCCC
;.CCCCCCCCCCCCCCPe=QQQ
;.CC
PQQ;aaaaaaaaaaab
=
OPERACIONES ARITMTICAS)
ESCALAR
MATRI2 VECTOR DESCRIPCI#N
3 3 3 Adici"n
4 4 4 0ustracci"n
5 5 .5 Multiplicaci"n
6 6 . 6 )i$isi"n 5acia la derec5a
7 7 7 . )i$isi"n 5acia la iz7uierda
8 9 .: Transposici"n
OPERADORES RELACIONALES
OPERADOR
DESCRIPCI#N
; mno< =u
; > mno< o ,?ua1 =u
@ maAo< =u
@ > maAo< o ,?ua1 =u
> > I?ua1
B > no ,?ua1

OPERADORES L#"ICOS
OPERADOR DESCRIPCI#N
X S 9and:
Y - 9or:
Z 2- 9not:
COMBINACIONES)

P C B P P DC PEC
!also (also [erdadero (also !also
(also $erdadero [erdadero [erdadero !also
[erdadero (also (also [erdadero !also
[erdadero $erdadero (also $erdadero $erdadero
CARACTERES ESPECIALES)

CARACTERES
DESCRIPCI#N
F G 0e utilizan para !ormar $ectores y matrices
H I )e!ine precedencia en e'presiones aritmticas. &ncierra argumentos de
!unciones en !orma usual
J 0eparador de elementos de una matriz argumentos de !unciones y
declaraciones en l%neas con declaraciones mltiples
K 0eparador de declaraciones termina renglones de una matriz
COMANDO DISP
0ir$e para escribir te'to de salida o $ectores. de resultados.
La sinta'is de la orden es<
d,!0H&IK
\ Puede ser<
] #n $ector.
] #na matriz.
] #na cadena de te'to.
&l siguiente ejemplo ilustra el uso de disp<
L&jemplo de uso de disp.a @ ^D ; C P _ DD`J L #n $ector disp9a:Ja @ ^D ; a J 3 C P`J L
#na matriz disp9a:Ja @ NTe'to se puede escribir as% NJ L *adena de te'to disp9a:Jdisp9 N
Tambin se puede escribir as%.O :J
La salida del programa anterior ser<
D ; C P _ DD D ;
a 3 C P
Te'to se puede escribir as% Tambin se puede escribir as%.
COMANDO INPUT
0e utiliza para 7ue el programa pida $alores de $ariables mientras se ejecuta.
La sinta'is de la orden es<
La<,a-1 > ,n0uM H M*Mo IK

variable es un nombre $lido de $ariable en la 7ue se 7uiere almacenar el $alor 7ue se
pregunta.
texto puede ser<
F #na $ariable o
F #na cadena.
&l siguiente ejemplo ilustra el uso de input<
L&jemplo de uso de input.a @ QJ L 5ace $lido el nombre de $ariable a.
a @ input9 N Teclee el $alor de a< N:J
te' @ N *ual es el nue$o $alor de ab NJ
a L Al escribir el nombre de una $ariable 9sin punto y coma al !inal:
L MATLAB muestra su $alor.
a @ input9te':J
a La salida de este programa ser<
Teclee el $alor de a< 9espera:a @'''
L a7u% se imprime el $alor asignado para a.*ual es el nue$o $alor de ab
9espera:
a @
yyy
)onde ''' y yyy son $alores introducidos por el usuario en el momento de correr el
programa.
POLINOMIOS
0e puede trabajar con polinomios< basta tener en cuenta 7ue un polinomio
no es mas 7ue un $ector. &l orden de los coe!icientes es de mayor a menor
grado por ejemplo<
Polinomio xP = ;x; = C
>> p@^D Q ; Q C`
Polinomio ;x; = x
>> 7@^; D Q`
MATLAB tiene !unciones especc!icas para polinomios como<
&$aluacion del polinomio xP = ;x; = C en x @ >D
>>poly$al9p>D:
Producto de los polinomios p y 7
>>pro@con$9p7:
*ociente entre pro y pJ ob$iamente el resultado es 7
>> decon$9prop:
.acces del polinomio pro
>> roots9pro:
ESTRUCTURAS DE CONTROL
SENTENCIA IF
&n su !orma ms simple la sentencia if se escribe en la !orma siguiente 9obsr$ese 7ue a
di!erencia de *?*==?6a$ad la condici"n no $a entre parntesis aun7ue se pueden poner si se
desea:
,N cond,c,on
SnMnc,a!
nd
&'iste tambin la bifurcacin mltiple en la 7ue pueden concatenarse tantas condiciones
como
se desee y 7ue tiene la !orma<
,N cond,c,onO
-1o=uO
1!,N cond,c,onP
-1o=uP
1!,N cond,c,onQ
-1o=uQ
1! R o0c,.n 0o< dNcMo 0a<a cuando no ! cum01an 1a! cond,c,on! OJPJQ
-1o=uS
nd
SENTENCIA STITC'
La sentencia switc realiza una !unci"n anloga a un conjunto de if$$$elseif concatenados. 0u
!orma general es la siguiente<
sGitc5 sGitc5ee'presion
case caseee'prD
blo7ueD
case fcaseee'pr; caseee'prC caseee'prP...g
blo7ue;
...
ot5erGise L opci"n por de!ecto
blo7ueC
end
SENTENCIA FOR
La sentencia for repite un conjunto de sentencias un nmero predeterminado de $eces. La
sentencia
for de MATLAB es muy di!erente y no tiene la generalidad de la sentencia for de *?*=
=?6a$a. La siguiente construcci"n ejecuta sentencias con $alores de , de O a n $ariando de
uno en uno.
!or i@D<n
sentencias
end
o bien
!or i@$ector[alores
sentencias
end
%FOR
&n el siguiente ejemplo se presenta el caso ms general para la $ariable del bucle 9valor_
inicial: incremento: valor_final:J el bucle se ejecuta por primera $ez con ,>n y luego , se $a
reduciendo de Q.; en Q.; 5asta 7ue llega a ser menor 7ue D en cuyo caso el bucle se termina<
!or i@n<>Q.;<D
sentencias
end
%FOR
!or i@D<m
!or j@D<n
sentencias
end
&nd
#na ltima !orma de inters del bucle for es la siguiente 9A es una matriz:<
!or i@A
sentencias
end
SENTENCIA T'ILE
La estructura del bucle wile es muy similar a la de *?*==?6a$a. 0u sinta'is es la siguiente<
G5ile condicion
sentencias
end
donde condicion puede ser una e'presi"n $ectorial o matricial. Las sentencias se siguen
ejecutando
mientras 5aya elementos distintos de cero en condicion es decir mientras 5aya algn o
algunos
elementos true. &l bucle se termina cuando todos los elementos de condicion son false 9es
decircero:.
SENTENCIA BREAU
Al igual 7ue en *?*==?6a$a la sentencia break 5ace 7ue se termine la ejecuci"n del bucle for
y?o
wile ms interno de los 7ue comprenden a dic5a sentencia.
SENTENCIA CONTINUE
La sentencia continue 5ace 7ue se pase inmediatamente a la siguiente iteraci"n del bucle for o
wile
saltando todas las sentencias 7ue 5ay entre el continue y el !in del bucle en la iteraci"n actual.
SENTENCIAS TRV...CATC'...END
La construcci"n try$$$catc$$$end permite gestionar los errores 7ue se pueden producir en
tiempo de
ejecuci"n. 0u !orma es la siguiente<
M<A
!nMnc,a!O
caMc+
!nMnc,a!P
nd
0i la ejecuci"n transcurriera normalmente sentencias%
no se ejecutar%a nunca. MATLAB dispone de una !unci"n lasterr 7ue de$uel$e una cadena
de caracteres con el mensaje correspondiente al ltimo error 7ue se 5a producido. &n la !orma
lasterr&''(
pone a cero este contador de errores
MATRICES V VECTORES EN MATLAB
V -peraciones con Matrices y $ectores<
d Para de!inir matrices se utiliza<
F G constructor
J separador de columnas
K separador de !ilas
d &n lugar de coma 9: puede utilizarse un espacio y en lugar de punto y coma
9J: puede utilizarse un retorno de carro
d &jemplo<
A@^D;CJ P43`
o simplemente<
A@^D ; C
P 4 3`
C#MO INTRODUCIR UN VECTOR DE FILAS O DE COLUMNAS
u @ ^; P 4` tiene una !ila con tres elementos 9matriz de D ' C:.
v @ ^;J PJ 4` tiene tres !ilas separadas por puntos y comas 9matriz de C ' D:.
v = ^; P 4`h o v = u' transpone u para generar la misma v.
w @ ;<4 de!ine el $ector de !ilas w = ^; C P 4` mediante $alores 7ue aumentan sucesi$amente
en una unidad.
u @ D<;<a asigna $alores 7ue aumentan en dos unidades para obtener u @ ^D C 4 a`
OPERACIONES CON MATRICES V VECTORES)
d Pruebe los siguientes comandos
A @ ^ D ; C J P 4 3 `
B @ Ah
* @ A 8 B
) @ B 8 A
$ @ ^ D ; C P `
G @ ^ 4 J 3 J a J R `
' @ $ 8 G
S @ G 8 $
M@^D<DQ J DD<;Q J ;D<CQ`
[@^D<Q.C<DQ`
OPERACIONES CON MATRICES V VECTORES)
d Pruebe los siguientes comandos
A @ ^ D ; C J P 4 3 ` )e!ine la matriz A de ;'C
B @ Ah )e!ine B como la matriz transpuesta de A
* @ A 8 B * es la multiplicaci"n de matrices A 8 B
) @ B 8 A ) es la multiplicaci"n de matrices B 8 A
$ @ ^ D ; C P ` )e!ine el $ector !ila $
G @ ^ 4 J 3 J a J R ` )e!ine el $ector columna G
' @ $ 8 G ' es la multiplicaci"n de matrices $ 8 G
S @ G 8 $ S es la multiplicaci"n de matrices G 8 $
M@^D<DQ J DD<;Q J ;D<CQ` matriz de C'DQ con elementos del D al CQ
[@^D<Q.C<DQ` $ector con elementos del D al DQ cuyas componentes se !orman sumando Q.C a
zla anterior
V .esol$iendo sistemas de ecuaciones lineales
D.; x1 = ;.; x2 @ ;D.P
a.D x1 = Q.4 x2 @ C_
A @ ^D.; ;.; J a.D Q.4 `
. @ ^ ;D.P J C_ `
\ @ in$9A: 8 .
FUNCIONES CUE DEVUELVEN MATRICES
d eye9P: (orma la matriz unidad de P'P
d zeros9C4: (orma una matriz de ceros de C'4
d ones9C: (orma una matriz de unos de C'C
d ones9;P: 1dem de tamano ;'P
d rand9C: !orma una matriz de C'C de nmeros aleatorios entre Q y D con
distribuci"n uni!orme
d rand9P;: 1dem de tamano P';
d Probar los siguientes comandos<
A@ magic9C: $@^D<DQ`
size9A: size9$:
lengt59A: lengt59$:
sum9A: sum9$:
E$ERCICIOS)
V D: -btener el producto interior a . b
a@^D;CP`
b@^43aR`
V ;: [eri!icar si e!ecti$amente magic9P: es un cuadro mgico comprobando 7ue las !ilas
columnas y diagonales principales sumen e'actamente el mismo $alor 9utilizar
!unciones diag y rot!:
E$ERCICIOS)
V D: -btener el producto interior a . b
a@^D;CP`
b@^43aR`
.ta< a8bh
V ;: [eri!icar si e!ecti$amente magic9P: es un cuadro mgico comprobando 7ue las !ilas
columnas y diagonales principales sumen e'actamente el mismo $alor 9utilizar
!unciones diag y rot!:
.ta< 5ay 7ue realizar las siguientes operaciones<
A@magic9P:
sum9A: se obtienen las sumas de las columnas
sum9Ah: se obtienen las sumas de las !ilas
sum9diag9A:: se obtiene la suma de la diagonal principal
sum9diag9rot_Q9A::: se obtiene la suma de la otra diagonal

CREANDO MATRICES CON SUBMATRICES
d 0e puede crear una nue$a matriz componiendo como submatrices matrices
de!inidas pre$iamente. A modo de ejemplo ejectense las siguientes
instrucciones<
EE A@zeros9;:J
EE B@ones9;C:J
EE *@^ABJ^D<4``
* @
Q Q D D D
Q Q D D D
D ; C P 4
OPERADORES .5 .6 .8
d &n MATLAB se puede aplicar elemento a elemento los operadores 98 ? B:
Para ello se los precede por un punto9.:
i ^D ; C P`B;
bbb &rror using @@E B
Matri' must be s7uare.
i ^D ; C P`.B;
ans @
D P _ D3
i ^D ; C P`8^D >D D >D`
bbb &rror using @@E 8
1nner matri' dimensions must agree.
i ^D ; C P`.8^D >D D >D`
ans @
D >; C >P
"RAFICANDO UNA FUNCI#N
d 0e desea gra!icar la !unci"n f"x#@x$sin"x# en el inter$alo ^>DQDQ`
EE ' @ ^>DQ < Q.D < DQ`J
EE y @ sin9': .8 'J
EE plot9'y:J
2ota< -bser$e 7ue se 5a utilizado el operador 9.8:
V *uando los operadores relacionales se aplican a matrices del mismo tamaWo la
comparaci"n se realiza elemento a elemento
EE A@^D;JCP`J
EE B@^PCJC;`J
EE A@@B
ans @
Q Q
D Q
EE AZ@B
ans @
D D
Q D
V 0i se compara una matriz con un escalar La comparaci"n se realiza entre el escalar y
cada elemento de la matriz.
EE A@^D;;J;CCJPP;`J
EE A@@;
ans @
Q D D
D Q Q
Q Q D
E$ERCICIOS
d D: &scribir una e'presi"n 7ue compute la cantidad de numeros C 7ue posee una
matriz A.
d ;: &scriba una e'presi"n 7ue de$uel$a el $alor m'imo de cada !ila de una
matriz A 9!unci"n ma':.
d C:&scriba una e'presi"n 7ue de$uel$a true 9D: si todos los elementos de una
matriz son iguales.
E$ERCICIOS
d D: &scribir una e'presi"n 7ue compute la cantidad de numeros C 7ue posee una
matriz A.
sum9sum9A@@C::
d ;: &scriba una e'presi"n 7ue de$uel$a el $alor m'imo de cada !ila de una
matriz A 9!unci"n ma':.
ma'9Ah:h
d C:&scriba una e'presi"n 7ue de$uel$a true 9D: si todos los elementos de una
matriz A son iguales.
ma'9ma'9A::@@min9min9A::
ACCESO A LOS ELEMENTOS DE UNA MATRI2
d Los elementos de las matrices se acceden por sus dos %ndices. Por ejemplo
A9D;: " A9ij:.
d 0in embargo las matrices se almacenan por columnas y teniendo en cuenta esto
puede accederse a cual7uier elemento con un s"lo sub%ndice. Por ejemplo
EE A@^D;CJP43JaR_`J
EE A9P:
ans @
;
V Probar 7u de$uel$e A9<:
d .ta< el $ector columna !ormado por la concatenaci"n de las columnas de A
V -perador 9<: como %ndice
EE A@magic9P:
A @
D3 ; C DC
4 DD DQ R
_ a 3 D;
P DP D4 D
V -perador 9<: como %ndice
EE A@magic9P:
A @
D3 ; C DC
4 DD DQ R
_ a 3 D;
P DP D4 D
EE A9;<C;<P:
ans @
DD DQ R
a 3 D;
V -perador 9<: como %ndice
EE A@magic9P:
A @
D3 ; C DC
4 DD DQ R
_ a 3 D;
P DP D4 D
EE A9;<:
ans @
4 DD DQ R
V -perador 9<: como %ndice
EE A@magic9P:
A @
D3 ; C DC
4 DD DQ R
_ a 3 D;
P DP D4 D
EE A9<D:
ans @
D3
4
_
P

V -perador 9<: como %ndice
EE A@magic9P:
A @
D3 ; C DC
4 DD DQ R
_ a 3 D;
P DP D4 D
EE A9P<>D<D<:
P DP D4 D
_ a 3 D;
4 DD DQ R
D3 ; C DC

V -perador 9<: como %ndice
EE A@magic9P:
A @
D3 ; C DC
4 DD DQ R
_ a 3 D;
P DP D4 D
EE A9^DC`<:
D3 ; C DC
_ a 3 D;
-bsr$ese 7ue tambin puede utilizarse un $ector como %ndice. &n este caso sir$e para poder
seleccionar !ilas disjuntas
E$ERCICIOS
d D: *onstruir una matriz A de ;'3 !ormada por la segunda y tercera !ila de
magic93:
d ;: &liminar la columna C
d C: -btener el $ector suma por columna y agregarlo como ltima !ila de A
d P: -btener el $ector suma por !ila y agregarlo como ltima columna de A
E$ERCICIOS
d D: *onstruir una matriz A de ;'3 !ormada por la segunda y tercera !ila de
magic93:
A@magic93:J
A@A9;<C<:
d ;: &liminar la columna C
A@A9<^D;P<3`:
d C: -btener el $ector suma por columna y agregarlo como ltima !ila de A
A@^AJsum9A:`
d P: -btener el $ector suma por !ila y agregarlo como ltima columna de A
A@^Asum9Ah:h`
RECORRIDO DE UNA MATRI2
Para recorrer una matriz necesitamos dos bucles anidados. Por ejemplo si
se desea recorrer todos los elementos de la matriz A por !ilas se escribirn
dos sentencias !or anidadas<
!or i@D< n!ilasA L para cada !ila
!or j@D< ncolsA
sentencias
end
end
Tambin es posible recorrer la matriz por columnas<
!or j@D< ncolsA L para cada columna
!or i@D< n!ilasA
sentencias
end
end
- recorrer la matriz triangular superior de una matriz cuadrada<
!or i@D< n!ilasM
!or j@i< ncolsM
sentencias
end
end
COMO CO"ER MAS UN DATO A LA VE2
EE ^n!ilasM ncolsM`@size9M:
n!ilasM @
C
ncolsM @
C
EE^n!ilasA ncolsA`@size9A:
n!ilasA @
C
ncolsA @
4
E$ERCICIOS
.ealice un script para ingresar datos a un array
.ealice un script para ingresar datos a una matriz.
.ealice un script 7ue me permita calcular el mayor y menor de un $ector.
.ealice un script $er la cantidad de elementos de un $ector.
DEFINICI#N DE FUNCIONES
La primera l%nea de un arc5i$o llamado name.m 7ue de!ine una !unci"n tiene la !orma<
!unction ^lista arg. salida` @ name9lista arg.entrada:
name es el nombre de la !unci"n.
0i 5ay un nico argumento de salida pueden omitirse los corc5etes
Las $ariables 7ue se utilicen son locales no permanecen en el
GorMspace una $ez !inalizada la !unci"n.
&jemplo !unction resultado @ !actorial9n:
resultado@D
!or i @ D<n
resultado@resultado 8 i
end
Tanto los $ectores como las matrices pueden ser parmetros de entrada y
de salida en una !unci"n.
%&emplo. &scribir una !unci"n 7ue sume los elementos de un $ector< v9i:
!unction s @ sumae$ec 9$:
L 0#MAe[&* *alcula la suma de los elementos de un $ector
L s@sumae$ec9$:
s@QJ Linicialmente la suma $ale Q
n @ lengt59$:J
!or i@D< n
s @ s= $9i:J
end
E$ERCICIOS
D: Programe la !unci"n dibujar 0eno9ab: 7ue dibuja la gr!ica del seno en el
inter$alo ^ab`.
;: &scriba la !unci"n para la resoluci"n de ecuaciones de segundo grado ax; =
bx = c @ Q implementando la !"rmula
E$ERCICIOS
D. &scribir una !unci"n 7ue sume todos los elementos de una matriz
numrica de tamaWo n ' m.
;. &scribir una !unci"n 7ue de$uel$a la media de los elementos de una
matriz numrica de tamaWo n ' m.
"<WN,co! -,d,mn!,ona1!.
La instrucci"n 01oM es la primera 7ue 5emos de aprender a manejar. 0i A es un $ector la orden
01oMHAI representa los $alores de las componentes de dic5o $ector respecto de su nmero de
componente es decir los puntos HXJAHXII para X $ariando entre uno y la longitud del $ector
unidos por un segmento recto. Por ejemplo al ejecutar las siguientes "rdenes se obtiene la
gr!ica representada en la !igura ;.D
y=[2 3 6 -1 0 5 5 4 -1];
plot(y)
F,?u<a P.O) .epresentaci"n de un $ector usando la orden 01oM.
)ependiendo de la $ersi"n de MATLAB utilizada la !igura creada ocupar una $entana 7ue
podr continuar en pantalla mientras $amos introduciendo nue$as instrucciones o bien llenar
la pantalla completa y desaparecer la l%nea de comandos. Para poder seguir trabajando en
este caso necesitaremos pulsar una $ez analizada la !igura la tecla .
Las instrucciones -a< y !Ma,<! sir$en para representar gr!icamente un $ector en !unci"n de
sus componentes mediante barras y escaleras respecti$amente. 0us !ormatos son -a<H*I y
!Ma,<!H*I y s"lo admiten un $ector como argumento.
E/<c,c,o) .epresentar un $ector de DQ componentes aleatorias mediante las tres instrucciones
comentadas 5asta a5ora.
.pta<
subplot(211)
x=rand(10);
stairs(x)

subplot(212)
x=rand(5);
bar(x)
0i en $ez de utilizar un $ector como argumento de la orden 01oM usamos una matriz entonces
dic5a instrucci"n considera 7ue 7ueremos representar cada columna de la matriz como
$ectores di!erentes. )e ese modo aparece una !igura en la 7ue con distintos colores se nos
muestran simultneamente las cur$as 7ue obtendr%amos al representar cada uno de esos
$ectores por separado. Por ejemplo al escribir las instrucciones
Y=mai!(3);
plot(Y)
obtenemos la !igura ;.;.
F,?u<a P.P) .epresentaci"n de una matriz mediante la instrucci"n 01oM.
Pero $ayamos ya a la principal utilidad de 01oM el dibujo de gr!icas de !unciones reales de
$ariable real. &n el siguiente ejemplo podemos $er la tcnica 5abitual para el dibujo de
!unciones. Primero 5ay 7ue de!inir un $ector * 7ue represente un mallado del inter$alo
donde 7ueremos representar la !unci"n. &l paso siguiente es crear otro $ector A con las
imgenes de dic5os puntos. Para $er la gr!ica basta con escribir 01oMH*JAI.
x=linspa!"(0#6$pi#101);
y=(x% 2)%$(sin(x));
plot(x#y)
F,?u<a P.Q) .epresentaci"n de la gr!ica de la !unci"n y @'B; en el inter$alo .
Precisemos ms el !uncionamiento de la instrucci"n 01oM. 0i * e A son dos $ectores de igual
longitud entonces 01oMH*JAI representa la gr!ica !ormada por los puntos H*HXIJAHXII con X
$ariando entre uno y la longitud de dic5os $ectores. &n otras palabras la instrucci"n 01oMH*JAI
representa el $ector A !rente al *. Por ello podemos representar cur$as ms complicadas 7ue
simples gr!icas de !unciones. Por ejemplo podemos dibujar una cur$a cerrada en !orma
paramtrica de la siguiente !orma.
t=0&0%1&2$pi;
x=!os(t);
y=3$sin(t);
plot(x#y);
0i 7ueremos representar $arias gr!icas a la $ez basta utilizar la e'presi"n 01oMH*OJAOJ*PJAPJ
J*nJAnI donde cada par H*OJAPI H*PJAPI... H*nJAnI corresponde a una cur$a distinta.
Tambin es posible utilizar con el mismo !in la e'presi"n 01oMHF*OY *PY ... *nYGJFAOY APY ...
AnYGI. Las siguientes instrucciones dan lugar a la !igura ;.P.
x=linspa!"(0#6$pi#101);
y1=(x% 2)%$(sin(x));
y2=2$(x% 2)%$(sin(x));
y3=(x% 2)%$(!os(x));
y4=2$(x% 2)%$(!os(x));
plot(x#y1#x#y2#x#y3#x#y4)
F,?u<a P.S) .epresentaci"n de $arias gr!icas a la $ez.
-tra !orma de representar $arias cur$as a la $ez cuando todas estn de!inidas en el mismo
inter$alo como en el ejemplo anterior es representar una matriz !ormada por los $ectores AO
AP... An como columnas o !ilas indistintamente !rente al $ector *. Podemos llegar tambin
a la !igura ;.P escribiendo las siguiente instrucci"n de dibujo.
plot(x#[y1;y2;y3;y4])
E/<c,c,o) .epresenta las siguientes !unciones en los inter$alos considerados primero por
separado y despus en una misma !igura.
D. en .
;. en .
E/<c,c,o) .epresenta la siguiente !unci"n de!inida a trozos.
E/<c,c,o) .epresenta las siguientes cur$as de!inidas paramtricamente.
D. para .
;. para .
E/<c,c,o) *onsulta la ayuda de la orden 01oM y obser$a algunas otras posibilidades gr!icas
de la misma. EUu sucede si el argumento de dic5a instrucci"n es un $ector de nmeros
complejosb
E/<c,c,o) La orden N01oM sir$e tambin para dibujar !unciones. Analiza con la ayuda las
di$ersas opciones 7ue tiene dic5a instrucci"n y representa algunas !unciones elementales.
E/<c,c,o) -btn la gr!ica de la !unci"n en . E-bser$as algo e'traWob
+ay otras instrucciones 1o?1o? !m,1o?* y !m,1o?A cuyo !ormato de escritura es igual 7ue
el de 01oM y su nica di!erencia estriba en 7ue la escala utilizada a la 5ora de realizar los
gr!icos es respecti$amente logar%tmica en ambos ejes logar%tmica en el eje \ o logar%tmica
en el eje S. &n el siguiente ejemplo $emos como la gr!ica de log9': no es ms 7ue una recta
si utilizamos escala logar%tmica en el eje \.
x=linspa!"(0%1#5#100);
plot(x#lo(x))
s"milox(x#lo(x))
E/<c,c,o) *omprueba 7ue la gr!ica de la !unci"n no es ms 7ue una recta si tomamos
escala logar%tmica en el eje .
La ltima instrucci"n 7ue $amos a comentar en esta secci"n sir$e para realizar gr!icas de
!unciones dadas en coordenadas polares. La e'presi"n 0o1a<HM+MaJ<+oI representa la cur$a
de!inida en coordenadas polares por el $ector de radios <+o !rente al $ector de ngulos M+Ma.
Por ejemplo las "rdenes siguientes sir$en para dibujar una cardioide.
an=linspa!"(0#2$pi#100);
rad=1-sin(an);
polar(an#rad)
#n 5ec5o importante 7ue tenemos 7ue tener en cuenta es 7ue la instrucci"n 0o1a< admite
radios negati$os. *on las siguientes "rdenes podemos ilustrar este 5ec5o.
an=linspa!"(0#2$pi#100);
rad=1-2$!os(an);
polar(an#rad)
E/<c,c,o) )ibuja una circun!erencia de radio D.
E/<c,c,o) La espiral de Ar7u%medes $iene dada para por la e'presi"n polar
donde es un nmero real positi$o. .epresenta la espiral de Ar7u%medes para a@D
en el inter$alo . *omprueba gr!icamente 7ue la distancia entre espiras consecuti$as
se mantiene constante.
Su-d,L,!,.n d 1a 0anMa11a.
Mediante la orden !u-01oM es posible di$idir la pantalla en $arias partes en las 7ue podemos
realizar gr!icos distintos. &l !ormato con el 7ue se utiliza dic5a instrucci"n es !u-01oMHmn0I
donde m y n denotan respecti$amente el nmero de !ilas y el nmero de columnas en 7ue se
di$ide la pantalla y 0 es el recuadro correspondiente de dic5a matriz. &l nmero 0 se mide
desde la es7uina superior iz7uierda 5acia la in!erior derec5a contando como si la matriz de
gr!icos !uese un $ector !ila !ormado por las !ilas de la matriz colocadas sucesi$amente. *on
el siguiente ejemplo obtenemos la !igura ;.3.
x=linspa!"(0#20#100);
y1=sin(x);
y2=!os(x);
y3=x;
y4=x% 2;
subplot(221);plot(x#y1)
subplot(222);plot(x#y2)
subplot(223);plot(x#y3)
subplot(224);plot(x#y4)
F,?u<a P.6) [arios gr!icos en una nica !igura.
#na $ez realizado el gr!ico deseado 5emos de escribir la orden !u-01oM sin argumentos con
el !in de $ol$er a tener toda la pantalla para un nico gr!ico. 0i esto no se 5ace cada dibujo
7ue se realice a partir de ese momento se situar en uno de los subgr!icos creados
pre$iamente.
E/<c,c,o) Muestra las gr!icas de las !unciones e'ponencial y logaritmo en una misma
pantalla situando una sobre la otra.
E/<c,c,o) AWade un t%tulo a cada dibujo del ejemplo pre$io en el 7ue aparezca el nombre de
la !unci"n representada.
.
ZEd,c,.n d ?<WN,co!.
#na $ez realizado un dibujo podemos estar interesados en aWadir un t%tulo a la imagen
eti7uetas a los ejes coordenados cambiar los colores o modi!icar los estilos de las cur$as
obtenidas. MATLAB posee instrucciones 7ue permiten realizar estas !unciones y algunas ms.
&n primer lugar si 7ueremos 7ue las cur$as sean dibujadas con ciertos colores o cambiar el
trazo de las mismas utilizando puntos o l%neas discontinuas basta usar la orden
01oMH*JAJYo0c,on!YI donde * e A son los $ectores 7ue 7ueremos representar y o0c,on! es una
cadena de caracteres 7ue indica el estilo con el 7ue representaremos la cur$a. Las distintas
posibilidades 7ue tenemos son<
D. Tipos de l%nea.
4 *ontinua.
4 4 )iscontinua.
) Punteada.
4. )iscontinua y punteada.
;. Tipos de punto.
. Punto.
*ruz.
* Aspa.
o *%rculo.
5 &strella.
C. *olores.
< .ojo.
? [erde.
- Azul.
[ Blanco.
cOJcPJ... -tros colores.
Podemos combinar algunas de estas opciones. Por ejemplo las siguientes instrucciones
dibujan las !unciones y mostrando la gr!ica de la primera en color
blanco y punteada y la de la segunda como una sucesi"n de puntos representados por estrellas.
x=linspa!"(0#2$pi#15);
y1=2$!os(x);
y2=(!os(x))% 2;
plot(x#y1#'(&'#x#y2#'$')
&s importante destacar 7ue en la $ersi"n de estudiante las opciones de l%nea y de punto no
son compatibles y por ello no se pueden usar simultneamente. 0i 7ueremos representar una
cur$a discontinua y punteada 7ue una distintos puntos representados por cruces 5emos de
dibujar la cur$a dos $eces con las opciones por separado. Por ejemplo
x=linspa!"(0#4#15);
y="xp(x);
plot(x#y#'-%'#x#y#')')
construye una cur$a como la descrita. Podemos darnos cuenta de 7ue MATLAB colorea los
puntos y la cur$a de modo distinto ya 7ue las considera como cur$as di!erentes.
E/<c,c,o) .epresenta las siguientes !unciones en los inter$alos y con las opciones 7ue se
indican primero por separado y despus en un mismo dibujo.
D. en como una l%nea continua $erde 7ue une los puntos
representados por aspas.
;. en como una l%nea punteada blanca 7ue une los puntos
representados por estrellas.
C. en como una l%nea discontinua azul 7ue une los puntos
representados por c%rculos.
E/<c,c,o) )ibuja con un solo color la gr!ica de la !unci"n a trozos de la secci"n anterior.
A $eces es necesario determinar las coordenadas apro'imadas 7ue tiene un cierto punto de
una gr!ica. Para ello es especialmente til la instrucci"n ?<,d 7ue construye una malla
rectangular discontinua sobre el dibujo. &n dibujos realizados con la instrucci"n 0o1a< la
malla ser%a la 5abitual en coordenadas polares. &l resultado de escribir las siguientes
instrucciones es la gr!ica mostrada en la !igura ;.4.
x=linspa!"(0%1#0%*#30);
y=1 %+x;
plot(x#y)
rid
F,?u<a P.5) Mallado de una !igura.
NOTAS IMPORTANTES)
)ebido a algunas incompatibilidades gr!icas entre la $ersi"n de MATLAB para
estudiantes y ,indoGs para obtener los mismos resultados 5emos de escribir todas las
!unciones gr!icas en la misma l%nea. &n el ejemplo anterior 5abr%a 7ue poner
plot(x#y); rid
&'iste una instrucci"n 7ue permite almacenar el ltimo gr!ico realizado en memoria
y modi!icarlo o aWadirle nue$as cur$as. )ic5a instrucci"n es +o1d on. Para
desacti$arla basta con escribir +o1d oNN.
&n los gr!icos 7ue 5emos $enido 5aciendo 5asta a5ora 5emos podido obser$ar 7ue
MATLAB a la 5ora de representar las cur$as elige la regi"n en la 7ue se muestran los
dibujos. Por ejemplo a7uellos dibujos en los 7ue la $ariable independiente se mo$%a en el
inter$alo 5an sido mostrados en el inter$alo y por lo tanto la cur$a terminaba
antes de llegar al e'tremo !inal del dibujo. La instrucci"n 7ue permite cambiar la regi"n de
representaci"n de la !unci"n es a*,!. 0u !ormato es a*,!HF*m,n *ma* Am,n Ama*GI donde
*m,n *ma* Am,n e Ama* son los e'tremos de los inter$alos de las $ariables * e A. 0i
escribimos
axis([0 1 0 1])
todos los dibujos a partir de este momento se representarn en el cuadrado .
Para dejar a MATLAB elegir los inter$alos de nue$o basta escribir a*,! sin argumentos.
-bser$emos estos 5ec5os con el siguiente ejemplo.
x=linspa!"(0#2$pi#40);
plot(x#sin(x))
axis([0 2$pi -1 1])
plot(x#sin(x))
axis([0 1 0 5])
plot(x#sin(x))
axis
plot(x#sin(x))
E/<c,c,o) )ibuja la gr!ica de la tangente en y aWdele una malla. Puede ser 7ue
debido a las discontinuidades in!initas 7ue aparecen no se pueda apreciar bien la gr!ica.
#tiliza a*,! para cambiar el rango del dibujo al rectngulo y poder
obser$ar mejor la cur$a.
E/<c,c,o) #tiliza la ayuda para $er otras opciones de a*,!. )ibuja un c%rculo 7ue no parezca
ac5atado.
NOTA) 0egn la $ersi"n de MATLAB 7ue se utilice puede ser 7ue sea necesario cambiar el
orden de las instrucciones 01oM y a*,! as% como las 7ue $amos a describir a continuaci"n para
7ue estas segundas tengan e!ecto. &s como ya sabemos una buena costumbre consultar la
ayuda de cada instrucci"n para cada uno de los pormenores relati$os a su uso.
Para terminar con las !unciones de edici"n de dibujos $amos a considerar a7uellas 7ue
permiten aWadir te'to a los mismos<
M,M1 T%tulo del gr!ico.
*1a-1
&ti7ueta del eje .
A1a-1
&ti7ueta del eje .
M*M Te'to colocado mediante coordenadas.
?M*M Te'to colocado con el rat"n.
Por ejemplo $amos a dibujar las gr!icas de las !unciones seno y coseno y aWadiremos te'to
con todas las instrucciones anteriores.
x=linspa!"(0#2$pi#3,);
axis([0 2$pi -1 1])
plot(x#sin(x)#x#!os(x))
titl"('-"no y !os"no')
xlab"l('.oord"nada x')
ylab"l('.oord"nada y')
t"xt(pi#0%2#'s"n(x)')
t"xt('!os(x)')
Para colocar el te'to con ?M*M saldr un puntero en pantalla 7ue lle$aremos con el rat"n al
sitio donde deseemos colocarlo y pulsaremos el bot"n iz7uierdo.
NOTA) Al igual 7ue ?<,d para 7ue dic5as instrucciones tengan e!ecto sobre el dibujo
considerado en la $ersi"n de MATLAB para estudiantes !uncionando bajo ,indoGs 5an de
ser escritas en la misma l%nea. &l ejemplo anterior se tendr%a 7ue escribir
x=linspa!"(0#2$pi#3,);
axis([0 2$pi -1 1])
plot(x#sin(x)#x#!os(x));%%%
titl"('-"no y !os"no');%%%
xlab"l('.oord"nada x');%%%
ylab"l('.oord"nada y');%%%
t"xt(pi#0%2#'s"n(x)');%%%
t"xt('!os(x)')
E/<c,c,o) .epresenta la !unci"n e'ponencial en . Titula dic5o dibujo y aWade una
malla rectangular. *oloca con el rat"n la e'presi"n A>*0H*I cerca de la cur$a.
E/<c,c,o) )ibuja la cur$a dada en polares por la ecuaci"n con en
color azul aWadiendo una malla polar y poniendo las cadenas Y*Y e YAY en sus ejes respecti$os.
E/<c,c,o) .epresenta el $ector de datos como un diagrama de barras.
.epresenta la !igura en el rectngulo y coloca usando el rat"n los $alores
correspondientes a cada barra.
"<WN,co! M<,d,mn!,ona1! A d conMo<no.
&n MATLAB las instrucciones 7ue sir$en para representar gr!icos tridimensionales son
m!+ y conMou<. La e'presi"n m!+H2I donde 2 es una matriz representa los puntos de
coordenadas H,J/J2H,J/II.
E/<c,c,o) -bser$a las gr!icas 7ue se obtienen al teclear las siguientes "rdenes.
/=on"s(10);
m"s1(/)
Y="y"(14);
m"s1(Y)
2=rand(*);
m"s1(2)
La e'presi"n conMou<H2I donde 2 es una matriz representa un mapa de contorno cuyas
cur$as de ni$el corresponden a las de la super!icie 7ue se obtendr%a con m!+H2I. MATLAB
elige los $alores de las alturas 7ue $a representar asignando a cada cur$a un color siempre
7ue no especi!i7uemos nada al respecto. AWadiendo un segundo parmetro de entrada 7ue sea
un $ector se obtienen las cur$as de ni$el correspondientes a las alturas determinadas por las
componentes de dic5o $ector. 0i el segundo argumento es un nmero entonces MATLAB
representa tantas cur$as de ni$el como dic5o nmero indi7ue.
E/<c,c,o) )ibuja los mapas de contorno correspondientes a las tres super!icies anteriores.
E/<c,c,o) -btn el mapa de contorno de la matriz 2><andHP\I con las cur$as de ni$el
correspondientes a las alturas dadas por el $ector .
E/<c,c,o) .epresenta cuarenta y tres cur$as de ni$el de la matriz 2>ma?,cHP\I.
E/<c,c,o) *onsulta la ayuda de conMou<. E0e puede cambiar el estilo y el color de las cur$asb
E/<c,c,o) La instrucci"n c1a-1 sir$e para eti7uetar las cur$as de ni$el. *onsulta la ayuda de
dic5a instrucci"n para eti7uetar el mapa de contorno anterior.
&l procedimiento bsico 7ue 5ay 7ue seguir para representar !unciones reales de dos $ariables
en MATLAB es similar al utilizado con !unciones de una nica $ariable. Primero 5ay 7ue
de!inir un mallado del recinto donde se mue$en las $ariables. )espus 5ay 7ue e$aluar la
!unci"n en cada uno de los puntos del mallado y para terminar 5ay 7ue representar esos
$alores.
Para de!inir el mallado 5ay dos !ormas y la ms c"moda de ellas es usar la instrucci"n
m!+dom. )ic5a instrucci"n posee dos argumentos de entrada 7ue se corresponden con dos
$ectores 7ue representan las particiones de los inter$alos de de!inici"n de las $ariables y dos
de salida 7ue son dos matrices con los $alores necesarios para la posterior e$aluaci"n de la
!unci"n.
Por ejemplo si 7ueremos dibujar la gr!ica de cierta !unci"n de dos $ariables de!inida en el
rectngulo con una malla uni!orme de puntos 5emos de utilizar la
orden
[/#Y]=m"s1dom(linspa!"(0#1#5)#linspa!"(-2#2#,));
&l resultado de ejecutar esta instrucci"n son dos matrices & e V cuya estructura es muy
particular. La primera de ellas & tiene siete !ilas repetidas en las 7ue se encuentran los cinco
puntos de la partici"n del inter$alo . )el mismo modo la matriz V tiene cinco
columnas repetidas !ormadas por los siete puntos de la partici"n de .
/
/=

0 0%2500 0%5000 0%,500 1%0000
0 0%2500 0%5000 0%,500 1%0000
0 0%2500 0%5000 0%,500 1%0000
0 0%2500 0%5000 0%,500 1%0000
0 0%2500 0%5000 0%,500 1%0000
0 0%2500 0%5000 0%,500 1%0000
0 0%2500 0%5000 0%,500 1%0000
Y
Y=

2%0000 2%0000 2%0000 2%0000 2%0000
1%3333 1%3333 1%3333 1%3333 1%3333
0%6,,, 0%6,,, 0%6,,, 0%6,,, 0%6,,,
0 0 0 0 0
-0%6,,, -0%6,,, -0%6,,, -0%6,,, -0%6,,,
-1%3333 -1%3333 -1%3333 -1%3333 -1%3333
-2%0000 -2%0000 -2%0000 -2%0000 -2%0000
-tra !orma de llegar a estas matrices sin la orden m!+dom es la 7ue se puede $er en este
ejemplo.
x=linspa!"(0#1#5);y=linspa!"(-2#2#,);
/=on"s(y)$x;
Y=y$on"s(x);
E*"mo e$ala MATLAB una !unci"n de dos $ariables utilizando estas dos matricesb La idea
es sencilla< el $alor de la !unci"n en el punto de la malla no es ms 7ue el $alor de
dic5a !unci"n utilizando como $ariables las componentes de cada matriz. Por ejemplo
la !unci"n en el rectngulo se e$aluar%a utilizando las
matrices anteriores mediante la e'presi"n
2="xp(/%$Y)
La matriz 2 7ue se de!ine de esta !orma contiene los $alores de la !unci"n 7ue $amos a
representar y ella $a a ser el argumento principal de las instrucciones gr!icas antes
comentadas. Ms concretamente si 7ueremos dibujar la gr!ica de la !unci"n del ejemplo
basta escribir la e'presi"n
m"s1(2)
E/<c,c,o) &scribiendo conMou<H2I analiza las cur$as de ni$el de la !unci"n del ejemplo.
E/<c,c,o) .epresenta gr!icamente las !unciones siguientes en los recintos indicados.
D. en .
;. en .
E/<c,c,o) -bser$a las cur$as de ni$el de las !unciones anteriores.
E/<c,c,o) *onsulta la ayuda de m!+ para $er c"mo se cambia el punto de $ista y la escala
relati$a de los ejes. .epresenta alguna de las !unciones anteriores doblando el tamaWo del eje
.
E/<c,c,o) *onsultar en la ayuda la e'istencia de otras instrucciones de dibujo
tridimensionales y de contorno as% como las posibles opciones de ellas 7ue no 5emos
comentado en esta secci"n.
&6&.*1*1-0 A )&0A..-LLA.
&dgar .amos .amirez
1. Curvas en el espacio
Ejemplo 1 Dibujar la curva
Generamos los valores de t:
>>t=linspace(0,4pi,!00"#
$ a%ora podemos utili&ar dos comandos, plot' (ue nos da el dibujo completo:
>>plot'(sin(t",cos(t",t"
) bien, comet' (ue *unciona de manera an+lo,a.
>>comet'(sin(t",cos(t",t"
-ara dibujar al,unos vectores velocidad sobre la curva %a. (ue utili&ar el comando
(uiver'(vector posicion, vectorvelocidad".
/ambi0n conviene volver a ,enerar los valores de t de manera (ue no sean demasiados
para (ue se pueda apreciar mejor la ,ra1ca:
>>t=linspace(0,4pi,20"#
>>(uiver'(sin(t",cos(t",t,cos(t",3sin(t",1"
Ejercicio
a" t=linspace(34,',100" #
plot'(2.(cos(t"".4',2.(sin(t"".4',t"
b" t=linspace(3pi,pi,100" #
plot'(cos(t",2.(cos(t"".42,154.sin(t""
c" t=linspace(312,16,200" #
plot'(t57.cos(t",t57.sin(t",t5'7)
d" t=linspace(310,4.8,200" #
plot'( e9p(154".sin(2.t",e9p(154".cos(2.t",t54"
e" t=linspace(36,10,200" #
plot'(sin(2.t":sin(t",3cos(2t"3cos(t",t57"
*" t=linspace(3pi,pi,200" #
plot'(cos('.t",2.(cos(t"".42,sin(2.t""
2. Gra1ca de *unciones & = *(9# ."
Generamos el mallado
>>;9,.<=mes%,rid(32:.2:2,3':.2:'"#
=ustituimos en la *unci>n para calcular los valores de &:
>>&=e9p(39.423..42"#
>>plot'(9,.,&"
>>mes%(9,.,&"
>>sur*(9,.,&"
>>sur*(9,.,&",s%adin, ?at @e*ecto de sombreado distinto
-ara conse,uir e*ectos de sombreados . colores di*erentes se pueden consultar todas las
posibilidades de los
comandos colormap . s%adin,.
Al,o (ue resulta tambi0n interesante es aBadir una escala de colores al dibujo
(ue nos permite conocer las alturas (coordenada &" de los di*erentes puntos de la ,ra1ca#
esto se consi,ue con el comando colorbar (despu0s de dibujada la ,ra1ca".
Ejemplo 2
Dibujando al,unas curvas de nivel.
Creamos el mallado:
>>;9,.<=mes%,rid(32:.1:2"#
=ustituCmos en la *unci>n, para calcular los valores de &:
>>&=9.42:..42#
A%ora podemos dibujar la ,r+1ca utili&ando al,una de los comandos descritos en el punto
relativo a los comandos.
Das curvas de nivel se pueden %acer utili&ando al,uno de los comandos si,uientes:
>>contour(9,.,&,10" @ dibuja 10 curvas de nivel
>>contour'(9,.,&,10" @ lo mismo, pero en el espacio
>>pcolor(9,.,&",colorbar
Esta orden dibuja un mapa de colores por niveles, la orden colorbar %ace aparecer una
escala de valores se,En el color, es decir, nos indica el valor de la variable &.
=i se usa el comando contour, despues se pueden eti(uetar las curvas con los valores
correspondientes de la &.
-ara %acer esto:
-rimero dibujamos las curvas de nivel con:
>>contour(9,.,&,10"
Despu0s ,uardamos la in*ormaci>n en una variable, por ejemplo,
>>cs=contour(9,.,&,'0"#
A continuaci>n tenemos dos opciones:
>>clabel(cs" @ eti(ueta al,unas aleatoriamente
) bien:
>>clabel(cs,FmanualF" @ las ele,imos con el rat>n en la pantalla ,ra1ca.
-or otra parte, el comando >>mes%c(9,.,&", dibuja la ,ra1ca . por debajo las curvas de
nivel (al,unas veces ser+ necesario modiGcar los ejes para (ue la ,ra1ca de la *unci>n no
tape a las curvas de nivel".
Ejercicios
a" ;9,.<=mes%,rid(32:1:2,3':1:'"#
&= 1.5(6:9.42:..42"#
mes%(9,.,&"
b" ;9,.<=mes%,rid(32:1:2,3':1:'"#
&=3(abs (9.."".4152#
mes%(9,.,&"
c" ;9,.<=mes%,rid(32:1:2,3':1:'"#
&=cos((9.42:..42".54".5(':9.42:..42"#
mes%(9,.,&"
d" ;9,.<=mes%,rid(32:1:2,3':1:'"#
&=..42.5!3'.abs(9"#
mes%(9,.,&"
e" ;9,.<=mes%,rid(32:1:2,3':1:'"#
&=e9p(3(9.42:..42""#
mes%(9,.,&"

'. Al,unas super1cies
Ejercicio 4
El comando >>c.linder(H,I", ,enera autom+ticamente un cilindro de radio H, donde I
es el numero de puntos de la circun*erencia de la base del cilindro.
3Dibujar el cilindro de radio 1, con I='0.
Este comando tambi0n admite radios variables H(t", con t 2 ;a# b<.
c.linder(;31 1<,'0"
c.linder(;31 1<.42,'0"
c.linder(2:sin(;32.pi, 2.pi<,'0"
c.linder(e9p(;3' '<",'0"

Potrebbero piacerti anche