這個計算器的功能
本工具會在一連串 x 值上,列出第一類球貝索函數 \(j_{\nu}(x)\) 的數值表。你只要設定階數 \(\nu\)、起始 x、間距與要產生的列數,計算器便會回傳一張包含 \((x, j_{\nu}(x))\) 兩欄的對照表。這是純粹的數學運算,在世界各地的結果完全一致,不牽涉任何國家或單位的假設。
使用方式
輸入階數 \(\nu\)(可為任意實數,例如 0、1、2 或 1.5)、x 的起始值、每一列要遞增的間距,以及列數。第 k 列採用 \(x_k = \text{起始 }x + k\cdot\text{間距}\)。最上方的主要數值顯示第一個 x 所對應的 \(j_{\nu}\) 值,表格則列出所有產生的數值。
公式說明
對於一般的實數階數, $$ j_{\nu}(x) = \sqrt{\frac{\pi}{2x}}\; J_{\nu+\frac{1}{2}}(x) $$ 其中 \(J\) 是第一類普通貝索函數,透過搭配 Lanczos 伽瑪函數的冪級數來求值。對於整數階數,計算器採用數值上更穩定的封閉式:\(j_0(x) = \sin(x)/x\) 與 \(j_1(x) = \sin(x)/x^2 - \cos(x)/x\),再利用向上遞迴 \(j_{n+1}(x) = \left(\frac{2n+1}{x}\right)\cdot j_n(x) - j_{n-1}(x)\) 往上推算。在 \(x = 0\) 時則套用極限:\(j_0(0) = 1\),而當 \(\nu > 0\) 時 \(j_n(0) = 0\),藉此避免除以零。
範例演算
取階數 \(\nu = 0\)、起始 \(x = 0\)、間距 \(= 0.2\)、6 列,則 \(x = 0、0.2、0.4、0.6、0.8、1.0\)。代入 \(j_0(x) = \sin(x)/x\): $$ j_0(0)=1,\quad j_0(0.2)=0.993347,\quad j_0(0.4)=0.973546,\quad j_0(0.6)=0.941071,\quad j_0(0.8)=0.896695,\quad j_0(1.0)=0.841471 $$ —— 正是大家熟悉的衰減 sinc 曲線形狀。
常見問題
階數可以是分數嗎?可以。非整數的 \(\nu\) 會採用 \(\sqrt{\pi/2x}\cdot J\) 的級數形式來計算。
為什麼 x 從 0 開始時,第一個值剛好是 1?因為依極限定義 \(j_0(0) = 1\);而當 \(\nu > 0\) 時,該極限為 0。
向上遞迴一定安全嗎?對於一般查表常見的中等階數與 x 範圍而言,是安全的。但若階數相對於 x 非常大,則向下遞迴會更穩定,只是在這裡很少會遇到這種情況。