学習環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- 数式入力ソフト(TeX, MathML): MathType
- MathML対応ブラウザ: Firefox、Safari
- MathML非対応ブラウザ(Internet Explorer, Google Chrome...)用JavaScript Library: MathJax
- 参考書籍
ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の3章(行列)、3(行列の乗法)、練習問題22.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from sympy import pprint, Matrix import random print('22.') for n in range(2, 5): print('{0} x {0}'.format(n)) O = Matrix([[0 for j in range(n)] for i in range(n)]) while True: A = Matrix([[random.randrange(-10, 10) if i < j else 0 for j in range(n)] for i in range(n)]) B = Matrix([[random.randrange(-10, 10) if i < j else 0 for j in range(n)] for i in range(n)]) if A * B == B * A: print('A') pprint(A) print('B') pprint(B) for i in range(1, 10): if A ** i == O: r = i for i in range(1, 10): if B ** i == O: r += i print('A * B') pprint(A * B) print('(A * B) ** {}'.format(r)) pprint((A * B) ** r) print('A + B') pprint(A + B) print('(A + B) ** {}'.format(r)) pprint((A + B) ** r) break break break
入出力結果(Terminal, IPython)
$ ./sample22.py 22. 2 x 2 A ⎡0 -7⎤ ⎢ ⎥ ⎣0 0 ⎦ B ⎡0 -7⎤ ⎢ ⎥ ⎣0 0 ⎦ A * B ⎡0 0⎤ ⎢ ⎥ ⎣0 0⎦ (A * B) ** 4 ⎡0 0⎤ ⎢ ⎥ ⎣0 0⎦ A + B ⎡0 -14⎤ ⎢ ⎥ ⎣0 0 ⎦ (A + B) ** 4 ⎡0 0⎤ ⎢ ⎥ ⎣0 0⎦ 3 x 3 A ⎡0 5 4 ⎤ ⎢ ⎥ ⎢0 0 -5⎥ ⎢ ⎥ ⎣0 0 0 ⎦ B ⎡0 -2 -7⎤ ⎢ ⎥ ⎢0 0 2 ⎥ ⎢ ⎥ ⎣0 0 0 ⎦ A * B ⎡0 0 10⎤ ⎢ ⎥ ⎢0 0 0 ⎥ ⎢ ⎥ ⎣0 0 0 ⎦ (A * B) ** 6 ⎡0 0 0⎤ ⎢ ⎥ ⎢0 0 0⎥ ⎢ ⎥ ⎣0 0 0⎦ A + B ⎡0 3 -3⎤ ⎢ ⎥ ⎢0 0 -3⎥ ⎢ ⎥ ⎣0 0 0 ⎦ (A + B) ** 6 ⎡0 0 0⎤ ⎢ ⎥ ⎢0 0 0⎥ ⎢ ⎥ ⎣0 0 0⎦ 4 x 4 A ⎡0 -1 -8 1 ⎤ ⎢ ⎥ ⎢0 0 8 9 ⎥ ⎢ ⎥ ⎢0 0 0 -2⎥ ⎢ ⎥ ⎣0 0 0 0 ⎦ B ⎡0 0 2 5⎤ ⎢ ⎥ ⎢0 0 0 4⎥ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎣0 0 0 0⎦ A * B ⎡0 0 0 -4⎤ ⎢ ⎥ ⎢0 0 0 0 ⎥ ⎢ ⎥ ⎢0 0 0 0 ⎥ ⎢ ⎥ ⎣0 0 0 0 ⎦ (A * B) ** 6 ⎡0 0 0 0⎤ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎣0 0 0 0⎦ A + B ⎡0 -1 -6 6 ⎤ ⎢ ⎥ ⎢0 0 8 13⎥ ⎢ ⎥ ⎢0 0 0 -2⎥ ⎢ ⎥ ⎣0 0 0 0 ⎦ (A + B) ** 6 ⎡0 0 0 0⎤ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎣0 0 0 0⎦ $
0 コメント:
コメントを投稿