2020年5月29日金曜日

学習環境

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



    1. det 3 1 - 1 1 1 1 0 1 - 1 = 3 det 1 1 1 - 1 - det 1 - 1 1 - 1 = 3 - 1 - 1 - - 1 + 1 = - 6
      det 0 1 - 1 0 1 1 1 1 - 1 = 1 + 1 = 2 x = 2 - 6 = - 1 3
      det 3 0 - 1 1 0 1 0 1 - 1 = - 3 + 1 = - 4 y = - 4 - 6 = 2 3
      det 3 1 0 1 1 0 0 1 1 = 3 - 1 = 2 z = 2 - 6 = - 1 3

    2. det 2 - 1 1 1 3 - 2 4 - 3 1 = det 0 0 1 5 1 0 2 - 2 0 = - 10 - 2 = - 12
      det 0 - 1 1 0 3 - 2 2 - 3 1 = 2 2 - 3 = - 2 x = 1 6
      det 2 0 1 1 0 - 2 4 2 1 = - 2 - 4 - 1 = 10 y = - 10 12 = - 5 6
      det 2 - 1 0 1 3 0 4 - 3 2 = 2 6 + 1 = 14 z = - 7 6

コード

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

print('1.')


class Test(TestCase):
    def test_a(self):
        x, y, z = -Rational(1, 3), Rational(2, 3), -Rational(1, 3)
        self.assertEqual(3 * x + y - z, 0)
        self.assertEqual(x + y + z, 0)
        self.assertEqual(y - z, 1)

    def test_b(self):
        x, y, z = Rational(1, 6), -Rational(5, 6), -Rational(7, 6)
        self.assertEqual(2 * x - y + z, 0)
        self.assertEqual(x + 3 * y - 2 * z, 0)
        self.assertEqual(4 * x - 3 * y + z, 2)


if __name__ == "__main__":
    main()

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

% ./sample1.py -v 
1.
test_a (__main__.Test) ... ok
test_b (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.001s

OK
%

0 コメント:

コメントを投稿