Python で外積を計算する方法


要素 (A 1 、 A 2 、 A 3 ) を含むベクトル A と要素 (B 1 、 B 2 、 B 3 ) を含むベクトル B があると仮定すると、これら 2 つのベクトルの外積を次のように計算できます。

外積= [(A 2 *B 3 ) – (A 3 *B 2 )、(A 3 *B 1 ) – (A 1 *B 3 )、(A 1 *B 2 ) – (A 2 *B 1 )]

たとえば、次のベクトルがあるとします。

  • ベクトル A: (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 で 2 つのベクトルの外積を計算するには、次の 2 つの方法のいずれかを使用できます。

方法 1: NumPy のcross() 関数を使用する

 import numpy as np
  
#calculate cross product of vectors A and B
n.p. 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: NumPyのcross()関数の使用

次のコードは、NumPy のcross()関数を使用して 2 つのベクトル間の外積を計算する方法を示しています。

 import numpy as np

#definevectors
A = np. array ([1, 2, 3])
B = np. array ([4, 5, 6])
  
#calculate cross product of vectors A and B
n.p. cross (A, B)

[-3, 6, -3]

外積は(-3, 6, -3)となります。

これは、前に手動で計算した外積に対応します。

例 2: 独自の関数を定義する

次のコードは、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

#definevectors
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で行列に行を追加する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です