Você está na página 1de 48

ITAM

Una Descripci n de MatLab o


Mauricio Garc
a Esteban Versi n 1 o enero de 1998

 ITAM

Instituto Tecnol gico Aut nomo de M xico, Centro de C mputo o o e o

ITAM

Contenido

1 Introducci n. o

1.1 Objetivo : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.2 iniciando MATLAB. : : : : : : : : : : : : : : : : : : : : : : : 1.3 Declaraciones. : : : : : : : : : : : : : : : : : : : : : : : : : : : Declaraci n. : : : : : : : : : : : : : : o Formato de visualizaci n. : : : : : : o Suprimir la visualizaci n a la salida. o Largas lineas de comando : : : : : : Salvar y cargar la hoja de trabajo. : Especi cando el formato. : : : : : :

4 8 9

2 Vectores y matrices
2.1 2.2 2.3 2.4 2.5 2.6 3.1 3.2 3.3 3.4 3.5 3.6

: : : : : :

: : : : : :

: : : : : :

: : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

: : : : : : : : : : : : : : : : :

10
11 12 13 13 14 14

3 Operaciones con Matrices

Producto de vectores y transpuesta : : : : : Multiplicaci n de matrices : : : : : : : : : : o Potencias y exponenciales con Matrices. : : Norma de vectores y Matrices : : : : : : : : Funciones para la construcci n de matrices. o Operaciones a coordenadas. : : : : : : : : :

18
20 21 22 23 24 25 26 27 28 29 30

4 Sentencias de control For, while, if | y relaciones


4.1 4.2 4.3 4.4 4.5 for : : : : : : : : : : : : while : : : : : : : : : : : If : : : : : : : : : : : : : Relaciones : : : : : : : : While e if con matrices.

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

: : : : :

26

5 Funciones

5.1 Funciones escalares : : : : : : : : : : : : : : : : : : : : : : : : 31 5.2 Funciones vectoriales : : : : : : : : : : : : : : : : : : : : : : : 32 5.3 Funciones matriciales : : : : : : : : : : : : : : : : : : : : : : : 33

31

6 Submatrices y notaci n de dos puntos o 7 Archivos .m

7.1 Archivos de instrucciones. : : : : : : : : : : : : : : : : : : : : 36 7.2 Archivos de funciones. : : : : : : : : : : : : : : : : : : : : : : 37

34 36 41 42

8 Cadenas de texto, mensajes de error, input 9 Tratamiento de archivos .m

ITAM

10 E ciencia de algoritmos: ops y etime 11 Gr cos a

11.1 Gr cos planos : : : : : : : : : : : : : : : : : : : : : : : : : : 45 a 11.2 Gr cos de malla de super cies tridimensionales. : : : : : : : 48 a

43 45

ITAM

' &

MATLAB 5.1

$
4

De nici n de MATLAB versi n 5.1 o o


Slide 1
MATLAB, es un laboratorio interactivo de Matrices. Aplicaci n a C lculos cient cos e Ingenier a. o a

Resuelve problemas n mericos complejos sin escribir un u programa en realidad. MATLAB, es una abreviatura para MATrix LABoratory.

1 Introducci n. o
MATLAB es un sistema interactivo basado en matrices para c lculos a cient cos y de ingenier a. Se pueden resolver problemas num ricos rela

e tivamente complejos sin escribir un programa en realidad. El nombre de MATLAB es una abreviatura para MATrix LABoratory.

1.1 Objetivo

El prop sito de estas notas es ayudar en la iniciaci n a MATLAB. La o o mejor forma de utilizarlas es poner manos a la obra. Se aconseja leer las notas, realizar sus anotaciones y ha trabajar con la computadora realizando los ejercicios planteados.

Lo que se necesita saber de MatLab

Centro de C mputo. o

ITAM

' &

MATLAB 5.1

Iniciando MATLAB

$ 

Slide 2

Instrucci n Help o Instrucci n Help general o Instrucci n Help path o Instrucci n lookfor o Instrucci n demo o

Despu s de entrar en MATLAB en la forma que se explica en la secci n e o ??, se puede utilizar la ayuda de la instrucci n help, para solicitar inforo maci n. la instrucci n help mostrar una lista de modulos, para las que o o a se puede obtener ayuda mientras se est trabajando; la instrucci n help a o nombre del modulo nos dar informaci n sobre las funciones espec cas, de a o
ese modulo. As , la instrucci n help general, nos dar informaci n sobre
o a o las funciones del modulo general. Especi camente podemos solicitar informaci n, de una funci n, por ejemplo help eig que calcula los autovalores de o o una matriz. Se pueden ver algunas de las capacidades de MATLAB usando la instrucci n demo. o Actualmente el ITAM tiene MatLab 5.1, para el trabajo mediante la red, con los siguientes modulos: Neuronal Network, Control Systems, System Identi cation, Signal Procesing, Nag Foundation, Wavelet, Simulink, Communications, DSP Blockset, Image Processing, y una licencia para Statistics, Optimization, Financial. El alcance y la potencia de MATLAB van m s all de lo que podemos a a ver en estas notas. En alg n momento puede desear una informaci n m s u o a detallada. Es el momento de consultar la gu a del usuario y la de referencia.

Lo que se necesita saber de MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

Slide 3

&

matlab general - General purpose commands. matlab ops - Operators and special characters. matlab lang - Programming language constructs. matlab elmat - Elementary matrices and matrix manipulation. matlab elfun - Elementary math functions. matlab specfun - Specialized math functions. matlab matfun - Matrix functions - numerical linear algebra. matlab datafun - Data analysis and Fourier transforms. matlab polyfun - Interpolation and polynomials. matlab funfun - Function functions and ODE solvers. matlab sparfun - Sparse matrices. matlab graph2d - Two dimensional graphs. matlab graph3d - Three dimensional graphs. matlab specgraph - Specialized graphs. matlab graphics - Handle Graphics. matlab uitools - Graphical user interface tools. matlab strfun - Character strings. matlab iofun - File input output. matlab timefun - Time and dates. matlab datatypes - Data types and structures. matlab dde - Dynamic data exchange DDE. matlab demos - Examples and demonstrations. comm comm - Communications Toolbox comm commsfun - Communications Toolbox SIMULINK S-functions. comm commsim - Communications Toolbox SIMULINK les. wavelet wavelet - Wavelet Toolbox. wavelet wavedemo - Wavelet Toolbox Demos. nag nag - NAG Foundation Toolbox - Numerical & Statistical Library nag examples - NAG Foundation Toolbox - Numerical & Statistical Library dspblks dspblks - DSP Blockset. dspblks dspmex - No table of contents le dspblks dspdemos - No table of contents le images images - Image Processing Toolbox. images imdemos - Image Processing Toolbox | demos and sample images nnet nnet - Neural Network Toolbox. nnet nndemos - Neural Network Demonstrations and Applications. toolbox signal - Signal Processing Toolbox. toolbox ident - System Identi cation Toolbox. toolbox control - Control System Toolbox. control obsolete - No table of contents le simulink simulink - Simulink simulink blocks - Simulink block library. simulink simdemos - Simulink demonstrations and samples. simulink dee - Di erential Equation Editor toolbox local - Preferences.

$
6

Lo que se necesita saber de MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

Temario

Slide 4

&

Acceso a MATLAB Introducci n de matrices o Operaciones con matrices, operaciones a coordenadas Declaraciones, expresiones, variables; almacenamiento de sesiones Funciones para la construcci n de matrices o For, while, if | y relaciones Funciones escalares Funciones vectoriales Funciones matriciales Comandos de edici n de l nea y rellamada o
Submatrices y notaci n de dos puntos o Archivos .m Cadenas de texto, mensajes de error, input Tratamiento de archivos .m Comparaci n de la e ciencia de algoritmos: ops y o etime Formato de salida Hardcopy Gr cos a Consulta

Temario MatLab

Centro de C mputo. o

ITAM

' &

MATLAB 5.1

$
8

Slide 5

Iniciando MATLAB
c:nmatlabnbinnmatlab.exe quit

1.2 iniciando MATLAB.

Despu s de entrar a la mayor a de los sistemas, para acceder a MATLAB e


basta utilizar la instrucci n matlab y para salir, la instrucci n exit o quit. o o Por ejemplo si estamos en un PC, salvo que tengamos el programa en un directorio aparte, basta con escribir
C: matlab bin matlab.exe

Podemos salir de l con la instrucci n: e o


quit

Acceso a MatLab

Centro de C mputo. o

ITAM

'
variable
=

MATLAB 5.1

$
9

expresi n, o

o simplemente valor

Slide 6

MATLAB distingue las letras may sculas de las min sculas en los nomu u bres de instrucciones, funciones y variables. As , resolvente no es lo mismo
que ReSoLvEnTe. La instrucci n who muestra las variables que se encuentran en el espacio o de trabajo. Para eliminar una variable de la memoria se utiliza la instrucci n o o clear nombre variable. Si se escribe s lo clear se borran todas las variables no permanentes. La variable permanente eps  psilon da la precisi n de la m quina| e o a ,16 en la mayor a de ellas. Es util para determinar la tolealrededor de 10
rancia en procesos iterativos. Cualquier tipo de c lculo, gr co, o impresi n puede detenerse sin salir a a o del programa con CTRL-C CTRL-BREAK en PC.

1.3 Declaraciones.

&

Las expresiones se componen, normalmente, a partir de operadores, funciones y nombres de variables. La evaluaci n de o una expresi n produce una matriz, que se muestra en pantalla, o y se asigna a la variable para su posterior uso. Si se omiten la variable y el signo =, se crea una variable llamada ans por answer a la que se asigna el resultado de la expresi n. o instrucci n who o instrucci n clear o

Acceso a MatLab

Centro de C mputo. o

ITAM

'
help matfun

MATLAB 5.1

10

$ 

Matrices en MATLAB
Slide 7
Formas de Introducir una matriz en MATLAB Introduciendo una lista expl cita de elementos,
Gener ndola mediante funciones y declaraciones, ver la a secci n 3.5 o Cre ndola en un archivo .m ver la secci n 7.1, a o Carg ndola de un archivo de datos externo a

2 Vectores y matrices

&

MATLAB trabaja esencialmente con un solo tipo de objetos: una matriz num rica rectangular o arreglos multidimensionales, con entradas posiblee mente complejas; todas las variables representan matrices. A veces, las matrices 1  1 se consideran escalares, y las matrices con una sola la o columna se consideran como vectores. Hay varias formas diferentes para introducir una matriz en MATLAB. A saber: Introduciendo una lista expl cita de elementos,
Gener ndola mediante funciones y declaraciones, a Cre ndola en un archivo .m ver secci n 7.1, a o Carg ndola de un archivo de datos externo a

Matrices en MatLab

Centro de C mputo. o

ITAM

'
A =

MATLAB 5.1

11

Matrices en MATLAB
1 2 3; 4 5 6; 7 8 9

$ 

Por ejemplo, cualquiera de las declaraciones

Slide 8

y
A = 1 4 7 2 5 8 3 6 9

2.1 Declaraci n. o

&

crea la matriz 3  3 que se espera y la asigna a una variable A. Int ntelo. Los elementos en una la de una matriz pueden e separarse tanto por comas como por espacios en blanco.

Cuando alguno de los n meros se escribe en forma exponencial por u ejemplo 2.34e-9, deben evitarse los espacios en blanco. La escritura de una matriz grande debe hacerse preferentemente en un archivo .m, donde es m s a sencillo corregir errores ver secci n 7.1. o

Matrices en MatLab

Centro de C mputo. o

ITAM

'
x= 4 3 1.234e-6 x = 1.3333 x 0.0000 format long e

MATLAB 5.1

12

$ 

Matrices en MATLAB
Slide 9

2.2 Formato de visualizaci n. o

&
x =

1.333333333333333e+000

1.234000000000000e-006

El commando format controla el formato num rico de los valores dese plegados sobre el monitor. El comando, tan s lo afecta el desplegado en el o monitor, y no en los c lculos efectuados por MATLAB. a short long bank short e long e rat short g long g hex

Matrices en MatLab

Centro de C mputo. o

ITAM

'
A=magic100; s =

MATLAB 5.1

13

$ 

Matrices en MATLAB
Slide 10
s=1-1 2+1 3-1 4+1 5-1 6+1 7 ... -1 8+1 9-1 10+1 11-1 12

Si se teclea la declaraci n y presionar la tecla "enter", MATLAB auo tom ticamente despliega los resultados sobre la pantalla. Sin embargo, si se a termina la linea con punto y coma, no desplegar , los c lcaulos intermedios a a ni el resultado nal. Esto es particularmente util cuando se generan enormes c lculos y se desea optimar el tiempo de proceso. a

2.3 Suprimir la visualizaci n a la salida. o

&

6.532106782106782e-001

2.4 Largas lineas de comando

Si la declaraci n es demasiado larga y no es su ciente la l nea de coo


mandos, utilice tres puntos consecutivos, seguido por la tecla "enter", para indicar que se continuar con la declaraci n en la siguiente l nea. a o

Matrices en MatLab

Centro de C mputo. o

ITAM

'
save june10 save june10 x y z load june10 load filename -mat save filename x* load filename ex1*95

MATLAB 5.1

14

$ 

Hoja de trabajo en MATLAB


Slide 11

2.5 Salvar y cargar la hoja de trabajo.

&

MATLAB tiene los comandos save y load, quienes permiten salvar los contenidos de la hoja de trabajo de MATLAB, en cualquier momento durante la sesi n, y retomar los datos en MATLAB, durante la misma sesi n o alguna o o otra m s tarde. a

2.6 Especi cando el formato.


-mat, formato en forma binaria, default. -ascii, formato en c digo ASCII de 8 o digitos. -ascii -double, c digo ASCII de 16 o digitos.

Se puede controlar el salvar los datos en diferentes tipos de formato:

-ascii -double -tabs, delimitar los elementos del arreglo mediante tabs -v4, salvar en la versi n 4 de MATo LAB -append, datos para archivos Mat

Matrices en MatLab

Centro de C mputo. o

'
Slide 12

ITAM

MATLAB 5.1

15

Funciones de Algebra Lineal. directorio matfun. norm Norma de la matriz normest Estima la norma-2 de la matriz rank rango de la matriz det determinante de la matriz trace suma de los elementos diagonales null espacio nulo orth Ortogonalizaci n. o rref reduce a la forma de renglon echelon subspace a ngulo etre dos subespacios Ecuaciones Lineales n y soluci n de la ecuaci n lineal o o inv inversa de la matriz con n mero de condici n para inversi n u o o condest 1-norma estimado chol factorizaci n Cholesky o cholinc factorizaci n incompleta Cholesky o lu factorizaci n LU o luinc factorizaci n LU, incompleta o qr descomposici n Ortogonal-triangular o nnls minimos cuadrados nonegativo pinv seudoinversa lscov minimos cuadrados con covariancia

categoria
An lisis a

Funci n o

Descripci n o

&

Matrices en MatLab

Centro de C mputo. o

'
Valores Propios y valores propios

ITAM

MATLAB 5.1

16

Funciones de Algebra Lineal, Continuaci n. directorio matfun. o

categoria

Funci n o
eig svd eigs svds poly polyeig condeig hess qz schur expm logm sqrtm funm

Slide 13

Funciones de Matriz

valores propios y valores propios descomposici n por valor singular o algunos valores propios algunos valores singulares polinomio caracter stico
problema de v.p en polinomios n mero de condici n para v.p. u o forma Hessenberg factorizaci n QZ o descomposici n de Schur o matriz exponencial matriz logaritmica ra z cuadrada de la matriz
evaluaci n general en matriz o

Descripci n o

&
Matrices en MatLab Centro de C mputo. o

ITAM

'
A = B = C =

MATLAB 5.1
A2,3=2 A = 1 3 6 1 1 1 1 2 3 1 2 6

17

A=pascal3 1 1 1 1 2 3

$ 

B=magic3

Slide 14

A2,3=3; 6 7 2 u= 3;1;4 u = 3 1 4 v= 2 0 -1 v = 2 s=7; 0 -1

8 3 4

1 5 9

Las funciones internas rand, magic, y hilb, por ejemplo, proporcionan una forma sencilla para crear matrices con las que experimentar. La instrucci n randn, resp. randm,n, crear una matriz n  n, resp. m  n, o a con entradas aleatoriamente generadas, distribuidas uniformemente entre 0 y 1. magicn crear una matriz cuadrada m gica las las y las columnas a a suman la misma cantidad con entradas enteras; hilbn crear la matriz a de Hilbert de orden n, la reina de las matrices mal condicionadas. m y n, por supuesto, denotan enteros positivos. Tambi n se pueden crear matrices e utilizando bucles for. Int ntelo. e Las entradas individuales de una matriz o de un vector se pueden obtener poniendo los ndices entre par ntesis de la forma usual. Por ejemplo, A2; 3
e denota la entrada en la segunda la y tercera columna de la matriz A y x3 denota la tercera coordenada del vector x. Int ntelo. S lo se pueden usar e o como ndices de vectores y de matrices enteros positivos.

&

C=fix10*rand3,2 9 2 6 4 8 7

Matrices en MatLab

Centro de C mputo. o

ITAM

'
+ ^
0

MATLAB 5.1

18

Operaciones
X=A+B X =

$ 

Slide 15

,  n

3 Operaciones con Matrices

&

adici n o sustracci n o multiplicaci n o potenciaci n o traspuesta divisi n izquierda o divisi n derecha o

9 4 5 Y=X-A Y = 8 3 4 x=v*u;

2 7 12

7 10 8

1 5 9

6 7 2

Estas operaciones para matrices se aplican tambi n a escalares matrices e 11. Si los tama~os de las matrices son incompatibles para la operaci n n o matricial se obtiene un mensaje de error, exceptuando el caso en que uno de los operandos sea un escalar y el otro una matriz para la adici n, sustracci n, o o divisi n y multiplicaci n. En esta situaci n se opera el escalar con cada o o o t rmino de la matriz. e

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

19

$ 

Slide 16

divisi n. o
x = Anb es la soluci n de A  x = b y, resp., o x = b=A es la soluci n de x  A = b. o

La divisi n matricial" merece un comentario especial. Si A es una matriz o invertible y b es una columna, resp. la, compatible, entonces x = Anb es la soluci n de A  x = b y, resp., o x = b=A es la soluci n de x  A = b. o En la divisi n izquierda, si A es cuadrada, se factoriza utilizando elimio naci n gaussiana. Con los factores se resuelve A  x = b. Si la matriz A no o es cuadrada, se factoriza utilizando la ortogonalizaci n de Householder con o pivoteo de columnas. Con los factores se resuelve el sistema indeterminado o sobredeterminado en el sentido de los m nimos cuadrados. La divisi n
o 0 nb0 0 . derecha se de ne a partir de la izquierda por b=A = A

&

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'
x=v*u x = 2 X=u*v X = 6 2 8 X=B' X = 0 0 0 -3 -1 -4 8 1 6 3 5 7 4 9 2

MATLAB 5.1

20

$ 

z= 1+2i 3+4i z = 1 + 2i z' ans = 1 - 2i 3 - 4i z.' ans = 1 + 2i 3 + 4i 3 + 4i

Slide 17

Un vector rengl n y un vector columna de la misma longitud pueden ser o multiplicados en cualquier orden. Para matrices reales, la operaci n transpuesta intercambia aij y aji , o MATLAB utiliza el ap strofe  o acento simple para denotar la transpuesta. o Realice X = B0 , y X = A0 , se dar cuenta que la transpuesta de A, es la a matriz A, esto se debe a que se trata de una matriz sim trica, y sin embargo e B 6= B0 Para un vector o matriz con complejos, la cantidad z0 denota la transpuesta conjugada compleja. La transpuesta no conjugada compleja es denotada por z:0 , en analog a con las operaciones con arreglos.

3.1 Producto de vectores y transpuesta

&

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'
X=A*B X = 15 15 38 70 15 26 39 26 41 Y=B*A Y = 15 28 34 28 47 60 43 15 15

MATLAB 5.1

21

$ 

for i=1:m for j=1:n Ci,j=Ai,:*B:,j; end end

Slide 18

3.2 Multiplicaci n de matrices o

&

MATLAB, denota con el asterisco la operaci n de multiplicaci n. La o o matriz producto C = BA, es de nida cuando la dimensi n de la columna de o A es igual a la dimensi n del rengl n de B, o cuando uno de ellos es escalar. o o Si A es una mariz m por n y B es una matriz p por n, su producto C, es m por n. El producto puede ser de nido en MATLAB usando loops, notaci n o de dos puntos, y producto punto de vectores.

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'
A= 0 -6 -1 ; ... 6 2 -16; -5 20 -10 A = 0 -6 2 20 -1 -16 -10 6 -5 X=A^2 X = -31 -32 -352 -130 106 122 -215 92 170 A=sqrtmX;

MATLAB 5.1

22

$ 

for t=0:0.01:1 X= X expmt*A*x0 ; end plot3X1,:,X2,:,... X3,:,'-o'

Slide 19

La matriz A debe ser cuadrada para realizar la potenciaci n. Si A es o no singular el exponente puede ser negativo. Se permite que el exponente sea una fracci n cumpliendo la condici n de existencia de la inversa de A, o o invA. El ejemplo paralelo de ne el c lculo de la soluci n xt, para la ecuaci n a o o tA x0 en 101 puntos sobre el intervalo 0  t  1, diferencial xt = exp y se visualiza en el plano de fase tridimensional. El objetivo es utilizar la instrucci n matriz exponencial expm o

3.3 Potencias y exponenciales con Matrices.

&

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'
normv,inf ans = 3.0 2.2361 2.0

MATLAB 5.1

23

$ 

Norma
Slide 20
normv,1 normv,2... normC,1 normC,2... normC,inf ans = 19.0 14.8015 13.00

3.4 Norma de vectores y Matrices


La norma del vector x, se de ne como:

&

jjxjjp =

1
X p xp i

y en MATLAB se calcula mediante la instrucci n normx,p, donde p 1 o necesariamente, sin embargo lo m s com n es p = 1; 2 y 1. El valor por a u default es p = 2, lo cual corresponde a la distancia euclidiana La norma-p de una matriz A es:

jjAjjp = max jjA xjjp =jjxjjp x

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'
Funci n. o
eye zeros ones diag triu tril rand hilb magic toeplitz

MATLAB 5.1

24

Construcci n de Matrices. o
Descripci n. o
matriz identidad matriz de ceros matriz de unos ver m s adelante a parte triangular superior de una matriz parte triangular inferior de una matriz matriz generada aleatoriamente matriz de Hilbert matriz m gica a ver help toeplitz

$ 

Las siguientes funciones est n disponibles en MATLAB: a

Slide 21

3.5 Funciones para la construcci n de matrices. o

&

Por ejemplo, zerosm,n produce una matriz nula m  n, y zerosn produce otra cuadrada de orden n; si A es una matriz, entonces zerosA produce una matriz de ceros del mismo orden que A. Si x es un vector, diagx es la matriz diagonal con x en su diagonal; si A es una matriz cuadrada, diagA es un vector formado por la diagonal de A. Qu ser entonces diagdiagA? Int ntelo. e a e Las matrices se pueden construir por bloques. Por ejemplo, si A es 3  3, entonces
B = A, zeros3,2; zeros2,3, eye2

dar una cierta matriz 5  5. Int ntelo. a e

Operaciones con Matrices en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

25

$ 

operaciones a coordenadas.
Slide 22
Es importante observar que las operaciones, , b , n, y , pueden evaluarse por coordenadas, y en MATLAB es factible al ir precedidas de un punto. Por ejemplo, tanto 1; 2; 3; 4 :  1; 2; 3; 4 como 1; 2; 3; 4 :b 2 dar n a 1; 4; 9; 16 .

3.6 Operaciones a coordenadas.

&

Las operaciones de adici n y sustracci n operan intr nsecamente a cooro o


denadas pero no todas las operaciones matriciales: Son operaciones matriciales a coordenadas. MATLAB cuenta con esta posibilidad, y son particularmente utiles cuando se utilizan las herramientas gr cas. a

Operaciones con matrices en MatLab

Centro de C mputo. o

ITAM

'
Las instrucciones:
x =

MATLAB 5.1

26

for
; for i = 1:n, x= x,ib

$ 

, end

Slide 23

o
x = x = ; x,ib for i = 1:n end

&

dar n como resultado un vector, mientras que a x = ; for i = n:-1:1, x= x,ib 2 , end dar el mismo vector en orden inverso. a

Sentencias de control For, while, if | y relaciones

B sicamente, las instrucciones para el control de ujo de MATLAB opea ran como en la mayor parte de los lenguajes usuales.

4.1 for

Las instrucciones siguientes, en base al for, producir n e imprimir n en a a pantalla la matriz de Hilbert m  n.
for i = 1:m for j = 1:n Hi, j = 1 i+j-1; end end H

El punto y coma de la instrucci n interior suprime la impresi n no deo o seada de los resultados intermedios mientras que el ultimo H muestra el re sultado nal.
Control de ujo en MatLab

Centro de C mputo. o

ITAM

'
end

MATLAB 5.1

27

$ 

while.
Slide 24
La forma general de un bucle while es: while relaci n o instrucciones

Por ejemplo, dado un n mero a, las instrucciones siguientes calculan y u muestran el menor entero no negativo n tal que 2n  a:
n = 0; while 2b n a n = n + 1; end n

4.2 while

&

Las instrucciones se repetir n mientras la relaci n sea cierta. a o

Control de ujo en MatLab

Centro de C mputo. o

ITAM

'
end

MATLAB 5.1

28

$ 

if
Slide 25
La forma general de un bucle if simple es: if relaci n o instrucciones

4.3 If

&

Las instrucciones se ejecutar n s lo si la relaci n es cierta. a o o

if n 0 paridad = 0; elseif remn,2 == 0 paridad = 2; else paridad = 1; end

Tambi n son posibles las rami caciones m ltiples, como se ilustra con e u

Si s lo tenemos dos rami caciones podemos omitir, desde luego, la porci n o o correspondiente a elseif.

Control de ujo en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

29

relaciones

$ 

Slide 26

Los operadores relacionales en MATLAB son: menor que mayor que = menor o igual que = mayor o igual que == igual = no igual.

En el uso de las relaciones y operadores en MATLAB, recordemos lo siguiente: se usa =" en las asignaciones mientras que para las relaciones se usa ==". Cuando se aplican a escalares los operadores l gicos, una relaci n es o o realmente el escalar 1 o 0 dependiendo de si la relaci n es verdadera o o falsa: Pruebe con 3 5, 3 5, 3 == 5 y 3 == 3. Cuando se aplica a matrices del mismo orden, una relaci n entre ellas o da lugar a una matriz de ceros y unos, dando el valor de la relaci n o entre las correspondientes entradas. Pruebe con a = rand5, b = triua, a == b.

4.4 Relaciones

&

Las relaciones pueden conectarse o cuanti carse por los operadores l gicos o &

j 

y o no.

Control de ujo en MatLab

Centro de C mputo. o

ITAM

'
if A == B

MATLAB 5.1

30

Relaci n entre matrices. o

$ 

Si se quiere ejecutar algo, cuando las matrices A y B sean iguales, se puede escribir:
algo
end

Slide 27

Si se desea ejecutar la instrucci n algo cuando A y B son distintas: o


if anyanyA

algo

=

B

Cuando se utiliza una relaci n entre matrices en un bucle while o if, la o relaci n se entiende verdadera, si cada una de las entradas de la matriz de o relaci n es no nula. o En el ejemplo denotemos que no se puede recurrir a la obviedad, if A = B, algo, end ya que no har lo que deseamos. La instrucci n s lo se ejecutar si todas las a o o a entradas de A son distintas de las de B y se requieren dos anys ya que any es un operador vectorial. Las funciones any y all pueden utilizarse de forma creativa para reducir relaciones entre matrices a relaciones entre vectores y escalares. La instrucci n for permite usar cualquier matriz en vez de 1:n. Ver la o Gu a del usuario para los detalles de c mo esta posibilidad ampl a la potencia
o
de la instrucci n for. o

4.5 While e if con matrices.

&
end

end

o, m s simplemente, a
if A == B else

algo

Control de ujo en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

31

$ 

funciones escalares
Slide 28
Las funciones m s comunes entre estas son: a sin asin exp abs round cos acos lognatural sqrt floor tan atan remresto sign ceil

5 Funciones

&

5.1 Funciones escalares

Algunas funciones de MATLAB operan esencialmente sobre escalares, aunque lo hacen tambi n sobre matrices elemento a elemento. e

Funciones escalares en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

32

$ 

Funciones vectoriales
Slide 29
max sum median any min prod mean all sort std

&
5.2 Funciones vectoriales

Otras funciones de MATLAB operan fundamentalmente sobre vectores  la o columna, aunque tambi n pueden operar sobre matrices mn m  2 e haciendolo en este caso columna a columna, produciendo, por tanto, un vector la que contiene el resultado de su aplicaci n a cada columna. Para cono seguir que act en por las basta usar la traspuesta; por ejemplo, meanA''. u Veamos algunas de estas funciones: Por ejemplo, la entrada m xima de un matriz A se obtiene con maxmaxA a en vez de maxA. Int ntelo. e

Funciones vectoriales en MatLab

Centro de C mputo. o

ITAM

' &

MATLAB 5.1
autovalores y autovectores factorizaci n de Cholesky o descomposici n en valores singulares o inversa factorizaci n LU o factorizaci n QR o forma de Hessenberg descomposici n de Schur o forma escalonada reducida por las matriz exponencial matriz ra z cuadrada
polinomio caracter stico
determinante tama~o n norma 1, norma 2, norma de Frobenius, norma 1 n mero de condici n en la norma 2 u o rango

Slide 30

eig chol svd inv lu qr hess schur rref expm sqrtm poly det size norm cond rank

$
33

5.3 Funciones matriciales

Las funciones de MATLAB admiten argumentos de salida simples o m ltiples. Por ejemplo, y = eigA, o simplemente eigA genera un vector u columna conteniendo los autovalores de A mientras que U,D = eigA produce una matriz U cuyas columnas son los autovectores de A y una matriz diagonal D con los autovalores de A en su diagonal. Pruebe.

Funciones matriciales en MatLab

Centro de C mputo. o

ITAM

'
x = 0.0:0.1:2.0 '; y = sinx; x y

MATLAB 5.1

34

submatrices

$ 

Slide 31

La expresi n 1:5 que ya encontramos en los bucles for es o realmente un vector la: el 1 2 3 4 5 . Los n meros no tienen que ser enteros ni el incremento uno. Por u ejemplo, 0.2:0.2:1.2 da como resultado 0.2 0.4 0.6 0.8 1.0 1.2 , mientras que con 5:-1:1 se obtiene el vector 5 4 3 2 1 . Las siguientes instrucciones, por ejemplo, generar n una tabla a de senoides.

6 Submatrices y notaci n de dos puntos o

&

Hagamos notar que al operar sin a coordenadas, produce un vector y a partir de x.

Los vectores y submatrices son utilizados a menudo en MATLAB para conseguir efectos de manipulaci n bastante complejos. o La notaci n de dos puntos" que se utiliza para generar vectores y subo matrices, y la indexaci n por vectores, son las llaves para una manipulaci n o o e ciente de estos objetos. Su uso de forma creativa permite minimizar el n mero de bucles que ocasiona una ejecuci n lenta del programa hecho en u o MATLAB y hacen que las instrucciones sean m s simples y legibles. Debe a hacerse un esfuerzo especial para familiarizarse con esta notaci n. o

Submatrices en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

35

Slide 32

La notaci n de dos puntos permite acceder a submatrices. Por ejemplo, o es el vector columna con las cuatro primeras entradas de la tercera columna de A. Si denotamos por x un vector con n componentes, cu l es el efecto de a la instrucci n x = xn:-1:1? Haga la prueba. o Para comprobar la utilidad de esta notaci n, podr a comparar estas ino
strucciones de MATLAB con una rutina de Pascal, FORTRAN, o C que d e los mismos resultados.
A1:4,3

&

Dos puntos sin m s especi caci n denotan una la o columna a o completa: A:,3 es la tercera columna de A, y A1:4,: son las cuatro primeras las. Se pueden usar como ndices de vectores enteros arbitrarios:
A:, 2 4  est formada por las columnas segunda y cuarta de A. a Se pueden usar a ambos lados de una instrucci n de asignaci n: o o A:, 2 4 5  = B:,1:3 reemplaza las columnas 2, 4 y 5 de A por las tres primeras de B. Realice la muestra y asigne la matriz A alterada completa. Las columnas 2 y 4 de A pueden multiplicarse por la derecha por una matriz 2  2:
A:, 2,4  = A:, 2,4 * 1 2;3 4

$ 

De nuevo muestre y asigne la matriz completa.

Notaci n de dos puntos en MatLab o

Centro de C mputo. o

ITAM

'
A = 1 2 3 4 5 6 7 8 ;

MATLAB 5.1

36

archivo de instrucciones

$ 

Slide 33

Los archivos de instrucciones son utilizados a menudo para introducir datos en una matriz grande. En un archivo de este tipo es bastante sencillo corregir los errores sin tener que repetir todo el trabajo. Si, por ejemplo, se escribe en el archivo datos.m la secuencia:

7 Archivos .m

&

entonces la instrucci n de MATLAB datos, har que se efect e la o a u asignaci n especi cada en datos.m. o Un archivo .m puede hacer referencia a otros, incluyendo a l e mismo.

MATLAB puede ejecutar una sucesi n de instrucciones almacenadas en o archivos. Estos archivos se denominan archivos .m", debido a que su su jo debe ser m". Gran parte del trabajo con MATLAB ser el de crear y re nar a archivos .m. Hay dos tipos de archivos .m: archivos de instrucciones y archivos de funciones. Un archivo de instrucciones consiste en una sucesi n de instrucciones o normales de MATLAB. Si tuvi ramos un archivo denominado nombre.m, e las instrucciones del archivo pueden ser ejecutadas sin m s que escribir la a instrucci n nombre. Las variables en un archivo de instrucciones son globales o y, por tanto, cambiar n los valores del espacio de trabajo. a

7.1 Archivos de instrucciones.

Archivos m en MatLab

Centro de C mputo. o

ITAM

'
     entre a y b. if nargin

MATLAB 5.1

37

archivo de funciones

$ 

function a = entalm,n ENTAL Matriz entera generada aleatoriamente. entalm,n produce una matriz mxn con entradas enteras entre 0 y 9

Slide 34

a = floor10*randm,n;

Una versi n m s general de esta funci n es la siguiente: o a o


function a = entalm,n,a,b ENTAL Matriz entera generada aleatoriamente. entalm,n produce una matriz mxn con entradas enteras entre 0 y 9 entalm,n,a,b produce las entradas de la matriz 3, a = 0; b = 9; end

7.2 Archivos de funciones.

&

a = floorb-a+1*randm,n+a;

Los archivos de funciones hacen que MATLAB tenga capacidad de crecimiento. Se pueden crear funciones espec cas para un problema concreto, y
a partir de su introducci n, tendr n el mismo rango que las dem s funciones o a a del sistema. Las variables en las funciones son locales. Sin embargo, ls versi n 5.0 permite declarar una variable como global. o El ejemplo de la transparencia debe escribirse en el archivo ental.m correspondiente al nombre de la funci n. La primera l nea declara o
el nombre de la funci n, argumentos de entrada, y argumentos de salida; o sin esta l nea el archivo ser a uno de instrucciones. La instrucci n z =

o ental4,5, por ejemplo, har que los n meros 4 y 5 pasen a las varia u ables m y n en el archivo de funci n y el resultado se asigna a la variable o z. Como las variables en un archivo de funci n son locales, sus nombres son o independientes de los que se encuentren en el espacio de trabajo. Hagamos notar que el uso de nargin  n mero de argumentos de enu trada", permite asignar un valor por defecto en caso de que una variable se omita | como a y b en el ejemplo.
Archivos m en MatLab Centro de C mputo. o

ITAM

'
function   conteniendo,  m n  cada columna. = sizex; if m == 1 end

MATLAB 5.1

38

funci n my estad.m o
media, desv = estadx Para un vector x,

$ 

 ESTAD Media y desviaci n t pica. o

estadx da la media y la desviaci n t pica de x. o


Para una matriz x, estadx da dos vectores fila resp., la media y la desviaci n t pica de o

Slide 35

Una funci n puede tener tambi n argumentos de salida m ltiples. Esto o e u es una vez situado en el archivo de disco estad.m, la funci n de la transpareno cia; la instruci n de MATLAB xm, xd = estadx, por ejemplo, asignar o a la media y la desviaci n t pica de x a las variables xm y xd, respectivamente. o
Cuando se dispone de una funci n con argumento de salida m ltiple, se o u pueden efectuar asignaciones simples. Por ejemplo, xm = estadx no son necesarios los corchetes alrededor de xm asignar la media de x a xm. a El s mbolo  indica que el resto de la l nea es un comentario; MATLAB

ignorar el resto de la l nea. Las primeras l neas de comentario, que docua

mentan el archivo, son accesibles con la instrucci n help. As , para que se o
muestren en pantalla basta escribir help estad. Dicha documentaci n debe o incluirse siempre en un archivo de funci n. o Esta funci n ilustra algunas de las formas en que MATLAB puede usarse o para obtener un c digo e ciente. Hagamos notar, por ejemplo, que x.b 2 es o la matriz de los cuadrados de las entradas de x, que sum es una funci n o vectorial, que sqrt es una funci n escalar, y que la divisi n en sumx m o o opera una matriz con un escalar.

&

m = n;  caso de un vector fila

media = sumx m;

desv = sqrtsumx.b  m - media.b 

Archivos m en MatLab

Centro de C mputo. o

ITAM

'
 son nulos' else while b

MATLAB 5.1

39

m ximo com n divisor. a u

$ 

function a = mcda,b  MCD M ximo com n divisor a u mcda,b es el m ximo com n divisor de a y b no a u nulos a la vez.

Slide 36

a = roundabsa; b = roundabsb; if a == 0 & b == 0 error'El mcd no est definido cuando ambos n meros a u

La funci n de la transparencia, que da el m ximo com n divisor de dos o a u enteros v a el algoritmo de Euclides, ilustra el uso de un mensaje de error
ver secci n siguiente. o Algunas de las funciones de MATLAB son internas mientras que otras se distribuyen como archivos .m. El listado de cualquier archivo de extensi n o *.m|de MATLAB o del usuario|puede obtenerse con la instrucci n de o o MATLAB type nombre de funci n. Pruebe con type eig, type vander, y type rank.

&
end

=

r = rema,b; a = b; b = r;

end

Archivos m en MatLab

Centro de C mputo. o

ITAM

MATLAB 5.1

40

Algunas posibilidades m s avanzadas se ilustran con la siguiente funci n. Las a o entradas de la funci n|como tol en el ejemplo siguiente, puede hacerse opcional o mediante el uso de nargin  n mero de argumentos de entrada". La variable u nargout puede usarse de forma similar. Hagamos notar que el hecho de que una relaci n es un n mero 1 cuando es cierta; 0 cuando es falsa es usado, y que, o u cuando while o if eval an una relaci n, no cero" signi ca cierto" y 0 signi ca u o falso". Finalmente, la funci n de MATLAB feval permite tener como variable o de entrada una cadena que d nombre a otra funci n. e o
BISECC Cero de una funci n de una variable por bisecci n. o o  biseccfun,x produce un cero de la funci n. fun es una cadena o  conteniendo el nombre de una funci n real de una variable real; o  normalmente las funciones est n de nidas en archivos .m. a  x es el punto inicial. El valor producido est cerca de un a  punto donde la funci n cambia de signo. Por ejemplo, o  bisecc'sin',3 es pi. N tense las comillas alrededor de sin. o  Un tercer argumento de entrada opcional ja la tolerancia  para la precisi n relativa del resultado. El valor por defecto o  es eps. Un argumento de salida opcional produce una matriz  con las iteraciones; sus las son de la forma c, fc .
if nargin 3, tol = eps; end traza = nargout == 2; if x = 0, dx = x 20; else, dx = 1 20; end a = x - dx; fa = fevalfun,a; b = x + dx; fb = fevalfun,b;  Encontrar un cambio de signo. while fa 0 == fb 0 dx = 2.0*dx; a = x - dx; fa = fevalfun,a; if fa 0 = fb 0, break, end b = x + dx; fb = fevalfun,b; end if traza, pasos = a fa; b fb ; end  Bucle Principal while absb - a 2.0*tol*maxabsb,1.0 c = a + 0.5*b - a; fc = fevalfun,c; if traza, pasos = pasos; c fc ; end if fb 0 == fc 0 b = c; fb = fc; else a = c; fa = fc; end end function b, pasos = biseccfun, x, tol

Archivos m en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

41

$ 

Cadenas de texto
Slide 37
s = 'Esto es una prueba' disp'Este mensaje se est mostrando aqu ' a
error'Lo siento, la matriz debe ser sim trica' e

8 Cadenas de texto, mensajes de error, input


asigna la cadena de texto dada a la variable s. Las cadenas de texto pueden mostrarse con la funci n disp. Por ejemo plo:
disp'Este mensaje se est mostrando aqu ' a
s = 'Esto es una prueba'

&

iter=input'Introduzca el n mero de iteraciones: u

'

Las cadenas de texto se introducen en MATLAB entre comillas simples. Por ejemplo,

ya que sta hace que la ejecuci n salga del archivo .m. e o En un archivo .m el usuario puede ser avisado para introducir datos interactivamente con la funci n input. Si MATLAB se encuentra, por ejemplo, o con la instrucci n: o la cadena entre comillas se muestra y la ejecuci n se detiene mientras el o usuario introduce los datos. Tras pulsar el retorno de carro los datos se asignan a la variable iter y contin a la ejecuci n. u o
cadenas de texto en MatLab Centro de C mputo. o
iter = input'Introduzca el n mero de iteraciones: u '

error'Lo siento, la matriz debe ser sim trica' e

Los mensajes de error se muestran mejor con la funci n error o

ITAM

'

MATLAB 5.1

42

Slide 38

9 Tratamiento de archivos .m

&

Mientras se usa MATLAB se necesita usualmente crear o editar un archivo .m y regresar a MATLAB. Ser a deseable mantener
MATLAB activo mientras se edita un archivo pues, en caso contrario, se perder an todas las variables tras salir.
Esto puede hacerse f cilmente con el signo !. Si, estando en a MATLAB, escribe una instrucci n del sistema operativo o |como las que se usan para editar, imprimir y copiar un archivo| precedida del signo !, se ejecuta la instrucci n sin o salir de MATLAB. Si por ejemplo, la instrucci n del sistema o operativo edit accede al editor, la instrucci n de MATLAB o le permitir editar el archivo nombre.m usando su editor local. a Tras dejar el editor, retornar a MATLAB, justo donde se dej . a o
!edit nombre.m

$ 

La versi n 5.0 dispone de varias herramientas de rastreo. Ver help o dbtype y las referencias que se dan all .
Aunque las siguientes instrucciones re ejan las del sistema operativo, evitan el uso de !. Estando en MATLAB, la instrucci n dir mostrar los o a contenidos del directorio activo mientras que what mostrar s lo los archivos a o .m en el directorio. Las instrucciones delete y type sirven para borrar un archivo de disco e imprimirlo en pantalla, respectivamente, y chdir para cambiar el directorio de trabajo. Los archivos .m deben ser accesibles a MATLAB. En la mayor a de los
sistemas o instalaciones en red, los archivos .m personales que se almacenan en un subdirectorio del directorio ra z denominado matlab ser n accessibles
a para MATLAB desde cualquier directorio en el que se trabaje. Ver la discusi n de MATLABPATH, en la Gu a del usuario, para m s informaci n. o
a o

tratamiento de archivos m en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

43

$ 

Slide 39

10 E ciencia de algoritmos: ops y etime

&

La funci n flops es un contador de las operaciones realizadas. o La instrucci n flops0 no flops=0! inicializa el contador a o 0. Por tanto si usamos flops0 inmediatamente antes de ejecutar un algoritmo, la instrucci n flops situada justo al o nal nos dar el n mero de operaciones que se han efectuado a u en su ejecuci n. o La funci n clock da la hora actual aproximada hasta la o cent sima de segundo ver help clock. Dados dos tiempos t1 e y t2, etimet2,t1 proporciona el tiempo transcurrido de t1 a t2.

Dos medidas de la e ciencia de un algoritmo son el n mero de operau ciones realizadas y el tiempo gastado: mediante ops y etime. Se puede, por ejemplo, medir el tiempo que requiere la resoluci n de un o sistema de ecuaciones dado Ax = b usando eliminaci n gaussiana como sigue: o tiempo = clock; x = Anb; tiempo = etimeclock,tiempo Puede desear comparar ste |y la cuenta flop| con los valores que se obtienen e usando x = invA*b;. Int ntelo. e Hagamos notar que, en m quinas que operan a tiempo compartido, etime a no es una medida able de la e ciencia de un algoritmo ya que la velocidad de ejecuci n depende de lo ocupada que est la m quina en un momento o e a determinado.

Flops y etime en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

44

Formato de salida

$  $ 

Slide 40

Aunque todos los c lculos en MATLAB se efect an en doble a u precisi n, el formato de la salida en pantalla puede ser controlado o con las siguientes instrucciones. format short coma ja con 4 decimales el defecto format long coma ja con 14 decimales format short e notaci n cient ca con 4 decimales o
format long e notaci n cient ca con 15 decimales o

& '
Slide 41

Una vez que se ordena un formato, se mantiene hasta que se ordena un cambio. La orden format compact evitar la mayor parte de las l neas en a
blanco, con lo que se puede mostrar m s informaci n en pantalla. a o Es independiente de las dem s instrucciones de formato. a

Hardcopy

&

La forma m s sencilla de obtener una hardcopy a es con la a instrucci n diary. La orden o diary nombre de archivo hace que todo lo que aparezca a continuaci n en pantalla excepto o los gr cos sea escrito en el archivo nombre de archivo si se omite a el nombre se toma por defecto diary hasta que se ordena diary off; la instrucci n diary on har que se escriba al nal del o a archivo, etc. Al terminar, se puede editar el archivo como se desee e imprimirlo en el sistema local. Todo se puede hacer sin salir de MATLAB usando el signo ! ver secci n 9. o
a Una

copia por impresora o en un archivo de disco.

Formato de salida y hardcopy en MatLab

Centro de C mputo. o

ITAM

'

MATLAB 5.1

45

Gr cos planos. La instrucci n plot crea gr cos en el plano a o a

$ 

Slide 42

11 Gr cos a
11.1 Gr cos planos a

&

XY; si x e y son vectores de la misma longitud, la orden plotx,y accede a la pantalla gr ca y realiza un gr co plano de los a a elementos de x contra los elementos de y. Pueden ponerse t tulos, comentarios en los ejes o en cualquier
otra parte con los siguientes comandos que tienen una cadena como argumento: title t tulo del gr co
a xlabel comentario en el eje x ylabel comentario en el eje y gtext texto posicionado interactivamente text texto posicionado mediante coordenadas

MATLAB puede producir gr cos planos y gr cos de malla de supera a cies tridimensionales. Para ver algunas de sus posibilidades realice los siguientes ejemplos: Por ejemplo, podemos dibujar la gr ca de la funci n seno sobre el a o intervalo ,4; 4 con las instrucciones siguientes: donde el vector x es una partici n del dominio con paso 0.01, mientras que y o es un vector sin es vectorial con los valores que toma el seno en los nodos de esta partici n. o Como un segundo ejemplo, puede dibujar la gr ca de y = e,x2 sobre a el intervalo ,1:5; 1:5 como sigue: Hagamos notar que b est precedido por un punto para asegurarnos que a opera a coordenadas.
G cos en MatLab a Centro de C mputo. o
x = -1.5:.01:1.5; y = exp-x.b 2; plotx,y x = -4:.01:4; y = sinx; plotx,y

ITAM

'

MATLAB 5.1

46

$ 

Slide 43

Pueden hacerse tambi n gr cos de curvas de nidas param tricamente. e a e Por ejemplo,
t=0:.001:2*pi; x=cos3*t; y=sin2*t; plotx,y

&

gr cos param tricos. a e La instrucci n grid har un cuadriculado en el gr co actual. o a a Pueden ponerse t tulos, comentarios en los ejes o en cualquier
otra parte. Por defecto, los ejes se autoescalan. Para evitarlo se usa el comando axis. Existe forma de obtener dibujos m ltiples. u Se pueden evitar los tipos de l nea y de punto por defecto.

Pueden ponerse t tulos, comentarios en los ejes o en cualquier otra parte:


Por ejemplo, la instrucci n title'La funci n m s bella' proporo o a ciona un t tulo al gr co. El comando gtext'La mancha' permite posi
a cionar una cruz en el gr co con las echas o el rat n, donde se situar el a o a texto cuando se pulse cualquier tecla. Por defecto, los ejes se autoescalan. Para evitarlo se usa el comando axis. Si c = xmin ; xmax ; ymin ; ymax es un vector con 4 elementos, entonces axisc establece el escalado de ejes a los l mites prescritos. axis, por
s mismo congela el escalado actual para gr cos subsecuentes; Escribiendo
a axis de nuevo volvemos al autoescalado. El comando axis'square' asegura que se use la misma escala en ambos ejes. En la versi n 4.0, axis ha o sido cambiada signi cativamente; ver help axis.

G cos en MatLab a

Centro de C mputo. o

ITAM

'
1.

MATLAB 5.1

Dos formas de obtener dibujos m ltiples se ilustran con: u


x=0:.01:2*pi;y1=sinx;y2=sin2*x; y3=sin4*x;plotx,y1,x,y2,x,y3

47

y formando una matriz Y conteniendo los valores funcionales como columnas x=0:.01:2*pi; Y= sinx',
sin2*x', sin4*x' ; plotx,Y

Slide 44

2. Otra forma es con hold. El comando hold congela la pantalla gr ca actual de forma que los gr cos a a posteriores se sobreimponen en ella. Escribiendo hold de nuevo se libera el hold." Los comandos hold on y hold off tambi n est n disponibles en la versi n 5.0. e a o Se pueden evitar los tipos de l nea y de punto por defecto.
Por ejemplo,
x=0:.01:2*pi; y1=sinx; y2=sin2*x; y3=sin4*x; plotx,y1,'--',x,y2,':',x,y3,'+'

&

produce l neas a trazos y de puntos para las dos primeras,


mientras que para la tercera se obtiene el s mbolo + en cada
nodo. Los tipos de l neas y de puntos son:
Tipos de l nea: s lido -, a trazos --. puntos :, punto y
o trazo -. Tipos de puntos: punto ., m s +, estrella *, c rculo o, a
equis x Ver help plot para los colores de las l neas y puntos.
El comando subplot se usa para dividir la pantalla de forma que puedan verse hasta seis gr cos a la vez. Ver help a subplot.

G cos en MatLab a

Centro de C mputo. o

ITAM

'
x,y

MATLAB 5.1

48

$ 

Gr cos de malla de super cies tridimensionales. a


Slide 45
Para dibujar la gr ca de una funci n z = f x; y sobre un a o rect ngulo, se de nen en primer lugar los vectores xx e yy que dan a particiones de los lados del rect ngulo. Con la funci n meshgrid a o mesh domain; el nombre es meshgrid en la versi n 4.0 se crea o una matriz x, en la que cada la es igual a xx, y de igual forma una matriz y, con todas sus columnas iguales a yy, como sigue:

11.2 Gr cos de malla de super cies tridimensionales. a

&
x,y

Entonces se computa la matriz z, obtenida evaluando f entrada a entrada sobre las matrices x e y, para aplicarle la funci n mesh. o

= meshgridxx,yy;

Los gr cos de malla de super cies tridimensionales se hacen con la a funci n mesh. La instrucci n meshz crea un gr co tridimensional en pero o a spectiva de la matriz z. La super cie de malla est de nida por las coordea nadas z de los puntos sobre un cuadriculado rectangular en el plano XY. Por ejemplo, pruebe con mesheye10. 2 Se puede dibujar la gr ca de z = e,x2,y sobre el cuadrado ,2; 2  a ,2; 2 como sigue int ntelo: e
xx = -2:.1:2; yy = xx; x,y = meshgridxx,yy; z = exp-x.b 2 - y.b 2; meshz

Se podr a, desde luego, cambiar las tres primeras l neas en lo anterior por

= meshgrid-2:.1:2, -2:.1:2;

Para m s detalles sobre mesh, ver la Gu a del usuario. a


En la versi n 5.0, se han ampliado considerablemente las posibilidades o gr cas respecto a las super cies tridimensionales. Consulte la ayuda para a plot3, mesh, y surf.
G cos en MatLab a Centro de C mputo. o

Você também pode gostar