オイラーの公式を導くと共に三角関数を数値的にマクローリン展開してみた

昨日の記事で取り上げたマクローリン展開を用いて、オイラーの公式を導きます。さらに、公式中に現れる\sin \theta\cos \thetaについて、 [ 0, \ 3 \pi ]の範囲で数値的にマクローリン展開してみた結果も示します。

オイラーの公式の導出

オイラーの公式とは、言わずと知れた

(1)   \begin{equation*} e^{i \theta} = \cos \theta + i \sin \theta \end{equation*}

です。これを導きます。

まず、e^xをマクローリン展開します。

(2)   \begin{eqnarray*} e^x &=& \frac{e^0}{0!}+ \frac{e^0 x}{1!} + \frac{e^0 x^2}{2!} +\frac{e^0 x^3}{3!} +\frac{e^0 x^4}{4!} +\frac{e^0 x^5}{5!} + \cdots \\ &=& 1 + \frac{x}{1!} + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \frac{x^5}{5!} + \cdots \end{eqnarray*}

ここで、x=i \thetaを代入すると、

(3)   \begin{eqnarray*} e^{i \theta} &=& 1 + \frac{i \theta}{1!} + \frac{(i \theta)^2}{2!} + \frac{(i \theta)^3}{3!} + \frac{(i \theta)^4}{4!} + \frac{(i \theta)^5}{5!} + \cdots \\ &=& 1 + \frac{i \theta}{1!} - \frac{\theta ^2}{2!}  - \frac{i \theta ^3}{3!} + \frac{\theta ^4}{4!} + \frac{i \theta ^5}{5!}  - \cdots \\ &=& 1 - \frac{\theta ^2}{2!} + \frac{\theta ^4}{4!}  - \cdots + i \left( \frac{\theta}{1!} - \frac{\theta ^3}{3!} + \frac{\theta ^5}{5!} - \cdots \\ \end{eqnarray*}

となります。

一方、\cos \thetaをマクローリン展開すると、

(4)   \begin{eqnarray*} \cos \theta &=& cos 0 - \frac{\sin 0\ \theta}{1!} - \frac{\cos 0\ \theta^2}{2!} + \frac{\sin 0\ \theta^3}{3!} + \frac{\cos 0\ \theta^4}{4!} - \frac{\sin 0\ \theta^5}{5!} - \dots \\ &=& 1 - \frac{\theta^2}{2!} +\frac{\theta^4}{4!} - \cdots \end{eqnarray*}

となり、(3)の実部と一致します。

また、\sin \thetaをマクローリン展開すると、

(5)   \begin{eqnarray*} \sin \theta &=& \sin 0 + \frac{\cos 0\ \theta}{1!} - \frac{\sin 0\ \theta^2}{2!} - \frac{\cos 0\ \theta^3}{3!}  + \frac{\sin 0\ \theta^4}{4!} + \frac{\cos 0\ \theta^5}{5!}  - \dots \\ &=& \frac{\theta}{1!} - \frac{\theta ^3}{3!} + \frac{\theta ^5}{5!} - \cdots \end{eqnarray*}

となり、(3)の虚部と一致します。

よって、(3)~(5)より、

(6)   \begin{equation*} e^i \theta = \cos \theta + i \sin \theta \end{equation*}

を示すことができました。

三角関数の数値的なマクローリン展開

\cos \theta\sin \thetaを23次までの多項式で近似してみました。

結果を示します。

cosθとsinθの数値シミュレーション

cosθとsinθの数値シミュレーション

23次の多項式では、2 \pi [rad]くらいまでは綺麗に近似できました。しかし、3 \pi [rad]では、\cos \theta-1より小さい値になっており、\sin \theta0になっていません。たかだか1周期を計算するために、思ったより多くの項で近似する必要があることに驚きました。もともと想定していたのは、折り返しの数は必要だろうということで、数次程度でした。

次の図に、角度に対する各項の変化を示します。

角度に対する各項の変化

角度に対する各項の変化

θが3πに近くなると、絶対値が1500を超える項が出てきます。
この事実に対し、理論では、θがどんなに大きくなっても、無限の次数を組み合わせれば、±1以内の値になることを保証しています。理論はエライいものだと感じます。

最後に\theta = 3 \piのときの各項の値を示します。

θ=3πのときの各項の値

θ=3πのときの各項の値

次数の小さいところは、\thetaの累乗値が比較的小さいため、項としての値もあまり大きくありません。また、時数の大きいところは、分母の階乗の値が大きくなって抑え込まれています。結局、中央部が大きな値を示すようになります。

角度が更に大きくなると、この中央部がさらに巨大化しつつ右の方にずれていきます。

なお、このシミュレーションで用いたExcelファイルは下記のリンクに置いてあります。

MaclaurinExpansionOfTrigonometricFunctions

角度を変化させて各項の値を得るために、マクロを使いました。しかし、セキュリティの条件によって、Excelファイルにマクロを入れてアップロードすることができなかったので、別途マクロのみ以下に示しておきます。必要に応じてダウンロードしたファイルに組み合わせてお使いください。

Public Sub simulation()
    Dim i As Integer

    ' 0から60まで繰り返し
    For i = 0 To 60
        ' iに2πをかけて40で割ることで、3πまでシミュレーションする
        Range("θ") = i * 2 * WorksheetFunction.Pi / 40
        ' θ(B1)に値を入れるとB2~B28が計算結果になるので、それを選択
        Range("B1:B28").Select
        ' コピーする
        Selection.Copy
        ' D行のセルを選択
        Range("D" & i + 2).Select
        ' 転置をとって値のみペーストする
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=True
    Next i
End Sub

 

 

 

コメント

タイトルとURLをコピーしました