2020年7月14日火曜日

学習環境

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



    1. A × B
      = ( 3 , - 2 , 4 ) × ( 5 , 1 , 1 )
      = ( - 2 - 4 , 20 - 3 , 3 + 10 )
      = ( - 6 , 17 , 13 )
      = 36 + 289 + 169
      = 494

    2. ( 0 , - 14 , 7 ) = 196 + 49 = 245 = 7 5

    3. ( - 3 , 19 , 10 ) = 9 + 361 + 100 = 470

    4. ( 13 , 14 , 4 ) = 169 + 196 + 16 = 381

コード

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

print('9.')


def eq(x, y):
    return all([x0.expand() == y0.expand() for x0, y0 in zip(x, y)])


class Test(TestCase):
    def test(self):
        ts = [((3, -2, 4), (5, 1, 1)),
              ((3, 1, 2), (-1, 2, 4)),
              ((4, -2, 5), (3, 1, -1)),
              ((-2, 1, 3), (2, -3, 4))]
        ss = [sqrt(494), 7 * sqrt(5), sqrt(470), sqrt(381)]
        for i, ((a, b), s) in enumerate(zip(ts, ss)):
            print(f'({chr(ord("a") + i)})')
            self.assertEqual(Matrix(a).cross(Matrix(b)).norm(), s)


if __name__ == "__main__":
    main()

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

% ./sample9.py -v
9.
test (__main__.Test) ... (a)
(b)
(c)
(d)
ok

----------------------------------------------------------------------
Ran 1 test in 0.077s

OK
%

0 コメント:

コメントを投稿