SymPyでベクトルの外積を計算する方法について


はるか
SymPyで外積を計算したい。

ふゅか
SymPyのcrossdotメソッド外積を計算することができるわ!
1. 外積とは
3次元のベクトルを$\vec{a}=\begin{bmatrix}a_x \\ a_y \\ a_z\end{bmatrix}$、$\vec{b}=\begin{bmatrix}b_x \\ b_y \\ b_z\end{bmatrix}$とすると、$\vec{a}$、$\vec{b}$の外積は以下のようになる。
$$ \vec{a} \times \vec{b} = \begin{bmatrix} a_y b_z - a_z b_y \\ a_z b_x - a_x b_z \\ a_x b_y - a_y b_x \end{bmatrix} $$
外積は次の記事で解説しています。
2. SymPyを利用した外積の計算
SymPyを使用してベクトルの外積を計算することができます。外積は3次元空間での2つのベクトル間の操作で、結果として別のベクトルを生成します。以下に、SymPyを使用して外積を計算する基本的な方法を示します。
2.1. 外積の基本的な使用例
まず、SymPyを使用して2つのベクトルの外積を計算する例を示します。
import sympy as sp
# ベクトルの定義
v1 = sp.Matrix([1, 2, 3])
v2 = sp.Matrix([4, 5, 6])
# 外積の計算
cross_product = v1.cross(v2)
print("外積:", cross_product)
このコードは、ベクトル \(\mathbf{v1} = \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix}\) と \(\mathbf{v2} = \begin{pmatrix} 4 \\ 5 \\ 6 \end{pmatrix}\) の外積を計算し、結果を表示します。
2.2. シンボリックなベクトルの外積
SymPyを使用してシンボリックなベクトルの外積を計算することもできます。
# シンボリック変数の定義
x, y, z, a, b, c = sp.symbols('x y z a b c')
# ベクトルの定義
v1 = sp.Matrix([x, y, z])
v2 = sp.Matrix([a, b, c])
# 外積の計算
cross_product = v1.cross(v2)
cross_product2 = v2.cross(v1)
print("外積:", cross_product)
print("外積:", cross_product2)
このコードは、ベクトル \(\mathbf{v1} = \begin{pmatrix} x \\ y \\ z \end{pmatrix}\) と \(\mathbf{v2} = \begin{pmatrix} a \\ b \\ c \end{pmatrix}\) の外積を計算し、結果を表示します。

はるか
符号が反転しているのが分かるね。

ふゅか
その通り。これが外積の面白いところよ。
PR