線形代数学 I 第2回 講義ノート
1. 講義情報と予習ガイド
- 講義回: 第2回
- テーマ: ベクトルの定義と基本操作①
- 関連項目: ベクトル空間、ベクトル演算、幾何学的解釈
- 予習内容: 高校数学の座標平面と空間座標の基礎知識を復習しておくこと
- スライド: リンク
2. 学習目標
- 実ベクトルの定義と表記方法を理解する
- ベクトルの加法とスカラー倍の演算規則を習得する
- ベクトル演算の幾何学的意味を理解する
- Pythonを用いてベクトル演算を実装できるようになる
3. 基本概念
3.1 実ベクトルの定義
定義: \(n\)次元実ベクトルとは、\(n\)個の実数を縦に並べたもので、以下のように表記される:
\[\mathbf{v} = \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix}\]ここで \(v_1, v_2, \ldots, v_n\) は実数である。また、ベクトルの1つ1つの要素を成分という。
このようなベクトルの集合を \(\mathbb{R}^n\) と表し、\(n\)次元実ベクトル空間と呼びます。特に重要な例として:
- \(\mathbb{R}^2\): 2次元実ベクトル空間(平面上のベクトル)
- \(\mathbb{R}^3\): 3次元実ベクトル空間(空間上のベクトル)
データサイエンスでは、データの各サンプルを1つのベクトルとして扱うことが一般的です。例えば、ある人の「年齢、身長、体重、血圧」といった4つの健康指標は4次元ベクトルとして表現できます。
3.2 実ベクトルの表し方
ベクトルは以下のような様々な方法で表記されます:
-
成分表示: \(\(\mathbf{v} = \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix}\)\)
-
太字記号: \(\mathbf{v}\) や \(\vec{v}\)
-
列ベクトル: \(\(\mathbf{v} = (v_1, v_2, \ldots, v_n)^T\)\) ここで \(T\) は転置という操作で、縦と横を入れ替える操作です。本来なら縦だけど、紙面の都合で横表記をしたい場合などに、\(T\)を付けて本来縦向きであることを表します。
3.3 零ベクトル
定義: 零ベクトル \(\mathbf{0}\) とは、すべての成分が0であるベクトル
\[\mathbf{0} = \begin{pmatrix} 0 \\ 0 \\ \vdots \\ 0 \end{pmatrix}\]
零ベクトルは加法演算の単位元としての役割を持ちます。
4. 理論と計算の方法
4.1 ベクトルの和
定義: 2つの同じ次元のベクトル \(\mathbf{v} = (v_1, v_2, \ldots, v_n)^T\) と \(\mathbf{w} = (w_1, w_2, \ldots, w_n)^T\) に対して、その和 \(\mathbf{v} + \mathbf{w}\) は次のように定義する。:
\[\mathbf{v} + \mathbf{w} = \begin{pmatrix} v_1 + w_1 \\ v_2 + w_2 \\ \vdots \\ v_n + w_n \end{pmatrix}\]
ベクトルの加法は「対応する成分同士を足す」操作。ベクトルの和は同じ成分数(大きさ)のベクトル同士でしか定義されません。
例:
\(\mathbf{v} = \begin{pmatrix} 1 \\ 3 \\ 5 \end{pmatrix}\) と \(\mathbf{w} = \begin{pmatrix} 2 \\ -1 \\ 4 \end{pmatrix}\) のとき
4.2 ベクトル加法の性質
ベクトルの加法は、ベクトルの和の定義から、以下の性質があります:
- 結合法則: \((\mathbf{u} + \mathbf{v}) + \mathbf{w} = \mathbf{u} + (\mathbf{v} + \mathbf{w})\)
- 交換法則: \(\mathbf{v} + \mathbf{w} = \mathbf{w} + \mathbf{v}\)
- 単位元: 任意のベクトル \(\mathbf{v}\) に対して \(\mathbf{v} + \mathbf{0} = \mathbf{v}\)
- 逆元: 任意のベクトル \(\mathbf{v}\) に対して \(\mathbf{v} + (-\mathbf{v}) = \mathbf{0}\) となる \(-\mathbf{v}\) が存在する
これらの性質により、ベクトルの集合は加法に関して「可換(順番の入れ替えがOK)」となります。
4.3 ベクトルのスカラー倍
定義: ベクトル \(\mathbf{v} = (v_1, v_2, \ldots, v_n)^T\) と実数 \(\alpha\) に対して、\(\mathbf{v}\) のスカラー倍 \(\alpha\mathbf{v}\) は次のように定義される:
\[\alpha\mathbf{v} = \begin{pmatrix} \alpha v_1 \\ \alpha v_2 \\ \vdots \\ \alpha v_n \end{pmatrix}\]
ベクトルのスカラー倍は「すべての成分に同じ実数をかける」操作です。
例: \(\mathbf{v} = \begin{pmatrix} 2 \\ 3 \\ -1 \end{pmatrix}\) のとき、\(3\mathbf{v}\) は
4.4 スカラー倍の性質
スカラー倍は、その定義から次の性質があります:
- \(1\mathbf{v} = \mathbf{v}\)
- \(\alpha(\beta\mathbf{v}) = (\alpha\beta)\mathbf{v}\)
- \((\alpha + \beta)\mathbf{v} = \alpha\mathbf{v} + \beta\mathbf{v}\)
- \(\alpha(\mathbf{v} + \mathbf{w}) = \alpha\mathbf{v} + \alpha\mathbf{w}\)
4.5 ベクトルの幾何学的解釈
二次元平面上のベクトル
\(\mathbb{R}^2\) のベクトル \(\mathbf{v} = (v_1, v_2)^T\) は、原点 \((0,0)\) から点 \((v_1, v_2)\) へ向かう矢印として幾何学的に解釈でき、
ベクトルの和の幾何学的意味
2つのベクトル \(\mathbf{v}\) と \(\mathbf{w}\) の和 \(\mathbf{v} + \mathbf{w}\) は、ベクトル \(\mathbf{v}\) の終点から \(\mathbf{w}\) と平行なベクトルを描いたときの終点へ向かうベクトルです。これは「平行四辺形の法則」とも呼ばれます。
スカラー倍の幾何学的意味
ベクトル \(\mathbf{v}\) のスカラー倍 \(\alpha\mathbf{v}\) は:
- \(\alpha > 0\) のとき:\(\mathbf{v}\) と同じ方向で、長さが \(|\alpha|\) 倍
- \(\alpha < 0\) のとき:\(\mathbf{v}\) と反対方向で、長さが \(|\alpha|\) 倍
- \(\alpha = 0\) のとき:零ベクトル
5. Pythonによる実装と可視化
Google Colaboratory による可視化の例を見てみましょう(リンク)
5.1 NumPyを用いたベクトル演算
import numpy as np
import matplotlib.pyplot as plt
# ベクトルの定義
v = np.array([3, 2])
w = np.array([1, 4])
# ベクトルの和
v_plus_w = v + w
print(f"v + w = {v_plus_w}")
# スカラー倍
alpha = 2.5
alpha_v = alpha * v
print(f"{alpha} * v = {alpha_v}")
# マイナスのスカラー倍
beta = -1.5
beta_w = beta * w
print(f"{beta} * w = {beta_w}")
5.2 ベクトルの可視化
# ベクトルを描画する関数
def plot_vector(vector, origin=[0, 0], color='b', label=None):
plt.arrow(origin[0], origin[1], vector[0], vector[1],
head_width=0.2, head_length=0.3, fc=color, ec=color, label=label)
# グラフの設定
plt.figure(figsize=(10, 8))
plt.axhline(y=0, color='k', linestyle='-', alpha=0.3)
plt.axvline(x=0, color='k', linestyle='-', alpha=0.3)
plt.grid(alpha=0.3)
# ベクトルのプロット
plot_vector(v, color='red', label='v')
plot_vector(w, color='blue', label='w')
plot_vector(v_plus_w, color='green', label='v + w')
# v + wの別解法: vの終点からwを描く
plot_vector(w, origin=v, color='purple', label='w (from v)')
# スカラー倍のプロット
plot_vector(alpha_v, color='orange', label=f'{alpha}v')
plot_vector(beta_w, color='brown', label=f'{beta}w')
# グラフの設定
plt.xlim(-2, 10)
plt.ylim(-2, 10)
plt.title('ベクトルの加法とスカラー倍の幾何学的意味')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.axis('equal') # アスペクト比を1:1に
plt.show()
5.3 健康データにおけるベクトル表現の例
# 健康データの例(年齢、身長、体重、血圧、コレステロール値)
patient1 = np.array([35, 170, 70, 120, 200])
patient2 = np.array([42, 165, 80, 135, 220])
# 平均値
average = (patient1 + patient2) / 2
print("平均値:", average)
# 年齢による重み付け(年齢が高いほど重視する場合)
weight1 = patient1[0] / (patient1[0] + patient2[0]) # 35/(35+42) ≈ 0.45
weight2 = patient2[0] / (patient1[0] + patient2[0]) # 42/(35+42) ≈ 0.55
weighted_avg = weight1 * patient1 + weight2 * patient2
print("年齢による重み付け平均:", weighted_avg)
6. 演習問題
基本問題
- 次のベクトルの計算を行いなさい。
(a) \(\begin{pmatrix} 3 \\ -2 \\ 5 \end{pmatrix} + \begin{pmatrix} -1 \\ 4 \\ 2 \end{pmatrix}\)
(b) \(2 \begin{pmatrix} 4 \\ 0 \\ -3 \end{pmatrix} - 3 \begin{pmatrix} 1 \\ -2 \\ 2 \end{pmatrix}\)
-
\(\mathbf{a} = \begin{pmatrix} 2 \\ 1 \end{pmatrix}\), \(\mathbf{b} = \begin{pmatrix} -1 \\ 3 \end{pmatrix}\) とするとき、\(2\mathbf{a} - \mathbf{b}\) を求めなさい。また、この計算を幾何学的に解釈し、図示しなさい。
-
ベクトル \(\mathbf{a} = \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix}\) と \(\mathbf{b} = \begin{pmatrix} 4 \\ 5 \\ 6 \end{pmatrix}\) に対して、\(\mathbf{x} = 2\mathbf{a} + \mathbf{b}\) と \(\mathbf{y} = \mathbf{a} - 3\mathbf{b}\) を求めなさい。
応用問題
- ある地域の5日間の気温(°C)が \(\mathbf{t}_1 = \begin{pmatrix} 25 \\ 27 \\ 24 \\ 26 \\ 28 \end{pmatrix}\) で、別の地域の同じ5日間の気温が \(\mathbf{t}_2 = \begin{pmatrix} 22 \\ 23 \\ 21 \\ 24 \\ 25 \end{pmatrix}\) だったとします。
(a) 二つの地域の気温差 \(\mathbf{t}_1 - \mathbf{t}_2\) を求めなさい。
(b) 両地域の平均気温 \(\frac{1}{2}(\mathbf{t}_1 + \mathbf{t}_2)\) を求めなさい。
(c) 気象予報によると、明日の気温は今日より2°C上昇し、明後日は明日より1°C下降すると予測されています。ベクトル演算を用いて、この予測を表現しなさい。
- 3人の患者の健康データ(年齢、収縮期血圧、拡張期血圧、血糖値)が以下のベクトルで表されるとします:
\(\(\mathbf{p}_1 = \begin{pmatrix} 45 \\ 130 \\ 85 \\ 95 \end{pmatrix}, \quad \mathbf{p}_2 = \begin{pmatrix} 62 \\ 145 \\ 90 \\ 110 \end{pmatrix}, \quad \mathbf{p}_3 = \begin{pmatrix} 38 \\ 120 \\ 80 \\ 90 \end{pmatrix}\)\)
(a) 3人の平均値 \(\frac{1}{3}(\mathbf{p}_1 + \mathbf{p}_2 + \mathbf{p}_3)\) を求めなさい。
(b) 標準的な健康値を \(\mathbf{s} = \begin{pmatrix} - \\ 120 \\ 80 \\ 100 \end{pmatrix}\) とします(年齢は基準としません)。各患者のデータと標準値との差 \(\mathbf{p}_i - \mathbf{s}\) を計算し、どの患者が最も標準から離れていると考えられますか?