2020年2月2日日曜日

学習環境

解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第Ⅵ部(多変数の関数)、第17章(ベクトル)、5(直線と平面)の練習問題15の解答を求めてみる。



    1. 2つの平面の法線ベクトルはそれぞれ、

      a = 1 , 1 , 1 b = 1 , - 1 , - 1

      よって、 2平面の間の角を

      θ

      とおくと、

      cos θ = a · b a b = 1 - 1 - 1 3 3 = - 1 3

    2. cos θ = 2 - 3 - 1 4 + 9 + 1 3 = - 2 14 3 = - 2 42

    3. cos θ = - 1 + 6 - 1 6 11 = 4 66

    4. cos θ = - 2 - 1 + 1 6 3 = - 2 3 2 = - 2 3

コード

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

print('15.')


def cos(a, b):
    return a.dot(b) / (a.norm() * b.norm())


class MyTestCase(TestCase):
    def test(self):
        ts = [((1, 1, 1), (1, -1, -1)),
              ((2, 3, -1), (1, -1, 1)),
              ((1, 2, -1), (-1, 3, 1)),
              ((2, 1, 1), (-1, -1, 1))]
        cosines = [-Rational(1, 3),
                   -2 / sqrt(42),
                   4 / sqrt(66),
                   -sqrt(2) / 3]
        for (a, b), c in zip(ts, cosines):
            a = Matrix(a)
            b = Matrix(b)
            self.assertEqual(cos(a, b), c)


if __name__ == "__main__":
    main()

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

% ./sample15.py -v
15.
test (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.054s

OK
%

0 コメント:

コメントを投稿