Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ipynb - Colaboratory
Álgebra lineal
Laboratorio sobre vectores en R2 y R3
Ejercicio No. 1
Traza la gráfica del triángulo con vértices A(−2, 2), B(4, 1) y C (1, 5). Luego calcula el área
usando la siguiente fórmula:
x ∣ y1 1 ∣
⎛⎡ 1 ⎤⎞
∣ 1 ∣
A = det ⎜⎢ x y2 1 ⎥⎟
2∣ 2
∣
⎝⎣ ⎦⎠
∣ x3 y3 1 ∣
Desarrollo
import matplotlib.pyplot as plt
x = [-2, 4, 1, -2]
y = [2, 1, 5, 2]
plt.plot(x, y, "r")
plt.plot(x, y, "ro")
plt.grid()
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 1/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
import numpy as np
M = np.array([[-2, 2, 1], [4, 1, 1], [1, 5, 1]])
detM = np.linalg.det(M)
A = (1/2)*np.abs(detM)
print("El área del triángulo es de", A, "unidades cuadradas")
Ejercicio No. 2
(1.0 punto) a). Traza la gráfica del triángulo con vértices A(−3, 3), B(−1, −1) y C (4, 2).
(1.0 punto) b). Calcula el área del triángulo usando la fórmula del determinante.
(1.0 punto) c). Comprueba el resultado usando otro método de cálculo.
Ejercicio No.
Traza la gráfica del triángulo con vértices A(−3, 3), B(−1, −1) y C (4, 2). Luego calcula el área
usando la siguiente fórmula:
∣ x1 y1 1 ∣
⎛⎡ ⎤⎞
1 ∣ ∣
A = det ⎜⎢ x2 y2 1 ⎥⎟
2 ∣ ∣
⎝⎣ ⎦⎠
∣ x3 y3 1 ∣
Desarrollo
a).
import matplotlib.pyplot as plt
x = [-3, -1, 4, -3]
y = [3, -1, 2, 3]
plt.plot(x, y, "r")
plt.plot(x, y, "ro")
plt.grid()
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 2/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
b).
import numpy as np
M = np.array([[-3, 3, 1], [-1, 1, 1], [4, 2, 1]])
detM = np.linalg.det(M)
B = (1/2)*np.abs(detM)
print("El área del triángulo es de",detM, "unidades cuadradas")
c).
Ejercicio No. 3
(Kolman, B. & Hill, D. (2006). Álgebra lineal. Octava edición. PEARSON. P. 221.)
1 2 3
⎡ ⎤
⎢1 1 2⎥
⎣ ⎦
0 1 2
Y la transformación lineal: L : R
3 3
→ R como L(x) = Ax
51 34 22 78 59 37 74 47 42 48 34 15 75 55 39
Desarrollo
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 3/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
for i in "CITAELMARTES":
print(ord(i)-64, end=" ")
3 9 20 1 5 12 13 1 18 20 5 19
x1 = np.array([3, 9, 20])
x2 = np.array([1, 5, 12])
x3 = np.array([13, 1, 18])
x4 = np.array([20, 5, 19])
A = np.array([[1, 2, 3], [1, 1, 2], [0, 1, 2]])
A
array([[1, 2, 3],
[1, 1, 2],
[0, 1, 2]])
x1_cod = np.matmul(A, x1)
x2_cod = np.matmul(A, x2)
x3_cod = np.matmul(A, x3)
x4_cod = np.matmul(A, x4)
mensaje_cod = np.append(x1_cod, [x2_cod, x3_cod, x4_cod])
mensaje_cod = " ".join([str(i) for i in mensaje_cod])
print("Al codificar el mensaje CITAELMARTES, se obtiene", mensaje_cod)
y1_cod = np.array([51, 34, 22])
y2_cod = np.array([78, 59, 37])
y3_cod = np.array([74, 47, 42])
y4_cod = np.array([48, 34, 15])
y5_cod = np.array([75, 55, 39])
y1_cod
invA = np.linalg.inv(A)
y1 = np.matmul(invA, y1_cod)
y2 = np.matmul(invA, y2_cod)
y3 = np.matmul(invA, y3_cod)
y4 = np.matmul(invA, y4_cod)
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 4/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
y5 = np.matmul(invA, y5_cod)
y1
mensaje_decod = np.append(y1, [y2, y3, y4, y5])
for i in mensaje_decod:
print(chr(int(i+64)), end="")
LLEVARELOSMAPAS
Ejercicio No. 4
(2.0 puntos) a). Plantea un ejercicio similar al anterior. Tanto la matriz de codificación
como los mensajes deben ser diferentes al Ejercicio 3.
(4.0 puntos) b). Resuelve el ejercicio que planteaste, explicando el procedimiento paso a
paso.
Ejercicio No. 4
(Kolman, B. & Hill, D. (2006). Álgebra lineal. Octava edición. PEARSON. P. 221.)
2 1 2
⎡ ⎤
⎢3 2 1⎥
⎣ ⎦
1 2 0
Y la transformación lineal: L : R
3 3
→ R como L(x) = Ax
51 41 14 37 34 14 61 80 31 67 92 53
Desarrollo
import numpy as np
for i in "FUTBOLJUEVES":
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 5/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
print(ord(i)-64, end=" ")
6 21 20 2 15 12 10 21 5 22 5 19
Tomamos los números generados por el comando ord y lo añadimos a una matriz 3x4
x1 = np.array([6, 21, 20])
x2 = np.array([2, 15, 12])
x3 = np.array([10, 21, 5])
x4 = np.array([22, 5, 19])
A = np.array([[2, 1, 2], [3, 2, 1], [1, 2, 0]])
array([[2, 1, 2],
[3, 2, 1],
[1, 2, 0]])
x1_cod = np.matmul(A, x1)
x2_cod = np.matmul(A, x2)
x3_cod = np.matmul(A, x3)
x4_cod = np.matmul(A, x4)
mensaje_cod = np.append(x1_cod, [x2_cod, x3_cod, x4_cod])
mensaje_cod = " ".join([str(i) for i in mensaje_cod])
print("Al codificar el mensaje FUTBOLJUEVES, se obtiene", mensaje_cod)
y1_cod = np.array([51, 41, 14])
y2_cod = np.array([37, 34, 14])
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 6/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
y3_cod = np.array([61, 80, 31])
y4_cod = np.array([67, 92, 53])
invA = np.linalg.inv(A)
y1 = np.matmul(invA, y1_cod)
y2 = np.matmul(invA, y2_cod)
y3 = np.matmul(invA, y3_cod)
y4 = np.matmul(invA, y4_cod)
mensaje_decod = np.append(y1, [y2, y3, y4])
for i in mensaje_decod:
print(chr(int(i+64)), end="")
DESDELUEGOSI
Conclusiones
(1.0 punto) Registra las conclusiones del laboratorio, considerando, entre otras cosas:
El uso de transformaciones lineales para generar textos codificados es una herramienta muy
poderosa hoy en día que el uso de herramientas digitales va en alza igual que los programas para
hackear la información
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 7/8
10/3/22, 21:49 Copia de Copia de Laboratorio_inicio.ipynb - Colaboratory
https://colab.research.google.com/drive/1s_3NggShlbP9IoqYmcd6zPC7gkiUpF7T#printMode=true 8/8