A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Distancia entre vectores

20/28
Recursos

Aportes 14

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

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: 鈥淣ikita Nipone鈥 馃槈

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)

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

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鈭抍||=||a鈭抌+b鈭抍||鈮|a鈭抌||+||b鈭抍||

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)

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!

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

Lo grafique con plt.quiver

  • para graficar los vectores de distancia entre vectores se da como origen uno de los vectores pero como direcci贸n se da la resta entre este vector y el vector hacia donde le estamos calculando la distancia, no se si este proceso se pueda redactar en t茅rminos de la norma , entiendo que tiene algo que ver ya que la direcci贸n es la resta de los vectores
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: