超幾何関数
次のように定義される級数のことを超幾何級数とよびます。
ここで
を意味する記号で、
のことを超幾何関数といいます。超幾何関数はとても広いクラスの関数であり、その中に様々な関数を内包しています。たとえば対数関数は
のように表され、右辺はよく知られたマクローリン級数展開となっています。また逆三角関数も超幾何関数の1種であることが知られています。たとえば逆正弦関数は
で表されます。超幾何関数は簡単な形の級数で表されているので、数値計算においてもシンプルで汎用性の高い強力なツールとなります。特に後述する完全楕円積分の計算に威力を発揮します。
超幾何関数を VBA で実装してみましょう。階乗の除算を含む級数の計算においては「巨大な数(階乗)で割るエラー」を防ぐために少し工夫する必要があります。超幾何級数
においては、第 2 項の係数を
とおくと、第 3 項は
となり、第 4 項は
となります。このように1つ1つ計算させていくと、大きな数の割り算は現れにくくなり、より多くの項を計算することができます。以下に超幾何関数を計算する Function Macro(ユーザー定義関数)を載せておきます。なお、当サイトの関数を最大限に活用するため、VBA数値計算用最新コード のページに掲載されたマクロをモジュールに貼りつけることをおすすめします(以下のマクロも含んでいます)。
'[VBA]超幾何関数
Function GHGEO(a As Double, b As Double, c As Double, x As Double) As Double
Dim k As Integer
Dim fact As Long
Dim s As Double
d = a * b / c
s = 1 + d * x
For k = 2 To 100
d = d * (a + k - 1) * (b + k - 1) / (c + k - 1) / k
s = s + d * x ^ k
Next k
GHGEO = s
End Function
ちなみに、GHGEO は Gaussian Hyper Geometric Function の略です。GHGEO() を使う時は a, b, c, x の 4 つの引数を指定します。
=GHGEO(a,b,c,x)
たとえばワークシートに
=GHGEO(1,1,2,5)
と入力すると
完全楕円積分
次のような積分の形で定義される関数
のことを、それぞれ第1種完全楕円積分、第2種完全楕円積分とよびます。この関数は物理学で応用される関数で、
と表されます。GHGEO関数を使って完全楕円積分のグラフを描いてみると次のようになります。
エクセルや数学に関するコメントをお寄せください