2019年12月21日土曜日

学習環境

新装版 数学読本2 (松坂 和夫(著)、岩波書店)の第8章(円の中にひそむ関数 - 三角関数)、8.3(三角関数と三角形)、余弦定理の問43の解答を求めてみる。


  1. x > 1 x 2 - 1 - 2 x + 1 = x 2 - 2 x - 2 = x - 1 2 + 1 > 0 x 2 + x + 1 - x 2 - 1 = x + 2 > 0

    よって、長さ

    x 2 + x + 1

    が最大辺なので、 この辺の対角が最大である。

    その角の値を求める。

    その角を A とおくと、余弦定理より、

    x 2 + x + 1 2 = x 2 - 1 2 + 2 x + 1 2 - 2 x 2 - 1 2 x + 1 cos A cos A = x 2 - 1 2 + 2 x + 1 2 - x 2 + x + 1 2 2 x 2 - 1 2 x + 1 = x 4 - 2 x 2 + 1 + 4 x 2 + 4 x + 1 - x 4 + 2 x 3 + x 2 + 2 x 2 + 2 x + 1 2 x 2 - 1 2 x + 1 = - 2 x 3 - x 2 + 2 x + 1 2 2 x 3 + x 2 - 2 x - 1 = - 1 2

    また、 A は三角形の角なのでその値は

    0 < A < π

    よって、

    A = 2 3 π

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, cos, solveset, pi, Interval, plot
print('43.')

x, A = symbols('x, A', real=True)
f = 2 * x + 1
g = x ** 2 - 1
h = x ** 2 + x + 1


class MyTestCase(TestCase):
    def test(self):
        s = solveset((f ** 2 + g ** 2 - h ** 2) / (2 * f * g) -
                     cos(A), A, domain=Interval.open(0, pi))
        self.assertEqual(len(s), 1)
        self.assertEqual(float(list(s)[0]), float(2 * pi / 3))


p = plot(f, g, h,
         (x, 1, 6),
         legend=True,
         show=False)
colors = ['red', 'green', 'blue', 'brown', 'orange',
          'purple', 'pink', 'gray', 'skyblue', 'yellow']

for s, color in zip(p, colors):
    s.line_color = color


p.show()
p.save(f'sample43.png')

if __name__ == '__main__':
    main()

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

% ./sample43.py -v
43.
test (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.189s

OK
%

0 コメント:

コメントを投稿