2020年2月6日木曜日

学習環境

新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第9章(図形と代数の交錯する世界 - 平面上のベクトル)、9.1(ベクトルとその演算)、内積を成分で表すことの問16の解答を求めてみる。



    1. cos θ = a · b a b = 2 , 3 · 1 , - 1 2 , 3 1 , - 1 = 2 - 3 4 + 9 1 + 1 = - 1 13 2 = - 1 26

    2. cos θ = 3 3 · 2 = 1 2 θ = π 3

    3. cos θ = 1 2 θ = π 4

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix, sqrt, cos, Rational, pi, solveset, Interval
from sympy import FiniteSet

print('16.')

theta = symbols('θ')
domain = Interval(0, pi)


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


class MyTestCase(TestCase):
    def test1(self):
        a = Matrix([2, 3])
        b = Matrix([1, -1])
        self.assertEqual(cosine(a, b), -1 / sqrt(26))

    def test2(self):
        a = Matrix([-3, 0])
        b = Matrix([-1, sqrt(3)])
        c = cosine(a, b)
        self.assertEqual(c, Rational(1, 2))
        self.assertEqual(
            solveset(c - cos(theta), domain=domain), FiniteSet(pi / 3))

    def test3(self):
        self.assertEqual(
            solveset(cos(theta) - 1 / sqrt(2), domain=domain), FiniteSet(pi / 4))


if __name__ == "__main__":
    main()

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

% ./sample16.py -v
16.
test1 (__main__.MyTestCase) ... ok
test2 (__main__.MyTestCase) ... ok
test3 (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.602s

OK
%

0 コメント:

コメントを投稿