[VBA] 複素変数の三角関数(余弦/正弦/正接関数)

複素変数の三角関数 (cosz, sinz, tanz)

 複素変数の余弦関数と正弦関数、正接関数 は、指数関数 $e^z$ を用いて以下のように定義されます。

\[\begin{align*}\cos z&=\frac{e^{iz}+e^{-iz}}{2}\tag{A}\\[6pt]
\sin z&=\frac{e^{iz}-e^{-iz}}{2i}\tag{B}\\[6pt]
\tan z&=\frac{\sin z}{\cos z}\tag{C}\end{align*}\]

 上の定義から、複素変数の三角関数は次のような公式が成り立つことがわかります。
 
\[\begin{align*}&\frac{d\cos z}{dz}=-\sin z\quad \frac{d\sin z}{dz}=\cos z\\[6pt]
&\sin(z_1\pm z_2)=\sin z_1\cos z_2\pm\cos z_1\sin z_2\\[6pt]
&\cos(z_1\pm z_2)=\cos z_1\cos z_2\mp\sin z_1\sin z_2\\[6pt]
&\sin^2z+\cos^2z=1\\[6pt]
&\cos (-z)=\cos z,\quad\sin (-z)=\sin z\\[6pt]
&\sin (k\pi)=0\quad (k=0,1,2,\cdots)\\[6pt]
&\cos \left(k+\frac{1}{2}\right)\pi=0\quad (k=0,1,2,\cdots)\end{align*}\]
 複素変数の三角関数を用いると $\cos i$ や $\sin i$ のような値を求めることができます。
 以下のマクロで計算して確かめてみます。

 ≫ [Amazon数学書籍] 集合・位相入門

複素変数の三角関数を計算するマクロ

 $\cos z$ と $\sin z$ および $\tan z$ を計算する Function Macro です。関数を使用するにはあらかじめ複数のユーザー定義関数が用意されている必要があります。最新コード をモジュールに貼り付けてください(この記事のマクロも含まれています)。

 'cosz の計算 (C)BlogCat

 Function CXCOS(z As Complex) As Complex

 Dim iz1 As Complex
 Dim iz2 As Complex
 Dim cz As Complex

 iz1 = CPXCLC(CPX(0, 1), z, 3)
 iz2 = CPXCLC(CPX(0, -1), z, 3)

 cz = CPXCLC(CEXP(iz1), CEXP(iz2))

 CXCOS = CPXCLC(cz, CPX(2, 0), 4)

 End Function

 'sinz の計算

 Function CXSIN(z As Complex) As Complex

 Dim iz1 As Complex
 Dim iz2 As Complex
 Dim cz As Complex

 iz1 = CPXCLC(CPX(0, 1), z, 3)
 iz2 = CPXCLC(CPX(0, -1), z, 3)

 cz = CPXCLC(CEXP(iz1), CEXP(iz2), 2)

 CXSIN = CPXCLC(cz, CPX(0, 2), 4)

 End Function

 'tanz の計算

 Function CXTAN(z As Complex) As Complex

 CXTAN = CPXCLC(CXSIN(z), CXCOS(z), 4)

 End Function

 マクロを呼びだすときには、それぞれ

CXCOS(z)
CXSIN(z)
CXTAN(z)

と記述します。z には Complex 型数値を指定します。以下に使用例を載せておきます。

 '複素変数三角関数の計算例

 Sub CXtest()

 Dim z1 As Complex
 Dim cosi As Complex
 Dim sini As Complex
 Dim tani As Complex

 z1 = CPX(0, 1)

 cosi = CXCOS(z1)
 sini = CXSIN(z1)
 tani = CXTAN(z1)

 Debug.Print cosi.re & " + " & cosi.im & "i"
 Debug.Print sini.re & " + " & sini.im & "i"
 Debug.Print tani.re & " + " & tani.im & "i"

 End Sub

 実行すると $\cos i,\:\sin i,\:\tan i$ を計算して

 1.54308063481524 + 0i
 0 + 1.1752011936438i
 0 + 0.761594155955765i

という計算結果を返します。$\sin i$ は実数ですが、$\cos i$ と $\tan i$ は虚数となっています。

z=CPX(0, 1)

で複素数 $0+i$ を指定していますが、この部分の記述を変えることで色々な複素数に対する三角関数の値を計算することができるので、試してみてください。 ≫ VBA 数値計算

スポンサーリンク
末尾広告
末尾広告

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください