Professional Documents
Culture Documents
Listado 2.1
x= 0:0.0. 5:10
y = sin(x).*exp (-0. 4*x)
plot (x, y)
Xlabel ('x') ; y1abel(y' )
Tambin se pueden utilizar vectores de columna en los argumentos de plot, como
se muestra en el siguiente guin:
Listado 2.1
x= 0:0.0. 5:10
y = sin(x).*exp (-0. 4*x)
plot (x, y)
Xlabel ('x') ; y1abel(y' )
Los dos guiones anteriores producen la misma grca, que se muestra en la
gura 2.1. Los rtulos de los ejes se imprimen mediante los comandos Xlabel y
ylabel, que se explicarn mayor detalle posterionnente. La gura 2.2 se graca con
el listado 2.3 que conecta una de puntos en un plano complejo.
Listado 2.3
Gracacin nicamente con marcas: Los datos pueden gracarse slo con
marcas sin conectados por lneas. Se dispone de cinco tipos de marcas o letras:
El tipo de lnea por omisin es el continuo. Si desea gracar con un tipo de lnea
en particular, especique la marca de lnea despus de las coordenadas; por
ejemplo,
Utilice el smbolo del color igual que los tipos de lnea en el argumento de plot; por
Ejemplo,
y3 + exp(y) = tanh(x)
No se puede expresar como x en funcin de y ni como y en funcin de x. No
obstante, la curva se puede gracar utilizando contour. En la seccin 2.3
detallaremos este procedimiento.
mnimo y el mximo de las coordenadas con la orden axis. Se puede redibujar una
gura en forma cuadrada con
axis ( ' of f )
Este efecto se cancela con axis ( ' on ' ) .
El mximo y el mnimo de las coordenadas en la grca se pueden especicar con
axis ( [x_min , x_max , y_mn , y_max] )
Las lneas que se salgan de los lmites se recortarn. Este comando se utiliza
despus de plot para poder modicar el rea de visualizacin tantas veces como
se desee. Se sugiere al lector anexar axis ( [-2 , 6 , -0 .7 , o .71 ) al
listado 2.4 para ver cmo axis lmita las fronteras de la gura.
Retcula: Se puede agregar una retcula a la grca con gz id on. Por otro lado, gr
id of f elimina la retcula. El empleo de gI id por s solo activa y desactiva la retcula
alternadamente. El siguiente guin es un ejemplo del empleo de g: id on:
Listado 2.5
X = (0:0.2:10)';
y=sin(x) .*exp(O.4*x);
plot (x, y)
grid on
xlabel ('x' ) , ylabel ( y )
(Vase la gura 2.5 producida por el listado 2.5.)
Grcas polares: Podemos gracar una funcin en coordenadas polares con
polar. La gura 2.6 se graca con el listado 2.6.
Listado 2.6
t = 0: .05:pi+.01;
y = sin (3*t) .*exp (0 . 3*t:);
polar (t , y)
title(Grfica polar) y
gr id
Grcas logartmicas y semilogartmicas: Las funciones pueden gracarse en
una escala log-log con loglog. (Vase el listado 2.7 y la gura 2.7.)
Listado 2.8
t = . 1: . 1 : 3;
semilogy (t, exp(t.*t))
grid
xlabel(' t ); ylabel ( 'exp(t. *t) ' );
De forma similar, el listado 2.9 produce una grca semilogartmica con x en la
escala logartmica.
Listado 2.9
t=.1:.lz3;
semilogx (t, exp (t . *t:))
gr i d
xlabel(t');ylabe1('exp(t.*t)');
Mltiples curvas: Si quiere gracar dos o ms curvas con una sola orden plot,
escriba todos los conjuntos de coordenadas repetidamente en la orden plot:
Listado 2.10
x = 0 : O . O5 : 5 ;
Y = sin (X) i
z = cos (x) ;
p1ot(x,y, x, z)
Listado 2.14
cleaI; clf; hold off
x = 0 : 0 . 05 : 5;
y = sin (x) ;
plot (x. y)
hold on
z = cos (X)
plot: (x, z)
hold off
z,=z(x,yj) (23.1)
donde x1, i = 1, Z, ...m, y yj, j = l, 2, ...n, son puntos en los ejes x y y en orden
ascendente. Las intersecciones constituyen una retcula cartesiana. Como
ilustracin, consideremos la retcula denida por
x=x,=2+0.2( l), l i 21
yi,=yj=2+0.2(l), 1 j 21
y valores funcionales denidos por
zij = x. exp(-x
) (23.2)
Listado 2.18
clear, cl f
xa = "Z : . 2 : 2 ;
ya = 2 : . 2 : 2 ;
[x,y] = meshgrid (xa,ya);
z = x .* exp(-x. "2 e y. 2);
mesh (x , y , z)
title ( sta es una gIfica 3D de z = x * exp (x2 - y"2) ')
xlabel ('x' ); ylabel ( y ); zlabel ( ' z);
En el listado 2. l 8 utilizamos meshgr id para crear arreglos bidimensionales, x y y,
donde x es un arreglo de las coordenadas x de la retcula y y es un arreglo de las
coordenadas y. Estos arreglos x y y sirven para calcular el arreglo bidimensional z.
Es muy importante darse cuenta de la correspondencia que existe entre los
arreglos bidimensionales, x, y y z, y x_, y y z, respectivamente. El hecho es
que x (j , i) , y (j , i) y z (j , i) corresponden ax,, yiJ y z,, respectivamente. Dicho
de otro modo, el primer ndice de x, y y 2 cambia en la direccin y, en tanto que el
segundo ndice cambia en la direccin x.
Es preciso respetar esta regla si se calculan los elementos de z (j . i) con ciclos fo]:
/end. El comando mesh del guin anterior puede sustituirse por mesh (z) . El
primer ndice de z cambia en la direccin y, mientras que el segundo lo hace en la
direccin x.
Contorno: Podemos utilizar contorno para gracar el contorno de una funcin en
un arreglo bidimensional. La sintaxis bsica es
La gura 2.14 muestra una grca de contorno producida por el listado 2.19, en la
que la funcin gracada est denida por la ecuacin 2.3.1 y es la misma de la
gura 2.13. Los valores de los contemos de la gura se rotularon con clabel
(h , manual ) , que permite al usuario indicar la posicin de los nmeros con el
ratn. Los niveles de contorno pueden rotularse automticamente con clabel ( h) .
Listado 2.19
cleaI , clc, clf, axis ( ' squane)
xm=-2: .2:2; ym=2: .2:2;
[x, y] = meshgzid (xm, ym);
z = x .* exp(-x.2 - y."2);
zmax=max(max(z) ); Zmin=min(min (z) ) ;
dz = (Zmax-zmin) /10;
nivel = zmin + O . 5*dz: dz: zmax;
h=contour (x, y, z , nivel); clabel (h, manual )
titleUGrfica de contorno hecha con contou1(x,y, z,nivel) )
xlabel ('x' ); ylabel (y)
El comando contour puede servir para gracar una funcin implcita como
y3 + exp(y) = tanh(x)
Para gracar la curva, reescribimos la_ ecuacin as:
quiver (x,y,u,v, s)
donde s es un factor de escala que es un parmetro del usuario para ajustar la
longitud de los vectores. La gura 2.16 ilustra el trazado de los vectores de
velocidad en un problema de ujo tpico_(llamado ujo de cavidad con impulso).
_La figura muestra tambin curvas de las lneas de flujo hechas con contour. El
siguiente guin ilustra las partes esenciales del guion para gracar la gura 2.16.
% (Se omiti la parte anterior del guin en la que se
% calculan x, y, s, u y v.)
clf
L= [-0 . 00577 z-D . 00577 z-O . O54 I 0, O . 0001, O. 00005) ;
c=contour (x, y, s, L); % s=funcin de flujo
clabel (c)
title ( ' funcin de flujo Re=4OO (retcula 51x51) ')
xlabel ( direccin x)
ylabel ( ' direccin y)
axis ( square)
hold on % u y v constituyen un vector.
quiver (x(1:2:ni,1:2,ni) , y(1:2:ni,1:2,ni) ,
...u(1:2:ni,1:2,ni) , v(l:2:ni,1:2,ni) , 4)
fi =f(xij, yij)
donde = 1, 2, ..., im; y j = 1, 2, jmx son ndices de puntos. El sistema de
retcula es una retcula cartesiana si sus lneas son paralelas a los ejes de las
coordenadas cartesianas. Por otro lado, si la geometra en cuestin es compleja
podemos utilizar puntos de retcula ajustados a fronteras curvas, como se ilustra
en la gura 2.18. Una retcula as se denomina retcula curvilnea
Entonces,
mesh (z)
produce la grca de malla que se muestra en la gura 2.21.
Color por omisin: En una pantalla a color, las lneas que conectan los puntos se
colorean con el mapa de color por omisin hsv (iniciales en ingls de mantriz,
saturacin, valor). Se asigna rojo a los valores tanto mximo como mnimo de
z (i, j ) . Entre el mnimo el mximo, el maximo el color se determma lmealmente
en el orden rojo, amarillo, verde, turquesa, azul, magenta, rojo.
2.5 GRFICOS INTERACTIVOS
El elemento fundamental de los grcos interactivos es la capacidad de un
programa para leer las coordenadas del apuntador del ratn en cualquier posicin.
Esto puede hacerse con ginput en uno de los siguientes formatos:
[x.y1 = ginput
[x,y,botn] = gnput
[x,y,botn] = ginput (n)
suponga que se hace clic con el ratn en cierto lugar dentro de una pantalla de
grcos. Entonces, [x , y] = ginput acumular un nmero ilimitado de puntos hasta
que se pulse la tes. = la return (intro), as que x y y se convertirn en vectores
de longitud igual al nmero de puntos acumulados. [x , y , botn] = ginput es lo
mismo excepto que tambin se registran los nmeros de botn del ratn. Los
nmeros de botn son l, 2 y 3, contando a partir del lado izquierdo del ratn. [x , y ,
botn] = ginput (n) acumula n puntos, pero puede suspenderse pulsando la tecla
retum.
Listado 2.31
clear: , clf , hold off
axis( [0, 10, 0, 10] )
hold on
plot([l.2.Z.l.1] , [2.2.3,3,2])
text (1, 1 .6 , Haga clic dentro del cuadro para terminar )
while 1
[x , y , boton] = ginput (l)
if boton=1, plot: (x,y, ' +x ' ) , end
if boton=2 , plot (x,y, ' oy ) , end
if boton=3 , plot: (x, y , *g) , end
if x>1 S x<2 & y>2 & y<3, bzealqend
end
hold off
B=
1 6
5 2
b= (1, 6; 5, 2);
Un vector de columna o de la se puede denir como una matriz de una columna o
una la, respectivamente; por ejemplo,
c = [1 , 2] ; (vector de la)
d = [1 ; 7] ; (vector de columna)
Podemos transponer una matriz en MATLAB colocando un apstrofo despus de
la
matriz; por ejemplo, con
e=b'
la matriz e se convierte en la transpuesta de la matriz b. Una matriz identidad de m
por m se genera con
s = eye (m)
De forma similar, una matriz nula de m por m es
s = zeros (m)
Una matriz nula de m por n se genera con s = zeros (m, n) . Escribimos una matriz
de m por n que consiste slo en la unidad as:
w = ones (m , n)
Si a es una matriz que ya existe, zeros (si ze (a) ) y ones (size (a) ) producen,
respectivamente, la matriz nula y la matriz unidad del mismo tamao que a.
Generamos una matriz aleatoria m por n con rand (m, n) (la seccin 1.5 contiene
mayores detalles sobre los nmeros aleatorios). Una matriz especial, llamada
matriz de Hlbert, se genera con hilb (m) (vase el emplo 3.6). La multiplicacin de
matrices en MATLAB se expresa con el operador de multiplicacin;
por ejemplo,
g=
7
23
2
que corresponde al inciso (a) del ejemplo 3.2. La suma y la resta de matrices es
igual que en el de arreglos bidimensionales.
MATRIZ INVERSA
Ahora que aprendimos a multiplicar matrices tanto mediante clculos manuales
como con MATLAB, podemos estudiar el concepto de matrices inversas. Cuando
dos matrices cuadradas A y B satisfacen
AB=IoBA=1 (33.1)
donde I es la matriz identidad, A y B estn en la relacin inversa; es decir, A es el
inverso de B y B es el inverso de A. Por ejemplo,
1 6
A= 5 2
B=
0.0714 0.2143
0.1786 0.0357
0.0714 0.2143
0.1786 0.0357
1 0
0 1
A1
B1
yB=
=1
B=
0.0714 0.2143
0.1786
0.0357
A = .. a 1, n
: am , n
am, 1
x1
X= .
.
xn
y1
y= .
.
yn
La ecuacin 3.4.2 tambin puede expresarse en la forma
t
t
t
x A = Y
z = y /A'
donde y es un vector de la y z tambin se convierte en un vector de la. Las
siguientes expresiones producen el mismo resultado:
inv (A) *y
A " l -1 l) *Y
y ' * inv (A ' )
Los resultados de las primeras dos estn en forma de vector de columna, mientras
que el de la ltima est en fonna de vector de la.
Ejemplo 3.4
Utilice MATLAB para obtener la solucin de
Ax = y
donde
3 2
A= 1 1
, Y=
1
1
Solucin
Sea
A = [ 3 2 ; 1 -1 ] ;
Y = [-1 , 1] ';
Entonces,
x = A\y
produce
X=
'O.2OOO
-O.8OOOv
Tambin, si escribimos
z = y ' /A'
Obtendremos la misma respuesta en forma de vector de la como
Z=
0 . 2000 O . 8000