更新:2024/11/22

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

はるか
はるか
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を使う。
PR