Предполагая, что у нас есть вектор A с элементами (A 1 , A 2 , A 3 ) и вектор B с элементами (B 1 , B 2 , B 3 ), мы можем вычислить векторное произведение этих двух векторов как:
Перекрестное произведение = [(A 2 *B 3 ) - (A 3 *B 2 ), (A 3 *B 1 ) - (A 1 *B 3 ), (A 1 *B 2 ) - (A 2 *B 1 )]
Например, предположим, что у нас есть следующие векторы:
- Вектор А: (1, 2, 3)
- Вектор B: (4, 5, 6)
Мы могли бы вычислить векторное произведение этих векторов как:
- Перекрестное произведение = [(A 2 *B 3 ) - (A 3 *B 2 ), (A 3 *B 1 ) - (A 1 *B 3 ), (A 1 *B 2 ) - (A 2 *B 1 )]
- Кросс-произведение = [(2*6) – (3*5), (3*4) – (1*6), (1*5) – (2*4)]
- Перекрестное произведение = (-3, 6, -3)
Вы можете использовать один из следующих двух методов для вычисления перекрестного произведения двух векторов в Python:
Способ 1: используйте функцию cross() из NumPy
import numpy as np
#calculate cross product of vectors A and B
np.cross (A, B)
Способ 2: Определите свою собственную функцию
#define function to calculate cross product
def cross_prod (a, b):
result = [a[1] \* b[2] - a[2] \* b[1],
a[2] \* b[0] - a[0] \* b[2],
a[0] \* b[1] - a[1] \* b[0]]
return result
#calculate cross product
cross_prod(A, B)
В следующих примерах показано, как использовать каждый метод на практике.
Пример 1: использование функции cross() из NumPy
В следующем коде показано, как использовать функцию cross() из NumPy для вычисления перекрестного произведения между двумя векторами:
import numpy as np
#define vectors
A = np.array([1, 2, 3])
B = np.array([4, 5, 6])
#calculate cross product of vectors A and B
np.cross (A, B)
[-3, 6, -3]
Взаимное произведение оказывается (-3, 6, -3) .
Это соответствует перекрестному произведению, которое мы вычислили ранее вручную.
Пример 2: Определите свою собственную функцию
В следующем коде показано, как определить собственную функцию для вычисления векторного произведения двух векторов:
#define function to calculate cross product
def cross_prod (a, b):
result = [a[1] \* b[2] - a[2] \* b[1],
a[2] \* b[0] - a[0] \* b[2],
a[0] \* b[1] - a[1] \* b[0]]
return result
#define vectors
A = np.array([1, 2, 3])
B = np.array([4, 5, 6])
#calculate cross product
cross_prod(A, B)
[-3, 6, -3]
Взаимное произведение оказывается (-3, 6, -3) .
Это соответствует перекрестному произведению, которое мы рассчитали в предыдущем примере.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в Python:
Как рассчитать точечный продукт с помощью NumPy
Как нормализовать матрицу NumPy
Как добавить строку в матрицу в NumPy