Python でベクトルの足し算や引き算の結果を描画してみる

ベクトル

プログラミングの数学でかなり重要なベクトルについて勉強したので、その内容を復習を兼ねてまとめてみました。

この記事はこんな人におすすめ。

  • ベクトルを描画したい
  • ベクトルの足し算と引き算の結果を描画したい。

プログラミング無料体験はこちら↓↓↓


ベクトルの描画

まずPythonでベクトルを描画するコードを見ていきましょう。

グラフ上にベクトルは何本でも書けるのですが、まずは基本の矢印1本にの描き方をみていきます。

ベクトルを1本描画する

以下のベクトルを描画してみます。

手順としては、

  1. 必要なライブラリのインポート
  2. グラフの設定
  3. 座標の設定
  4. 描画

以下が必要なライブラリ。

  • numpy
  • matplotlib

では実際のコードを見ていきましょう。

# 必要なライブラリのインポート
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'MS Gothic' # 豆腐化防止

# グラフの設定
fig, ax = plt.subplots()
ax.set_xlim(0,5)
ax.set_ylim(0,5)
ax.set_title("ベクトルの演算")

# 座標の設定
x, y = 0,0
u, v = 2,2

# 描画
ax.quiver(x,y,u,v, color = 'red', angles = 'xy', scale_units = 'xy', scale= 1)

コードを実行すると  を描画することができました。

ベクトルを2本描画する

次に以下のベクトル2本を描画していきます。

ベクトルを1本描く場合と手順は同じですが、座標の設定が多少異なります。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'MS Gothic' # 豆腐化防止

fig, ax = plt.subplots()
ax.set_xlim(0,3)
ax.set_ylim(-3,3)
ax.set_title("ベクトルの演算")

# 座標の設定
x, y = [0,0], [0,0] # 起点
u, v = [2,2], [2,-1] # 終点

# 描画
ax.quiver(x,y,u,v, color = ['red', 'green'], angles = 'xy', scale_units = 'xy', scale= 1)
plt.grid()

# テキスト挿入
ax.text(2,2, "a:[2,2]",color = "red", size = 15)
ax.text(2,-1,"b:[2,-1]", color = "green", size = 15)

上記のコードを実行すると、以下のようにベクトルを描画できます。

ベクトルの演算

次に以下のベクトルで演算を行ってみます。

手順として、ベクトルの座標をnumpy配列で定義し、演算を行います。

import numpy as np
# ベクトルの生成
a = np.array([2,2])
b = np.array([2,-1])

ベクトルの加算

ではベクトル同士の足し算を行ってみましょう。

これらのベクトルを足すと、 。

# 足し算

a + b
array([4, 1])

以下のコードを実行し、結果をプロットしてみましょう。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams['font.family'] = 'MS Gothic' # 豆腐化防止

o = np.array([0,0])
v_a = np.array([2,2])
v_b = np.array([2,-1])
vector = [(o, v_a, 'b'), (o, v_b, 'g' ), (o, v_a+v_b, 'r')]
fig ,ax= plt.subplots(figsize=(6,6)) 
for tail, head, color in vector:
    ax.quiver(*tail,*head,
               color=color, angles='xy', scale_units='xy',scale=1, linestyles='dashed',  linewidth=1)
ax.set_title('vector sum', fontsize=20)        
ax.set_xlabel('x') # x軸ラベル
ax.set_ylabel('y') # y軸ラベル
ax.set_xlim(0, 5)
ax.set_ylim(-2, 3)
plt.grid()
ax.text(2,2, "a:[2,2]",color = "blue", size = 15)
ax.text(2,-1,"b:[2,-1]", color = "green", size = 15)
ax.text(4,1, "a + b:[4,1]",color = "red", size = 15)
plt.show()

以下のように、ベクトルの足し算の結果をプロットすることができました。

引き算

次に を使って、ベクトル同士の引き算を行ってみます。

ちなみに引き算の結果は右の通り、 ですが、Python で計算するとどうなるでしょうか。

# 引き算

a - b
array([0, 3])

ベクトル同士の引き算の結果は上の通りですが、これを描画してみましょう。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams['font.family'] = 'MS Gothic' # 豆腐化防止

o = np.array([0,0])
v_a = np.array([2,2])
v_b = np.array([2,-1])
vector = [(o, v_a, 'b'), (o, v_b, 'g' ), (o, v_a-v_b, 'r')]
fig ,ax= plt.subplots(figsize=(6,6)) 
for tail, head, color in vector:
    ax.quiver(*tail,*head,
               color=color, angles='xy', scale_units='xy',scale=1, linestyles='dashed',  linewidth=1)
ax.set_title('vector sum', fontsize=20)        
ax.set_xlabel('x') # x軸ラベル
ax.set_ylabel('y') # y軸ラベル
ax.set_xlim(-1, 5)
ax.set_ylim(-2, 4)
plt.grid()
ax.text(2,2, "a:[2,2]",color = "blue", size = 15)
ax.text(2,-1,"b:[2,-1]", color = "green", size = 15)
ax.text(0,3, "a - b:[0,3]",color = "red", size = 15)
plt.show()

上記コードを実行すると、ベクトルの引き算の結果を描画することができました。

整数との掛け算

次に以下のように、整数との掛け算を行います。

これをプログラムで計算してみます。

# 掛け算

2 * a
array([4, 4])

計算は合っているので同じように、描画してみましょう。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams['font.family'] = 'MS Gothic' # 豆腐化防止

o = np.array([0,0])
v_a = np.array([2,2])
v_b = np.array([2,-1])
vector = [(o, v_a, 'b'), (o, v_a*2, 'r')]
fig ,ax= plt.subplots(figsize=(6,6)) 
for tail, head, color in vector:
    ax.quiver(*tail,*head,
               color=color, angles='xy', scale_units='xy',scale=1, linestyles='dashed',  linewidth=1)
ax.set_title('vector sum', fontsize=20)        
ax.set_xlabel('x') # x軸ラベル
ax.set_ylabel('y') # y軸ラベル
ax.set_xlim(0, 5)
ax.set_ylim(0, 5)
plt.grid()
ax.text(2, 2, "a:[2,2]",color = "blue", size = 15)
ax.text(4, 4, "2 x a :[4,4]",color = "red", size = 15)
plt.show()

上記コードを実行すると以下のようなプロットを描画することができました。

 

プログラミング無料体験はこちら↓↓↓


関連記事:

Python を使ったベクトルの内積の求め方2種
ベクトルの内積と言っても「何の話?」という感じですが、一応高校の数学過程で習うものです。 しかし使わなければ覚えているわけはないですよね。 そこでpython の練習もかねて、プログラミングには欠かせないベクトルの内積について、...
Python でベクトルの外積を求め、描画する
ベクトル外積は内積とともに重要な概念なので、いくつかの覚えておいたほうがいいポイントについてこの記事で書いてみました。 この記事はこんな人におすすめ。 ベクトル外積について知りたい ベクトルの外積を...

コメント

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