この計算ツールでできること
本ツールは、第1種球ベッセル関数 \(j_\nu(x)\) を、連続した \(x\) の値について表形式で計算します。次数 \(\nu\)、\(x\) の初期値、刻み幅、生成する行数を指定すると、\((x, j_\nu(x))\) の組を 2 列の表として出力します。純粋な数学計算であり、国や単位の前提は一切ありません。世界中どこでも同じ結果が得られます。
使い方
次数 \(\nu\)(0、1、2 のほか 1.5 など任意の実数が指定できます)、\(x\) の初期値、各行ごとに \(x\) に加える増分(刻み幅)、そして行数を入力します。各行 \(k\) では \(x_k = \text{初期値} + k\cdot\text{刻み幅}\) が用いられます。最上部に大きく表示される値は、最初の \(x\) における \(j_\nu\) の値で、表にはすべての計算結果が並びます。
計算式の解説
一般の実数次の場合は、$$j_\nu(x) = \sqrt{\frac{\pi}{2x}}\; J_{\nu+\frac{1}{2}}(x)$$ を用います。ここで \(J\) は第1種ベッセル関数であり、ランチョス近似によるガンマ関数を組み込んだべき級数で評価します。整数次の場合は、数値的に安定した閉じた形 \(j_0(x) = \sin(x)/x\)、\(j_1(x) = \sin(x)/x^2 - \cos(x)/x\) を起点とし、上昇漸化式 $$j_{n+1}(x) = \frac{2n+1}{x}\cdot j_n(x) - j_{n-1}(x)$$ によって次数を上げていきます。\(x = 0\) では極限値を適用し、\(j_0(0) = 1\)、\(\nu > 0\) のときは \(j_n(0) = 0\) として、ゼロ除算を回避します。
計算例
次数 \(\nu = 0\)、初期値 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\) に対して次数が極端に大きい場合は下降漸化式の方が安定します。本ツールの用途ではほとんど必要ありません。