好奇心の横断歩道を創る!

自分の思考をラバーダック・デバッグするためのブログ

SymPyで、変数を含む行列式の計算方法をメモ

変数を含む行列式の計算をしたかった。ただ、やり方がわからず。

ググってもドンピシャな内容が見つからず、結局10分くらいかかってしまった。この記事を書ききるのにかかるのは大体15分だ。またいつか複数回にわたって同じことを調べそうなので、書いておく方が良いと判断し、メモ。

 

数値だけの行列式はNumPyで計算している。ただ、Numpyでは変数も含めた行列式の展開ができない。おそらくできない。

3×3までは簡単な手計算も、4×4からは途端に面倒になる。関数電卓をちょっと触った感じだと、無理そうだったし(数値だけならできる)、かと言って、金持ちじゃないからMathematicaを使うわけにもいかない。そこで登場するわれらがヒーローSymPy。

今回は、4×4の行列式

 

かっこよくコードを張り付ける方法がわからないので、こんな形になってしまいましたが。これがコード。

from sympy import *

x = symbols('x') # 変数xを定義

A = Matrix( ([x, 1, 0, 0], [1, x, 1, 0], [0, 1, x, 1], [0, 0, 1, x]) ) # 行列式Aを定義

print(A.det()) # 行列式の実行 .det() で行列式の計算が実行できる

 

 内容は以上。

ではまたいつか。