【Numpy】逆行列をPythonで実装する方法

本記事は逆行列の求め方について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^)/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です