【Sympy】行列の和の計算方法について



1. Sympyで行列の和を計算する方法
Pythonの数式処理ライブラリであるSympyは、数学的な計算をシンプルに行うための便利なツールです。この記事では、Sympyを使って行列の和を計算する方法について、わかりやすく解説します。
2. 行列の和とは
行列の和は、同じサイズ(行数と列数)の行列同士を足し合わせる操作です。例えば、次のような2つの行列を考えます。
$$A=\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}$$
行列の和は対応する要素を加算します。
$$A+B= \begin{bmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{bmatrix} = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix}$$
Sympyでは、この操作を非常に簡単に実現できます。
3. Sympyで行列を定義する
Sympyでは、Matrix
を使って行列を作成します。例えば、先ほどの行列 Aと B を以下のように定義できます。
from sympy import Matrix
# 行列を定義
A = Matrix([[1, 2], [3, 4]])
B = Matrix([[5, 6], [7, 8]])
print("行列 A:")
print(A)
print("行列 B:")
print(B)
実行結果:

Matrix
を使う。3.1. 行列の和を計算する
行列の和は、単純に +
演算子を使うだけで計算できます。
# 行列の和
C = A + B
print("行列 A + B:")
print(C)
実行結果:
これで行列の和が簡単に計算できました。
3.2. シンボルを使った行列の和
Sympyの強みは、数値だけでなくシンボルを扱える点です。シンボルを使った行列の和を計算してみましょう。
from sympy import Matrix, symbols
# シンボルを定義
x, y, z, w = symbols('x y z w')
# シンボル行列を定義
A = Matrix([[x, y], [z, w]])
B = Matrix([[1, 2], [3, 4]])
# 行列の和
C = A + B
print("シンボル行列 A + 数値行列 B:")
print(C)
実行結果:


4. サイズが異なる行列を足すとどうなる?
行列の和を計算する際、行列のサイズが異なるとエラーになります。以下の例を見てみましょう。
A = Matrix([[1, 2], [3, 4]])
B = Matrix([[5, 6, 7], [8, 9, 10]])
# 行列のサイズが異なる場合
try:
C = A + B
except Error as e:
print(f"エラー: {e}")
実行結果:
Matrix size mismatch: (2, 2) + (2, 3).
行列のサイズが一致しない場合は計算ができない旨のエラーメッセージが表示されます。
5. 応用例:ランダムな行列の和
ランダムに生成した行列の和を計算することも可能です。Sympyにはランダムな行列を生成するためにrandMatrix
が用意されています。
from sympy import randMatrix
# ランダムな行列を生成
A = randMatrix(2, 2, min=0, max=10)
B = randMatrix(2, 2, min=0, max=10)
print("ランダム行列 A:")
print(A)
print("ランダム行列 B:")
print(B)
# ランダム行列の和
C = A + B
print("ランダム行列 A + B:")
print(C)


randMatrix
を使う。