2020年3月8日日曜日

学習環境

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


  1. sin z = sin x + y i = sin x cos y i + cos x sin y i = sin x e i y i + e - i y i 2 + cos x e i y i - e - i y i 2 i = sin x e y + e - y 2 + i cos x e y - e - y 2

    よって、 正弦の実部と虚部は、

    Re sin z = sin x e y + e - y z Im sin z = cos x e y - e - y 2

    余弦について、

    cos z = cos x + y i = cos x cos y i - sin x sin y i = cos x e - y + e y 2 - sin x e - y - e y 2 i = cos x e y + e - y 2 - i sin x e y - e - y 2 Re cos z = cos x e y + e - y 2 Im cos z = - sin x e y - e - y 2

コード

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

print('5.')

x, y = symbols('x, y', real=True)
z = x + y * I


class MyTestCase(TestCase):
    def test_sine(self):
        r, i = sin(z).as_real_imag()
        self.assertEqual(r, (sin(x) * (exp(y) + exp(-y)) / 2).simplify())
        self.assertEqual(i, (cos(x) * (exp(y) - exp(-y)) / 2).simplify())

    def test_cosine(self):
        r, i = cos(z).as_real_imag()
        self.assertEqual(r, (cos(x) * (exp(y) + exp(-y)) / 2).simplify())
        self.assertEqual(i, (-sin(x) * (exp(y) - exp(-y)) / 2).simplify())


if __name__ == "__main__":
    main()

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

% ./sample5.py -v
5.
test_cosine (__main__.MyTestCase) ... ok
test_sine (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.460s

OK
%

0 コメント:

コメントを投稿