1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

複素三角関数のグラフ化

Last updated at Posted at 2025-05-31

はじめに

三角関数は、角度の情報を単位円上の座標に変換する関数として高校では定義されている。しかし、高校数学の微分積分では、三角関数の微分と積分を定義することができるようになった。そのことにより、三角関数のテイラー展開やマクローリン展開を導出することができるようになった。そのことから、オイラーの公式が導けるようになった。

そこで、今回はオイラーの公式を用いて三角関数の定義域を実数から複素数へ拡張する。

次に、上記で定義された三角関数を以下のような三次元図(コンター図)で表す。

fukusosuu_sin.png

小ネタ

(ポエムなので、忙しい方は飛ばしてください。)
数学検定1級の試験で、$\sin z =2$となる$z$を求めよという出たらしい。これは、実数$\theta $の場合、$-1\le \sin \theta \le 1$と単位円を描いて思考停止で覚えていた筆者にとっては衝撃的であった。常識を疑わないと解けないような本質的な問題を出してくるあたり流石、数学検定1級と言わざるを得ない。
ちなみに解き方はオイラーの公式を使用する。具体的には、三角関数を指数関数と複素数で表す。これにより、三角関数の定義域を実数から複素数まで拡張できる。

問題定義

複素数$z$は実数$x,y$を用いて$z=x+jy$と定義することができる。(複素数を扱う際の最強のツールである)
このとき、

w=Real(\sin z)

はどのような挙動を示すか、3次元プロットで考える。(本当は三角関数の実部と虚部を同時に考えたいのだが、それだと4次元空間を描写しなければならず、難しい。)

三角関数の定義域の拡張

さて、オイラー公式を用いて、三角関数の正弦は以下のように表されることを認める。ただし$z$は複素数とする。


\sin z = \frac{e^{jz}-e^{-jz}}{2j}

ここで、$z=x+jy$を代入する。


\sin z = \frac{e^{j(x+jy)}-e^{-j(x+jy)}}{2j}=\frac{e^{-y}(\cos x+j \sin x)-e^{y}(\cos x-j \sin x)}{2j}=\frac{e^{y}+e^{-y}}{2}\sin x+j \frac{e^{y}-e^{-y}}{2}\cos x

したがって、


w=Real(\sin z) =\frac{e^{y}+e^{-y}}{2}\sin x

と表すことができる。

プログラム

上記の考えをもとにして以下のようなプログラムを作成した。
ただし、いつも筆者が使用しているライブラリに加え、今回は複素数での関数演算が可能なcmathというライブラリを用いた。

python complex_sin.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math
import cmath
n=100
L=1
x=np.linspace(-math.pi, math.pi, n)
y=np.linspace(-2, 2, n)
X, Y = np.meshgrid(x, y)
W=np.zeros((n, n))
for p in range(n):
  for q in range(n):
    # 複素数の定義
    z=X[p][q]+1j*Y[p][q]
    # cmathを用いた複素数の正弦関数の計算
    W[p][q]=cmath.sin(z).real
    # 以下のコメント文は正弦関数の実部を計算(導出した関数を使用)、比較用
    #W[p][q]=(math.exp(Y[p][q])+math.exp(-Y[p][q]))/2*math.sin(X[p][q])
plt.contourf(X, Y, W, levels=100, cmap='jet')
plt.colorbar(label="正弦関数の値")
plt.title("複素数の正弦関数の実部")
plt.xlabel("実部")
plt.ylabel("虚部")
plt.savefig("複素三角関数のグラフ.png")
plt.show()

これを実行すると以下のようなコンター図が出力される。

fukusosuu_sin.png

ここで、cmathの文をコメントとし、コメントだった文のコメントを外しても同じコンター図を得ることができる。このことから、三角関数の定義域を複素数の範囲まで拡張するという考察は正しいということが分かる。

また、コンター図を見るに、$z$の虚部を大きくすると$w$の値の振れ幅が指数関数的に大きくなることが分かる。このことから、三角関数と指数関数は、複素数の世界でも相補的であるといえる。

まとめ

今回は、オイラーの公式を用いて、三角関数の定義域を実数から複素数に拡張するという試みを行った。また、後半では拡張された三角関数がどのような挙動を示すのかをコンター図を用いることで調査した。

参考文献

複素三角関数について

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?