Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab
Matlab
CB 09
TRANSFORMACIONES PLANAS CON MATLAB: SEMEJANZA DE FIGURAS
A TRAVS DE TRANSFORMACIONES EN EL PLANO COMPLEJO Y
MEDIANTE ANLISIS MATRICIAL
Nstor THOME
Departamento de Matemtica Aplicada - Instituto de Matemtica Multidisciplinar
Universidad Politcnica de Valencia - Espaa
njthome@mat.upv.es
Nvel Educativo: Educacin Polimodal (Nivel Medio), Educacin Superior, Postgrado.
Palabras Clave: Transformaciones, semejanzas, plano complejo, matrices, MATLAB.
RESUMEN
Los movimientos en el plano pueden utilizarse como aplicaciones geomtricas de otros temas.
En este trabajo se plantean dos enfoques que se pueden dar, bsicamente, sobre la semejanza
de figuras planas, tema que en s mismo puede analizarse segn su carcter geomtrico. Uno
de estos enfoques se desarrolla mediante un anlisis a travs del plano complejo y el otro
considerando la teora del anlisis matricial. Tablas comparativas presentan la relacin entre
ambos enfoques. Por otra parte, el programa MATLAB opera por defecto con nmeros
complejos y permite realizar operaciones con vectores y matrices, adems de representaciones
grficas de alta calidad. De esta manera, se utiliza dicho programa para proponer a los
profesores una prctica que puede ser realizada por los alumnos una vez que todos los
conocimientos hayan sido impartidos. En dicha prctica, que se realizar mediante la
utilizacin de las TICs, se unifican conocimientos, se fijan conceptos y se integran distintos
temas que el alumno generalmente aprende en etapas diferentes de su formacin. Todo esto se
lleva a cabo de una manera grfica, sencilla y se puede desarrollar con una gran dosis de
intuicin lo que, en general, capta la atencin del alumno y aumenta su motivacin al tratarse
de aplicaciones directas de la teora.
INTRODUCCIN
Los temas de transformaciones en el plano y semejanza de figuras planas se han estudiado en
el Bachillerato desde un punto de vista puramente geomtrico. Por otra parte, tambin se han
estudiado los nmeros complejos tan slo desde el punto de vista binmico, ver Ministerio de
Cultura y Educacin (1997). Ms tarde, los nmeros complejos se vuelven a ver en alguna
asignatura de primer curso de la universidad, completando aqu el tema de modo que se aade
la forma polar y las operaciones que esta representacin permite realizar. Adems, en alguna
asignatura de lgebra Lineal de primer ao de la universidad se estudia el tema de
transformaciones lineales. Por otra parte, en las carreras donde se abordan cursos de Anlisis
Matemtico superior el tema de nmeros complejos vuelve a aparecer, ahora como
introduccin a un curso de Funciones de Variable Compleja.
En otro orden de cosas, la utilizacin del ordenador en el aula es un tema recurrente en
numerosos congresos, revistas especializadas y diferentes foros en los que se trata el tema
enseanza-aprendizaje de la Matemtica a travs de las TICs. MATLAB, es un paquete
informtico que muchos profesores utilizan en la elaboracin e imparticin de sus clases dado
365
que, entre otras cosas, presta facilidades a la hora de realizar grficas de gran calidad adems
de su potencia cientfica, flexibilidad, interactividad, transparencia, etc. Para una introduccin
a MATLAB puede consultarse el libro de Pratap (2006).
En este artculo se hace una aplicacin mediante la utilizacin de MATLAB versin 7.1 en la
que se muestra cmo las semejanzas de figuras planas, los nmeros complejos y la teora de
matrices pueden unificarse en un mismo entorno de manera que el alumno consiga una visin
integrada y globalizada de estos temas. De hecho, se incluyen tablas comparativas que
presentan la relacin entre ambos enfoques. La prctica consiste en que el alumno desarrolle
los ficheros.m por s mismo tras haber tratado el tema con suficiente detalle, o bien indicando
los pasos a seguir mediante una gua que se le entregue. Otra modalidad puede ser que el
profesor muestre el contenido de las funciones.m al alumno y las ejecute en MATLAB de
modo que se vea el resultado que se puede obtener con los conocimientos adquiridos. Esta
ltima modalidad se puede realizar si el alumno no tiene suficientes conocimientos
informticos. Al anlisis de las semejanzas de figuras planas se agregan los casos de
proyecciones y simetras.
Anlisis de los diferentes enfoques
anterior es el vector v OP , siendo P el afijo de z , ver por ejemplo Arves (1999). Por tanto
se usarn indistintamente los trminos: nmero complejo, vector o punto del plano.
Por otra parte, las transformaciones elementales en el plano eucldeo pueden ser analizadas a
travs del significado geomtrico de las operaciones en el cuerpo complejo. Se observa que
estas operaciones se pueden definir como:
Traslacin segn la direccin z0 : w z z0 .
Rotacin de centro el origen y ngulo
(antihorario): w
arg( z0 ) .
Homotecia de centro el origen y razn k: w kz con k
Semejanza de centro el origen, razn k y ngulo
k | z0 | y
arg( z0 ) .
z0 z con | z0 | 1 y
.
(antohorario): w
z0 z con
Para su representacin grfica en el plano complejo es posible notar que en una traslacin los
puntos z del plano se trasladan | z0 | unidades en el sentido del nmero complejo z0 (pensado
como vector). En una rotacin, los puntos z del plano giran alrededor del origen un ngulo
arg( z0 ) en sentido antihorario. Por otra parte, como | z0 | 1 , las rotaciones evidentemente no
366
2
2
( x, y) ( x ', y ')
( x, y) ( x ', y ')
( x, y) ( x ', y ')
( x, y) ( x ', y ')
( x, y) (a, b)
( xc ys, xs yc)
k ( x, y)
k ( xc ys, xs yc)
z w z (a bi )
z w ei z
z w kz
z w kei z
Tabla 1. Transformaciones del plano en s mismo: traslacin (T), rotacin (R), homotecia (H) y semejanza (S)
Representacin de z = 1 + 3 i
4
3.8
2.5
3.6
3.4
3.2
Eje imaginario
z=1+3i;
subplot(1,2,1)
plot(z,'*')
xlabel('Eje real')
ylabel('Eje imaginario')
title('Representacin de z = 1 + 3 i')
subplot(1,2,2)
axis; hold
compass(z)
xlabel('Eje real')
ylabel('Eje imaginario')
title('Representacin grfica de z = 1 + 3 i')
Eje imaginario
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
3
2.8
1.5
2.6
2.4
0.5
2.2
2
0.5
1
Eje real
1.5
0.5
1.5
Eje real
1 3i
Por otra parte, la siguiente lista de comandos permite manipulaciones algebraicas con
nmeros complejos: real(z), imag(z), conj(z), abs(z), angle(z), con las que se puede calcular su
parte real, parte imaginaria, conjugado, mdulo y argumento, respectivamente. Se recuerda
que MATLAB opera por defecto con nmeros complejos.
A continuacin se proponen programas en MATLAB que permitirn al profesor mostrar al
alumno diferentes ejemplos construidos de manera sencilla. Primero se introduce en
MATLAB el polgono sobre el que se harn las transformaciones mediante los nmeros
complejos correspondientes y se realiza su representacin grfica como puede apreciarse en la
Figura 2. Esto puede realizarse como sigue:
367
axis
z=[1+i, -1+3i, -2-2i, -i, 2-4i];
hold
plot([z,z(1)],'r')
axis equal
grid
xlabel('Eje real')
ylabel('Eje imaginario')
title('Polgono a transformar')
Eje imaginario
>>
>>
>>
>>
>>
>>
>>
>>
>>
-1
-2
-3
-4
-4
-3
-2
-1
0
Eje real
En el primero de los programas es necesario indicar como parmetros de entrada los nmeros
complejos que sirven como coordenadas del polgono (regular o no) que se va a trasladar, y
tambin el nmero complejo que sirve como vector de direccin segn el cual se realizar la
traslacin. El resultado de trasladar la Figura 2 original segn el vector z0 4 2i puede
apreciarse en la Figura 3.
Traslacin segn vector z = 4+2i
0
Eje imaginario
4
w = z+z0;
plot([z,z(1)],'r')
3
axis equal
2
hold on
plot([w,w(1)],':b')
1
compass(z0,'k')
0
xlabel('Eje real')
ylabel('Eje imaginario')
-1
title(['Traslacin segn vector z_0 = ',
-2
num2str(z0)])
grid on
-3
hold off
-4
end
-3
-2
-1
2
Eje real
2i
La segunda funcin de MATLAB permitir realizar giros. Se llama giros.m y requiere como
parmetro de entrada el ngulo (en radianes) adems de los nmeros complejos que
determinan el polgono al que le realizar la rotacin. El resultado de ejecutarla se aprecia en
la Figura 4.
function giros(z, alpha)
1
Eje imaginario
w = (cos(alpha)+i*sin(alpha))*z;
plot([z,z(1)],'r')
hold on
axis equal
plot([w,w(1)],':b')
grid
xlabel('Eje real')
ylabel('Eje imaginario')
title(['Giro alrededor del origen de
ngulo \alpha = ',
num2str(alpha) ' radianes'])
hold off
end
= 1.5708 radianes
-1
-2
-3
-4
-3
-2
-1
0
1
Eje real
radianes
2
368
Homotecia de razn k = 3
8
6
4
Eje imaginario
-4
-6
-8
-10
end
>> homotecia(z, 3)
0
-2
-12
-10
-5
0
Eje real
10
Por ltimo, el siguiente fichero de MATLAB permite realizar semejanzas segn los elementos
indicados: ngulo y razn, adems de los nmeros complejos que determinan el polgono del
que se calcular su semejante. En la Figura 6 puede apreciarse el resultado de ejecutar esta
funcin.
function semejanza(z, alpha, k)
end
>> semejanza(z, pi/2, 3)
6
4
Eje imaginario
w = k*(cos(alpha)+i*sin(alpha))*z;
plot([z,z(1)],'r')
axis equal
hold on
plot([w,w(1)],':b')
grid
axis equal
xlabel('Eje real')
ylabel('Eje imaginario')
title(['Semejanza de razn k = ',
num2str(k) ' y ngulo ',
num2str(alpha) ' radianes'])
hold off
2
0
-2
-4
-6
-8
-8
-6
-4
-2
2
Eje real
10
3 y ngulo
12
radianes
2
Es un ejercicio sencillo, a partir de los ficheros anteriores, realizar uno nuevo llamado
semejanza_mas_traslacion.m de modo que permita realizar una semejanza segn los elementos
indicados seguida de una traslacin.
Una aplicacin de todos los conceptos anteriores se encuentra en la grfica de la Figura 8 en
la que se aprecia una noria. Es posible animarla de manera que se la vea girando, gente
trasladndose hacia ella y cambiando su tamao dependiendo de la perspectiva. La forma de
construir la noria es la siguiente. Para comenzar se pueden construir por separado diferentes
369
funciones: una de ellas con una cesta, otra con un nio, otra con el camino, etc. Luego se
genera otra una con la estructura general y se realiza su animacin mediante bucles. El cdigo
de todas estas funciones no se incluye a continuacin sino que se detalla en el Anexo por
cuestiones didcticas.
Otro enfoque de las transformaciones anteriormente tratadas es mediante un anlisis matricial
como puede verse en Leon (1994). Adems, MATLAB est especialmente diseado para
operar con matrices.
Transformacin
Traslacin
2x1 2x1
x
x'
y
y'
x
y
z w z (a bi )
a
b
Rotacin
x
x'
y
y'
Homotecia
x
x'
y
y'
x
y
x
x'
y
y'
cos( ) -sen( )
sen( ) cos( )
Semejanza
cos( ) -sen( )
sen( ) cos( )
z w ei z
x
y
z w kz
z w kei z
x
y
La Tabla 2 resume las operaciones anteriormente definidas y establece una comparativa con
las introducidas en el caso de su tratamiento segn la teora de matrices.
Finalmente, siguiendo este punto de vista, se disea una funcin en MATLAB combinando
los conceptos algebraicos y geomtricos descritos anteriormente para resolver, directamente,
el problema de semejanza con traslacin que contiene como casos particulares al de rotacin y
homotecias (adems del de traslacin, como es evidente). Al introducir en la lnea de
comandos de MATLAB lo siguiente:
>> x=[1 -1 -2 0 2];
>> y=[1 3 -2 -1 -4];
>> semejanza_con_matrices(x, y, pi/2, 3, 2, 4)
Ordenadas
u0 = [x0*ones(1,length(x));
y0*ones(1,length(y))];
u = k*[cos(alpha), -sin(alpha);
sin(alpha), cos(alpha)] *
[x; y] + u0;
plot([x,x(1)],[y,y(1)],'r')
hold on
plot([u(1,:),u(1,1)],[u(2,:),u(2,1)])
compass(x0+i*y0,'k')
xlabel('Abscisas')
ylabel('Ordenadas')
title('Polgono a transformar y
polgono transformado')
grid
axis equal
hold off
end
-5
-6
-4
-2
4
Abscisas
10
12
14
370
2x1 2x1
x
x'
y
y'
x
0
z w Re( z )
1
( z z)
2
x
x'
y
y'
0
y
z w Im( z )
1
( z z)
2i
x
x'
y
y'
x
y
zw
x
x'
y
y'
x
y
zw
x
x'
y
y'
x
y
zw
z
z
Observar que si en las homotecias se permiten valores de k 0 , las simetras con respecto al
origen se consiguen tomando k
1 . Tambin se puede notar que hacer una simetra con
respecto al eje Y puede pensarse como una simetra respecto al eje X seguida de otra con
respecto al origen.
Notar que tambin es posible generalizar las transformaciones anteriores en el sentido que en
lugar de realizarlas en torno al origen, se las realice en torno a otro punto. Por ejemplo, una
rotacin con centro en el punto (a, b) y ngulo
radianes (antihorario) puede realizarse
mediante:
z w ( a bi ) ei ( z ( a bi ))
Una homotecia con centro en (a, b) y razn k puede realizarse mediante:
z w (a bi ) k ( z (a bi ))
La proyeccin de un nmero complejo z sobre la recta que pasa por los puntos P0
P1 ( x1 , y1 ) puede realizarse mediante:
zw
z0 ei Re(e
( x0 , y0 ) y
( z z0 ))
siendo z0 x0 iy0 y
el ngulo que determina el eje X (positivo) con el vector O , P1 P0 .
En efecto, una traslacin de los puntos P0 , P1 y z permite escribir P0 ' P0 P0 O y
P1 ' P1 P0 igual que z ' z z0 y w ' w z 0 . Definiendo
como el ngulo que forma el
eje X con el vector P '0 P '1 se tiene que una rotacin de ngulo
permite escribir:
P0 '' e i P0 ' , P1 '' e i P1 ' , z '' e i z ' y w '' e i w ' . Estas transformaciones han llevado el
problema al indicado en la tabla con lo que w'' Re( z '') . Deshaciendo los cambios se tiene
e i ( w z0 ) e i w ' w '' Re( z '') Re(e i z ') Re(e i ( z z0 )) . Luego, se obtiene el
transformado w
Finalmente, la simetra de un nmero complejo z con respecto de la recta que pasa por los
puntos ( x0 , y0 ) y ( x1 , y1 ) puede realizarse mediante:
zw
z0 e2i ( z z0 )
con k1 , k2
0,
de forma que permita escalar el dibujo de manera diferente en cada una de las dos direcciones.
Es evidente que para estos tipos de transformaciones se pueden realizar programas semejantes
a los anteriores.
CONCLUSIONES
Las semejanzas en el plano que un alumno ha estudiado pueden ser reinterpretadas a partir
de conceptos adquiridos con posterioridad. De esta manera se puede realizar una
integracin de los conocimientos y una mayor solidez en cuanto a la base que el alumno,
el ayudante de ctedra o incluso el profesor pueden disponer a la hora de relacionar
conocimientos entre s. Estas situaciones pueden aparecer cuando en un curso de lgebra
Lineal se habla de matrices y aplicaciones lineales o bien cuando en un curso de Variable
Compleja se haga la presentacin de las operaciones bsicas con nmeros complejos y la
representacin grfica de las mismas. De hecho la funcin compleja lineal
f ( z) az b, a, b , a 0
se puede describir como la composicin de una rotacin de ngulo Arg (a) alrededor del
origen, una homotecia de razn || a || y una traslacin en la direccin del nmero complejo
b . Notar que si bien se habla de funcin lineal cuando se la estudia en un curso de
Variable Compleja, ver por ejemplo Zill (2003), cuando se la define en un curso de
lgebra Lineal se dice que es lineal slo cuando b 0 , ver por ejemplo Leon (1994). El
programa MATLAB le da al profesor herramientas para mostrar al alumno de manera
rpida y sencilla algunas situaciones grficas a partir de funciones elementales generadas
mediante ficheros.m y con las que l pueda generar sus propias grficas con posterioridad.
REFERENCIAS
MINISTERIO DE CULTURA Y EDUCACIN. (1997). Provincia de La Pampa.
Materiales curriculares. Tercer Ciclo EGB. Matemtica, Argentina.
ARVES, J. LVAREZ, R., MARCELLN, F. 1999. lgebra Lineal y Aplicaciones
(Sntesis).
LEON, S. J. 1994. Linear Algebra with Applications (Prentice Hall).
ZILL, D. G., SHANAHAN, P. D. 2003. A first course in complex analysis with applications
(John and Bartlett).
PRATAP, R. 2006. Getting Started with MATLAB7 (Oxford University Press).
372
Anexo
373
NUM_CESTAS = 20;
RADIO = 5;
O = 5+6*i;
E = 1/3;
%
%
%
%
C1
D1
A1
E1
V1
=
=
=
=
=
0+0*i;
4+3.5*i;
2;
1;
1/64;
%
%
%
%
%
C2
D2
A2
E2
V2
=
=
=
=
=
8+1*i;
6+3*i;
2;
1/2;
1/80;
%
%
%
%
%
camino1_step = 0;
camino2_step = 0;
noria_step = 0;
axis equal
axis tight
374
for k=0:PAUSE_ESCENA:MAX_TIME_ESCENA_SEG
cla
camino(C1, D1, A1, E1, camino1_step);
camino1_step = camino1_step + V1;
if (camino1_step > 1) camino1_step = 0; end
camino(C2, D2, A2, E2, camino2_step);
camino2_step = camino2_step + V2;
if (camino2_step > 1) camino2_step = 0; end
noria(O, E, NUM_CESTAS, RADIO, noria_step);
noria_step = noria_step + (2*pi)/(9*NUM_CESTAS);
if (noria_step > 2*pi) noria_step = 0; end
hold on
pause(PAUSE_ESCENA);
end
end
375