2020年6月4日木曜日

学習環境

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


  1. det A = det [ a 11 * 0 a 22 0 0 0 a n n ] = i = 1 n a i i

コード

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

print('6.')

a11, a22, a33, a44 = symbols('a11, a22, a33, a44')
a3 = a11 * a22 * a33
a4 = a3 * a44


def f(i, j):
    if j < i:
        return 0
    if i == j:
        return symbols(f'a{i + 1}{i + 1}')
    return symbols('b{i}{j}')


def g(n):
    return Matrix([[f(i, j) for j in range(n)]
                   for i in range(n)])


class TestMatrixDet(TestCase):
    def test(self):
        for M, a in zip([g(3), g(4)], [a3, a4]):
            self.assertEqual(M.det(), a)


if __name__ == "__main__":
    main()

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

% ./sample6.py -v
6.
test (__main__.TestMatrixDet) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.053s

OK
%

0 コメント:

コメントを投稿