高校物理、大学受験、大学物理、プログラミングの記事を書きます。

Python ベクトル内積 Numpy(np.inner)

2019/01/20
 
この記事を書いている人 - WRITER -

目標

 

Pythonを使ってベクトルの内積計算を行います。

スポンサーリンク

ベクトルの表記

 

ベクトルを列ベクトルで表記すると、

\begin{align*}\boldsymbol{a}=\begin{pmatrix}
a_{x}\\ a_{y}
\\a_{z}
\end{pmatrix}\cdot\cdot\cdot (1)\end{align*}

となります。

 

行ベクトルで書く場合は、(1)の転置行列として表記します。

\begin{align*}\boldsymbol{{}^t\!a}=\begin{pmatrix}
a_{x}& a_{y} & a_{z}
\end{pmatrix}\cdot\cdot\cdot (2)\end{align*}

 

ベクトルの内積

 

ベクトルの内積は、2つのベクトルの各成分についての積を足し合わせたものです。

今、2つのベクトルを\(\boldsymbol{a}\)と\(\boldsymbol{b}\)とします。

 

ベクトルの内積の表記

\begin{align*}
\boldsymbol{{}^t\!a}\boldsymbol{b}
=\begin{pmatrix}a_{x}& a_{y} & a_{z}\end{pmatrix}\begin{pmatrix}
b_{x}\\ b_{y}\\b_{z}
\end{pmatrix}=a_{x}b_{x}+a_{y}b_{y}+a_{z}b_{z}
\cdot\cdot\cdot (3)\end{align*}

 


高校生まではこうしていたかなと思います。

\begin{align*}
\boldsymbol{a}\cdot \boldsymbol{b}=(a_{x} \,a_{y}  \,a_{z})\cdot(b_{x} \,b_{y} \,b_{z})=a_{x}b_{x}+a_{y}b_{y}+a_{z}b_{z}
\cdot\cdot\cdot (4)\end{align*}

このように考えても良いでしょう。


 

ベクトルの内積を計算

 

例えば次の2つのベクトルの内積を計算してみましょう。

\begin{align*}\boldsymbol{a}=\begin{pmatrix}
4\\ 5
\\6
\end{pmatrix}\cdot\cdot\cdot (5)\end{align*}

\begin{align*}\boldsymbol{b}=\begin{pmatrix}
5\\ 3
\\7
\end{pmatrix}\cdot\cdot\cdot (6)\end{align*}

 

ベクトルの内積は、

\begin{align*}
\boldsymbol{{}^t\!a}\boldsymbol{b}
=\begin{pmatrix}4& 5 & 6 \end{pmatrix}\begin{pmatrix}
5 \\ 3 \\ 7
\end{pmatrix}=4*5+5*3+6*7=77
\cdot\cdot\cdot (7)\end{align*}

 

Pythonでベクトルの内積「np.inner」を計算

 

Pythonでベクトルのベクトルの内積は「numpyのinner関数」という関数を使います。

先ほどと同様に、実行すると下記のようになります。

 

手計算で出した答えと同じですね。

 

※ちなみに外積は「numpyのcross関数」を使います。
内積が「inner」で、外積が「cross」と覚えておきましょう。

 

ベクトルの内積のPythonの別表記

 

ベクトルの内積は「numpyのdot関数」を使っても計算できます。

これを実行すると次の答えを返してくれます。

「nu.dot関数」を使った場合と同じ結果になりましたね。

 

 

この記事を書いている人 - WRITER -

コメントを残す

Copyright© 宇宙に入ったカマキリ , 2018 All Rights Reserved.