本記事は逆行列の求め方についてPythonを利用しながら、優しく紹介しています。NumPyとは、Pythonによる機械学習の計算を速く、効率的に行うことが可能なライブラリです。
本記事の内容
逆行列とは
逆行列とは、「かけると単位行列になるもの」です。
行列Aがあったとして、その行列Aの逆行列Bがあったとすると、AかけるBは単位行列となります。
理解が曖昧で、詳しく理解したい方は下の動画を見てください。
めちゃめちゃ分かりやすいです。
Pythonでの実装
逆行列
import numpy as np
a = np.array([[1, 2,],[3, 4]])
b = np.linalg.inv(a)
print(b)
【実行結果】
[[-2. 1. ]
[ 1.5 -0.5]]
PythonのNumPyを利用することで、
「np.linalg.inv(a)」たったこの1行を入力するだけで逆行列が求まります。
面倒くさい掃き出し法など手計算する必要はありません。
毎回、プログラミングってすごいな、て感じさせられます。
確かめてみる
逆行列は、「かけて単位行列になるもの」だったので、
実際に単位行列になるかNumpyを利用して試してみます。
「@」を利用すれば簡単に行列の掛け算が実行できますので、今回もこれを利用しいます。
import numpy as np
a = np.array([[1, 2,],[3, 4]])
b = np.linalg.inv(a)
print(a@b)
print(b@a)
【実行結果】
[[1.00000000e+00 1.11022302e-16]
[0.00000000e+00 1.00000000e+00]]
[[1.0000000e+00 4.4408921e-16]
[0.0000000e+00 1.0000000e+00]]
もちろん、誤差は生じるので仕方ないですが、単位行列になっていることがわかります。
「e-16」は「eのマイナス16乗」ということで、ほぼ0です。2進数計算で生じるゴミのようなものなので、しっかり単位行列となっていると言ってもいいでしょう。
ちなみに、「a@b」の代わりに、「np.dot(a, b)」でも行列の掛け算をNumPyで実行できますよ。
ということで本記事は、
PythonのNumPyを用いた内積と外積についてについて紹介しました。
最後まで読んでいただき、ありがとうございました\(^o^)/
超オススメのPC用品
PCを操作する上で、トラックボールマウスが非常におすすめです!
僕も感動したこのマウスを、騙されたと思って使ってみてください!(^^)
外部モニターで2倍以上の効率化が見込めます!
安いものだと、たったの1万円前後なのでおすすめですよー!\(^o^)/