No tengo hoja cuadriculada y la verdad me encanta geogebra así que esto fue lo que hice:
Introducción al curso
Vectores en Álgebra Lineal: Definición y Operaciones Básicas
Vectores
Vectores y Escalares: Conceptos y Operaciones Básicas
Convenciones y Notación en Vectores y Escalares
Modelo RGB y su implementación en Python
Adición de Vectores: Conceptos y Propiedades Básicas
Suma de Vectores en Python con NumPy
Producto Escalar-Vectores: Conceptos y Propiedades Básicas
Operaciones con Escalares y Vectores en Python usando NumPy
Producto Interno de Vectores: Definición y Propiedades
Producto Interno de Vectores en Python con NumPy
Análisis de Sentimientos de Tweets con Vectores de Palabras
Funciones lineales
Funciones Lineales: Transformación de Vectores en Escalares
Funciones Lineales y Propiedades de Superposición
Teoremas y Corolarios en Funciones Lineales
Funciones Afines: Propiedades y Ejercicios Prácticos
Aproximaciones de Taylor: Modelos Lineales de Funciones No Lineales
Aproximaciones de Taylor y análisis de error en Python
Regresión Lineal con Datos Geográficos y Socioeconómicos
Norma y distancia
Propiedades y Cálculo de la Norma de Vectores
Cálculo de Distancias entre Vectores usando Normas Euclidianas y LP
Optimización de Visitas para Arrendar Departamentos
Cálculo de Desviación Estándar en Series de Tiempo con NumPy
Modelo de Riesgo Retorno en Inversiones de Acciones
Cálculo de Ángulos y Correlación entre Vectores
Clustering
Clustering con K-Means: Teoría y Aplicación Práctica
Algoritmo K-means: Clustering Geométrico Sin Matemáticas
Programación del Algoritmo K-means en Python
Cierre
Programación de Clústers y Análisis de Sentimientos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Calcular la distancia entre dos vectores es una habilidad esencial en matemáticas y física porque nos ayuda a entender la relación espacial entre dos puntos. Esta distancia se determina a menudo utilizando la magnitud de la resta de los vectores. En esta clase, abordaremos varios métodos para medir distancias y su interpretación geométrica.
Para comenzar, primero debemos definir nuestros vectores. Supongamos que tenemos dos vectores en un espacio 'R^2'.
import numpy as np
a = np.array([1, 1])
b = np.array([-2, 3])
La resta de estos dos vectores dará lugar a un nuevo vector que nos permite calcular la distancia entre 'a' y 'b'. Este nuevo vector 'c' se obtiene así:
c = a - b
La suma de vectores puede representarse geométricamente mediante la construcción del paralelogramo. Esto implica trasladar un vector para que su punto de inicio coincida con el punto de fin del otro y trazar las líneas paralelas correspondientes. La diagonal del paralelogramo resultante es la suma de los vectores.
La resta de los vectores se puede entender como el vector necesario para moverse de un vector a otro en el espacio. Para visualizarlo, simplemente trasladamos uno de los vectores a la posición definitiva después de la operación.
La norma euclidiana, una medida basada en la geometría euclidiana, es una de las formas más comunes para calcular la distancia entre dos vectores en un plano. Se calcula de la siguiente manera:
distance = np.linalg.norm(a - b)
NumPy ofrece una función precargada np.linalg.norm
, lo que simplifica el cálculo sin repetir código.
La norma euclidiana es solo una opción. Existen otras normas conocidas como normas 'LP', que proporcionan diferentes métodos de medición dependiendo del valor de 'p'.
p = 1
, obtenemos la norma L1 o métrica de Manhattan, relevante en entornos urbanos donde el desplazamiento se realiza en cuadrículas, no en línea recta.p = ∞
, obtenemos la norma L∞ o métrica del máximo, que mide distancias usando el valor máximo de las componentes de un vector.Al medir distancias con normas diferentes, cambian nuestras restricciones geométricas. Con la norma L2, la medición se parece más a trazos diagonales, mientras que con la norma L1, las trayectorias restringen movimientos a líneas horizontales y verticales.
Cuando trabajamos con normas, las propiedades como la desigualdad triangular son esenciales. Establecen que la magnitud del vector es siempre menor o igual a la suma de las magnitudes de sus componentes. Esto es fundamental al analizar la estructura del espacio vectorial y para hacer comparaciones entre diferentes vectores.
El siguiente paso en el aprendizaje implica considerar aplicaciones prácticas de estas normas y cómo pueden usarse para tomar decisiones eficientes, como en la búsqueda de viviendas en un mapa urbano restringido a trayectorias en cuadrícula.
Aportes 17
Preguntas 1
No tengo hoja cuadriculada y la verdad me encanta geogebra así que esto fue lo que hice:
El sumar un 0 o multiplicar por 1 lo conocía como el teorema del japones: “Nikita Nipone” 😉
Para aquellos que no escucharon nunca de las normas y los tomó por sorpresa la utilización de las mismas en la clase a pesar de que no fueron apropiadamente explicadas, comparto la diferencia entre las mismas
Norma L0: el número de elementos distintos de cero en el vector.
Norma L1: la suma de los valores absolutos de los elementos del vector.
Norma L2: la raíz cuadrada de la suma de cuadrados de los elementos del vector.
Norma L3 (orden inf) = Elemento máximo del vector.
Vectores de ejemplo y el uso de las siguientes normas
a = np.array([1,2])
b = np.array([2,3])
c = np.array([4,2])
d1 = np.linalg.norm(a-c)
d2 = np.linalg.norm(a-b) + np.linalg.norm(b-c)
d1,d2
prueba = d1 <= d2
output:
(3.0, 3.6502815398728847)
output:
True
import numpy as np
a=np.array([1,1])
b=np.array([2,3])
c=np.array([4,2])
d=np.linalg.norm(a-c) #calculo de la norma usando solo numpy
u=np.linalg.norm(a-b)
v=np.linalg.norm(b-c)
print('d =',d)
print('u =',u)
print('v =',v)
print('|a-b|+|b-c| =', u+v)
d = 3.1622776601683795
u = 2.23606797749979
v = 2.23606797749979
|a-b|+|b-c| = 4.47213595499958
||a-c|| ≤ ||a-b|| + ||b-c||
Usando quiver de la librería matplotlib 📕
Lo hice solo en código
import numpy as np
a = np.array([1,1])
b = np.array([2,3])
c = np.array([4,2])
v = np.linalg.norm(a-c)
x = np.linalg.norm(a-b)
y = np.linalg.norm(b-c)
print("v =", v)
print("x =", x)
print("y =", y)
print("a-b + b-c", x+y)
print("a-c es menor o igual qué a-b + b-c",v <= x+y)
Aplicable:
• La norma L0: devuelve la cantidad de elementos diferentes de 0 del vector.
• La norma L1: devuelve la suma de los valores absolutos de los elementos del vector.
• La norma L2: La magnitud del vector desde su origen.
• La norma infinito: devuelve el valor absoluto más grande del vector
Hola amigos,
Acá mi código para demostrar la desigualdad triangular con respecto a la distancia entre vectores. Utilizando los datos dados por el profesor:
||a−c||=||a−b+b−c||≤||a−b||+||b−c||
a = np.array([1,1])
b = np.array([2,3])
c = np.array([4,2])
print("¿Se cumple que ||a-c|| <= que ||a-b||+||b-c||?: ", np.linalg.norm(a-c) <= np.linalg.norm(a-b)+np.linalg.norm(b-c) )
¿Se cumple que ||a-c|| <= que ||a-b||+||b-c||?: ** True**
Por separado, si |a-c|=d1 y ||a-b||+||b-c|| = d2, entonces:
d1 = np.linalg.norm(a-c)
d2 = np.linalg.norm(a-b)+np.linalg.norm(b-c)
print("¿Es verdad que d1 <= que d2?: ", d1 <= d2 )
¿Es verdad que d1 ** <=** que d2?: ** True**
import numpy as np
from numpy.linalg import norm
a = np.array([1,1])
b = np.array([2,3])
c = np.array([4,2])
a_b = norm(a-b)
a_c = norm(a-c)
b_c = norm(b-c)
print(a_c<=a_b+b_c)
import numpy as np
a = np.array([1, 1])
b = np.array([2, 3])
c = np.array([4, 2])
distance_ab = np.linalg.norm(a - b)
distance_bc = np.linalg.norm(b - c)
distance_ac = np.linalg.norm(a - c)
print(distance_ab)
print(distance_bc)
print(distance_ac)
inequality_check = distance_ac <= distance_ab + distance_bc
print(inequality_check)
Lotananza: Parte más alejada de un lugar.
Por alguna razón no me da lo mismo, creía haciendo a mano estaba errado pero tampoco en python. Algo hice mal?, los otros si me dan igual. Bueno casi!
Lo grafique con plt.quiver
import matplotlib.pyplot as plt
import seaborn as sns
a = np.array([1,1])
b = np.array([2,3])
c = np.array([4,2])
fig, ax = plt.subplots()
plt.quiver([0,0,0,a[0],a[0],b[0]],
[0,0,0,a[1],a[0],b[1]],
[a[0],b[0],c[0],1,3,2],
[a[1],b[1],c[1],2,1,-1], angles = 'xy', scale_units ='xy', scale = 1,color = sns.color_palette())
plt.xlim(0,4)
plt.ylim(0,3.5)
Se comprueba la propiedad triangular mediante el siguiente código:
import numpy as np
a = np.array([1,1])
b = np.array([2,3])
c = np.array([4,2])
d1 = np.linalg.norm(a-c)
d2 = np.linalg.norm(a-b+b-c)
d3 = np.linalg.norm(a-b) + np.linalg.norm(b-c)
d1,d2,d3
El resultado fue el siguiente:
d1= 3.16
d2 = 3.16
d3= 4.47
d1 = d2 <= d3
Y la representación gráfica de los vectores es la siguiente:
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?