通过MCP连接 →

输入计算

实数
实数

数学公式

数学公式: 第一类开尔文函数计算器

广告

结果

berv(x)
0.984382
第一类开尔文函数
beiv(x) 0.249566
ber'v(x) -0.062446
bei'v(x) 0.497397

什么是第一类开尔文函数?

第一类开尔文函数记作 berv(x)beiv(x),它们是贝塞尔函数 Jv 在经过相位旋转的自变量处取值后的实部与虚部:\(\mathrm{ber}_v(x) + i\,\mathrm{bei}_v(x) = J_v\!\left(x\cdot e^{i3\pi/4}\right)\)。这类函数常出现在具有柱对称性和振荡场的问题中,最经典的应用是分析电导体中的趋肤效应(skin effect),此外也见于热传导和弹性力学问题。本计算器可针对任意实数阶 v 和实数自变量 x,返回 berv(x)、beiv(x) 及其一阶导数 ber'v(x) 和 bei'v(x)。

两条标记为 ber 和 bei 的振荡曲线,对 x 作图,振幅逐渐增大
开尔文函数 ber_0(x) 和 bei_0(x) 随 x 增大而振荡,振幅不断增大。

如何使用本计算器

输入阶数 v(任意实数,其中 v = 0 最为常见)和自变量 x(实数),然后点击计算。结果框会显示 berv(x),表格中则列出 beiv(x) 及两个导数值。当 x 不超过约 20 时,级数收敛很快;当 x 非常大时,数值相减会引起精度损失,此时更适合采用渐近展开。

公式详解

这些函数通过上文给出的收敛复幂级数计算:

$$\mathrm{ber}_{\nu}\!\left(x\right) + i\,\mathrm{bei}_{\nu}\!\left(x\right) = \left(\frac{x}{2}\right)^{\nu} e^{\,i\,3\nu\pi/4} \sum_{k=0}^{\infty} \frac{\left(\dfrac{i\,x^{2}}{4}\right)^{k}}{k!\,\Gamma\!\left(\nu+k+1\right)}$$

其中 Γ 表示伽马函数(本计算器使用 Lanczos 近似求值)。各项采用递推关系 \(\text{term}_k = \text{term}_{k-1}\cdot(i x^2/4) / [k(\nu+k)]\) 逐项累加,并用两个实数累加器分别记录实部和虚部。导数则利用精确关系式 \(\mathrm{ber}'_v = (\mathrm{ber}_{v+1}+\mathrm{bei}_{v+1})/\sqrt{2} + (v/x)\mathrm{ber}_v\) 和 \(\mathrm{bei}'_v = (\mathrm{bei}_{v+1}-\mathrm{ber}_{v+1})/\sqrt{2} + (v/x)\mathrm{bei}_v\),因此更高一阶的函数同样按上述定义求值。

Advertisement
复平面,显示从原点出发、角度为 3π/4 的射线
开尔文函数源自沿复平面中射线 x·e^{i3π/4} 求值的贝塞尔函数 J_v。

计算实例(v = 0,x = 1)

当 v = 0 时,级数可简化为 \(\mathrm{ber}_0(x) = \sum (-1)^k (x/2)^{4k}/[(2k)!]^2\) 和 \(\mathrm{bei}_0(x) = \sum (-1)^k (x/2)^{4k+2}/[(2k+1)!]^2\)。在 \(x = 1\) 处可得 \(\mathrm{ber}_0(1) \approx 0.984382\),\(\mathrm{bei}_0(1) \approx 0.249566\),与标准函数表一致(参见 Abramowitz & Stegun 9.9)。

常见问题

x 的有效取值范围是多少?本级数实现方法在大约 \(0 \le x \le 20\) 范围内可靠。超出该范围后,浮点数相减会导致精度下降。

x = 0 时会怎样?当 v = 0 时,\(\mathrm{ber}_0(0) = 1\),\(\mathrm{bei}_0(0) = 0\),两个导数均为 0。当 v > 0 时,函数趋于 0;当 v < 0 时,函数可能发散。

可以使用非整数阶吗?可以。只要 v+1 不是负整数(避免伽马函数的极点),任意实数 v 均受支持。

最后更新: