スポンサーリンク
基本行列は、Pythonで簡単に生成することができます。
本記事では、Pythonを使用した基本行列の実装方法について、詳しくご説明します。
基本行列
基本行列とは、行列の基本変形を行うための行列のことです。
行列の基本変形は、以下に記載する通りの変形です。
- \(i\)行と\(j\)行の交換
- \(i\)行の\(c\)倍
- \(i\)行に\(j\)行の\(c\)倍を加える
基本行列の実装
上記基本変形を行うための、基本行列の実装例を以下にご紹介します。
#input
import numpy as np
# n次正方行列の基本行列
# i行とj行の交換
def matrix_p(n, i=1, j=1):
arr = np.eye(n)
arr[[i-1, j-1]] = arr[[j-1, i-1]]
return arr
# i行のc倍
def matrix_c(n, i=1, c=1):
arr = np.eye(n)
arr[i-1, i-1] = c
return arr
# i行にj行のc倍を加える
def matrix_e(n, i=1, j=1, c=1):
arr = np.eye(n)
arr[i-1, j-1] = c
return arr
上記関数を使用して、基本変形を試してみます。
i行とj行の交換
#input
np.random.seed(7)
A = np.random.randint(0,10,(5,5))
print("行列A:\n{}\n".format(A))
p = matrix_p(5, 2, 3)
print("2行目と3行目を交換する行列p:\n{}\n".format(p))
pA = np.dot(p,A)
print("pとAの積:\n{}\n".format(pA))
#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]]
2行目と3行目を交換する行列p:
[[1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
pとAの積:
[[4. 9. 6. 3. 3.]
[9. 8. 7. 6. 4.]
[7. 7. 9. 7. 8.]
[0. 7. 0. 7. 6.]
[3. 5. 8. 8. 7.]]
i行のc倍
#input
np.random.seed(6)
A = np.random.randint(0,10,(5,5))
print("行列A:\n{}\n".format(A))
c = matrix_c(5, 3, 3)
print("3行目を3倍する行列c:\n{}\n".format(c))
cA = np.dot(c,A)
print("cとAの積:\n{}\n".format(cA))
#output
行列A:
[[9 3 4 0 9]
[1 9 1 4 1]
[8 2 4 2 5]
[9 6 2 5 5]
[1 4 5 0 2]]
3行目を3倍する行列c:
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 3. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
cとAの積:
[[ 9. 3. 4. 0. 9.]
[ 1. 9. 1. 4. 1.]
[24. 6. 12. 6. 15.]
[ 9. 6. 2. 5. 5.]
[ 1. 4. 5. 0. 2.]]
i行のc倍をj行に加える
#input
np.random.seed(5)
A = np.random.randint(0,10,(5,5))
print("行列A:\n{}\n".format(A))
e = matrix_e(5, 1, 3, 2)
print("3行目の2倍を1行目に加える行列e:\n{}\n".format(e))
eA = np.dot(e,A)
print("eとAの積:\n{}\n".format(eA))
#output
行列A:
[[3 6 6 0 9]
[8 4 7 0 0]
[7 1 5 7 0]
[1 4 6 2 9]
[9 9 9 1 2]]
3行目の2倍を1行目に加える行列e:
[[1. 0. 2. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
eとAの積:
[[17. 8. 16. 14. 9.]
[ 8. 4. 7. 0. 0.]
[ 7. 1. 5. 7. 0.]
[ 1. 4. 6. 2. 9.]
[ 9. 9. 9. 1. 2.]]
まとめ
この記事では、Pythonを使用した基本行列の実装方法について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
リンク
統計学基礎を学びたい方向け
リンク
Pythonの統計解析を学びたい方向け
リンク
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!
\まずは無料体験!/
スポンサーリンク