You are on page 1of 28

UNIDAD 2: GRAFICAS CON SOFWARE MATEMATICO

Como la mayor parte de las ecuaciones matemticas expresa relaciones


complicadas en una, dos, tres 0 ms dimensiones, tratar de entenderlas sin
grcas es casi lo mismo que tener los ojos vendados. El empleo de grcas es
importante desde la educacin primaria hasta la superior, as como para
ingenieros y cienticos profesionales por la misma razn. En las presentaciones
profesionales, casi lodos los anlisis matemticos, cienticos y de ingeniera se
presentan con grcas.
Durante las ltimas tres dcadas, en las que Fortran domin entre los lenguajes
de computacin, las grcas estuvieron desafortunadamente muy desligadas de
los clculos. Por ello, muchos usuarios de Fortran se vieron obligados a leer los
resultados calculados en forma ' de listados de nmeros.
Las grcas son ahora una parte natural del entorno de computacin con
MATLAB, y la gracacin de los resultados de los clculos puede efectuarse con
algunos comandos.
Se recomienda a los lectores gracar las funciones matemticas con las que se
tope, asi como los resultados de anlisis. Tratar de entender las ecuaciones
matemticas con grcas es una forma agradable y muy eciente de aprender
matemticas. Este captulo se escribi con la intencin de ayudar al lector a hacer
precisamente esto.
Antes dc desarrollar el captulo, el lector debe tomar nota de lo siguiente. Algunos
comandos de grcas siguen en vigor incluso despus de haber terminado de
gracar y pueden interferir trabajos posteriores. Es posible que cl comportamiento
de MATLAB se haga impredecible despus de utilizarse algunos comandos como
hold on o subplot, o que se interrumpa abruptamente la ejecucin de un guin. Sc
recomienda a los lectores borrar las variables y las ventanas dc grcas antes dc
iniciar cualquier trabajo de gracacin. Si aun asi MATLAB se comporta de forma
extraa, salga por completo de MATLAB y bralo otra vez.
2.1 GRAFICACION SIMPLE
Gracar: Suponga que desea gracar un conjunto de puntos de datos,
(x,-,y,-), i = 1, 2, ...n. Es necesario preparar x y y en forma de arreglo idntica, es
decir, convertirlos en arreglos de la o de columna de la misma longitud. Los datos
se gracn con plot. Por ejemplo, y =sen(x)exp(0.4x), 0 3 x I0, se graca con
el listado 2.1

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

p=0: 0.05: 8*pi;


z=(cos (p) + i*sin (2*p) ) .*exp (-O . O5*p) + 0. Ol*p;
plot (real (z) , imag(z))
xlabel('Re(z)');ylabe1('Im(z)')

Gracacin nicamente con marcas: Los datos pueden gracarse slo con
marcas sin conectados por lneas. Se dispone de cinco tipos de marcas o letras:

Si desea gracar con un _solo tipo de marca, coloque el smbolo de la marca


como una cadena despus de las coordenadas en los argumentos de plot. La
grca producida por el listado 2.4 se muestra en la gura 2.3.
Listado 2.4
X = (0:0.4:l0)';
y=sin(x) .*exp (0 . 4*x);
plot (X/y. ' +')
xlabe1('x'); y1abe1('y')
Si desea gracar una funcin tanto con lneas como con una marca, grafique dos
veces: la primera con lneas y la segunda slo con marcas. Para gracar de este
modo, el ltimo enunciado del listado 2.4 se cambia a plot (x,y , x, y , + ) . El
comando text sirve para gracar con cualquier marca o letra; sin embargo, la
posicin de la marca puede estar desplazada un poco de la posicin real de punto
de datos.
Tipos y colores de lneas: Se dispone de cuatro tipos de lneas:

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,

plot (x,y, ' u)


Se dispone de los siguientes colores:

Utilice el smbolo del color igual que los tipos de lnea en el argumento de plot; por
Ejemplo,

plotb (x, y, 'g )


Tambin es posible combinar marcas y colores:
plot (x.y,'+g)
graca los datos con marcas + de color verde.
Graficacin de funciones con fplot: Otra forma de gracar funciones
individuales es con fplot (' nombre, [xmin, xmax] ), donde nombre es el nombre de
la funcin o del archivo M de funcin que se desea gracar y xmn y xmax son los
lmites de la grca. El mximo y el mnimo del eje y est determinado por el
mximo y el mnimo reales de la funcin; sin embargo, es posible ajustar los
lmites de la grca con axis, que se explicar en breve.
Borrado de grcas: clf borra todo lo que haya en la ventana de grcos,
mientras que cla borra las curvas gracadas y redibuja los ejes.
Funciones implcitas: Si una funcin est en forma implcita, como 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.

Eje: El mnimo y el mximo de las coordenadas, las marcas de escala y los


valores de las
coordenadas en las marcas de escala se determinan
automticamente. Sin embargo, es posible modicar la forma del marco y el

mnimo y el mximo de las coordenadas con la orden axis. Se puede redibujar una
gura en forma cuadrada con

axis ( ' square)


(vase la gura 2.4). Los ejes de coordenadas y las marcas de escala pueden
omitirse 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)

Se escogern automticamente tipos o colores de lnea distintos para cada curva.


No obstante puede especicarse el color o el tipo de lnea, o la marca, despus de
cada par de coordenadas;
Por ejemplo,
plot:(x,y, '- -' , x,z, '*')
plot(x,y ' : ' , x,z, '*g')
plot(x.y. r , x,z. 'y)
Los dos listados siguientes ilustran otra forma de gracar mltiples curvas con un
solo comando plot:
Listado 2.11
x = 0 : O . O5 : 5;
Yll. :) = sinlx);
y(2, :) = cos(x);
plqt (x, y)
Listado 2.12
X = (0:0.05:5) ';
y(=,l) = sin(x);
y(:,2) = cos(x);
plot (x. y)
Retencin: Hasta aqu hemos gracado todas las curvas en una sola operacin
con un solo comando plot. Sin embargo, a menudo resulta deseable agregar una
curva a una grca que ya se traz. Esta gracacin adicional puede realizarse
con el comando hold on (vase la gura 2.8).
Listado 2.13
X = 0 : 0 . 05 : 5;
y = sin (x) .Plot (x. y) ;
hold on
z = cos (x) ;
plot(x,z, '-")
xlabel (x ); ylabel ('y(-) , z (n) ');
Una vez emitido el comando hold on, la grca permanece en la pantalla incluso si
se ejecuta otro guin; por tanto, lo prudente es colocar un comando hold of f tanto
al principio como al nal del guin; por ejemplo,

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

Cuando se gracan varias curvas con hold on, es recomendable especicar


mnimos y mximos de las coordenadas en el dominio grfico con el comando
axis; de lo contrario, los lmites se determinarn por omisin con base en la
primera curva, cosa que podra causar recortes de las dems curvas. Relacin de
presin, p(estancamiento)lp(esttica)

El comando hold on tambin resulta muy importante cuando se est preparando


una grca que tarda mucho en dibujarse, por la siguiente razn: los comandos
para cambiar parmetros de las guras, como los ejes, el mapa de color, los

ngulos de perspectiva, el eje de color y otros, se pueden modicar despus de


haber gracado una gura.

2.3 CONTORNO DE FUNCIONES BIDIMENSIONALES


Malla: Se puede denir una funcin bidimensional z = z(x,y) con puntos discretos
mediante

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)

La funcin anterior se grac en la gura 2.13 con el listado 2.18.

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

contour (x, y, Z , nivel)


Aqu, z es el arreglo bidimensional de la funcin; x y y son, respectivamente, las
coordenadas x y y en arreglos bidimensionales, y nivel es un vector que contiene
los niveles de contorno. Las coordenadas x y y tambin pueden ser arreglos
unidimensionales, pero aqu tambin se aplica la regla antes mencionada respecto
de los ndices de z; es decir, el primer ndice de z cambia en la direccin de y,
mientras que el segundo ndice lo hace en la direccin de x. Si la retcula est
equiespaciada, una forma ms sencilla es contour ( z) , En este caso, el primero y
el segundo ndices cambian en las direcciones y y x, respectivamente. Adems,
puede sustituirse nivel por un entero, m, que se interpretar como el nmero de
niveles de contorno. Estos niveles se determinan dividiendo los valores mnimo y
mximo de z en m-l intervalos. Grca de contorno hecha con contour(x,y,z,nivet)

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:

f(x,y) =Y3 + exp(y) tanh(x)


y gracamos el contorno de un solo nivel que corresponde a f = 0 (vase la gura
2.15). El siguiente guin ilustra el procedimiento de gracacin:
Listado 2.20
clear , clf
xm = 3:0.2:3; ym = 2:0.2:1;
lx, y] = meshgi: id (xm, yrn);
f = y. 3 + exp(y) e tanh(x);
contour (x,y, f, [t], 0])
xlabel ('x' ); ylabel ('y')
Observe que en el guin anterior el vector [0 , 0] en los argumentos de contour
sirve para especicar el nivel del contorno. El nico contorno que nos interesa es
el del nivel 0, pero los niveles de contorno deben estar en forma de vector, por lo
que repetimos el cero.

Grca vectorial: En ocasiones, las cantidades correspondientes a los puntos de


una retcula se dan en forma vectorial. Por ejemplo, la distribucin de velocidades
e n un ujo de uido bidimensional se pueden expresar mediante vectores de
velocidad en los puntos de la retcula. Los vectores en esos puntos pueden
gracarse con quiver y requieren dos componentes, uno para la direccin x y otro
para la direccin y. Suponga que estos componentes estn dados por u y v, que
son matrices del mismo tamao que x y y. Entonces, los vectores se gracarn
con

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)

En el listado anterior, suponemos que x, y, u y v se calcularon en una parte


anterior del guin que no se muestra aqu.
2.4 RETCULA TRIANGULAR Y CONTORNOS
Una retcula triangular consta de elementos triangulares y su uso ms comn es
en el anlisis de elementos nitos o de volmenes nitos.
Gracacin de una retcula triangular: Necesitamos los dos archivos de datos
llamados cell_da y point_da para trazar una retcula triangular. El primer archivo
incluye los datos de los elementos triangulares, y el segundo, las coordenadas de
los puntos nodales. (En FM 2-1 de la pgina 76 se explican con mayor detalle los
archivos.) Cuando se ejecuta el listado 2.21, aparecen dos preguntas. La primera
se reere a si se desea numerar o no los elementos; teclee l si desea hacerlo o 0
si no. La segunda pregunta se reere a si se desea numerar o no los puntos;
acepte con 1 o niguese con 0. La primera parte de la gura 2.17 muestra la
retcula trazada.
Listado 2.21
% trazado de retcula triangular
cleaR: , clf
load cell_da
load point_da
tri_grid(cell_da, point_da, 1.8)
Grfica de contorno en una retcula triangular: Si tenemos una funcin discreta
denida en los puntos nodales de una retcula triangular, podemos trazar su
contomo con tri_cont de FM 2-2 (pgina 79). Para ejecutar este guin necesitamos
dos archivos de datos, cell_da y point_da (los mismos que usamos en m i_cont), y
un archivo de funcin adicional, f_da. La segunda parte de la gura 2.17 ilustra la
grca de contorno producida por el listado 2.22 empleando tri_cont.
Listado 2.22
% Grfica de contorno en una retcula t]: iangular
clear , clf
load cell_da
load point_da
load f__da
tri_cont (cell_da , point_da , f_da , l . 8)

2.5 RETCULA CURVILNEA Y CONTORNOS


Suponga que los valores funcionales de f (x,y) estn dados en los puntos de una
retcula,
(x,j yij) Por

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

La retcula curvilnea y el contorno de fi,j se pueden trazar con g_cont de F M 2.3


(pgina 81). Su sintaxis es: _

g_cont (x, y, f , nivel)


donde
x, y: las coordenadas de los puntos de la retcula.
f: arreglo bidimensional de los valores funcionales.
nivel: niveles del contorno en forma vectorial.
Como demostracin, el lector podra ejecutar el siguiente guin:
Listado 2.23
clear , clf
[x, y, f] = tcLdata;
f_max = max (max (f) )
f_1nin = min (min ( f) )
kmax = 2 0;
fOI k=l : kmax
ELV (k) = (k-l) /kmax* (f_maxef_min) *0 9999 + f_min;
end
g_cont (x, y, f, ELV)
O %Para responde: automticamente a la pregunta que hace
g_cont

En el guin anterior, td_data es un archivo M de funcin que est en FM 2.3 y que


genera la reticula y la funcin de ejemplo para nes de demostracin. La grca
de contorno trazada por _ listado 2.23 se muestra en la gura 2.19. Los datos f
generados por cd_data se pueden graficar con mesh como se muestra en la gura
2.20 o con sur f, que se explica en la seccin 2.6 pero no es posible utilizar
contour porque la retcula no es rectangular.
2.4 GRAFICACIN DE MALLA Y DE SUPERFICIES
En esta seccin, estudiaremos los grcos tridimensionales, que se han mejorado
notablemente en la nueva edicin para estudiantes y en las ltimas versiones
profesionales de MATLAB. que ya presentamos a mesh, aqu lo veremos con
mayor detalle.
Grfica de malla de una matriz: La aplicacin ms sencilla de los grcos
tridimensionales es la graficacin de una matriz. Consideremos una matriz z de m
por n. El elemento j. i) se considera el valor funcional en y = j y x = en el plano
bidimensional. Denimos una matriz de muestra con

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.

El listado 2.31 ilustra el empleo de ginput. Cuando se ejecuta este listado, el


programa espera hasta que se hace clic con el ratn. Si se hace clic con el botn
izquierdo, se imprimir una marca + roja en la posicin del apuntador. De forma
similar, si se acciona el botn del medio o el derecho, se imprimir una marca o
amarilla o una marca * verde, respectivamente. La ejecucin termina si se hace
clic con el ratn cuando el cursor est dentro del cuadro en la esquina inferior
izquierda de la pantalla. La gura 2.35 ilustra las marcas gracadas con el listado
2.31.

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

UNIDAD 3: ALGEBRA LINEAL


En MATLAB, las matrices, los vectores de columna y los vectores de la se
introducen siguien las mismas reglas que los arreglos, mismas que se explicaron
en el captulo 1. Por ejemplo, lama

B=

1 6
5 2

se introduce en MATLAB con

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,

b= [12; 43; O2];


d = [5 ; 1] ;
9 = b*d .
produce

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

estn en la relacin inversa entre si, es decir


1 6
AB= 5 2

0.0714 0.2143
0.1786 0.0357

1 0
0 1

La inversa de una matriz M se escribe M ; por tanto, la relacin anterior entre A y


B puede escribirse como A =
escribir como
AA 1 = 1 y

A1

B1

yB=

=1

Slo las matrices cuadradas tienen inversos.

A1 . As, la ecuacin 3.3.1 se puede

El inverso de un producto de matrices es igual al producto del inverso de las


matrices en el orden inverso. Por ejemplo, si W = ABC..G, donde A, B, G son
matrices cuadradas,
entonces
W 1 = G1 C1 B1 A1
En MATLAB, el inverso de M se calcula con inv (M) . Por ejemplo, sea
A = [1 6 ; 5 2] ,
entonces,
B = inv (A) - .
produce

B=

0.0714 0.2143
0.1786
0.0357

Para asegurarse de que B es el inverso de A, calculamos tanto AB como BA como


sigue:
A*B
ans =
1.0000 0.0000
0.0000 1.0000
B *A
ans =
1.0000 0.0000
0.0000 1.0000
El comando inv calcula el inverso de cualquier matriz cuadrada excepto cuando es
singular. Si MATLAB se niega a calcular el inverso, sabremos que la matriz es
singular. No obstante, merece la pena aprender a crear un ejemplo de matriz
singular. En una matriz singular, al menos una la (o columna) puede expresarse
restando o sumando otras las (o columnas); por tanto, para crear una matriz
singular de 3 por 3, escribimos la primera y la segunda las eligiendo nmeros
arbitrarios, pero escribimos la tercera la como la primera la multiplicada por una
constante ms la segunda la multiplicada por otra constante. El resultado - es
una matriz singular. Si ninguna la (o columna) puede expresarse sumando o
restando otras las (o columnas), todas las las (o columnas) son linealmente
independientes y la matriz no es singular.

3.2 ECUACIONES LINEALES


Consideremos un conjunto de m ecuaciones con n incgnitas dado por
A1.1x1 +a1,2x2+a1,3x3++a1nxn=y1
A2,1x1 +a2,2x2+a2,3x3+a2,nxn=y2
Am,1x1+am,2x2+am,3x3+am,nxn=ym
donde a, son coecientes conocidos, x, son incgnitas y y; son trminos
conocidos que se denominan trminos no homogneos (o trminos fuente). " Las
ecuaciones lineales anteriores se pueden expresar de forma compacta como
Ax=y
Donde A, x y y estn denidos, respectivamente, por
a 1,1

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

donde A es una matriz de n por m y x y y son vectores de la. Las ecuaciones


lineales expresadas por la ecuacin 3.4.2 se pueden agrupar en lossiguientes tres
casos:
Caso l: m = n .
Caso 2: m<n (ecuacin subdeterminada)
Caso 3: m>n (ecuacin sobredetenninada)
El caso l es el ms comn, con el nmero de ecuaciones igual al nmero de
incgnitas. En el
caso 2, el nmero de ecuaciones es menor que el de incgnitas y tenemos lo que
se conoce como problema subdetenninado. En el caso 3, el nmero de
ecuaciones es mayor que el nmero de incgnitas y tenemos un problema
sobredetenninado. Esto ocurre en el ajuste de curvas y lo veremos en el captulo
8. En el caso l, la matriz es cuadrada. Para obtener la solucin en MATLAB,
escribimos
x = A\y
Un mecanismo equivalente es
x = inv (A) *y
Sin embargo, el primer mtodo es ms eciente desde el punto de vista
computacional (el tiempo de cmputo del segundo mtodo en MATLAB es
aproximadamente 50% ms largo que para el primero).
Si la ecuacin se escribe en la forma de la ecuacin 3.4.3, la solucin se obtiene
en MATLAB con

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

You might also like