この計算ツールでできること
このツールは、定積分 \(B_x(a,b) = \int_{0}^{x} t^{a-1}(1-t)^{b-1}\,dt\) で定義される下側不完全ベータ関数を計算します。被積分関数 \(t^{a-1}(1-t)^{b-1}\) は、ベータ分布やベータ二項分布の核(カーネル)にあたります。積分の上限を \(x = 1\)(下限を 0)とすると、結果は完全ベータ関数 \(B(a,b) = \Gamma(a)\Gamma(b)/\Gamma(a+b)\) に一致します。
使い方
2つの形状パラメータ、a(変数 a)と b を入力します。いずれも正の値にしてください。次に、積分区間の下限と上限 x(通常は 0 〜 1)を設定します。分割数 n(ガウス・ルジャンドルの節点数)を選びます。n を大きくするほど精度が上がりますが、滑らかな被積分関数であれば n = 20 で十分です。区間を [0, 1] のままにすれば、完全ベータ関数が得られます。
計算式の解説
積分はガウス・ルジャンドル積分(数値積分)で計算します。区間 [-1, 1] 上の標準的な節点 \(x_i\) と重み \(w_i\) を、ニュートン法でルジャンドル多項式 \(P_n\) の根として求め、指定した区間 [c, d] へ線形に写像します:
$$t_i = \frac{d-c}{2}\cdot x_i + \frac{d+c}{2}$$積分はこれを用いて
$$\frac{d-c}{2}\sum w_i\, f(t_i)$$で近似されます。ガウス・ルジャンドル法は 2n-1 次までの多項式を厳密に積分できるため、滑らかな被積分関数に対して極めて速く収束します。
計算例
a = 3、b = 5、区間 [0, 1]、n = 20 とすると、結果は完全ベータ関数
$$B(3,5) = \frac{2! \cdot 4!}{7!} = \frac{48}{5040} = 0.0095238095\ldots = \frac{1}{105}$$になります。この数値積分は、倍精度の桁数までこの値を正確に再現します。
よくある質問
\(0 < a < 1\) や \(0 < b < 1\) のときはどうなりますか? 被積分関数は端点で可積分な特異点を持ちます。ガウス・ルジャンドルの節点は区間内部にあるため結果は有限値になりますが、精度は低下します。n を大きくしてください。
正則化不完全ベータ関数 \(I_x(a,b)\) はどう求めますか? この計算結果を完全ベータ関数で割ります(区間を [0, 1] に設定して計算してください)。
結果が負になることがあるのはなぜですか? 上限が下限より小さい場合、符号付き積分は負になります。これは数学的に正しい結果です。