2020年6月1日月曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の6章(行列式)、4(行列式の存在)、練習問題2の解答を求めてみる。



    1. det [ 1 0 0 0 0 1 1 3 0 - 3 5 - 8 0 - 2 8 - 7 ] = det [ 1 0 0 0 8 1 0 10 - 1 ] = - 8 - 10 = - 18

    2. det [ - 1 0 0 0 0 3 2 1 0 4 1 2 0 4 11 7 ] = - det [ 0 0 1 - 2 - 3 0 - 17 - 3 0 ] = 3 [ 0 0 1 - 2 1 0 - 17 1 0 ] = 3 - 2 + 17 = 3 · 15 = 45

    3. det [ 3 1 1 - 13 0 0 - 13 0 0 ] = 0

    4. 0

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix

print('2.')


class TestMatrixDet(TestCase):
    def test4(self):
        m = [[1, 1, -2, 4, 0, 1, 1, 3, 2, -1, 1, 0, 3, 1, 2, 5],
             [-1, 1, 2, 0, 0, 3, 2, 1, 0, 4, 1, 2, 3, 1, 5, 7]]

        n = [-18, 45]
        for i, (m0, n0) in enumerate(zip(m, n)):
            print(f'({chr(ord("a") + i)})')
            self.assertEqual(Matrix(m0).reshape(4, 4).det(), n0)

    def test3(self):
        m = [[3, 1, 1, 2, 5, 5, 8, 7, 7],
             [4, -9, 2, 4, -9, 2, 3, 1, 0]]
        for i, m0 in enumerate(m):
            print(f'({chr(ord("c") + i)})')
            self.assertEqual(Matrix(m0).reshape(3, 3).det(), 0)


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample2.py -v
2.
test3 (__main__.TestMatrixDet) ... (c)
(d)
ok
test4 (__main__.TestMatrixDet) ... (a)
(b)
ok

----------------------------------------------------------------------
Ran 2 tests in 0.003s

OK
%

0 コメント:

コメントを投稿