変数を含む行列式の計算をしたかった。ただ、やり方がわからず。
ググってもドンピシャな内容が見つからず、結局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() で行列式の計算が実行できる
内容は以上。
ではまたいつか。