2020年3月7日土曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第9章(関数列と関数級数)、9.3(複素整級数(指数関数・三角関数再論))、問題4の解答を求めてみる。



    • sin z cos w + cos z sin w = e i z - e - i z 2 i · e i w + e - i w 2 + e i z + e - i z 2 · e i w - e - i w 2 i = 1 4 i e i z + w + e i z - w - e i - z + w - e i - z - w + e i z + w - e i z - w + e i - z + w - e i - z - w = 1 4 i 2 e i z + w - 2 e - i z + w = e i z + w - e - i z + w 2 i = sin z + w

    • cos z cos w - sin z sin w = e i z + e - i z 2 · e i w + e - i w 2 - e i z - e - i z 2 i · e i w - e - i w 2 i = e i z + w + e i z - w + e i - z + w + e - i z + w 4 + e i z + w - e i z - w - e i - z + w + e - i z + w 4 = 2 e i z + w + 2 e - i z + w 4 = e i z + w + e - i z + w z = cos z + w

コード

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

print('4.')

z, w = symbols('z, w', imag=True)


class MyTestCase(TestCase):
    def test_sine(self):
        a, b = sin(z + w).as_real_imag()
        c, d = (sin(z) * cos(w) + cos(z) * sin(w)).as_real_imag()
        self.assertEqual(a.simplify(), c.simplify())
        self.assertEqual(b.simplify(), d.simplify())

    def test_cosine(self):
        a, b = cos(z + w).as_real_imag()
        c, d = (cos(z) * cos(w) - sin(z) * sin(w)).as_real_imag()
        self.assertEqual(a.simplify(), c.simplify())
        self.assertEqual(b.simplify(), d.simplify())


if __name__ == "__main__":
    main()

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

% ./sample4.py -v
4.
test_cosine (__main__.MyTestCase) ... ok
test_sine (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 2 tests in 1.312s

OK
%

0 コメント:

コメントを投稿