2019年10月7日月曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第5章(各種の初等関数)、5.5(複素数の幾何学的表現)、問題4の解答を求めてみる。


  1. cos θ + i sin θ n = cos n θ + i sin n θ cos θ - i sin θ n = cos n θ - i sin n θ cos n θ = cos θ + i sin θ n + cos θ - i sin θ n 2 sin n θ = cos θ + i sin θ n - cos θ - i sin θ n 2 i

    よって、

    cos 4 θ = cos θ + i sin θ 4 + cos θ - i sin θ 4 2 = cos 4 θ - 6 cos 2 θ sin 2 θ + sin 4 θ sin 4 θ = cos θ + i sin θ 4 - cos θ - i sin θ 4 2 i = 4 cos 3 θ sin θ - 4 cos θ sin 3 θ cos 5 θ = cos θ + i sin θ 5 + cos θ - i sin θ 5 2 = cos 5 θ - 10 cos 3 θ sin 2 θ + 5 cos θ sin 4 θ sin 5 θ = cos θ + i sin θ 5 - cos θ - i sin θ 5 2 i = 5 cos 4 θ sin θ - 10 cos 2 θ sin 3 θ + sin 5 θ

コード

Python 3

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

print('4.')


class MyTest(TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    def test(self):
        theta = symbols('θ')
        spam = [f(o) for o in [4 * theta, 5 * theta] for f in [cos, sin]]
        egg = [cos(theta) ** 4 - 6 * cos(theta) ** 2 *
               sin(theta) ** 2 + sin(theta) ** 4,
               4 * cos(theta) ** 3 * sin(theta) -
               4 * cos(theta) * sin(theta) ** 3,
               cos(theta) ** 5 - 10 * cos(theta) ** 3 * sin(theta) ** 2 +
               5 * cos(theta) * sin(theta) ** 4,
               5 * cos(theta) ** 4 * sin(theta) -
               10 * cos(theta) ** 2 * sin(theta) ** 3 +
               sin(theta) ** 5]
        for s, t in zip(spam, egg):
            for theta0 in range(10):
                d = {theta: theta0}
                self.assertEqual(float(s.subs(d)), float(t.subs(d)))


if __name__ == '__main__':
    main()

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ ./sample4.py
4.
.
----------------------------------------------------------------------
Ran 1 test in 0.093s

OK
$ 

0 コメント:

コメントを投稿