MCPで接続 →

計算を入力してください

公式

広告

結果

完全ベータ関数 B(a,b)
0.333333
last row x = 1: Bx = 0.333333, Ix = 1
x Bx(a,b) Ix(a,b)
0 0 0
0.02 0.01960267 0.058808
0.04 0.03842133 0.115264
0.06 0.056472 0.169416
0.08 0.07377067 0.221312
0.1 0.09033333 0.271
0.12 0.106176 0.318528
0.14 0.12131467 0.363944
0.16 0.13576533 0.407296
0.18 0.149544 0.448632
0.2 0.16266667 0.488
0.22 0.17514933 0.525448
0.24 0.187008 0.561024
0.26 0.19825867 0.594776
0.28 0.20891733 0.626752
0.3 0.219 0.657
0.32 0.22852267 0.685568
0.34 0.23750133 0.712504
0.36 0.245952 0.737856
0.38 0.25389067 0.761672
0.4 0.26133333 0.784
0.42 0.268296 0.804888
0.44 0.27479467 0.824384
0.46 0.28084533 0.842536
0.48 0.286464 0.859392
0.5 0.29166667 0.875
0.52 0.29646933 0.889408
0.54 0.300888 0.902664
0.56 0.30493867 0.914816
0.58 0.30863733 0.925912
0.6 0.312 0.936
0.62 0.31504267 0.945128
0.64 0.31778133 0.953344
0.66 0.320232 0.960696
0.68 0.32241067 0.967232
0.7 0.32433333 0.973
0.72 0.326016 0.978048
0.74 0.32747467 0.982424
0.76 0.32872533 0.986176
0.78 0.329784 0.989352
0.8 0.33066667 0.992
0.82 0.33138933 0.994168
0.84 0.331968 0.995904
0.86 0.33241867 0.997256
0.88 0.33275733 0.998272
0.9 0.333 0.999
0.92 0.33316267 0.999488
0.94 0.33326133 0.999784
0.96 0.333312 0.999936
0.98 0.33333067 0.999992
1 0.33333333 1

この計算ツールでできること

このツールは、形状パラメータ a・b に対して密接に関連する2つの特殊関数を、x の範囲にわたって表形式で計算します。下側不完全ベータ関数 \(B_x(a,b)\) は、ベータ関数の被積分関数を 0 から x まで積分した値であり、正規化不完全ベータ関数 \(I_x(a,b)\) はその積分を完全ベータ関数 \(B(a,b)\) で割った値です。\(I_x(a,b)\) はベータ分布 \(\text{Beta}(a,b)\) の累積分布関数(CDF)でもあり、二項分布・スチューデントの t 分布・F 分布をはじめとする多くの分布の CDF の基礎となっています。

使い方

形状パラメータ ab(いずれも正の値)を入力します。続いて、計算を始める x(x の初期値)、増分(刻み幅)、繰り返し回数(行数)を指定してください。i 行目では \(x = \text{初期値} + i \times \text{刻み幅}\) が用いられます。値は [0, 1] の範囲内に収められ、x が 1 に達した時点で表は終了します。上部のボックスには完全ベータ関数 \(B(a,b)\) と最終行の値が表示され、スクロール可能な表には各 x に対する \(B_x(a,b)\) と \(I_x(a,b)\) が一覧表示されます。

計算式の解説

完全ベータ関数は、対数ガンマ関数に Lanczos 近似を用いて $$B(a,b) = \exp(\operatorname{lgamma}(a) + \operatorname{lgamma}(b) - \operatorname{lgamma}(a+b))$$ として数値的に安定に計算します。正規化値 \(I_x(a,b)\) は、古典的な Numerical Recipes の連分数展開(Lentz のアルゴリズム)で評価します。\(bt = \exp(\operatorname{lgamma}(a+b) - \operatorname{lgamma}(a) - \operatorname{lgamma}(b) + a\cdot\ln x + b\cdot\ln(1-x))\) としたとき、\(x < (a+1)/(a+b+2)\) の場合は \(I_x = bt\cdot\operatorname{betacf}(a,b,x)/a\) を、そうでない場合は \(I_x = 1 - bt\cdot\operatorname{betacf}(b,a,1-x)/b\) を用います。最後に \(B_x(a,b) = I_x(a,b) \times B(a,b)\) を求めます。端点 \(I_0 = 0\)、\(I_1 = 1\) は \(\log(0)\) を避けるため厳密に処理しています。

広告
0から1へ増加するS字型の正則化不完全ベータ関数の曲線
正則化不完全ベータ関数 \(I_x(a,b)\) は、xが0から1へ進むにつれて0から1まで単調に増加します。
0からxまでの領域を塗りつぶしたベータ密度曲線。不完全ベータ積分を示す
下側不完全ベータ関数は、被積分関数の下側で0からxまで塗りつぶされた面積です。

計算例

\(a = 1\)、\(b = 3\) のとき、$$B(1,3) = \frac{\Gamma(1)\Gamma(3)}{\Gamma(4)} = \frac{1\cdot 2}{6} = \frac{1}{3} \approx 0.333333$$ となります。\(x = 0.5\) では閉形式により \(B_x = (1 - (1-x)^3)/3 = (1 - 0.125)/3 = 0.291667\) となり、\(I_x = 0.291667 / 0.333333 = 0.875\) が得られます。対称性による確認として \(I_x(1,3) = 1 - (1-x)^3 = 1 - 0.125 = 0.875\) となり、結果が一致します。

よくある質問

Bx と Ix の違いは何ですか? \(B_x(a,b)\) は正規化前の積分そのものの値です。\(I_x(a,b) = B_x(a,b)/B(a,b)\) は 0 から 1 の範囲に収まるよう正規化された値です。

なぜ a と b は正でなければならないのですか? 積分とガンマ関数は \(a > 0\) かつ \(b > 0\) のときにのみ収束するためです。

刻み幅によって x が 1 を超えた場合はどうなりますか? 各 x は 1 に丸められ、表は \(x = 1\) で終了します。このとき \(B_x(a,b) = B(a,b)\)、\(I_x(a,b) = 1\) となります。

最終更新: