UNIVERSIDAD MAYOR DE SAN ANDRÉS FACULTAD DE INGENIERIA INGENIERIA INDUSTRIAL DEPARTAMENTO DE CURSO BÁSICO EL EN ENTO TORN RNO O MATLA MATLAB B
• APLICACIONES AL ALGEBRA LINEAL (CONTINUACION) o TRANSFORMACIONES LINEALES Mg. Sc. Ing. Rafael Valenci Valencia a Goyzueta Goyzueta MATLAB� Marca registrada registrada por The MathWorks, MathWorks, Inc
TRANSFORMACIONES LINEALES Las transformaciones lineales son una clase especial de funciones entre espacios vectoriales, aquellas que preservan las operaciones del espacio vectorial.
Serán útiles los siguientes comandos: FUNCION
SIGNIFICADO Devuelve una base estándar para el espacio nulo obtenida a partir de la reducción de filas A*Z es un estimado de la nulidad de A Da una Base ortonormal del núcleo de A (Z’Z=I). El número de columnas de Z es la nulidad de A Da una base ortonormal para el rango de A (Q’Q=I). Las columnas de Q generan el mismo espacio que las columnas de A, y el número de columnas de Q es el rango de A Devuelve la forma escalonada de A y una posible base del espacio de columnas de A
Z=null(A,r) Z=null(A) Q=orth(A) [E,base]=RREF(A)
MODIFICACION DE FIGURAS Y CUERPOS POR MEDIO DE TRANSFORMACIONES LINEALES Modificación de figuras en el plano Los vectores y matrices se relacionan a través de la multiplicación matricial. Si A es una matriz fija de m × n , a
cualquier vector de n × 1 le podemos asociar un vector y
= Ax
de m × 1 . Y esta correspondencia es el
principal ejemplo de una transformación lineal. Las transformaciones lineales desempeñan un papel muy importante en muchas áreas de la ciencia e ingeniería y de la vida diaria, por ejemplo en el procesamiento de imágenes y gráficos en computadora. Supongamos que un dibujante emplea computadoras y álgebra lineal para transformar los dibujos.
Supongamos que trata de dar la sensación de movimientos a la primera imagen estirándola horizontalmente para llegar a la segunda imagen. Si el estiramiento necesario a lo largo del eje x s es del 100%. ¿cómo puede modelarlo matemáticamente y hacer que la computadora trace la imagen deseada?. El método debería ser independiente de la imagen ¿verdad?….
¿Se le ocurre como resolver el problema?….. Un hecho importante de las transformaciones lineales es que ellas están completamente determinadas por el efecto sobre los vectores de una base. Si se conoce el efecto de una transformación lineal sobre los vectores de la base, entonces se conoce el efecto sobre cualquier otro vector. Sigamos con nuestra bicicleta. Supongamos que queremos pasar de la figura 1 a la figura 3. Podemos ver esta relación de otra forma, definiendo una función de IR
2
en IR
2
que “transforma” el vector ( x, y ) en el vector
( 12 x, y ) , es decir: Sea T:IR
2
→ IR 2
una transformación lineal y supongamos que:
= ( 1, 0) ∧ T ( 0,1) = ( 12 ,1) 2 2 Queremos obtener T ( x, y ) para cualquier (x,y) ∈ℜ ( x, y ) ∈ IR . Como T es lineal tenemos ( x, y ) = x ( 1, 0) + y ( 0,1) T ( 1, 0 )
Tomando transformaciones
T ( x, y )
) = T x ( 1, 0) + y ( 0,1) = xT ( 1, 0) + yT ( 0,1
(1)
Por las condiciones dadas en (1)
T ( x, y )
= x T ( 1, 0)
( 1,0)
+ y T ( 0,1)
1 ,1 2
= x ( 1, 0 ) + y ( 12 ,1)
De donde se tiene:
x + 12 y 1 1 T ( x, y ) = x + y , y = = y 2 0
x 1 y 1 2
Es una transformación lineal que satisface (1). Esta transformación se llama deslizamiento a lo largo del eje x ’s (cada punto se mueve a lo largo de la dirección x ’s una cantidad proporcional a la distancia del eje x ’s) Esta función
(
T u +v
preserva las operaciones del
( IR , +, ⋅) 2
espacio vectorial
) = A ( u + v ) = A ( u ) + A ( v) = T ( u ) + T ( v)
(
y T k ⋅u
en el sentido de que
) = A ( k ⋅ u ) = k ( A ⋅ u ) = k ⋅ T ( u ) . Estas dos
propiedades caracterizarán a las transformaciones lineales.
Modificación de figuras y cuerpos en el espacio Al igual que en el plano, se puede ver en el espacio tridimensional, los efectos que produce una determinada transformación lineal sobre una figura o un cuerpo. Para realizar la grafica d figuras o cuerpos se puede usar el comando plot3
COMANDO
ACLARACI N Dados los vectores y Z
>> plot3(X,Y,Z)
= [ z1
z2
z3
X
= [ x1
zn ]
( x3 , y3 , z3 ) ,…, ( xn , yn , zn )
x2 dibuja
x3
los
xn ] , Y puntos
= [ y1
y2
( x1 , y1 , z1 ) ,
y3
yn ]
( x2 , y2 , z2 ) ,
y los une con un segmento de recta. De esto se deduce
que el vector X esta formado por las primeras componentes de tales puntos y el vector Y por las segundas componentes y el vector Z por las terceras componentes.
Ejemplos (transformación lineal en el plano y en el espacio): Para el triangulo de vértices P(0,0) Q(2,5) R(6,3) realizar una expansión a lo largo del eje x con un factor de escala k = 3 . Solución. Sea la transformación lineal T : IR 2 → IR 2 tal que T ( x, y ) = ( 3x, y ) . La matriz asociada a esta 2
transformación respecto de la base canónica de IR es: T ( x, y )
3 = 0
>> P=[0 0]’; >> Q=[2 5]’; >> R=[6 3]’; Se construye la matriz T cuyas columnas son >> T=[P Q R P] los vectores P, Q, R Esta matriz tiene como T =
0 x
1 y
Se introducen los vectores P, Q, R expresados como vectores columna
primera fila a las absisas de los vértices y como segunda fila a las ordenadas Se forman los vectores x y y de las abscisas y ordenadas de los vértices y se realiza la grafica del triangulo Se realiza el producto A por T para obtener las imágenes
Se construyen los vectores x
1
y y
1
de las
abscisas y las ordenadas de las imágenes y se realiza la grafica en una misma figura
5 4.5 4 3.5 3 2.5
0 2 6 0 0 5 3 0 >> x=T(1,:); >> y=T(2,:); >> plot(x,y) >> A=[3 0;0 1] A= 3 0 0 1 >> Im=A*T; >> hold on >> x1=Im(1,:); >> y1=Im(2,:); >> plot(x1,y1,’g’)
2 1.5 1 0.5 0
0
1
2
3
4
5
6
5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0
0
2
4
6
8
10
12
14
16
Para el mismo triangulo realizar una expansión a lo largo del eje y con un factor de escala k = 2 . Solución. La matriz asociada a la >> P=[0 0]’; >> Q=[2 5]’; transformación es: >> R=[6 3]’; >> T=[P Q R P]; 1 0 x >> x=T(1,:); T ( x, y ) = y 0 2 >> y=T(2,:); >> plot(x,y) ; >> A=[1 0;0 2]; >> Im=A*T; >> hold on; >> x1=Im(1,:); >> y1=Im(2,:); >> plot(x1,y1,’r’) >> grid
18
10 9 8 7 6 5 4 3 2 1 0
0
1
2
3
4
5
6
Realizar el trasquilado horizontal o deslizamiento a lo largo del eje x con un factor de escala k = − 5 Solución. La matriz asociada a la >> P=[0 0]’; >> Q=[2 5]’; transformación es: >> R=[6 3]’; >> T=[P Q R P]; 1 −5 x >> x=T(1,:); T ( x, y ) = y 0 1 >> y=T(2,:); >> plot(x,y) ; k < 0 >> A=[1 -5;0 1]; >> Im=A*T; k = −5 >> hold on; >> x1=Im(1,:); >> y1=Im(2,:); >> plot(x1,y1,’r’) >> grid 5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0 -25
-20
-15
-10
-5
0
5
10
Realizar una rotación de 45ª a la porción de la parábola y = x 2 + 2 en el intervalo [ −2, 2] .
cosθ Solución. La matriz asociada a la TL es: T ( x, y ) = − senθ Dibujamos la parábola original La matriz asociada Forma la matriz cuya primera fila esta compuesta por las abscisas y la segunda fila por las ordenadas de los puntos de la parábola
Calcula la imagen de los puntos
cos π 4 ⇒ T ( x, y ) = − sen π cos θ y 4
x π y cos 4 sen
senθ x
π
4
>> x=-2:.1:2; >> y=4*x.^2+2; >> plot(x,y); >> A=[cos(pi/4) sin(pi/4) ;-sin(pi/4) cos(pi/4)]; 18
>> puntos=[x;y];
16 14 12
>> puntosIm=A*puntos; >> hold on;
Forma el vector de abscisas y coordenadas de los puntos de la imagen
>> x1=puntosIm(1,:); >> y1=puntosIm(2,:);
Grafica la parábola rotada
>> plot(x1,y1,’r’) >> grid
10 8 6 4 2 0
-2
0
2
4
6
8
10
12
14
16
Dado el tetraedro de vér ti ces P ( -1,6,0) , Q ( 0,2,0), R ( 2,4,0) , y S ( 0,4,5). Aplicar la TL T : IR 3 → IR 3 tal que T ( x, y , z ) = (5 x , 5y , 5z ) (La transformación T produce una expansión a lo largo del eje y ) =
=
=
=
EXPANSION POR UN FACTOR
>> 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]; >> 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]; >> pt=A*T; >> hold on >> xt=pt(1,:);yt=pt(2,:);zt=pt(3,:); >> plot3(xt,yt,zt) >> grid
10 8 6 4 2 0 15 4
10 2 5
0 0
-2
Dado el triangulo de vértices P(2,3,-1) Q(5,0,-2) R(4,-2,0) aplique las siguientes transformaciones: Simetría respecto del plano XY definida por T : IR 3 Solución. La matriz asociada a >> P=[2 3 -1]’; la transformación es:
1 T ( x, y , z ) = 0 0
0 1 0
0 x
y −1 z 0
→ IR 3 tal que T ( x, y, z ) = ( x, y , − z ) .
>> Q=[5 0 -2]’; >> R=[4 -2 0]’; >> T=[P Q R P]; >> x=T(1,:); >> y=T(2,:); >> z=T(3,:); >> plot3(x,y,z); >> A=[1 0 0;0 1 0;0 0 -1]; >> Im=A*T; >> hold on; >> x1=Im(1,:); >> y1=Im(2,:); >> z1=Im(3,:); >> plot3(x1,y1,z1,’r’) >> xlabel(’eje x ’); >> ylabel(’eje y ’); >> zlabel(’eje z ’); >> grid
2
1
z e j e
0
-1
-2 4 5
2 4 0 eje y
3 -2
2
eje x
Simetría respecto del origen definida por T : IR 3 Solución. La matriz asociada a la transformación es:
−1 0 0 x y T ( x, y , z ) = 0 −1 0 0 0 −1 z
>> P=[2 3 -1]’; >> Q=[5 0 -2]’; >> R=[4 -2 0]’; >> T=[P Q R P]; >> x=T(1,:); >> y=T(2,:); >> z=T(3,:); >> plot3(x,y,z); >> A=[-1 0 0;0 -1 0;0 0 -1]; >> Im=A*T; >> hold on; >> x1=Im(1,:); >> y1=Im(2,:); >> z1=Im(3,:); >> plot3(x1,y1,z1,’r’) >> xlabel(’eje x ’); >> ylabel(’eje y ’); >> zlabel(’eje z ’); >> grid
Simetría respecto del eje Z definida por T : IR 3 Solución. La matriz asociada a la transformación es:
−1 0 T ( x, y , z ) = 0 −1 0 0
0 x
y 1 z 0
→ IR 3 tal que T ( x, y, z ) = ( − x, − y , −z ) .
2
1
z e j e
0
-1
-2 4
5 2 0
0 -2 -4
eje y
-5
eje x
→ IR 3 tal que T ( x, y, z ) = ( − x, − y, z ) .
>> P=[2 3 -1]’; >> Q=[5 0 -2]’; >> R=[4 -2 0]’; >> T=[P Q R P]; >> x=T(1,:); >> y=T(2,:); >> z=T(3,:); >> plot3(x,y,z); >> A=[-1 0 0;0 -1 0;0 0 1]; >> Im=A*T; >> hold on; >> x1=Im(1,:); >> y1=Im(2,:); >> z1=Im(3,:); >> plot3(x1,y1,z1,’r’) >> xlabel(’eje x ’); >> ylabel(’eje y ’); >> zlabel(’eje z ’); >> grid
0
-0.5
z e j e
-1
-1.5
-2 4 2
5 0
0
-2 eje y
-4
-5
eje x
10. Para la figura mostrada en el plano (para esto considere usted las dimensiones mas adecuadas). Realizar un programa en Matlab el cual permita aplicarle cualquier transformación lineal ingresando desde el teclado la matriz asociada.
Creamos el programa transformacion con extensión m. que permite aplicar diversas transformaciones ingresando la matriz asociada desde el teclado
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 entre corchetes a la TL lineal de R2 en R2: ’)
t=-3:.01:3;x=cos(t)+1;y=sin(t)+1; plot(x,y,’r’) grid axis equal hold on 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];
dibuja la cara
dibuja el cuerpo
aplica una transformacion lineal de R2 en R2 cuya matriz asociada es la ingresada A Llamamos al programa e introducimos la matriz de transformación y se de despliega la figura según su matriz asociada.
T ( x, y )
0.5 = 0
x 0.5 y 0
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
>> transformación Ingrese la matriz asociada entre corchetes a la TL de R2 en R2:
Ingrese la matriz asociada entre corchetes a l a TL de R2 en R2 : [0.5
−1 0 x = 0 −1 y 1 0 x T ( x, y ) = 5 1 y T ( x, y )
Ingrese la matriz asociada entre corchetes a la TL de R2 en R2:
[-1 0;0 -1]
Ingrese la matriz asociada entre corchetes a la TL de R2 en R2:
[1 0;2 1]
Figura 2
Figura1 1 0
0;0 0.5]
Figura 3
8
6
6
4
4
2
-1 -2 -3 -4
2
0
0
-2
-2
-4
-4
-6
-5 -6
-8
-8
-6
-7
-4
-2
0
2
4
Dada la helice f ( t ) tal que T ( x, y , z )
-8 -10
6
= ( sen ( t ) , cos ( t ) , t )
-10 -8
-6
-4
-2
0
2
4
6
8
10
-8
-6
-4
-2
0
2
4
6
8
10
aplique la siguiente transformación dilatación T : IR 3
→ IR 3
= ( 2 x, 2 y , 2z ) .
2 Solución. La matriz asociada a la transformación es: T ( x, y, z ) = 0 0 Grafica la helice
Aplicamos la transformación que la expande un factor K=2 en todas las direcciones
>> t = 0:pi/50:10*pi; >> x=sin(t);y=cos(t);z=t; >> plot3(x,y,z,’m’); >> title(’HELICE’) >> grid >> hold on >> 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')
0 2 0
x 0 y z 2 0
HELICE
80
60
40
20
0 2 1
2 1
0
0
-1
-1 -2
-2
TRABAJO PRÁCTICO MODIFICACION DE FIGURAS Y CUERPOS POR MEDIO DE TL CON MATLAB 1. Dibuje el cuadrilátero de vértices (0.1), (2,4) (4,4), (6,1) y luego aplique a este las siguientes transformaciones lineales. a) Expansión a lo largo del eje Y con un factor k = 5 b) Contracción en ambas direcciones con un factor de k =
1 2
c) Reflexión respecto al eje x
2. Dibuje la figura de vértices (2,-2), (2,7), (4,5), (2,3) y aplique a estas las siguientes transformaciones lineales a) Expansión en ambas direcciones para un factor de k = 4 b) Reflexión respecto al eje y c) Rotación en sentido positivo con centro en el origen y un ángulo de 60 d) Reflexión respecto del origen y luego una expansión a lo largo del eje x con un factor k = 3
3. Dibuje la figura rellena de vértices (2,3), (3,1), (6,1), (7,3), (6,6), (4,3), (3,6) y aplique a esta las siguientes transformaciones lineales:
→ IR 2 tal que T ( x, y ) = ( x + y , x − y ) . T : IR 2 → IR 2 tal que T ( x, y ) = ( 2 x − 3 y , 5 y ) . T : IR 2
a) b)
4. Al triangulo de vértices (2, 3,-1), (5,0,-2), (4,-2,0) y aplique las siguient es transformaciones lineales:
→ IR 3 tal que T ( x, y, z ) = ( x, y, − z ) . 3 3 Simetría respecto del origen, definidas por T : IR → IR tal que T ( x, y , z ) = ( −3x , − 3 y , − z ) . 1 3 3 Simetría respecto del eje Z definida por T : IR → IR tal que T ( x, y , z ) = − x, − y , z . 2
a) Simetría respecto al plano IP : XY definida por T : IR 3 b) c)
5. Dada la figura de vértices (2,0,0), (1,5,3), (0,-3,4), (-6,5,3) Hallar su imagen respecto de la transformación 3 3 lineal T : IR → IR tal que T ( x, y , z ) = ( 2 x, 2 y , 2 z ) y a la figura resultante aplicar la transformación lineal T : IR
3
→ IR 3 tal que T ( x, y , z ) = ( x + y , y , x + y + z ) ..
6. Dibujar el tetraedro de vértices (2,4,0), (-1,6,0), (0,2,0), (0,4,5) y aplicar las siguientes transformaciones lineales: a) Rotación alrededor del eje z con un ángulo de 60 b) Rotación alrededor del eje x un ángulo 30
c) Rotación alrededor del eje y un ángulo de 45
7. Dibujar el triangulo de vértices (3,0,2), (1,-2,1), (0,1,3) y obtener su proyección
a) Sobre el plano XY b) Sobre el plano XZ c) Sobre el plano YZ Rellenar cada una de las figuras proyectadas con un distinto color como se muestra en la figura de ejemplo. ;
8. Dibujar la carita de la figura (para esto considere usted las dimensiones mas adecuadas). y a esta aplicarle las siguientes transformaciones lineales:
a) Simetría respecto al eje y b) Simetría respectó al eje x c) Expandir respecto al eje x para un factor k = 5 9. Dibujar la casita de la figura y a esta aplicarle las siguientes transformaciones lineales:
a) b) c) d)
Rotar la figura en sentido positivo un ángulo de 30
Rotar la figura en sentido negativo un ángulo de 90 Simetría respecto al eje x Simetría respecto al eje y
10. Dibujar el ciclista de la figura y a esta aplicarle las siguientes transformaciones lineales:
a) Rotar la figura en sentido positivo un ángulo de 90 b) Simetría respecto al eje x c) Simetría respecto al eje y
11. Dibujar la araña de la figura y a esta aplicarle las siguientes transformaciones lineales:
a) b) c) d)
Rotar la figura en sentido positivo un ángulo de 30
Rotar la figura en sentido negativo un ángulo de 225 Pintar el cuerpo de la araña de rojo Pintar las patas de azul y el cuerpo de verde
12. Dibujar al sujeto de la figura y a esta aplicarle las siguientes transformaciones lineales: a) Simetría respecto al eje x b) Simetría respecto al eje y
c) Simetria respecto del origen 13. Dibujar la corona de la figura y a esta aplicarle las siguientes transformaciones lineales: a) Expandir a un factor de k = 10 b) Contraer a un factor de k = − 2 c) Sombrear la corona en cuadriculas
14. Dibujar la corona de la figura y a esta aplicarle las siguientes transformaciones lineales:
a) Girar un ángulo de 180 b) Girar un ángulo de 90 d) Contraer a un factor de k = − 2
14. Realizar una rotación de 90ª, una reflexión respecto del origen, un desplazamiento a lo largo del eje x con un factor de escala k=10 a las siguientes curvas
= 9 ( x2 + y 2 ) r = 7 ( 3 + cos t ) f (t ) = ( 2 − cos t , 5 + sent )
a) x 2 y 2 b) c)
15. Corra el siguiente programa en Matlab. function aracnido2 % Construye el cuerpo y las extremidades de la araña en el plano t=0:0.1:6.3; t1=5*cos(t)-5; t2=4*sin(t); patch(t1,t2,[0.9 0.9 0.9]) grid axis([-15 10 -10 10]) t3=2*cos(t)+2; t4=2*sin(t); hold on patch(t3,t4,[0.9 0.9 0.9]) % extremidades x1=[-12 -5 0 -5 -12 -5 0 -1 2 -1 0 -1 2 -1 0 2 5 2 0 2 5]; x12=[-11 -4 0 -4 -11 -4 0 1 -2 1 0 1 -2 1 0 2 5 2 0 2 5]; y1=[-3 -5 0 5 3 5 0 -3 -7 -3 0 3 7 3 0 -3 -2 -3 0 3 2]; plot(x1,y1,'linewidth',3,'color','k') axis([-15 10 -10 10])
function bicicleta x01=[-1 -1 1 1]; y01=[0 1 1 0]; x02=[0 0.5 0 0.5 0 0 0 0.5 1 1]; y02=[1 0.5 0 0.5 1 2.25 1.5 1.25 1.25 1]; h=pi/10; t=0:h:2*pi; t01=0.5*sin(t)+1;;t02=0.5*cos(t); t03=0.5*sin(t)-1;;t04=0.5*cos(t); t05=0.25*sin(t);t06=0.25*cos(t)+2.5; plot(x01,y01,'color','k','linewidth',3) axis([-2 2 -1 4]) grid on hold on plot(x02,y02,'linewidth',4) plot(t01,t02,'color','k','linewidth',3) plot(t03,t04,'color','k','linewidth',3) plot(t05,t06,'color','k','linewidth',3)