Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Pythonによるベクトルの実装 | 線形代数の基礎
Pythonによるデータサイエンスのための数学

bookPythonによるベクトルの実装

メニューを表示するにはスワイプしてください

Python におけるベクトルの定義

Python では、NumPy 配列を使用して 2 次元ベクトルを次のように定義します:

1234567
import numpy as np v1 = np.array([2, 1]) v2 = np.array([1, 3]) print(f'v1 = {v1}') print(f'v2 = {v2}')
copy

これらは次のベクトルを表します:

v1=(2,1),v2=(1,3)\vec{v}_1 = (2, 1), \quad \vec{v}_2 = (1, 3)

これらのベクトルは加算、減算、ドット積や大きさの計算に利用できます。

ベクトルの加算

ベクトルの加算を計算する方法:

1234567
import numpy as np v1 = np.array([2, 1]) v2 = np.array([1, 3]) v3 = v1 + v2 print(f'v3 = v1 + v2 = {v3}')
copy

この計算は次のようになります:

(2,1)+(1,3)=(3,4)(2, 1) + (1, 3) = (3, 4)

これはベクトル加算の規則と一致します:

a+b=(a1+b1,  a2+b2)\vec{a} + \vec{b} = (a_1 + b_1, \; a_2 + b_2)

ベクトルの大きさ(長さ)

Pythonで大きさを計算する方法:

np.linalg.norm(v)

ベクトル [3, 4] の場合:

123
import numpy as np print(np.linalg.norm([3, 4])) # 5.0
copy

この計算には次の式を使用:

a=a12+a22|\vec{a}| = \sqrt{a_1^2 + a_2^2}

ドット積

ドット積の計算方法:

123
import numpy as np print(np.dot([1, 2], [2, 3]))
copy

結果:

[1,2][2,3]=12+23=8[1, 2] \cdot [2, 3] = 1 \cdot 2 + 2 \cdot 3 = 8

ドット積の一般的なルール:

ab=a1b1+a2b2\vec{a} \cdot \vec{b} = a_1 b_1 + a_2 b_2

Matplotlibによるベクトルの可視化

Matplotlibのquiver()関数を使用して、ベクトルおよびその合成ベクトルを表す矢印を描画可能。各矢印はベクトルの位置、方向、長さを示す。

  • 青: v1\vec{v}_1(原点から描画)
  • 緑: v2\vec{v}_2v1\vec{v}_1の先端から開始)
  • 赤: 合成ベクトル(原点から最終的な先端まで描画)

例:

123456789101112131415161718
import matplotlib.pyplot as plt fig, ax = plt.subplots() # v1 ax.quiver(0, 0, 2, 1, color='blue', angles='xy', scale_units='xy', scale=1) # v2 (head-to-tail) ax.quiver(2, 1, 1, 3, color='green', angles='xy', scale_units='xy', scale=1) # resultant ax.quiver(0, 0, 3, 4, color='red', angles='xy', scale_units='xy', scale=1) plt.xlim(0, 5) plt.ylim(0, 5) plt.grid(True) plt.title('Vector Addition (Head-to-Tail Method)') plt.show()
copy

パラメータ(最初のquiver呼び出しに基づく):

ax.quiver(0, 0, 2, 1, color='blue', angles='xy', scale_units='xy', scale=1)
  • 0, 0 – ベクトルの始点(原点)
  • 2, 1 – x方向およびy方向のベクトル成分
  • color='blue' – 矢印の色を青に設定
  • angles='xy' – デカルト座標(x–y平面)で矢印を描画
  • scale_units='xy' – 軸と同じ単位で矢印をスケーリング
  • scale=1 – 矢印の長さを実際の長さに維持(自動スケーリングなし)

このプロットはヘッド・トゥ・テイル法によるベクトル加算を示し、赤いベクトルが和 v1+v2\vec{v}_1 + \vec{v}_2 を表す。

question mark

[1,2][1,2][2,3][2,3] のドット積を正しく計算するコードはどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  2
some-alt