昨日の記事で取り上げたマクローリン展開を用いて、オイラーの公式を導きます。さらに、公式中に現れると
について、
の範囲で数値的にマクローリン展開してみた結果も示します。
オイラーの公式の導出
オイラーの公式とは、言わずと知れた
(1)
です。これを導きます。
まず、をマクローリン展開します。
(2)
ここで、を代入すると、
(3)
となります。
一方、をマクローリン展開すると、
(4)
となり、(3)の実部と一致します。
また、をマクローリン展開すると、
(5)
となり、(3)の虚部と一致します。
よって、(3)~(5)より、
(6)
を示すことができました。
三角関数の数値的なマクローリン展開
と
を23次までの多項式で近似してみました。
結果を示します。
23次の多項式では、くらいまでは綺麗に近似できました。しかし、
では、
が
より小さい値になっており、
も
になっていません。たかだか1周期を計算するために、思ったより多くの項で近似する必要があることに驚きました。もともと想定していたのは、折り返しの数は必要だろうということで、数次程度でした。
次の図に、角度に対する各項の変化を示します。
θが3πに近くなると、絶対値が1500を超える項が出てきます。
この事実に対し、理論では、θがどんなに大きくなっても、無限の次数を組み合わせれば、±1以内の値になることを保証しています。理論はエライいものだと感じます。
最後にのときの各項の値を示します。
次数の小さいところは、の累乗値が比較的小さいため、項としての値もあまり大きくありません。また、時数の大きいところは、分母の階乗の値が大きくなって抑え込まれています。結局、中央部が大きな値を示すようになります。
角度が更に大きくなると、この中央部がさらに巨大化しつつ右の方にずれていきます。
なお、このシミュレーションで用いた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
コメント