COMO REALIZAR OPERACIONES CON VECTORES

Una definición sencilla de que es un vector es:

"Un vector es un elemento que conduce"

Físicamente un vector es un elemento que se representa mediante una flecha, el cual tiene una magnitud, un sentido, una dirección y una unidad.

Desarrollaremos un programa en Python que nos ayude a expresar un vector en coordenadas cartesianas y polares, los cuales posteriormente serán usados para realizar operaciones de suma, resta y producto escalar y vectorial, además se utilizara gráficos para mostrar el resultado.

Empezaremos a convertir un vector cartesiano a polar 


Procedimiento Matemático

  1. De Coordenadas Cartesianas (x, y) a Polares (r, θ):

    • =2+2
    • =arctan()
    • (ajustando el cuadrante según los valores de x y y)

  2. De Coordenadas Polares (r, θ) a Cartesianas (x, y):

    • =cos()
    • =sin()
    • Empezaremos convirtiendo el vector A=3,4 a su forma polar

    • Podemos utilizar el mismo programa para poder realizar la conversión de forma polar a un sistema cartesiano
    • Convertiremos el vector 

    • Haciendo correr el programa nos encontramos con el siguiente resultado


    • Operaciones Matemáticas con vectores 
      Según P Hewitt 

    • "La suma de vectores con direcciones paralelas es sencilla: Si tienen la misma dirección, se suman; si tienen direcciones opuestas, se restan. La suma de dos o más vectores se denomina la resultante. Para determinar la resultante de dos vectores que no tienen exactamente la misma dirección o la opuesta, se usa la regla del paralelogramo.2 Se traza un paralelogramo donde los dos vectores sean lados
    • "
    • Un paralelogramo es una figura con cuatro lados, donde los lados opuestos son paralelos entre sí. Por lo general, puedes obtener la longitud de la diagonal midiéndola; pero en el caso especial en el que dos vectores X y Y sean perpendiculares entre sí, puedes aplicar el teorema de Pitágoras 
  3. r=x2+y2
Además, se debe aclarar que los vectores a sumar deben ambos estar en coordenadas cartesianas o 
coordenadas polares, en el caso de estos estar en diferentes sistemas se debe realizar la transformación
y ambos deben expresarse de forma cartesiana, para posteriormente sumarlos por componentes.

Haciendo uso del Código 2 podemos realizar esta operación, la misma es útil para poder sumar o restar los
dos vectores 
Como ejemplo resolveremos la suma y la resta de los dos siguientes vectores:

A= (5 , 4)
B= (7 ; 150o)




Anexo
Codigo 1

mport matplotlib.pyplot as plt
import numpy as np

def cart_to_polar(x, y):
r = np.sqrt(x**
2 + y**2)
theta = np.arctan2(y, x)
return r, np.degrees(theta)

def polar_to_cart(r, theta):
theta_rad = np.radians(theta)
x = r * np.cos(theta_rad)
y = r * np.sin(theta_rad)
return x, y

def plot_vector(x, y, title):
plt.figure()
plt.quiver(
0, 0, x, y, angles='xy', scale_units='xy', scale=1, color='r')
plt.xlim(-
10, 10)
plt.ylim(-
10, 10)
plt.grid()
plt.title(title)
plt.show()

def main():
choice =
input("Convertir de (1) Cartesiano a Polar, (2) Polar a Cartesiano: ")
if choice == '1':
x =
float(input("Ingrese x: "))
y =
float(input("Ingrese y: "))
r, theta = cart_to_polar(x, y)
print(f"Coordenadas Polares: r = {r}, θ = {theta} grados")
plot_vector(x, y,
"Vector en Coordenadas Cartesianas")
elif choice == '2':
r =
float(input("Ingrese r: "))
theta =
float(input("Ingrese θ en grados: "))
x, y = polar_to_cart(r, theta)
print(f"Coordenadas Cartesianas: x = {x}, y = {y}")
plot_vector(x, y,
"Vector en Coordenadas Polares")

if __name__ == "__main__":
main()


Codigo 2

import matplotlib.pyplot as plt
import numpy as np

def cart_to_polar(x, y):
r = np.sqrt(x**
2 + y**2)
theta = np.arctan2(y, x)
return r, np.degrees(theta)

def polar_to_cart(r, theta):
theta_rad = np.radians(theta)
x = r * np.cos(theta_rad)
y = r * np.sin(theta_rad)
return x, y

def vector_addition(v1, v2):
x1, y1 = v1
x2, y2 = v2
x_result = x1 + x2
y_result = y1 + y2
return x_result, y_result

def vector_subtraction(v1, v2):
x1, y1 = v1
x2, y2 = v2
x_result = x1 - x2
y_result = y1 - y2
return x_result, y_result

def plot_vectors(v1, v2, result, operation):
plt.figure()
plt.quiver(
0, 0, *v1, angles='xy', scale_units='xy', scale=1, color='r', label='Vector 1')
plt.quiver(
0, 0, *v2, angles='xy', scale_units='xy', scale=1, color='g', label='Vector 2')
plt.quiver(
0, 0, *result, angles='xy', scale_units='xy', scale=1, color='b', label=f'Resultado ({operation})')
plt.xlim(-
10, 10)
plt.ylim(-
10, 10)
plt.grid()
plt.legend()
plt.title(
f'Operación de {operation} de Vectores')
plt.show()

def main():
choice =
input("Selecciona una operación: (1) Suma de vectores, (2) Resta de vectores: ")

if choice == '1':
v1_type =
input("Ingrese el tipo de coordenadas para el Vector 1 (cartesiano/polar): ").lower()
v2_type =
input("Ingrese el tipo de coordenadas para el Vector 2 (cartesiano/polar): ").lower()

if v1_type == 'cartesiano':
x1 =
float(input("Ingrese x del Vector 1: "))
y1 =
float(input("Ingrese y del Vector 1: "))
elif v1_type == 'polar':
r1 =
float(input("Ingrese r del Vector 1: "))
theta1 =
float(input("Ingrese θ en grados del Vector 1: "))
x1, y1 = polar_to_cart(r1, theta1)

if v2_type == 'cartesiano':
x2 =
float(input("Ingrese x del Vector 2: "))
y2 =
float(input("Ingrese y del Vector 2: "))
elif v2_type == 'polar':
r2 =
float(input("Ingrese r del Vector 2: "))
theta2 =
float(input("Ingrese θ en grados del Vector 2: "))
x2, y2 = polar_to_cart(r2, theta2)

result = vector_addition((x1, y1), (x2, y2))
plot_vectors((x1, y1), (x2, y2), result,
"Suma")
print(f"Resultado (Suma) en coordenadas cartesianas: ({result[0]}, {result[1]})")

elif choice == '2':
v1_type =
input("Ingrese el tipo de coordenadas para el Vector 1 (cartesiano/polar): ").lower()
v2_type =
input("Ingrese el tipo de coordenadas para el Vector 2 (cartesiano/polar): ").lower()

if v1_type == 'cartesiano':
x1 =
float(input("Ingrese x del Vector 1: "))
y1 =
float(input("Ingrese y del Vector 1: "))
elif v1_type == 'polar':
r1 =
float(input("Ingrese r del Vector 1: "))
theta1 =
float(input("Ingrese θ en grados del Vector 1: "))
x1, y1 = polar_to_cart(r1, theta1)

if v2_type == 'cartesiano':
x2 =
float(input("Ingrese x del Vector 2: "))
y2 =
float(input("Ingrese y del Vector 2: "))
elif v2_type == 'polar':
r2 =
float(input("Ingrese r del Vector 2: "))
theta2 =
float(input("Ingrese θ en grados del Vector 2: "))
x2, y2 = polar_to_cart(r2, theta2)

result = vector_subtraction((x1, y1), (x2, y2))
plot_vectors((x1, y1), (x2, y2), result,
"Resta")
print(f"Resultado (Resta) en coordenadas cartesianas: ({result[0]}, {result[1]})")

if __name__ == "__main__":
main()

Comentarios

Entradas populares de este blog

Uso de Numpy, Pandas y ChatGPT para realizar un análisis estadístico de Calificaciones

Primeros Pasos en el Análisis de Datos

PENSAMIENTO COMPUTACIONAL (PROBLEMA PRACTICO)