透過 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\cdot\mathrm{bei}_v(x) = J_v(x\cdot e^{i3\pi/4})\)。它們常出現在具有圓柱對稱性與振盪場的問題中,最典型的就是電導體的趨膚效應(skin effect)分析,以及熱傳導與彈性力學問題。本計算器可針對任意實數階 \(v\) 與實數引數 \(x\),傳回 \(\mathrm{ber}_v(x)\)、\(\mathrm{bei}_v(x)\) 及其一階導數 \(\mathrm{ber}'_v(x)\) 與 \(\mathrm{bei}'_v(x)\)。

兩條標記為 ber 與 bei 的振盪曲線,對 x 作圖,振幅逐漸增大
開爾文函數 ber_0(x) 與 bei_0(x) 隨 x 增大而振盪,振幅不斷增大。

如何使用本計算器

輸入階 \(v\)(任意實數,其中 \(v = 0\) 最為常見)與引數 \(x\)(實數),然後按下計算。主結果框會顯示 \(\mathrm{ber}_v(x)\),表格中則列出 \(\mathrm{bei}_v(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)}$$

其中 \(\Gamma\) 為伽瑪函數(此處以 Lanczos 近似法求值)。各項利用遞迴關係 \(\text{term}_k = \text{term}_{k-1}\cdot(i x^2/4) / [k(v+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\) 皆可使用。

最後更新: