学習環境
- Surface Go、タイプ カバー、ペン(端末)
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad Pro + Apple Pencil
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の3章(行列)、2(行列の乗法)、練習問題4の解答を求めてみる。
(A+B)2=(A+B)(A+B)=(A+B)A+(A+B)B=A(A+B)+B(A+B)=A2+AB+BA+B2=A2+AB+AB+B2=A2+2AB+B2(A+B)(A-B)=(A+B)A+(A+B)(-B)=A(A+B)+(-B)(A+B)=A2+AB-B(A+B)=A2+AB-BA-B2=A2+AB-AB-B2=A2-B2
コード
Python 3
#!/usr/bin/env python3 from sympy import pprint, symbols, Matrix, solve print('4.') def cmp(A, B): return all([A[i, j].expand() == B[i, j].expand() for i in range(2) for j in range(2)]) print('可換な場合。') a, b, c, d = symbols('a, b, c, d', real=True) A = Matrix([[1, 1], [0, 1]]) B = Matrix([[a, b], [c, d]]) d = solve(A * B - B * A, a, b, c, d) pprint(d) B = B.subs(d) for t in [A, B, A * B == B * A, cmp((A + B) ** 2, A ** 2 + 2 * A * B + B ** 2), cmp((A + B) * (A - B), A ** 2 - B ** 2)]: pprint(t) print() print('可換ではない場合。') B = Matrix([[1, 1], [1, 1]]) for t in [A, B, A * B == B * A, cmp((A + B) ** 2, A ** 2 + 2 * A * B + B ** 2), cmp((A + B) * (A - B), A ** 2 - B ** 2)]: pprint(t) print()
入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ python3 sample4.py 4. 可換な場合。 {a: d, c: 0} ⎡1 1⎤ ⎢ ⎥ ⎣0 1⎦ ⎡d b⎤ ⎢ ⎥ ⎣0 d⎦ True True True 可換ではない場合。 ⎡1 1⎤ ⎢ ⎥ ⎣0 1⎦ ⎡1 1⎤ ⎢ ⎥ ⎣1 1⎦ False False False $
0 コメント:
コメントを投稿