ライプニッツの公式とよばれる定理は二種類あって、ひとつは関数の積
f(x)g(x)のn階微分を求めるライプニッツの公式
となります。以後、記号を統一するために
と表せます。この式をもう1度微分すると
となります。さらにもう1度微分すると
となります。この結果は
とよく似ています(各項の係数は同じで、冪乗を微分階数に置き換える形になっています)。したがって、
の形から、
となることが予想できます (ライプニッツの公式)。
【ライプニッツの公式の証明】
推測が正しいことを、数学的帰納法を使って証明してみます。
となって、確かに成立しています。
が成り立つことを仮定します。この式を
ここで、公式
となり、
ライプニッツの公式の一般表式における係数は
実際の計算でライプニッツの公式を適用する機会はそう多くないかもしれません。ほとんどの場合、順次微分して導関数を得た方が簡単で、四次以上の導関数が必要となるケースも稀だからです。それでも比較的単純な微分計算で、ライプニッツの公式を使うと見通しがよくなる場合もあります。一例として
において、
を計算すればよいことになります。
なので、
が得られます。このように
円周率の近似値を計算するライプニッツの公式
円周率
ライプニッツ級数を書き下すと次のようになります。
分母が奇数の交代級数だと理解しておくと覚えやすいです。
ただし、この級数は恐ろしく収束が遅いです。円周率の真値は 3.141592654 ですが … Excel を使って調べてみると、299 項とっても、3.138259 という値にしかならない … 。興味のある人は下のワークブックをダウンロードしてみてください。
≫ leibniz_pi.xslx をダウンロードする
このファイルの Calculation シートに計算結果が載っていますが、1000 項 (n=999) まで計算しても真値と 3 桁までしか一致しません。
「この公式、実は全く役に立たないのでは!?」
という暴論さえ頭に浮かびました。Excel で高精度の値が出るまで計算させると、動作が重たくなりそうなので、VBA で関数を作って計算させてみることにしました。
'[VBA]ライプニッツの公式で円周率の近似値を計算する関数 Function Leibniz_pi(n_end As Long) Dim n As Long Dim s As Double '級数の初項 s = 1 'ライプニッツの公式で級数を計算 For n = 1 To n_end s = s + (-1) ^ n / (2 * n + 1) Next n '円周率の近似値 Leibniz_pi = 4 * s End Function
たとえば、セルに「=Leibniz_pi(1e6+1)」と入力すると ようやく 3.141591654 という値が得られます … 100 万ループなんてメモリの無駄遣いです。円周率の数値計算にライプニッツの公式はあまりおすすめできません。
エクセルや数学に関するコメントをお寄せください
大変お世話になっております。わかりやすいです。
差分公式とか方程式について教わりたいです。
何に役に立つのかもお願いします。
ありがとうございます。このサイトを活用していただけると私も嬉しいです。中心差分公式については、こちらの記事 の後半に簡単な説明があります。このサイトのサブドメインにある Python 数値計算サイト でも少しだけ扱っています。応用上、差分公式はコンピュータで関数を微分して近似値を得るために使われます。このような手法を数値微分とよびますが、不連続な点を含む特殊関数を扱う場合、何も考えずに数値微分を実行するとおかしな結果が出力されることもあるので、今扱っている関数が C 何級なのか (理論上は何回微分できるのか) を知っておくと対処しやすくなります。