ディープラーニングについてディープにラーニング。

思いっきり、自分が学んだことのアウトプットしていきますが、何分初心者。もし何かアドバイス等頂けましたら幸いです!

行列式と逆行列

今日もUDEMYから入る。

ではアウトプット。



今回は、行列式単位行列という項目だが、この2つを語るのに、
まずは単位行列から説明がいる。

単位行列

単位行列とは、

a = [1 , 0]
[0 , 1]

のように左上から右下に向かって1が並んでいて、その他の要素は0になる、という行列。

逆行列

f:id:kawam0t0:20191220200402p:plain

図のままではあるが、
逆数のように数値とその逆数をかけると①になると思う。
これと同じことが行列にもいえて、数字だと①になるけれど、行列の場合はさっきの単位行列になる。

ただし、この場合、行列積であることに注意。
要素だけを単に演算する要素積ではなく、あくまで行列積である。

行列式

さっきの話の続きで、逆行列が存在しない場合がある。
逆行列が存在するのか、そうじゃないのか、は行列式で求める。
f:id:kawam0t0:20191220200732p:plain
これで行列式を計算すると、
A = (a * d) - (b * c)になる。
この解が0の時、残念ながら逆行列は存在しないことになる。
それ以外の場合は存在する。
数式に書くと結構めんどくさいけど、
パイソンのコードだと一瞬で終わる。

import numpy as np

a = np.array([[1, 1],
              [1, 2]]) 

# 行列式
print(np.linalg.det(a)) # 1.0 -> 逆行列は存在する

# 逆行列
print(np.linalg.inv(a))
"""
[[ 2. -1.]
 [-1.  1.]]
"""

行列式を計算するときはnp.linalg.det関数を使えば一発。
今回は0ではなかったので、逆行列は存在することになる。
では、具体的に逆行列はいくらか?という問いには
np.linalg.invが一瞬で答えてくれる。



では、また。