2020年3月8日日曜日

学習環境

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


  1. sinz=sinx+yi=sinxcosyi+cosxsinyi=sinxeiyi+e-iyi2+cosxeiyi-e-iyi2i=sinxey+e-y2+icosxey-e-y2

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

    Resinz=sinxey+e-yzImsinz=cosxey-e-y2

    余弦について、

    cosz=cosx+yi=cosxcosyi-sinxsinyi=cosxe-y+ey2-sinxe-y-ey2i=cosxey+e-y2-isinxey-e-y2Recosz=cosxey+e-y2Imcosz=-sinxey-e-y2

コード

#!/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 コメント:

コメントを投稿