You are on page 1of 13

ALGEBRA LINEAL CON MATLAB

PRACTICA SOBRE TRANSFORMACIONES LINEALES 2012

Al abordar el estudio del lgebra lineal se han encontrado a menudo con conceptos muy
abstractos y que en muchos casos no tienen conexin con argumentos geomtricos o
fsicos. Es muy posible que hayan sentido que los contenidos estudiados no tienen relacin
con la realidad.

Si tenemos en cuenta que los sentidos son los canales por los cuales accedemos a la
informacin, surge casi inevitablemente la importancia de la visualizacin de los
conceptos que aclara y facilita la comprensin y que adems est estrechamente vinculada
con modelos mentales intuitivos, simbolizacin y modelado, y es de gran utilidad para unir
la intuicin y el rigor requerido para el pensamiento matemtico.

Las transformaciones lineales, se presentan muchas veces como conceptos abstractos, sin
embargo muchas de ellas estn presentes en la vida diaria como cuando nos miramos al
espejo.

Muchas de las
transformaciones lineales
que hemos estudiado,
conservan la forma y las
medidas de las figuras u
objetos, como por ejemplo
las simetras y las rotaciones otras sin embargo pueden modificar sus dimensiones como las
homotecias y en algunos casos tambin sus formas como las proyecciones.

Con el software Matlab es posible visualizar los efectos que produce una transformacin
lineal sobre una figura. Los siguientes son ejemplos de archivos .m de comandos y de
funcin que muestran algunos de estos efectos.
Las siguientes son matrices asociadas de algunas transformaciones lineales en el
espacio respecto de la base cannica de R 2 :

k 0 Expansin por un factor k, a lo largo del eje X si k > 1

0 1 Contraccin por un factor k, a lo largo del eje X si 0<k<1

1 0 Expansin por un factor k, a lo largo del eje Y si k 1

0 k Contraccin por un factor k, a lo largo del eje Y si 0< k<1

k 0 Expansin por un factor k, en ambas direcciones si k>1

0 k Contraccin por un factor k, en ambas direcciones si 0< k< 1

1 0
Reflexin respecto del eje X
0 -1

0 -1
-1 0

0 1 Reflexin respecto del eje Y

0
cos1 -sen
Rotacin con c entro en el origen de c oordenadas y

sen cos ngulo

El procedimiento a seguir es el siguiente:


sen cos
1 Se ingresa en una matriz las componentes de los vrtices de la figura plana en cada
columna, repitiendo al final el primer vrtice de manera que se cierre la figura.

2 Se forman los vectores x e y de las abscisas y ordenadas de los vrtices y se


realiza la grfica de la figura.

3 Se realiza el producto A*T a fin de obtener las imgenes.

4 Se construyen los vectores x1, y1 de las abscisas y ordenadas de las imgenes y


se realiza la grfica, en una misma grfica, de la transformacin de la figura.
Las siguientes son matrices asociadas de algunas transformaciones lineales en el
espacio respecto de la base cannica de R 3 :

1 0 0

0 cos - sen Rotacin alrededor del eje X un ngulo

0 sen cos
cos 0 -sen

0 1 0 Rotacin alrededor del eje Y un ngulo

sen 0 cos

cos -sen 0

sen cos 0 Rotacin alrededor del eje Z un ngulo

0 0 1
k 0 0

0 k 0 Expansin por un factor k, si k 1

0 0 k Contraccin por un factor k , si 0k1


1 0 0

0 1 0 Proyeccin sobre el plano XY

0 0 0
0 0 0

0 1 0 Proyeccin sobre el plano YZ

0 0 1

1 0 0

0 -1 0 Reflexin respecto del eje X

0 0 -1

1 0 0

0 -1 0 Reflexin respecto del plano XZ

0 0 1

Ejemplo 1.
La transformacin lineal f: R 2 R 2 tal que f ( x, y ) ( x,5 y ) aplicada esta T.L. al
tringulo de vrtices (o,o), (2,5) y (6,3),

Solucin

La matriz asociada a esta transformacin lineal respecto de la base cannica de R2


1 0
es: produce una expansin a lo largo del eje Y.
0 5

Para ingresar los vrtices seguimos un orden para que sea un contorno cerrado P Q R P, la
primera fila corresponde a las abscisas y la segunda fila a las ordenadas.

% Cdigo:

% Se ingresa en una matriz las componentes de los vertices de un triangulo en cada


% columna, repitiendo al final el primer vertice de manera que se cierre el triangulo
T=[0 2 6 0;0 5 3 0];

% La primera fila de p corresponde a las componentes de los vertices en el eje X


% La segunda fila de p corresponde a las componentes de los vertices en el eje Y
% Se guardan estas filas en las variables x, y para poder realizar la grafica del triangulo
x=T(1,:);y=T(2,:);

plot(x,y) % realiza la grafica del triangulo original

title('EXPANSION A LO LARGO DEL EJE Y')

A=[1 0; 0 5]; % introduce la matriz asociada a la transformacion lineal


Im=A*T; % Calcula la matriz Im cuyas columnas son las imagenes de los vertices del triangulo original
hold on % congela la ventana grafica
x1=Im(1,:);y1=Im(2,:); % x1,y1 son vectores fila que contienen las primeras y segundas componentes
respectivamente de los vertices transformados
plot(x1,y1,'r') % dibuja el triangulo transformado y el trazo de este es de color rojo

grid % aade cuadricula a la grafica

hold off % desactiva el hold

% Fin de cdigo

si se lo ejecuta desde la ventana de comandos, produce el siguiente grfico:


Ejemplo 2: Proyeccin de un tringulo sobre el plano XY

% Se ingresa en una matriz las componentes de los vertices de un triangulo en cada


% columna,repitiendo al final el primer vertice de manera que se cierre el triangulo
p=[3 0 2 3;1 -2 1 1;0 1 3 0];
% La primera fila de p corresponde a las componentes de los vertices en el eje X
% La segunda fila de p corresponde a las componentes de los vertices en el eje Y
% La tercera fila de p corresponde a las componentes de los vertices en el eje Z

% Se guardan estas filas en las variables x, y, z para poder realizar la grafica del triangulo
x=p(1,:);y=p(2,:);z=p(3,:);
plot3(x,y,z,'b') % realiza la grafica del triangulo original
title('PROYECCION DE UN TRIANGULO SOBRE EL PLANO XY')
a=[1 0 0;0 1 0;0 0 0]; % introduce la matriz asociada a la transformacion lineal
pt=a*p; % Calcula la matriz pt cuyas columnas son las imagenes de los vertices del triangulo original
hold on % congela la ventana grafica
xt=pt(1,:);yt=pt(2,:);zt=pt(3,:); % xt,yt y zt son vectores fila que contienen las primeras, segundas y terceras
componentes respectivamente de los vertices transformados
fill3(xt,yt,zt,'r') % dibuja el triangulo transformado y lo pinta de rojo
grid % aade cuadricula a la grafica
hold off % desactiva el hold

si se lo ejecuta desde la ventana de comandos, produce el siguiente grfico:


Ejemplo 3: a una carita se le aplica una simetra respecto del eje Y

% dibujo una carita


% la cara
t=-3:.01:3;x=2*cos(t)+2;y=2*sin(t)+2;
fill(x,y,'y')
axis([-8 8 0 8])
axis equal
hold on
% los ojos
plot(1,2.5,'ko');plot(3,2.5,'kh')
% la boca
x1=1:.1:3;y1=-cos(x1-2)+2;
fill(x1,y1,'r')
title('le aplico una simetria respecto del eje Y')
pause
a=[-1 0;0 1];
IC=a*[x;y]; % obtengo la imagen de la cara
IB=a*[x1;y1]; % obtengo la imagen de la boca
Iojos=a*[1 3;2.5 2.5]; % obtengo la imagen de los ojos
xim=IC(1,:);yim=IC(2,:);
x1im=IB(1,:);y1im=IB(2,:);
x1ojos=Iojos(1,1);y1ojos=Iojos(2,1);x2ojos=Iojos(1,2);y2ojos=Iojos(2:2);
fill(xim,yim,'y')
fill(x1im,y1im,'r')
plot(x1ojos,y1ojos,'ko');plot(x2ojos,y2ojos,'kh')
title('SIMETRIA RESPECTO DEL EJE Y')
hold of
al ejecutarlo se obtienen los siguientes grficos:

Ejemplo 4: archivo que dibuja una casa y le aplica diversas transformaciones lineales

%Programa para ilustrar los efectos grficos de una aplicacin lineal


H=[- 6 -6 -7 0 7 6 6 -3 -3 0 0 -6; -7 2 1 8 1 2 -7 -7 -2 -2 -7 -7];
x=H(1,:)';y=H(2,:)';plot(x,y);
axis([-10 10 -10 10]); axis('square');
pause
A=[cos(pi/4) -sin(pi/4);sin(pi/4) cos(pi/4)];
B=A*H;
x=B(1,:)';y=B(2,:)';plot(x,y); title('Rotacion de un angulo de 45')
pause
A=[1 0;0 -1];
B=A*H;
x=B(1,:)';y=B(2,:)';plot(x,y); title('Simetra respecto OX')
pause
A=[-1 0;0 1];
B=A*H;
x=B(1,:)';y=B(2,:)';plot(x,y); title('Simetra respecto OY')
pause
A=[-1 0;0 -1];
B=A*H;
x=B(1,:)';y=B(2,:)';plot(x,y); title('Simetra respecto O')
pause
A=[0.5 0.2;0.2 0.5];
B=A*H;
x=B(1,:)';y=B(2,:)';plot(x,y);title('La deformamos')
% El aula virtual de Algebra Lineal

al ejecutarlo, se observa la siguiente sucesin de grficos:


Tambin pueden aplicar transformaciones a curvas en el espacio, como por ejemplo:

Ejemplo 5: Expandimos una hlice

% Transformacion de una curva en el espacio


t = 0:pi/50:10*pi;
x=sin(t);y=cos(t);z=t;
plot3(x,y,z,'m');
title('HELICE')
hold on
grid
%Aplicamos la transformacion que la expande un factor K=2 en todas las direcciones
puntos=[x;y;z];
M=[2 0 0;0 2 0;0 0 2];
Im=M*puntos;
xim=Im(1,:);yim=Im(2,:);zim=Im(3,:);
plot3(xim,yim,zim,'r')

al ejecutar este archivo, Matlab nos devuelve el siguiente grfico:

Ejemplo 6: La transformacin lineal f: R 3 R 3 tal que f ( x, y , z ) (5 x,5 y ,5 z )


produce una expansin a lo largo del eje Y. Aplicada esta T.L. al tetraedro de vrtices P
=(-1,6,0), Q = (0,2,0),R =(2,4,0), y S = (0,4,5)

Se debe escribir el orden que sigui para unir estos puntos (por ejemplo: P, Q, R, P, S,
R,Q, S). Forme los vectores x, y y z con las primeras, segundas y
terceras componentes respectivamente de estos puntos en el orden establecido

%Programa para ilustrar los efectos grficos de expansion por un factor k en un tetraedro
T=[-1 0 2 -1 0 2 0 0 -1 ;6 2 4 6 4 4 2 4 6 ;0 0 0 0 5 0 0 5 0];

% La primera fila de p corresponde a las componentes de los vertices en el eje X


% La segunda fila de p corresponde a las componentes de los vertices en el eje Y
% La tercera fila de p corresponde a las componentes de los vertices en el eje Z

x=T(1,:);y=T(2,:);z=T(3,:);
plot3(x,y,z,'b')

title('EXPANSION POR UN FACTOR')


A=[2 0 0;0 2 0;0 0 2]; % introduce la matriz asociada a la transformacin lineal
pt=A*T; % Calcula la matriz pt cuyas columnas son las imgenes de los vrtices del tetraedro original

hold on % congela la ventana grafica


xt=pt(1,:);yt=pt(2,:);zt=pt(3,:);

plot3(xt,yt,zt)

grid % aade cuadricula a la grafica


Tarea 1: Realizar un archivo .m de funcin que permite aplicarle a una figura en el
plano, cualquier transformacin lineal, ingresando desde el teclado su matriz asociada.

function M=transformacion(A) % linea que define la funcion


%_________________________________________________________________
% Archivo de funcion que permite aplicar diversas transformaciones % lineales a
% una figura dada, ingresando la matriz asociada desde el teclado
%_________________________________________________________________
disp(' __________________________________________________________')
disp('| Archivo de funcion que permite aplicar diversas transformaciones |')
disp('| lineales a una figura dada, ingresando la matriz asociada |')
disp('| desde el teclado |')
disp(' __________________________________________________________')
A=input('Ingrese la matriz asociada a la transformacion lineal de R2 en R2: ')
% dibuja la cara
t=-3:.01:3;x=cos(t)+1;y=sin(t)+1;
plot(x,y,'r')
grid
axis equal
hold on
% dibuja el cuerpo
x1=[4 1 0 1 1 1 -1 1 3 4];y1=[-2 0 -2 -3 0 -4 -8 -4 -5 -8];
plot(x1,y1,'r')
% forma la matriz de puntos
Pcara=[x;y];Pcuerpo=[x1;y1];
% aplica una transformacion lineal de R2 en R2 cuya matriz asociada es la ingresada A
Imcara=A*Pcara;
Imcuerpo=A*Pcuerpo; xim=Imcara(1,:);yim=Imcara(2,:);x1im=Imcuerpo(1,:);y1im=Imcuerpo(2,:);
plot(xim,yim,x1im,y1im,'b')
hold off
la figura original es la siguiente:

Nota: para introducir la matriz se debe colocar de esta manera: [ a b; c d];

You might also like