とつとつとしてろうとせず

ひまつぶしにどうぞ。

Fourier-Bessel展開(Dini展開)

注意

以下の記述は私的な備忘録であり、内容の正確さに関しては一切保証いたしませんので、悪しからず。

Fourier-Bessel展開

関数$J_{\nu}\paren{\lambda_{n}^{(\nu)}x}$は$\nu > -1$のとき区間$(0,1)$において重み$x$の直交関数系をなし、
\begin{align}
\int_{0}^{1} x J_{\nu}\paren{\lambda_{m}^{(\nu)}x} J_{\nu}\paren{\lambda_{n}^{(\nu)}x} dx = \frac{\delta_{mn}}{2} \bracket{ J_{\nu + 1}\paren{\lambda_{n}^{(\nu)}} }^{2}
\end{align}を満たす。ここで、$J_{\nu}(x)$は$\nu$次の第一種Bessel関数、$\lambda_{n}^{(\nu)}\ (n=1,2,3,\cdots)$は$J_{\nu}(\lambda_{n}^{(\nu)}) = 0$を満たす$\nu$次のBessel関数の$n$番目の零点である。
したがって、任意の関数$f(x)$はこの直交関数列を用いて、
\begin{align}
\begin{split}
& f(x) = \sum_{n=1}^{\infty} c_{n} J_{\nu}\paren{\lambda_{n}^{(\nu)}x} \\
& c_{n} = \frac{2}{ \bracket{ J_{\nu + 1}\paren{\lambda_{n}^{(\nu)}} }^{2}} \int_{0}^{1} x f(x) J_{\nu}\paren{\lambda_{n}^{(\nu)}x} dx
\end{split}
\end{align}のように級数表示できる。これをFourier-Bessel展開と呼ぶ。ちなみに、Bessel関数を用いた無限領域における積分変換はHankel変換と呼ばれる。
一般の区間$(0,l)$の場合、展開式は次式で与えられる。
\begin{align}
\begin{split}
& f(x) = \sum_{n=1}^{\infty} c_{n} J_{\nu}\paren{\lambda_{n}^{(\nu)} \frac{x}{l} } \\
& c_{n} = \frac{2}{ l^{2} \bracket{ J_{\nu + 1}\paren{\lambda_{n}^{(\nu)}} }^{2}} \int_{0}^{l} x f(x) J_{\nu}\paren{\lambda_{n}^{(\nu)} \frac{x}{l} } dx
\end{split}
\end{align}

Dini展開

Fourier-Bessel展開は境界条件としてDirichlet条件が与えられた円柱座標系における偏微分方程式の計算に役立つ。しかし、Neumann条件やRobin条件が境界条件として与えられた場合には有用ではない。そのような場合には、より一般化されたDini展開を用いる。
$\nu > -1$で$p + \nu \geq 0$のとき、方程式
\begin{align}
\label{eq:dini}
p {J_{\nu}}\paren{x} + x{J_{\nu}}'\paren{x} = 0
\end{align}を満たす$n$番目の正根を$\mu_{n}\ (n=1,2,3,\cdots)$とする。
1. $ p + \nu > 0 $のとき、関数$f(x)$は区間$(0,l)$で
\begin{align}
\begin{split}
& f(x) = \sum_{n=1}^{\infty} c_{n} J_{\nu}\paren{\mu_{n} \frac{x}{l} } \\
& c_{n} = \frac{2 \mu_{n}^{2}}{ l^{2} \paren{ p^{2} + \mu_{n}^{2} - \nu^{2} } \bracket{ J_{\nu}\paren{\mu_{n}} }^{2}} \int_{0}^{l} x f(x) J_{\nu}\paren{\mu_{n} \frac{x}{l} } dx
\end{split}
\end{align}と級数展開できる。
2. $ p + \nu = 0 $のとき、関数$f(x)$は区間$(0,l)$で
\begin{align}
\begin{split}
f(x) &= c_{0} x^{\nu} + \sum_{n=1}^{\infty} c_{n} J_{\nu}\paren{\mu_{n} \frac{x}{l} } \\
c_{0} &= \frac{2\paren{\nu + 1} }{ l^{2\paren{\nu + 1}} } \int_{0}^{l} x^{\nu+1} f(x) dx \\
c_{n} &= \frac{2 }{ l^{2} \bracket{ J_{\nu}\paren{\mu_{n}} }^{2}} \int_{0}^{l} x f(x) J_{\nu}\paren{\mu_{n} \frac{x}{l} } dx \ \ \ \ (n=1,2,\cdots)
\end{split}
\end{align}と級数展開できる。
Dini展開の例を挙げる。軸対称系における偏微分方程式の解がFourier-Bessel級数によって表されているとする。このような問題はたとえば、無限に長い棒の半径方向の温度分布を与える熱伝導方程式を変数分離法によって解く場合などに見られる。熱伝導方程式は線形であるため、解は重ね合わせ、すなわち級数によって表現される。
このとき、境界の一端で断熱条件、すなわち、$\pdif{u}{r} = 0$という境界条件が与えられたとする。解が0次のBessel関数によって表されるとすると、境界条件
\begin{align}
{J_{0}}'\paren{x} = 0
\end{align}となる。これは式\eqref{eq:dini}において、$p=0$、$\nu = 0$とおいた場合に相当する。Bessel関数の漸化式${J_{\nu}}'\paren{x} = -{J_{\nu+1}}\paren{x} + \frac{\nu}{x} {J_{\nu}}\paren{x} $より、上式は
\begin{align}
{J_{1}}\paren{x} = 0
\end{align}となる。ちなみに、もう一方の漸化式で考えた場合は${J_{0}}'\paren{x} = {J_{-1}}\paren{x}$となるが、次数$\nu$が整数の場合は$n \in \mathbb{Z}$として、
\[ {J_{-n}}\paren{x} = (-1)^{n} {J_{n}}\paren{x} \]が成り立つので、得られる式は同じである。さて、$p = \nu = 0$より、いまの場合、$p + \nu = 0$であるから、級数展開は
\begin{align}
\begin{split}
f(x) &= c_{0} + \sum_{n=1}^{\infty} c_{n} J_{0}\paren{\mu_{n} \frac{x}{l} } \\
c_{0} &= \frac{2 }{ l^{2} } \int_{0}^{l} x f(x) dx \\
c_{n} &= \frac{2 }{ l^{2} \bracket{ J_{0}\paren{\mu_{n}} }^{2}} \int_{0}^{l} x f(x) J_{0}\paren{\mu_{n} \frac{x}{l} } dx \ \ \ \ (n=1,2,\cdots)
\end{split}
\end{align}の形で表される。ここで、$\mu_{n}$は$J_{1}\paren{x}$の$n$番目の零点である。

積分公式

具体的な関数についてFourier-Bessel展開を計算する場合は基本的に数学公式集を参考にすることになる。なぜなら、定義式から明らかなように、展開係数の計算には
\begin{align}
\int x f(x) J_{\nu}\paren{\lambda_{n} x } dx
\end{align}のような積分を求める必要があるが、これを自力で求めることはほとんど不可能だからである。もっとも、初等関数以上の複雑な関数になると公式集にも載っていない場合があるため、そのときには泣き寝入りをするしかないと思われる。
ここでは例として、変形Bessel関数の展開係数を求める場合に必要な積分公式を示す。これは
\[ I_0(x),\ xI_1(x), \ I_1(x),\ xI_0(x), \]のような形の関数が対象となる。
\begin{align}
\begin{split}
& \int x J_{0}\paren{\alpha x } I_{0}\paren{\beta x } dx \\
& = \frac{\beta x}{\alpha^{2} + \beta^{2}} J_{0}\paren{\alpha x } I_{1}\paren{\beta x } + \frac{\alpha x}{\alpha^{2} + \beta^{2}} J_{1}\paren{\alpha x } I_{0}\paren{\beta x }
\end{split}
\\
\begin{split}
& \int x^{2} J_{0}\paren{\alpha x } I_{1}\paren{\beta x } dx \\
& = \frac{\beta x^{2}}{\alpha^{2} + \beta^{2}} J_{0}\paren{\alpha x } I_{0}\paren{\beta x } - \frac{2 \beta^{2} x}{\paren{\alpha^{2} + \beta^{2}}^{2}} J_{0}\paren{\alpha x } I_{1}\paren{\beta x } \\
& - \frac{2 \alpha \beta x}{\paren{\alpha^{2} + \beta^{2}}^{2}} J_{1}\paren{\alpha x } I_{0}\paren{\beta x } + \frac{\alpha x^{2}}{\alpha^{2} + \beta^{2}} J_{1}\paren{\alpha x } I_{1}\paren{\beta x }
\end{split}
\\
\begin{split}
& \int x J_{1}\paren{\alpha x } I_{1}\paren{\beta x } dx \\
& = - \frac{\alpha x}{\alpha^{2} + \beta^{2}} J_{0}\paren{\alpha x } I_{1}\paren{\beta x } + \frac{\beta x}{\alpha^{2} + \beta^{2}} J_{1}\paren{\alpha x } I_{0}\paren{\beta x }
\end{split}
\\
\begin{split}
& \int x^{2} J_{1}\paren{\alpha x } I_{0}\paren{\beta x } dx \\
& = - \frac{\alpha x^{2}}{\alpha^{2} + \beta^{2}} J_{0}\paren{\alpha x } I_{0}\paren{\beta x } + \frac{2 \alpha \beta x}{\paren{\alpha^{2} + \beta^{2}}^{2}} J_{0}\paren{\alpha x } I_{1}\paren{\beta x } \\
& + \frac{2 \alpha^{2} x}{\paren{\alpha^{2} + \beta^{2}}^{2}} J_{1}\paren{\alpha x } I_{0}\paren{\beta x } + \frac{\beta x^{2}}{\alpha^{2} + \beta^{2}} J_{1}\paren{\alpha x } I_{1}\paren{\beta x }
\end{split}
\end{align}特に、$x$の次数が1次で$J_{\nu}$と$I_{\nu}$の次数が等しい場合には次式のような一般形で書ける。
\begin{align}
\label{eq:math}
\begin{split}
& \int x J_{\nu}\paren{\alpha x } I_{\nu}\paren{\beta x } dx \\
& = \frac{x}{\alpha^{2} + \beta^{2}} \bracket{ \alpha J_{\nu + 1}\paren{\alpha x } I_{\nu}\paren{\beta x } + \beta J_{\nu}\paren{\alpha x } I_{\nu +1}\paren{\beta x } }
\end{split}
\end{align}これらの積分公式はここを参考にした(初等関数のFourier-Bessel展開に必要な公式は大体載っていたので大いに参考にできると思う)。このような計算は軸対称荷重を受ける円柱状弾性体の応力場を応力関数を用いて求める問題などに現れる。とはいえ、有限要素法による数値解析が主流の現在では、そのような七面倒臭い計算方法を選択する人は稀であろうが。

参考文献

金子尚武, 松本道男, 特殊関数--現代数学レクチャーズ C-3--, 培風館, pp.122-135(1984)
犬井鐵郎, 偏微分方程式とその応用--応用数学講座--, コロナ社, pp.162-171