正如V博士指出的,scipy提供非中心卡方分布。
但是您的公式中没有明确的一件事是您要计算的 Marcum-Q 函数的阶数是什么。所以我将其保留为函数的输入参数
非中心卡方分布的 CDF 为 $1 - Q[df/2](sqrt(nc), sqrt(x))$。其中
df
是自由度,nc
是非中心参数。
from scipy.stats import distributions
def F(nu, k, x, A=1):
return distributions.ncx2.cdf(df=nu, nc=2*k, x=x**2*(2*(k+1)/A))