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

Pythonによるベクトルの実装

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

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}')

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

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}')

これは次の計算を行います:

(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

この式を使用:

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

ドット積

ドット積の計算方法:

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

これにより、次のようになります:

[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()

パラメータ(最初の 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つを試してチャットを始めてください

Pythonによるベクトルの実装

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}')

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

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}')

これは次の計算を行います:

(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

この式を使用:

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

ドット積

ドット積の計算方法:

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

これにより、次のようになります:

[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()

パラメータ(最初の 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 を表す。

すべて明確でしたか?

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

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

セクション 4.  2
some-alt