-
内積を使用する方法: ベクトルAとベクトルBの内積を求めます。内積の計算方法は、2つのベクトルの各成分を掛け合わせ、それらの総和を取ることです。例えば、ベクトルA = (a1, a2, a3) とベクトルB = (b1, b2, b3) の内積は、a1b1 + a2b2 + a3*b3 となります。次に、内積をベクトルAとベクトルBの大きさの積で割ります。ベクトルの大きさは、各成分の値を2乗し、それらの総和の平方根を取ることで求めることができます。ベクトルAの大きさは、sqrt(a1^2 + a2^2 + a3^2) となります。したがって、2つのベクトルの内積をベクトルの大きさの積で割ることで、cosθ (θは角度) を求めることができます。最後に、arccos関数を使用してcosθから角度を求めます。
以下はPythonでの内積を使用したコード例です:
import numpy as np def angle_between_vectors(vector1, vector2): dot_product = np.dot(vector1, vector2) norm1 = np.linalg.norm(vector1) norm2 = np.linalg.norm(vector2) cos_theta = dot_product / (norm1 * norm2) theta = np.arccos(cos_theta) return np.degrees(theta)
この関数は、2つのベクトルを引数として受け取り、その間の角度を度数法で返します。
-
ベクトルの方向ベクトルを使用する方法: ベクトルAとベクトルBの方向ベクトルをそれぞれ計算します。方向ベクトルは、ベクトルの大きさで割ることで得られます。次に、arccos関数を使用して、2つの方向ベクトルの内積から角度を求めます。
以下はPythonでの方向ベクトルを使用したコード例です:
import numpy as np def angle_between_vectors(vector1, vector2): direction1 = vector1 / np.linalg.norm(vector1) direction2 = vector2 / np.linalg.norm(vector2) dot_product = np.dot(direction1, direction2) theta = np.arccos(dot_product) return np.degrees(theta)
この関数も、2つのベクトルを引数として受け取り、その間の角度を度数法で返します。