## 2019年2月6日水曜日

### 本 - ちくま文庫( @chikumabunko1 ) - S.ラング著, 芹沢 正三翻訳 - ラング線形代数学(上) - Python - 行列 – 行列の乗法(積の転置と転置の積)

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の3章(行列)、2(行列の乗法)、練習問題9の解答を求めてみる。

1. a について。

$\begin{array}{}{\left(AB\right)}^{T}\\ ={\left[\begin{array}{cc}-1& 2\\ -2& 3\end{array}\right]}^{T}\\ =\left[\begin{array}{cc}-1& -2\\ 2& 3\end{array}\right]\\ {B}^{T}{A}^{T}\\ =\left[\begin{array}{cc}-1& 1\\ 1& 0\end{array}\right]\left[\begin{array}{cc}2& 3\\ 1& 1\end{array}\right]\\ =\left[\begin{array}{cc}-1& -2\\ 2& 3\end{array}\right]\\ {\left(AB\right)}^{T}={B}^{T}{A}^{T}\end{array}$

b について。

$\begin{array}{}{\left(AB\right)}^{T}\\ ={\left[\begin{array}{cc}1& 3\\ 11& 1\end{array}\right]}^{T}\\ =\left[\begin{array}{cc}1& 11\\ 3& 1\end{array}\right]\\ {B}^{T}{A}^{T}\\ =\left[\begin{array}{ccc}1& 2& 3\\ 1& 0& -1\end{array}\right]\left[\begin{array}{cc}2& 3\\ 1& 1\\ -1& 2\end{array}\right]\\ =\left[\begin{array}{cc}1& 11\\ 3& 1\end{array}\right]\\ {\left(AB\right)}^{T}={B}^{T}{A}^{T}\end{array}$

c について。

$\begin{array}{}{\left(AB\right)}^{T}\\ ={\left[\begin{array}{ccc}13& 7& 1\\ 0& 2& -5\end{array}\right]}^{T}\\ =\left[\begin{array}{cc}13& 0\\ 7& 2\\ 1& -5\end{array}\right]\\ {B}^{T}{A}^{T}\\ =\left[\begin{array}{ccc}1& 2& 3\\ 1& 1& 1\\ 0& -1& 5\end{array}\right]\left[\begin{array}{cc}2& 3\\ 4& 0\\ 1& -1\end{array}\right]\\ =\left[\begin{array}{cc}13& 0\\ 7& 2\\ 1& -5\end{array}\right]\\ {\left(AB\right)}^{T}={B}^{T}{A}^{T}\end{array}$

A、 B が乗法可能な行列であるとき、 (i, j)成分について考える。

$\begin{array}{}{\left(AB\right)}^{T}\\ ={\left(\sum _{k=1}^{n}{a}_{ik}{b}_{kj}\right)}^{T}\\ =\left(\sum _{k=1}^{n}{a}_{jk}{b}_{ki}\right)\\ {B}^{T}{A}^{T}\\ =\left(\sum _{k=1}^{n}{b}_{jk}{a}_{ki}\right)\\ =\left(\sum _{k=1}^{n}{a}_{ki}{b}_{jk}\right)\\ {\left(AB\right)}^{T}={B}^{T}{A}^{T}\end{array}$

よって、

$\begin{array}{}{\left(ABC\right)}^{T}\\ ={\left(\left(AB\right)C\right)}^{T}\\ ={C}^{T}{\left(AB\right)}^{T}\\ ={C}^{T}{B}^{T}{A}^{T}\end{array}$

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, randMatrix
import random
print('9.')

for _ in range(5):
n = random.randrange(1, 11)
m = random.randrange(1, 11)
l = random.randrange(1, 11)
k = random.randrange(1, 11)
A = randMatrix(n, m)
B = randMatrix(m, l)
C = randMatrix(l, k)
for t in [A, B, C, (A * B * C).T == C.T * B.T * A.T]:
pprint(t)
print()
print()

C:\Users\...> py -3 sample9.py
9.
⎡72  12  12  81⎤
⎢              ⎥
⎢45  61  1   71⎥
⎢              ⎥
⎢57  42  29  13⎥
⎢              ⎥
⎣35  95  50  50⎦

⎡87  39  66  36  19⎤
⎢                  ⎥
⎢99  64  18  85  1 ⎥
⎢                  ⎥
⎢62  97  74  99  68⎥
⎢                  ⎥
⎣68  39  38  44  71⎦

⎡18  59  17  22  14  7   93⎤
⎢                          ⎥
⎢40  35  63  20  75  12  88⎥
⎢                          ⎥
⎢96  10  2   30  12  39  50⎥
⎢                          ⎥
⎢38  93  81  88  31  70  20⎥
⎢                          ⎥
⎣58  51  86  8   11  99  53⎦

True

⎡36  91  52  29  24⎤
⎢                  ⎥
⎢45  61  68  87  46⎥
⎢                  ⎥
⎢87  37  50  40  57⎥
⎢                  ⎥
⎢98  16  90  36  81⎥
⎢                  ⎥
⎢50  43  55  5   61⎥
⎢                  ⎥
⎢1   28  49  92  1 ⎥
⎢                  ⎥
⎢2   39  86  72  49⎥
⎢                  ⎥
⎣25  72  66  68  13⎦

⎡50  7   83  75  10  5   56  77  44⎤
⎢                                  ⎥
⎢72  60  26  17  75  38  96  70  81⎥
⎢                                  ⎥
⎢94  75  1   22  97  17  62  52  44⎥
⎢                                  ⎥
⎢38  40  48  68  46  17  60  72  65⎥
⎢                                  ⎥
⎣87  23  76  72  24  50  71  85  10⎦

⎡93  8   20  15  80  58  8 ⎤
⎢                          ⎥
⎢87  76  95  44  54  57  21⎥
⎢                          ⎥
⎢18  73  46  39  30  3   6 ⎥
⎢                          ⎥
⎢27  73  30  15  95  79  38⎥
⎢                          ⎥
⎢35  78  1   23  49  75  87⎥
⎢                          ⎥
⎢84  68  23  31  96  1   20⎥
⎢                          ⎥
⎢21  75  77  95  97  85  86⎥
⎢                          ⎥
⎢7   6   69  99  81  14  38⎥
⎢                          ⎥
⎣14  97  53  20  55  10  83⎦

True

⎡87  32  33  89  37⎤
⎢                  ⎥
⎢65  70  60  55  48⎥
⎢                  ⎥
⎢2   21  92  85  52⎥
⎢                  ⎥
⎢55  30  24  39  49⎥
⎢                  ⎥
⎢11  93  21  78  96⎥
⎢                  ⎥
⎢3   95  21  92  38⎥
⎢                  ⎥
⎢11  73  4   9   54⎥
⎢                  ⎥
⎢73  55  69  68  86⎥
⎢                  ⎥
⎣76  34  4   8   42⎦

⎡19  47  81  96  73⎤
⎢                  ⎥
⎢69  32  25  28  12⎥
⎢                  ⎥
⎢77  96  49  94  17⎥
⎢                  ⎥
⎢72  55  7   3   76⎥
⎢                  ⎥
⎣0   7   90  65  88⎦

⎡26  8   93  86  73⎤
⎢                  ⎥
⎢85  67  22  24  65⎥
⎢                  ⎥
⎢83  37  51  23  71⎥
⎢                  ⎥
⎢0   82  53  27  29⎥
⎢                  ⎥
⎣72  29  83  4   18⎦

True

⎡47⎤
⎢  ⎥
⎢27⎥
⎢  ⎥
⎢24⎥
⎢  ⎥
⎣3 ⎦

[85  90  74  16  65  12  26  46  97  72]

⎡29  94  54  89  29  93  57  91  94  40⎤
⎢                                      ⎥
⎢17  59  77  39  19  14  56  18  58  74⎥
⎢                                      ⎥
⎢89  66  81  29  75  74  19  24  48  86⎥
⎢                                      ⎥
⎢30  20  58  90  0   57  45  85  76  94⎥
⎢                                      ⎥
⎢98  37  90  80  25  85  91  14  15  21⎥
⎢                                      ⎥
⎢57  86  48  80  63  2   44  0   63  10⎥
⎢                                      ⎥
⎢94  96  95  38  42  17  1   47  19  42⎥
⎢                                      ⎥
⎢83  13  99  0   50  17  52  98  3   40⎥
⎢                                      ⎥
⎢20  99  51  86  96  70  90  26  21  54⎥
⎢                                      ⎥
⎣11  32  67  7   17  3   74  13  61  88⎦

True

⎡34  72  54  43⎤
⎢              ⎥
⎢13  4   43  16⎥
⎢              ⎥
⎢12  33  19  73⎥
⎢              ⎥
⎣31  8   15  31⎦

⎡39  29  46  85  92  45  98  51  48  56⎤
⎢                                      ⎥
⎢89  10  96  27  8   65  65  50  74  74⎥
⎢                                      ⎥
⎢72  57  76  65  66  95  32  17  15  56⎥
⎢                                      ⎥
⎣18  64  0   81  78  24  3   75  86  46⎦

⎡75  60  98  62  59  75  10  98  40⎤
⎢                                  ⎥
⎢27  23  53  12  78  40  73  88  63⎥
⎢                                  ⎥
⎢24  15  1   29  47  21  1   5   39⎥
⎢                                  ⎥
⎢44  19  79  37  27  32  66  47  35⎥
⎢                                  ⎥
⎢56  56  71  54  69  1   96  22  98⎥
⎢                                  ⎥
⎢76  72  31  16  49  50  18  18  34⎥
⎢                                  ⎥
⎢40  63  39  97  90  23  62  1   45⎥
⎢                                  ⎥
⎢96  21  54  82  87  34  20  13  82⎥
⎢                                  ⎥
⎢51  77  40  70  71  85  81  57  80⎥
⎢                                  ⎥
⎣11  26  80  51  78  89  2   19  65⎦

True

C:\Users\...>