Как рассчитать перекрестный продукт в Python


Предполагая, что у нас есть вектор 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.