ベクトルの足し算と引き算
numpyを使って、ベクトル計算をやってみます。
単純にベクトルの足し算と引き算をします。
今回使うベクトルは、
$$
\begin{eqnarray}
a =
\begin{bmatrix}
1 \\
1 \\
\end{bmatrix}
,
b =
\begin{bmatrix}
2 \\
3 \\
\end{bmatrix}
\end{eqnarray}
$$
\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}
$$
\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}
$$
\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}
$$
\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}
$$
\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}
$$
\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}
$$
\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 =
\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| = \sqrt{a_1^2+a_2^2+a_3^2}
\end{eqnarray}
$$
例えば、
$$
\begin{eqnarray}
a =
\begin{bmatrix}
2 \\
4 \\
4
\end{bmatrix}
\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}
$$
\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)