この計算ツールでできること
このツールは、第1種ケルビン関数の1次微分 \(\operatorname{ber}_v'(x)\) と \(\operatorname{bei}_v'(x)\) について、任意の実数次数 \(v\) と指定した \(x\) の範囲での値を計算し、表と折れ線グラフで表示します。ケルビン関数は、電気工学における導体の表皮効果や、熱伝導、振動する粘性流の解析などに現れます。ケルビン関数で記述される電磁場や電流密度の分布を微分すると、これらの導関数が登場します。
使い方
次数 \(v\)(初期値は 0)、\(x\) の初期値、\(x\) の刻み幅、繰り返し回数(行数)を入力してください。計算ツールは \(x_i = \text{startX} + i\cdot\text{stepX}\)(\(i = 0, 1, \dots, \text{count}-1\))に従って \(x\) の値を生成し、各点で両方の導関数を評価して、スクロール可能な表と2本の曲線を比較できるグラフを描画します。
計算式の解説
ケルビン関数は $$\operatorname{ber}_v(x) + i\cdot\operatorname{bei}_v(x) = J_v\!\left(x\cdot e^{3\pi i/4}\right)$$ で定義されます。ここで \(z = x\cdot e^{3\pi i/4}\) とおき、ベッセル関数の微分公式 $$J_v'(z) = \frac{1}{2}\left(J_{v-1}(z) - J_{v+1}(z)\right)$$ と連鎖律(\(dz/dx = e^{3\pi i/4}\))を用いると、 $$\operatorname{ber}_v'(x) + i\cdot\operatorname{bei}_v'(x) = e^{3\pi i/4}\cdot\frac{1}{2}\cdot\left[J_{v-1}(z) - J_{v+1}(z)\right]$$ が得られます。この実部が \(\operatorname{ber}_v'(x)\)、虚部が \(\operatorname{bei}_v'(x)\) です。ベッセル関数の値は複素数演算でべき級数を総和して求めますが、各項は数値的な安定性を保つため $$t_{m+1} = t_m\cdot\frac{-(z/2)^2}{(m+1)(v+m+1)}$$ の比で逐次計算します。
計算例
\(v = 0\)、\(x = 1\) のとき、級数計算により \(\operatorname{ber}_0'(1) \approx -0.06245\)、\(\operatorname{bei}_0'(1) \approx 0.49740\) となります。\(v = 0\) では \(x = 0\) において両方の導関数が 0 になります。
よくある質問
負の \(x\) も計算できますか? はい。複素数のベッセル級数を用いているため、\(x = -10\) から始まる初期設定の範囲も問題なく対応します。
次数 \(v\) にはどんな値を指定できますか? 非整数や負の数を含む任意の実数を指定できます。これらは Lanczos のガンマ関数近似を用いて評価されます。
\(|x|\) が大きい場合の精度は? 直接級数による計算は、おおよそ \(x \in [-20, 20]\) の範囲で信頼できます。これを超えると、級数内での桁落ちにより精度が低下することがあります。