【Python、基礎数学、numpy】ベクトル計算関連

ベクトルの足し算と引き算

numpyを使って、ベクトル計算をやってみます。
単純にベクトルの足し算と引き算をします。

今回使うベクトルは、

$$
\begin{eqnarray}
a =
\begin{bmatrix}
1 \\
1 \\
\end{bmatrix}
,
b =
\begin{bmatrix}
2 \\
3 \\
\end{bmatrix}
\end{eqnarray}
$$

とします。

足し算

\(a+b\) は以下のようになります。

$$
\begin{eqnarray}
a+b =
\begin{bmatrix}
1 \\
1 \\
\end{bmatrix}
+
\begin{bmatrix}
2 \\
3 \\
\end{bmatrix}
=
\begin{bmatrix}
3 \\
4 \\
\end{bmatrix}
\end{eqnarray}
$$

まぁシンプルですね。
pythonを使って確認してみましょう。

>>> import numpy as np

>>> a = np.array([1,1])
>>> b = np.array([2,3])
>>> a+b
array([3, 4])

引き算

$$
\begin{eqnarray}
a+b =
\begin{bmatrix}
1 \\
1 \\
\end{bmatrix}

\begin{bmatrix}
2 \\
3 \\
\end{bmatrix}
=
\begin{bmatrix}
-1 \\
-2 \\
\end{bmatrix}
\end{eqnarray}
$$

pythonで確認します。

>>> import numpy as np

>>> a = np.array([1,1])
>>> b = np.array([2,3])
>>> a-b
array([-1, -2])

ベクトルの掛け算(内積)

今回使うベクトルは、

$$
\begin{eqnarray}
a =
\begin{bmatrix}
2 \\
4 \\
\end{bmatrix}
,
b =
\begin{bmatrix}
3 \\
2 \\
\end{bmatrix}
\end{eqnarray}
$$

ベクトルの内積は\(a \cdot b \)次のように計算できます。

$$
\begin{eqnarray}
a \cdot b =
\begin{bmatrix}
2 \\
4 \\
\end{bmatrix}
\cdot
\begin{bmatrix}
3 \\
2 \\
\end{bmatrix}
=
2 \times 3 + 4 \times 2 = 14
\end{eqnarray}
$$

pythonで確認します。
numpyのdot関数を使って内積を計算できます。

>>> a = np.array([2,4])
>>> b = np.array([3,2])
>>> a.dot(b)
14

ベクトルのスカラー倍

以下のベクトルを用います。

$$
\begin{eqnarray}
a =
\begin{bmatrix}
2 \\
1
\end{bmatrix}
\end{eqnarray}
$$

\(a\)にスカラー値(2)をかけます。

$$
\begin{eqnarray}
2 \times a = 2 \times
\begin{bmatrix}
2 \\
1
\end{bmatrix}
=
\begin{bmatrix}
2 \times 2 \\
2 \times 1
\end{bmatrix}
=
\begin{bmatrix}
4 \\
2
\end{bmatrix}
\end{eqnarray}
$$

pythonで確認してみます。

>>> a = np.array([2,1])
>>> 2*a
array([4, 2])

ベクトルの大きさ

以下のベクトル\(a\)の大きさ\(|a|\)は、

$$
\begin{eqnarray}
a =
\begin{bmatrix}
a_1 \\
a_2 \\
a_3
\end{bmatrix}
\end{eqnarray}
$$

次のようになります。

$$
\begin{eqnarray}
|a| = \sqrt{a_1^2+a_2^2+a_3^2}
\end{eqnarray}
$$

例えば、

$$
\begin{eqnarray}
a =
\begin{bmatrix}
2 \\
4 \\
4
\end{bmatrix}
\end{eqnarray}
$$

の時の\(|a|\)は

$$
\begin{eqnarray}
|a| &=& \sqrt{2^2+4^2+4^2} \\
&=& \sqrt{4+16+16} \\
&=& \sqrt{36} \\
&=& 6
\end{eqnarray}
$$

pythonで試してみます。
pythonではnumpyのlinalg.normを用いることで簡単に計算できます。

>>> a = np.array([2,4,4])
>>> np.linalg.norm(a)
6.0

参考文献

Pythonで動かして学ぶ!あたらしい機械学習の教科書 第2版 (AI & TECHNOLOGY)

タイトルとURLをコピーしました