這個計算器的功能
本工具會在固定階數 \(v\) 之下,依序掃描自變數 \(x\),並列出第一類貝索函數(記為 \(J_v(x)\))的數值表。你只要設定 \(x\) 的起始值、增量,以及要產生的列數,計算器就會回傳一份清楚的兩欄式對照表,左欄是 \(x\)、右欄是對應的 \(J_v(x)\)。第一類貝索函數在物理與工程領域應用極廣:圓形鼓面的振動、圓柱體中的熱傳導、波導中的電磁波,乃至訊號處理(FM 調變的邊帶)都會用到。
使用方法
輸入階數 \(v\)(任意實數,可為 0、1、2,亦可為 0.5 之類的分數,或負數)。接著設定 \(x\) 的起始值、增量(相鄰兩個 \(x\) 之間的間距;設為負值即可遞減掃描,設為零則會重複同一點),以及產生筆數(列數,範圍從 1 到 10000)。第 \(i\) 列所用的 \(x\) 為 $$x = \text{startX} + i \times \text{stepX}.$$
公式說明
此函數由冪級數定義:$$J_v(x) = \sum_{k=0}^{\infty} \frac{(-1)^k}{k!\,\Gamma(k+v+1)} \left(\frac{x}{2}\right)^{v+2k},$$其中 \(\Gamma\) 為 gamma 函數。計算器以穩定的遞迴方式逐項求和:每一項都由前一項乘上 \(-\dfrac{x^2/4}{(k+1)(k+v+1)}\) 得出,藉此避免階乘溢位。Gamma 函數採用 Lanczos 近似計算,因此非整數與負數階數都能正常運作。對於負整數階數,則使用恆等式 \(J_{-n}(x) = (-1)^n J_n(x)\)。
實際範例
當 \(v = 0\)、\(\text{startX} = 0\)、\(\text{stepX} = 0.2\)、\(\text{loopCount} = 6\) 時,數值表為 \(J_0(0) = 1\)、\(J_0(0.2) \approx 0.990025\)、\(J_0(0.4) \approx 0.960398\)、\(J_0(0.6) \approx 0.912005\)、\(J_0(0.8) \approx 0.846287\),以及 \(J_0(1.0) \approx 0.765198\) —— 與標準數值表上的 \(J_0(1) = 0.7651976866\) 一致。
J_v(x) 的參考值
下表列出第一類貝索函數 \(J_v(x)\) 在階數 \(v=0,1,2\) 時在幾個標準參數處的數值。數值四捨五入到小數點後六位,由級數 \(J_{v}(x)=\sum_{k=0}^{\infty}\frac{(-1)^{k}}{k!\,\Gamma(v+k+1)}\left(\frac{x}{2}\right)^{2k+v}\) 得出。
| \(x\) | \(J_0(x)\) | \(J_1(x)\) | \(J_2(x)\) |
|---|---|---|---|
| 0 | 1.000000 | 0.000000 | 0.000000 |
| 0.5 | 0.938470 | 0.242268 | 0.030604 |
| 1 | 0.765198 | 0.440051 | 0.114903 |
| 2 | 0.223891 | 0.576725 | 0.352834 |
| 3 | −0.260052 | 0.339059 | 0.486091 |
| 5 | −0.177597 | −0.327579 | 0.046565 |
| 10 | −0.245936 | 0.043473 | 0.254630 |
作為一個計算檢驗,計算 \(J_0(1)\):前幾項給出 \(1-\tfrac{(0.5)^2}{1}+\tfrac{(0.5)^4}{4}-\tfrac{(0.5)^6}{36}+\dots = 1-0.25+0.015625-0.000434+\dots\approx\) 0.765198。
著名的零點(根)
正零點是 \(J_v(x)=0\) 的 \(x\) 值;它們設定鼓的模態、波導截止頻率和類似的邊界條件。
| 根的索引 \(s\) | \(J_0\) 的第 \(s\) 個零點 | \(J_1\) 的第 \(s\) 個零點 |
|---|---|---|
| 1 | 2.404826 | 3.831706 |
| 2 | 5.520078 | 7.015587 |
| 3 | 8.653728 | 10.173468 |
| 4 | 11.791534 | 13.323692 |
注意 \(x=0\) 是每個階數 \(v>0\) 的 \(J_v\) 的零點,但上面不把它計算在正根中。
定義與術語表
- 階數 \(v\)
- 該參數(此處為表單欄位 order)選擇計算貝索函數族的哪一個成員。它可以是任何實數——整數階數出現在圓柱形問題中,半整數階 \(v=n+\tfrac12\) 給出球貝索函數。
- 參數 \(x\)
- 評估 \(J_v\) 時的獨立變數。在此表中,它從 startX 開始,按 stepX 遞增,共 loopCount 列。
- 伽瑪函數 \(\Gamma\)
- 階乘的連續延拓,對於非負整數有 \(\Gamma(n+1)=n!\)。它出現在級數的分母 \(\Gamma(v+k+1)\) 中,使非整數階數有良定義。
- 第一類貝索函數 \(J_v(x)\)
- 貝索微分方程 \(x^2 y''+x y'+(x^2-v^2)y=0\) 的解,在原點處保持有限(當 \(v\ge 0\) 時)。它由上面公式中的冪級數給出。
- 零點/根
- \(J_v(x)=0\) 的 \(x\) 值。每個階數都有無窮多個正零點,間距逐漸均勻,漸近地相隔 \(\pi\)。
- 半整數(球面)階數
- 當 \(v=n+\tfrac12\) 時,\(J_v\) 與球貝索函數 \(j_n(x)=\sqrt{\tfrac{\pi}{2x}}\,J_{n+1/2}(x)\) 有關,它們描述球坐標中波方程的徑向部分。
- 遞推項比
- 級數的連續項滿足 \(\frac{a_{k+1}}{a_k}=\frac{-(x/2)^2}{(k+1)(v+k+1)}\),內部使用此式從前一項生成每一項並評估收斂性。
解讀您的表
幾個事實有助於讀取您的掃描產生的列:
- 起始值。 \(J_0(0)=1\),而對於每個階數 \(v>0\) 有 \(J_v(0)=0\)。所以表格從 \(x=0\) 開始時,只有零階時才從 1 開始。
- 振盪與衰減。 對於大 \(x\),\(J_v(x)\approx\sqrt{\tfrac{2}{\pi x}}\cos\!\left(x-\tfrac{v\pi}{2}-\tfrac{\pi}{4}\right)\)。函數振盪起來像一個相移的餘弦,同時其振幅隨 \(1/\sqrt{x}\) 衰減。因此,隨著 \(x\) 增大,連續的最大值緩慢縮小。
- 符號變化標記零點。 在兩列相鄰行之間符號改變的地方,\(J_v\) 的根就在該區間中(例如 \(J_0\) 在 \(x=2\) 和 \(x=3\) 之間符號變化,框定其第一個零點 \(\approx 2.4048\))。對於大參數,連續的零點間距約為 \(\pi\)。
- 物理節點。 這些零點對應物理邊界條件:振動圓形鼓面的徑向模式、圓柱波導的截止頻率,以及光纖中的場分佈都由 \(J_v\) 的零點索引。
- 大小。 對於固定的 \(x\),更高的階數 \(v\) 始於接近零並上升更慢;對於小 \(x\),主要行為是 \(J_v(x)\sim \frac{1}{\Gamma(v+1)}\left(\frac{x}{2}\right)^{v}\),所以更大的 \(v\) 保持更小,直到 \(x\) 變得與 \(v\) 相當。
這些觀察遵循上述的既定級數和漸近形式,並適用於您輸入的任何階數。
常見問題
階數可以是分數或負數嗎?可以。以 gamma 函數為基礎的級數支援任意實數階數,包括半整數(對應到球貝索函數的形式)以及負值。
\(x = 0\) 時會怎樣?\(J_0(0) = 1\),而當 \(v > 0\) 時 \(J_v(0) = 0\),因為主導項 \((x/2)^v\) 會趨近於零。
對於較大的 \(x\),精確度如何?在一般範圍內(\(x\) 大約到 20–30),雙精度級數都相當準確。但當 \(x\) 非常大時,嚴重的相消誤差會降低精度;此時改用漸近式 $$J_v(x) \approx \sqrt{\frac{2}{\pi x}} \cos\!\left(x - \frac{v\pi}{2} - \frac{\pi}{4}\right)$$ 會更合適。