【Python入門】単位行列と逆行列|inv()関数を学ぶ

単位行列と逆行列|inv()関数を学ぶ_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

「単位行列や逆行列」は、Pythonで簡単に作成することができます。

本記事では、Pythonを使用した単位行列や逆行列の作成方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonを使用した単位行列や逆行列の作成方法について学びたい人
levtech-ad

単位行列

単位行列(identify matrix)とは、任意の行列に左右どちらから掛けても同じ行列となるような行列のことです。

対角成分に1が並び、他はすべて0になります。

numpy.identify()

NumPyのnumpy.identity()関数を使用すると、指定した次元の単位行列を作成することができます。

#input
import numpy as np

# 5×5の単位行列を生成
I = np.identity(5, dtype = np.int8)

print(I)
#output
[[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]

任意の行列に上記単位行列を掛けて、値が変わらないか確認してみます。

#input
import numpy as np

I = np.identity(5, dtype = np.int8)
A = np.array([[1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5]])
print(I@A)
print(A@I)
#output
[[1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]]
[[1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]]

左右どちらから掛けても、元の行列と変わらないことが確認できました。

逆行列

逆行列(invertible matrix)とは、任意の行列に左右どちらから掛けても単位行列となるような行列のことです。

numpy.linalg.inv()

NumPyのnumpy.linalg.inv()を使用すると、引数に指定した行列の逆行列を作成することができます。

#input
import numpy as np

A = np.array([[1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5],
              [1, 2, 3, 4, 5]])

A_inv = np.linalg.inv(A)

#AとA_invの積
x = np.dot(A,A_inv)

print("Aの逆行列:\n{}".format(A_inv))
print("AとAの逆行列の積:\n{}".format(x))
#output
Aの逆行列:
[[-2.   1. ]
 [ 1.5 -0.5]]
AとAの逆行列の積:
[[1.0000000e+00 0.0000000e+00]
 [8.8817842e-16 1.0000000e+00]]

scipy.linalg.inv()

SciPyのscipy.linalg.inv()を使用しても、引数に指定した行列の逆行列を作成することができます。

#input
import numpy as np
from scipy import linalg

A = np.array([[1, 2],
              [3, 4]])

A_inv = linalg.inv(A)

#AとA_invの積
x = np.dot(A,A_inv)

print("Aの逆行列:\n{}".format(A_inv))
print("AとAの逆行列の積:\n{}".format(x))
#output
Aの逆行列:
[[-2.   1. ]
 [ 1.5 -0.5]]
AとAの逆行列の積:
[[1.0000000e+00 0.0000000e+00]
 [8.8817842e-16 1.0000000e+00]]

まとめ

この記事では、Pythonを使用した単位行列や逆行列の作成方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました