2017年5月26日金曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の3章(行列)、1(行列空間)、練習問題6、7、8、9、10、11、12.を取り組んでみる。


  1. cA:c a ij c A t :c a ji A t : a ji c A t :c a ji ( cA ) t =c A t

  2. 異ならない。

  3. ( A+B ) t =( 0 2 0 1 ) A t + B t =( 1 2 1 2 )+( 1 0 1 3 ) =( 0 2 0 1 )

  4. A+ A t =( 2 1 1 4 ) B+ B t =( 2 1 1 6 )

  5. A: a ij A t : a ji A+ A t : a ij + a ji a ij + a ji = a ji + a ij

  6. A ( 1 2 3 ) ( 1 0 2 ) ( 1 1 ) ( 2 0 ) ( 3 2 ) B ( 1 5 2 ) ( 2 2 1 ) ( 1 2 ) ( 5 2 ) ( 2 1 )

  7. A ( 1 1 ) ( 2 2 ) ( 1 2 ) ( 1 2 ) B ( 1 1 ) ( 0 3 ) ( 1 0 ) ( 1 3 )

コード(Emacs)

Python 3

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from sympy import Matrix, pprint, symbols, randMatrix
import random

print('6.')
c = symbols('c')
for _ in range(5):
    n = random.randrange(1, 100)
    a = randMatrix(n, n)
    print((c * a).transpose() == c * a.transpose())

print('7.')
for _ in range(5):
    n = random.randrange(1, 100)
    a = randMatrix(n, n)
    ta = a.transpose()
    print(all(a[i, i] == ta[i, i] for i in range(n)))

print('8.')
a = Matrix([[1, -1],
            [2, 2]])
b = Matrix([[-1, 1],
            [0, -3]])
pprint((a + b).transpose())
pprint(a.transpose() + b.transpose())

print('9.')
pprint(a + a.transpose())
pprint(b + b.transpose())

print('10.')
for _ in range(5):
    n = random.randrange(1, 100)
    a = randMatrix(n, n)
    m = a + a.transpose()
    print(all(m[i, j] == m[j, i] for i in range(n)
              for j in range(n) if i <= j))

入出力結果(Terminal, IPython)

$ ./sample6.py
6.
True
True
True
True
True
7.
True
True
True
True
True
8.
⎡0  2 ⎤
⎢     ⎥
⎣0  -1⎦
⎡0  2 ⎤
⎢     ⎥
⎣0  -1⎦
9.
⎡2  1⎤
⎢    ⎥
⎣1  4⎦
⎡-2  1 ⎤
⎢      ⎥
⎣1   -6⎦
10.
True
True
True
True
True
$

0 コメント:

コメントを投稿