这个计算器有什么用
本工具用于生成第一类开尔文函数 berv(x) 和 beiv(x) 的数值表,可指定阶数(次数)v,并在一段 x 取值范围内逐行计算。这两个函数分别是贝塞尔函数 Jv 在旋转自变量 \(x\cdot e^{i3\pi/4}\) 处取值后的实部和虚部,常见于交流电阻(趋肤效应)、圆柱体热传导等物理与工程问题中。
使用方法
需要填写四个参数:阶数 v(常用 0、1、2…)、x 的起始值、每行递加的步长(增量),以及迭代次数(即表格行数)。默认设置会让 x 从 −7 扫到 +7,步长为 0.2,共 71 行。计算结果以表格形式给出 x、berv(x)、beiv(x) 三列数值。
公式说明
级数表达式为 $$\mathrm{ber}_v(x) + i\,\mathrm{bei}_v(x) = \left(\frac{x}{2}\right)^{v} e^{\,3v\pi i/4} \sum_{k=0}^{\infty} \frac{\left(\frac{i\,x^{2}}{4}\right)^{k}}{k!\,\Gamma(v+k+1)}$$我们采用复数项递推方式求值:每一项都等于前一项乘以 \(\frac{i\,x^{2}/4}{k(v+k)}\),这样就无需反复计算幂次和阶乘。其中 Gamma 函数针对实数 v 采用 Lanczos 近似计算。当某一项相对于累加和已可忽略不计时,求和便停止。
计算实例(v = 0,x = 2)
由级数可得 $$\mathrm{ber}_0(2) \approx 1 - 0.25 + 0.001736 - \cdots \approx 0.75173$$ $$\mathrm{bei}_0(2) \approx 1 - 0.027778 + 0.0000694 \approx 0.97229$$与标准函数表的结果一致(\(\mathrm{ber}_0(2)=0.7517\),\(\mathrm{bei}_0(2)=0.9723\))。
常见问题
v 可以取非整数吗? 可以。Gamma 函数支持任意实数 v。需要注意的是,当 x 为负且 v 为非整数时,前置因子 \(\left(\frac{x}{2}\right)^{v}\) 是多值的,此处取主值分支。
为什么 v=0 时函数值关于原点对称? 因为 v=0 的级数只含 x 的偶次幂,所以 \(\mathrm{ber}_0(-x)=\mathrm{ber}_0(x)\),\(\mathrm{bei}_0(-x)=\mathrm{bei}_0(x)\)。
x 很大时怎么办? 对于 |x| 适中的情形,级数收敛良好;但当 \(|x| > 20\) 时需要累加很多项,此时采用渐近展开会更稳定。为获得最佳精度,建议将取值控制在默认范围之内。