学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の3章(行列)、2(行列の積)、練習問題9の解答を求めてみる。
よって、
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import MatrixSymbol, Matrix
import random
print('9.')
class MyTestCase(TestCase):
def test_a(self):
a = Matrix([[2, 1],
[3, 1]])
b = Matrix([[-1, 1],
[1, 0]])
self.assertEqual((a * b).T, b.T * a.T)
def test_b(self):
a = Matrix([[2, 1, -1],
[3, 1, 2]])
b = Matrix([[1, 1],
[2, 0],
[3, -1]])
self.assertEqual((a * b).T, b.T * a.T)
def test_c(self):
a = Matrix([[2, 4, 1],
[3, 0, -1]])
b = Matrix([[1, 1, 0],
[2, 1, -1],
[3, 1, 5]])
self.assertEqual((a * b).T, b.T * a.T)
def test_d(self):
for _ in range(10):
m = random.randrange(1, 10)
n = random.randrange(1, 10)
l = random.randrange(1, 10)
k = random.randrange(1, 10)
a = MatrixSymbol('A', m, n)
b = MatrixSymbol('B', n, l)
c = MatrixSymbol('C', l, k)
self.assertEqual((a * b * c).T, c.T * b.T * a.T)
if __name__ == '__main__':
main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample9.py -v
9.
test_a (__main__.MyTestCase) ... ok
test_b (__main__.MyTestCase) ... ok
test_c (__main__.MyTestCase) ... ok
test_d (__main__.MyTestCase) ... ok
----------------------------------------------------------------------
Ran 4 tests in 0.060s
OK
%
0 コメント:
コメントを投稿