【Python入門】三角行列|出力と基本演算方法を学ぶ

三角行列|出力と基本演算方法を学ぶ_アイキャッチ プログラミング

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

levtech-ad
スポンサーリンク

三角行列は、Pythonで簡単に出力・演算することができます。

本記事では、Pythonを使用した三角行列の出力と基本演算方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonを使用した三角行列の出力と基本演算方法について学びたい人
levtech-ad

三角行列

三角行列(triangular matrix)とは、正方行列の一種で、下三角行列と上三角行列を総じて言います。

下三角行列とは、正方行列の主対角線より上の成分がすべて\(0\)になる行列のことです。

上三角行列とは、正方行列の主対角線より下の成分がすべて\(0\)になる行列のことです。

numpy.tril()

NumPyのnumpy.tril()を使用すると、引数に指定した行列の主対角線より上の成分をすべて\(0\)にすること(下三角行列を生成すること)ができます。

#input
import numpy as np

np.random.seed(7)
A = np.random.randint(0,10,(5,5))
print("行列A:\n{}\n".format(A))

L = np.tril(A)
print("行列Aの下三角行列:\n{}".format(L))
#output
行列A:      
[[4 9 6 3 3] 
 [7 7 9 7 8] 
 [9 8 7 6 4] 
 [0 7 0 7 6] 
 [3 5 8 8 7]]

行列Aの下三角行列:
[[4 0 0 0 0]       
 [7 7 0 0 0]       
 [9 8 7 0 0]       
 [0 7 0 7 0]       
 [3 5 8 8 7]] 

numpy.tri()

NumPyのnumpy.tri()を使用すると、引数に指定した次数の正方行列に対して、主対角線より下の成分が\(1\)となる下三角行列を生成することができます。

#input
import numpy as np

L = np.tri(5)
print(L)
#output
[[1. 0. 0. 0. 0.]
 [1. 1. 0. 0. 0.]
 [1. 1. 1. 0. 0.]
 [1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1.]]

numpy.triu()

NumPyのnumpy.triu()を使用すると、引数に指定した行列の主対角線より下の成分をすべて\(0\)にすること(上三角行列を生成すること)ができます。

#input
import numpy as np

np.random.seed(8)
A = np.random.randint(0,10,(5,5))
print("行列A:\n{}\n".format(A))

L = np.triu(A)
print("行列Aの上三角行列:\n{}".format(L))
#output
行列A:
[[3 4 1 9 5]
 [8 3 8 0 5]
 [1 3 9 2 2]
 [6 8 9 3 4]
 [5 5 7 9 2]]

行列Aの上三角行列:
[[3 4 1 9 5]
 [0 3 8 0 5]
 [0 0 9 2 2]
 [0 0 0 3 4]
 [0 0 0 0 2]]

三角行列同士の演算

下三角行列同士を演算すると、下三角行列になります。

試した結果を以下にご紹介します。

#input
import numpy as np

np.random.seed(9)
A = np.random.randint(0,10,(5,5))
L1 = np.tril(A)
print("下三角行列L1:\n{}\n".format(L1))

np.random.seed(1)
B = np.random.randint(0,10,(5,5))
L2 = np.tril(B)
print("下三角行列L2:\n{}\n".format(L2))

C = L1+L2
print("L1とL2の和:\n{}".format(C))

D = np.dot(L1,L2)
print("L1とL2の積:\n{}".format(D))
#output
下三角行列L1:
[[5 0 0 0 0]
 [6 4 0 0 0]
 [5 1 0 0 0]
 [8 2 6 8 0]
 [8 3 5 3 6]]

下三角行列L2:
[[5 0 0 0 0]
 [0 1 0 0 0]
 [2 4 5 0 0]
 [2 4 7 7 0]
 [1 7 0 6 9]]

L1とL2の和:
[[10  0  0  0  0]
 [ 6  5  0  0  0]
 [ 7  5  5  0  0]
 [10  6 13 15  0]
 [ 9 10  5  9 15]]
L1とL2の積:
[[25  0  0  0  0]
 [30  4  0  0  0]
 [25  1  0  0  0]
 [68 58 86 56  0]
 [62 77 46 57 54]]

同様に、上三角行列同士の演算結果も、上三角行列になります。

まとめ

この記事では、Pythonを使用した三角行列の出力と基本演算方法について、ご説明しました。

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

参考

Python学習用おすすめ教材

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

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

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

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

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

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

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

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

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