MCPで接続 →

計算を入力してください

実数
実数

公式

公式: 第1種ケルビン関数 計算ツール

広告

結果

berv(x)
0.984382
第1種ケルビン関数
beiv(x) 0.249566
ber'v(x) -0.062446
bei'v(x) 0.497397

第1種ケルビン関数とは

第一種ケルビン関数は berv(x)beiv(x) と表され、位相を回転させた引数におけるベッセル関数 Jv の実部と虚部にあたります。すなわち \(\mathrm{ber}_v(x) + i\cdot\mathrm{bei}_v(x) = J_v(x\cdot e^{i3\pi/4})\) という関係が成り立ちます。これらは円筒対称性をもつ問題や振動する場を扱う問題に現れ、古くは電気導体における表皮効果の解析、さらに熱伝導や弾性論の問題で重要な役割を果たしてきました。本ツールでは、任意の実数の次数 v と実数の引数 x に対して、berv(x)、beiv(x)、およびそれらの一階導関数 ber'v(x)、bei'v(x) を求めます。

ber と bei とラベル付けされた2本の振動曲線を x に対してプロットし、振幅が増大している様子
ケルビン関数 ber_0(x) と bei_0(x) は、x が増加するにつれて振幅を増しながら振動します。

使い方

次数 v(任意の実数。最もよく使われるのは v = 0 です)と引数 x(実数)を入力し、計算ボタンを押してください。結果欄のメインには berv(x) が表示され、表には beiv(x) と2つの導関数が並びます。級数は 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\) はガンマ関数で、本ツールではランチョス近似を用いて評価しています。各項は漸化式 \(\mathrm{term}_k = \mathrm{term}_{k-1}\cdot(i\,x^2/4) / [k(v+k)]\) によって順次積み上げ、実部と虚部それぞれに2つの実数アキュムレータを用いて累積します。導関数には厳密な関係式 \(\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\) を使用しており、次数を1つ上げた関数も同じ定義に従って評価しています。

広告
原点から角度 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 を指定できます。

最終更新: