修正贝塞尔函数(modified Bessel function)第一类 I_ν(x) 的实现。
本模块对应 R 语言之中的 besselI(x, nu, expon.scaled = FALSE), 用于 Skellam 分布的概率密度函数计算(参见 dskellam)。
修正贝塞尔函数(modified Bessel function)第一类 I_ν(x) 的实现。
本模块对应 R 语言之中的 besselI(x, nu, expon.scaled = FALSE), 用于 Skellam 分布的概率密度函数计算(参见 dskellam)。
00 Remarks
实现策略:
x < 30 + ν)使用幂级数定义 I_ν(x) = Σ_k (x/2)^(2k+ν) / (k! Γ(k+ν+1)), 并在对数域使用 log-sum-exp 累加,以避免中间项上下溢出;e^{-x} I_ν(x) 通过乘以 e^{-x} 得到, 对应 R 之中 expon.scaled = TRUE 的行为。01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| BesselI | 4 | 向量化入口(Vector 重载)。 |
| BesselISeries | 1 | 使用幂级数定义计算 I_ν(x)(对数域求和)。 |
| BesselIAsymptotic | 1 | 使用渐近展开计算大参数下的 I_ν(x)(Abramowitz & Stegun 9.7.1)。 |
| LogAddExp | 1 | 在对数域安全地计算 log(exp(a) + exp(b))。 |
03 Members
Double, Double, Boolean)修正贝塞尔函数第一类 I_ν(x)。
| Name | Type | Description |
|---|---|---|
x | Double | 自变量,要求 |
nu | Double | 阶数 |
exponScaled | Boolean | 若为 |
修正贝塞尔函数值;参数非法时返回 Double。
Double(), Double(), Boolean)按 R 的向量化语义(循环补齐)计算 besselI。
| Name | Type | Description |
|---|---|---|
x | Double() | 自变量向量。 |
nu | Double() | 阶数向量。 |
exponScaled | Boolean | 是否返回指数缩放值。 |
长度等于两个输入向量长度的最大值的结果向量。
向量化入口(Vector 重载)。
标量阶数、向量自变量的便捷入口。
Double, Double, Boolean)使用幂级数定义计算 I_ν(x)(对数域求和)。
Double, Double, Boolean)使用渐近展开计算大参数下的 I_ν(x)(Abramowitz & Stegun 9.7.1)。
Double, Double)在对数域安全地计算 log(exp(a) + exp(b))。