2020年6月7日日曜日

学習環境

続 解析入門 (原書第2版) (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第1章(ベクトル)、4(ベクトルのノルム)の練習問題1、2の解答を求めてみる。



    1. 2 , - 1 = 4 + 1 = 5

    2. 1 + 9 = 10

    3. 4 + 1 + 25 = 30

    4. 1 + 4 + 9 = 14

    5. π 2 + 9 + 1 = π 2 + 10

    6. 225 + 4 + 16 = 245 = 7 5


    1. 1 + 1 = 2

    2. 4

    3. 3

    4. 1 + 9 + 16 = 26

    5. 4 π 2 + 9 + 49 = 4 π 2 + 58

    6. π 2 + 9 + 1 = π 2 + 10

コード

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

print('1, 2.')


class TestNorm(TestCase):
    def test_a(self):
        As = [Matrix(t) for t in [(2, -1), (-1, 3), (2, -1, 5),
                                  (-1, -2, 3), (pi, 3, -1), (15, -2, 4)]]
        ns = [sqrt(5), sqrt(10), sqrt(30), sqrt(
            14), sqrt(pi ** 2 + 10), 7 * sqrt(5)]
        for i, (A, n) in enumerate(zip(As, ns)):
            print(f'({chr(ord("a") + i)})')
            self.assertEqual(A.norm(), n)

    def test_b(self):
        Bs = [Matrix(t) for t in [(-1, 1), (0, 4), (-1, 1, 1),
                                  (-1, 3, -4), (2 * pi, -3, 7), (pi, 3, -1)]]
        ns = [sqrt(2), 4, sqrt(3), sqrt(26), sqrt(4 * pi ** 2 + 58),
              sqrt(pi ** 2 + 10)]
        for i, (B, n) in enumerate(zip(Bs, ns)):
            print(f'({chr(ord("a") + i)})')
            self.assertEqual(B.norm(), n)


if __name__ == "__main__":
    main()

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

% ./sample1.py -v
1, 2.
test_a (__main__.TestNorm) ... (a)
(b)
(c)
(d)
(e)
(f)
ok
test_b (__main__.TestNorm) ... (a)
(b)
(c)
(d)
(e)
(f)
ok

----------------------------------------------------------------------
Ran 2 tests in 0.038s

OK
%

0 コメント:

コメントを投稿