Proyección de vectores usando Python

Un vector es un objeto geométrico que tiene tanto magnitud (es decir, longitud) como dirección. Un vector generalmente se representa por un segmento de línea con una cierta dirección que conecta el punto inicial A y el punto terminal B como se muestra en la figura a continuación y se denota por$\overrightarrow{AB}$

Proyección de un Vector sobre otro vector

La proyección de un vector $\overrightarrow{u}$sobre otro vector $\overrightarrow{v}$se da como
  $proj_{\vec{v}}({\vec{u}}) = \frac{\vec{u}.\vec{v}}{||\vec{v}||^{2}} \ vec{v}$

Cálculo de la proyección de vectores en otro vector en Python:

# import numpy to perform operations on vector
import numpy as np
  
u = np.array([1, 2, 3])   # vector u
v = np.array([5, 6, 2])   # vector v:
  
# Task: Project vector u on vector v
  
# finding norm of the vector v
v_norm = np.sqrt(sum(v**2))    
  
# Apply the formula as mentioned above
# for projecting a vector onto another vector
# find dot product using np.dot()
proj_of_u_on_v = (np.dot(u, v)/v_norm**2)*v
  
print("Projection of Vector u on Vector v is: ", proj_of_u_on_v)

Producción:

Projection of Vector u on Vector v is:  [1.76923077 2.12307692 0.70769231]

Un código de línea para proyectar un vector sobre otro vector:

(np.dot(u, v)/np.dot(v, v))*v

Proyección de un vector sobre un plano

La proyección de un vector $\overrightarrow{u}$sobre un plano se calcula restando la componente $\overrightarrow{u}$que es ortogonal al plano de $\overrightarrow{u}$.
  $proj_{Plane}({\vec{u}}) ={\vec{u}} - proj_{\vec{n}}({\vec{u}}) = {\vec{u}} - \frac{\vec{u}.\vec{n}}{||\vec{n}||^{2}} \vec{n}$
donde, $\overrightarrow{n}$es el vector normal del plano.

Cálculo de la proyección vectorial en un plano en Python:

# import numpy to perform operations on vector
import numpy as np
  
# vector u 
u = np.array([2, 5, 8])       
  
# vector n: n is orthogonal vector to Plane P
n = np.array([1, 1, 7])       
   
# Task: Project vector u on Plane P
  
# finding norm of the vector n 
n_norm = np.sqrt(sum(n**2))    
   
# Apply the formula as mentioned above
# for projecting a vector onto the orthogonal vector n
# find dot product using np.dot()
proj_of_u_on_n = (np.dot(u, n)/n_norm**2)*n
  
# subtract proj_of_u_on_n from u: 
# this is the projection of u on Plane P
print("Projection of Vector u on Plane P is: ", u - proj_of_u_on_n)

Producción:

Projection of Vector u on Plane P is:  [ 0.76470588  3.76470588 -0.64705882]

Publicación traducida automáticamente

Artículo escrito por mkumarchaudhary06 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *