この計算ツールでできること
このツールは、ベッセルの微分方程式 \(x^2 y'' + xy' + (x^2 - v^2)y = 0\) の一次独立な2つの解、すなわち第一種ベッセル関数 \(J_{v}(x)\)、第二種ベッセル関数 \(Y_{v}(x)\)(ノイマン関数とも呼ばれます)、およびそれらの一階導関数 \(J'_{v}(x)\)・\(Y'_{v}(x)\) を計算します。次数 \(v\) は整数・分数・負数を含む任意の実数を、引数 \(x\) は任意の実数を指定できます。ベッセル関数は物理学や工学の幅広い場面に登場します。円形膜の振動、円柱内の熱伝導、導波管中の電磁波、信号処理などがその例です。
使い方
次数 \(v\)(例:0、1、0.5)と引数 \(x\) を入力し、表示する桁数を選びます。「計算」を押すと、4つの値がすべて表示されます。非整数の次数では \(x \ge 0\) としてください。\(x\) が負の場合、\((x/2)^{v}\) が複素数になってしまうためです。\(x = 0\) では第二種関数が特異点となるため、「未定義」と表示されます。
計算式の解説
\(J_{v}(x)\) は、ガンマ関数を用いたべき級数から計算します。 $$J_{\nu}(x) = \sum_{k=0}^{\infty} \frac{(-1)^{k}}{k!\,\Gamma(\nu+k+1)} \left(\frac{x}{2}\right)^{2k+\nu}$$ 各項を逐次的に加算し、安定した漸化式によって項が許容誤差を下回るまで足し合わせます。非整数次数の \(Y_{v}(x)\) には $$Y_{\nu}(x) = \frac{J_{\nu}(x)\cos(\nu\pi) - J_{-\nu}(x)}{\sin(\nu\pi)}$$ を用います。整数次数の場合は \(\sin(v\pi)=0\) によるゼロ除算を避けるため、\(v\) をわずかに(1e-7 だけ)ずらして計算します。導関数には漸化式 $$C'_{\nu}(x) = \tfrac{1}{2}\bigl(C_{\nu-1}(x) - C_{\nu+1}(x)\bigr)$$ を用い、特別な場合として \(C'_{0}(x) = -C_{1}(x)\) を使います。
計算例
\(v = 0\)、\(x = 1\) の場合:\(J_{0}(1)\) の級数は $$1 - 0.25 + 0.015625 - 0.000434 + \dots \approx 0.7651977$$ となります。既知の値は \(Y_{0}(1) \approx 0.0882570\)、\(J'_{0}(1) = -J_{1}(1) \approx -0.4400506\)、\(Y'_{0}(1) = -Y_{1}(1) \approx 0.7812128\) です。
主要用語と変数
- 次数 \(\nu\)
- 微分方程式 \(x^2 y'' + x y' + (x^2-\nu^2)y = 0\) の形を決定する \(J_\nu(x)\) と \(Y_\nu(x)\) のパラメータ \(\nu\)。任意の実数になります。整数次数 (\(\nu = 0,1,2,\dots\)) は円筒座標における角度分離から生じ、半整数次数は球ベッセル関数を与え、初等関数で表現できます。
- 引数 \(x\)
- 関数が評価される独立変数。典型的には、スケール化された半径距離 \(x = kr\) です。実数 \(x\) に対して、\(J_\nu\) は整数 \(\nu\) に対して実数値を取り、\(Y_\nu\) は \(x>0\) でのみ定義されます。
- 第一種ベッセル関数 \(J_\nu(x)\)
- 原点で有限である解 (\(\nu\ge 0\) に対して)。級数 \(J_\nu(x)=\sum_{k=0}^{\infty}\frac{(-1)^k}{k!\,\Gamma(\nu+k+1)}\left(\tfrac{x}{2}\right)^{2k+\nu}\) で定義されます。\(x\) が増加するにつれて、振幅がゆっくり減少しながら振動します。
- 第二種ベッセル関数 \(Y_\nu(x)\)
- ノイマン関数(またはウェーバー関数)とも呼ばれ、2番目の線形独立解です。\(Y_\nu(x)=\dfrac{J_\nu(x)\cos(\nu\pi)-J_{-\nu}(x)}{\sin(\nu\pi)}\) で定義されます(整数 \(\nu\) に対しては極限形)。原点で対数発散またはべき乗発散します。
- 導関数 \(J'_\nu(x)\)、\(Y'_\nu(x)\)
- \(x\) に関する導関数。漸化式 \(C'_\nu(x)=\tfrac{1}{2}\bigl(C_{\nu-1}(x)-C_{\nu+1}(x)\bigr)\) と \(C'_\nu(x)=C_{\nu-1}(x)-\tfrac{\nu}{x}C_\nu(x)\) を満たします。ここで \(C\) は \(J\) または \(Y\) を表します。特に \(J'_0(x)=-J_1(x)\)。
- ガンマ関数 \(\Gamma(z)\)
- 階乗の連続拡張。非負整数に対して \(\Gamma(n+1)=n!\) を満たし、非整数次数を許可するために \(J_\nu\) 級数の分母に現れます。個別の値についてはガンマ関数計算機を参照してください。
- 零点(根)
- \(J_\nu(x)=0\) または \(Y_\nu(x)=0\) となる値 \(j_{\nu,m}\) と \(y_{\nu,m}\)。これらは境界値問題の固有値として機能します。例えば、固定端円形膜の振動周波数は零点 \(j_{\nu,m}\) に比例します。
よくある質問
次数は負数や分数でもよいですか? はい。級数とガンマ関数は任意の実数 \(v\) に対応します。ただし非整数の \(v\) では \(x \ge 0\) としてください。
なぜ \(x = 0\) で \(Y\) が未定義になるのですか? すべての第二種ベッセル関数は \(x \to 0\) で負の無限大に発散するため、その点では有限の値が存在しないからです。
精度はどのくらいですか? 計算は倍精度(有効数字およそ15桁)で行われます。表示桁数の設定は表示の整形のみを制御し、内部の計算精度には影響しません。