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
De Coordenadas Cartesianas (x, y) a Polares (r, θ):
- (ajustando el cuadrante según los valores de x y y)
De Coordenadas Polares (r, θ) a Cartesianas (x, y):
- 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
- 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.
dos vectores
Como ejemplo resolveremos la suma y la resta de los dos siguientes 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()
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()
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
Publicar un comentario