scipy.special.betaincc#

scipy.special.betaincc(a, b, x, out=None) = <ufunc 'betaincc'>#

正規化不完全貝塔函數的補數。

計算正規化不完全貝塔函數的補數,定義為 [1]

\[\bar{I}_x(a, b) = 1 - I_x(a, b) = 1 - \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x t^{a-1}(1-t)^{b-1}dt,\]

對於 \(0 \leq x \leq 1\)

參數:
a, barray_like

正值實數參數

xarray_like

實數值,使得 \(0 \leq x \leq 1\),積分上限

outndarray,選用

函數值的選用輸出陣列

回傳值:
純量或 ndarray

正規化不完全貝塔函數的值

參見

betainc

正規化不完全貝塔函數

betaincinv

正規化不完全貝塔函數的反函數

betainccinv

正規化不完全貝塔函數補數的反函數

beta

貝塔函數

scipy.stats.beta

貝塔分布

註解

在版本 1.11.0 中新增。

此函數包裝了 Boost Math C++ 程式庫中的 ibetac 常式 [2]

參考文獻

[1]

NIST 數位數學函數庫 https://dlmf.nist.gov/8.17

[2]

The Boost Developers. “Boost C++ Libraries”. https://boost.dev.org.tw/.

範例

>>> from scipy.special import betaincc, betainc

betainc(a, b, x) 的值接近 1 時,樸素的計算 1 - betainc(a, b, x) 會失去精確度

>>> 1 - betainc(0.5, 8, [0.9, 0.99, 0.999])
array([2.0574632e-09, 0.0000000e+00, 0.0000000e+00])

透過使用 betaincc,我們可以得到正確的值

>>> betaincc(0.5, 8, [0.9, 0.99, 0.999])
array([2.05746321e-09, 1.97259354e-17, 1.96467954e-25])