2019年6月26日水曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の7章(スカラー積と直交性)、2(正値スカラー積)、練習問題6の解答を求めてみる。


  1. 行列の積の成分表示。

    A , B = t r A B = t r k = 1 n a i k b k j = i = 1 n k = 1 n a i k b k i

    SP 1 の可換について。

    B , A = i = 1 n k = 1 n b i k a k i = i = 1 n k = 1 n a k i b i k = i = 1 n k = 1 n a i k b k i = A , B

    SP 2の分配律について。

    A , B + C = t r A B + C = t r A B + A C = t r A B + t r A C = A , B + A , C

    SP 3のスカラー倍について。

    x A , B = t r x A B = x t r A B A , x B = t r A x B = t r x A B = x t r A B

    よってスカラー積で ある。

    また、 行列 A が すべての行 B に対して零のとき、

    t r A B = 0 i = 1 n k = 1 n a i k b k i = 0 a i j = 0 A = O

    よって、退化していない。

    (証明終)

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Matrix, solve

print('7.')

n = 4
A = Matrix([[symbols(f'a{i + 1}{j + 1}') for j in range(n)]
            for i in range(n)])
B = Matrix([[symbols(f'b{i + 1}{j + 1}') for j in range(n)]
            for i in range(n)])
C = Matrix([[symbols(f'c{i + 1}{j + 1}') for j in range(n)]
            for i in range(n)])
x = symbols('x')
for a, b in [((A * B).trace(), (B * A).trace()),
             ((A * (B + C)).trace(), (A * B).trace() + (A * C).trace()),
             (((x * A) * B).trace(), x * (A * B).trace()),
             ((A * (x * B)).trace(), x * (A * B).trace())]:
    print(a.expand() == b.expand())

pprint(solve((A * B).trace(),
             *[symbols(f'a{i + 1}{j + 1}')
               for i in range(n)
               for j in range(n)], dict=True))

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

C:\Users\...>py sample7.py
7.
True
True
True
True
⎡⎧     -(a₁₂⋅b₂₁ + a₁₃⋅b₃₁ + a₁₄⋅b₄₁ + a₂₁⋅b₁₂ + a₂₂⋅b₂₂ + a₂₃⋅b₃₂ + a₂₄⋅b₄₂ +
⎢⎨a₁₁: ───────────────────────────────────────────────────────────────────────
⎣⎩                                                                            

 a₃₁⋅b₁₃ + a₃₂⋅b₂₃ + a₃₃⋅b₃₃ + a₃₄⋅b₄₃ + a₄₁⋅b₁₄ + a₄₂⋅b₂₄ + a₄₃⋅b₃₄ + a₄₄⋅b₄₄
──────────────────────────────────────────────────────────────────────────────
   b₁₁                                                                        

) ⎫⎤
──⎬⎥
  ⎭⎦

C:\Users\...>

0 コメント:

コメントを投稿