2019年2月7日木曜日

学習環境

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


  1. A = [ a 1 a n ] B = [ b 1 : b n ] C = [ c 1 : . c n ] M = m i j

    とおく。

    SPI の可換律について。

    A , B = A T M B = k = 1 n a k m k j B = l = 1 n k = 1 n a k m k l b l = l = 1 n k = 1 n b l m k l a k = k = 1 n l = 1 n b l m k l a k = k = 1 n l = 1 n b l m l k a k M T = M = l = 1 n b l m l j A = B T M A = B , A

    SP 2の分配律について。

    B + C , A = A , B + C = A T M B + C = A T M B + A T M C = A , B + A , C

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

    x A , B = x A T M B = x A , B A , x B = A T M x B = x A T M B = x A , B

    よって、正値性の条件 SP 4を除くスカラー積の条件が成り立つ。

    負の数となる例。

    A = [ 1 0 ] B = [ - 1 0 ] M = [ 1 0 0 0 ] A , B = A T M B = 1 , 0 [ 1 0 0 1 ] [ - 1 0 ] = [ 1 0 ] [ - 1 0 ] = - 1 , 0

コード

Python 3

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


def dot(A, B, M):
    return A.T * M * B


def cmp(A, B):
    return A[0].expand() == B[0].expand()


x = symbols('x')
for n in range(1, 6):
    A = Matrix([symbols(f'a{i}') for i in range(1, n + 1)])
    B = Matrix([symbols(f'b{i}') for i in range(1, n + 1)])
    C = Matrix([symbols(f'c{i}') for i in range(1, n + 1)])
    for _ in range(2):
        M = randMatrix(n, symmetric=True)
        for t in [A.T, B.T, C.T, M,
                  cmp(dot(A, B, M), dot(B, A, M)),
                  cmp(dot(A + B, C, M), dot(A, C, M) + dot(B, C, M)),
                  cmp(dot(A, B + C, M), dot(A, B, M) + dot(A, C, M)),
                  cmp(dot(x * A, B, M), x * dot(A, B, M)),
                  cmp(dot(A, x * B, M), x * dot(A, B, M))]:
            pprint(t)

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

C:\Users\...> py -3 sample10.py
10.
[a₁]
[b₁]
[c₁]
[94]
True
True
True
True
True
[a₁]
[b₁]
[c₁]
[54]
True
True
True
True
True
[a₁  a₂]
[b₁  b₂]
[c₁  c₂]
⎡89  47⎤
⎢      ⎥
⎣47  2 ⎦
True
True
True
True
True
[a₁  a₂]
[b₁  b₂]
[c₁  c₂]
⎡80  9 ⎤
⎢      ⎥
⎣9   59⎦
True
True
True
True
True
[a₁  a₂  a₃]
[b₁  b₂  b₃]
[c₁  c₂  c₃]
⎡99  12  94⎤
⎢          ⎥
⎢12  59  93⎥
⎢          ⎥
⎣94  93  63⎦
True
True
True
True
True
[a₁  a₂  a₃]
[b₁  b₂  b₃]
[c₁  c₂  c₃]
⎡40  39  78⎤
⎢          ⎥
⎢39  7   88⎥
⎢          ⎥
⎣78  88  87⎦
True
True
True
True
True
[a₁  a₂  a₃  a₄]
[b₁  b₂  b₃  b₄]
[c₁  c₂  c₃  c₄]
⎡34  27  2   53⎤
⎢              ⎥
⎢27  71  53  73⎥
⎢              ⎥
⎢2   53  50  47⎥
⎢              ⎥
⎣53  73  47  85⎦
True
True
True
True
True
[a₁  a₂  a₃  a₄]
[b₁  b₂  b₃  b₄]
[c₁  c₂  c₃  c₄]
⎡15  55  17  24⎤
⎢              ⎥
⎢55  35  67  21⎥
⎢              ⎥
⎢17  67  13  6 ⎥
⎢              ⎥
⎣24  21  6   54⎦
True
True
True
True
True
[a₁  a₂  a₃  a₄  a₅]
[b₁  b₂  b₃  b₄  b₅]
[c₁  c₂  c₃  c₄  c₅]
⎡3   33  86  69  21⎤
⎢                  ⎥
⎢33  51  22  63  21⎥
⎢                  ⎥
⎢86  22  63  17  92⎥
⎢                  ⎥
⎢69  63  17  38  92⎥
⎢                  ⎥
⎣21  21  92  92  60⎦
True
True
True
True
True
[a₁  a₂  a₃  a₄  a₅]
[b₁  b₂  b₃  b₄  b₅]
[c₁  c₂  c₃  c₄  c₅]
⎡16  38  70  36  10⎤
⎢                  ⎥
⎢38  31  58  99  62⎥
⎢                  ⎥
⎢70  58  75  95  62⎥
⎢                  ⎥
⎢36  99  95  57  11⎥
⎢                  ⎥
⎣10  62  62  11  50⎦
True
True
True
True
True

C:\Users\...>

0 コメント:

コメントを投稿