|TOP Page|


basis of Bessel function

ベッセル関数




Last Update:2009年05月23日


目次

概要

軸対称問題で偏微分方程式を解く際に良く出てくる次のベッセル関数(Bessel function)について簡単にまとめる.

ベッセルの微分方程式
x^2y'' + xy' + (x^2 - \nu^2) y = 0  (1)

確定特異点まわりの級数解(フロベニウスの方法)

微分方程式が次のような形で表されているとする.

y'' + P(x) y' + Q(x) y = 0

方程式の係数P(x),\;Q(x)のうち,どちらかがx=0で極を持つとする.このとき,xP(x)x^2Q(x)が実解析的,つまり次のようにテーラー展開可能であれば,

\{\begin{array}xP(x) = \sum_{k=0}^{\infty}p_kx^k\\x^2Q(x) = \sum_{k=0}^{\infty}q_kx^k\end{array}

a確定特異点であるといい,解に対して次のような級数展開が可能である.

y=x^\lambda \sum_{n=0}^{\infty} a_n x^n

これを,微分方程式に代入することによって,a_nを求める.上の式に代入すると,

\sum_{n=0}^{\infty}a_n\{(n+\lambda)(n+\lambda-1)+(n+\lambda)\sum_{k=0}^{\infty}p_kx^k + \sum_{k=0}^{\infty}q_kx^k\}x^{n+\lambda} = 0

これを纏めて,次のように書くとする.

\sum_{n=0}^{\infty}A_n x^{n+\lambda} = 0

右辺が0であるから当然A_nは全てのnに対して0である.つまり,

A_0 = a_0 \{\lambda(\lambda-1) + \lambda p_0 + q_0\} = 0

A_1 = a_1 \{(\lambda+1)\lambda + (\lambda+1) p_0 + q_0\} + a_0\{\lambda p_1 + q_1\} = 0

・・・・・・・・・・・・・

A_n = a_n(n+\lambda)(n+\lambda-1) + \sum_{k=0}^n a_{n-k}\{(n-k+\lambda)p_k + q_k\} = 0

ここで,A_0に関する方程式でa_0 \ne 0であるから,次の決定方程式と呼ばれる方程式が成り立つ.

決定方程式
\lambda(\lambda-1) + \lambda p_0 + q_0 = 0

この決定方程式を解くことで,\lambdaを求め,A_n=0\;(n \ge 2)から得られる漸化式を解くことで,a_nが求まる.

このように解ける偏微分方程式として,次で説明するベッセルの微分方程式と,ルジャンドルの微分方程式がある.

ベッセルの微分方程式の級数解

ベッセルの微分方程式は次のとおりであった.

x^2y'' + xy' + (x^2 - \nu^2) y = 0

x^2で両辺を割ると

y'' + \frac{1}{x}y' + (1 - \frac{\nu^2}{x^2})y = 0

となる.\frac{1}{x}x=0で極を持っているために,x=0はこの方程式の確定特異点である.

y=x^\lambda \sum_{n=0}^{\infty}a_n x^n = \sum_{n=0}^{\infty}a_n x^{n+\lambda}  (2)

と置いたとき,a_0=0が成り立つ.

実際に式(2)を式(1)代入に代入することで,a_nを決定することができる.

式(1)のそれぞれの項は以下のようになる.

y' = \sum_{n=0}^{\infty}a_n (n+\lambda) x^{n+\lambda-1}\;\;\;\;\; \Right\;\;\;\;\; xy' = \sum_{n=0}^{\infty}a_n (n+\lambda) x^{n+\lambda}

y'' = \sum_{n=0}^{\infty}a_n (n+\lambda)(n+\lambda-1) x^{n+\lambda-2}\;\;\;\;\; \Right \;\;\;\;\; x^2y'' = \sum_{n=0}^{\infty}a_n (n+\lambda)(n+\lambda-1) x^{n+\lambda}

x^2y = \sum_{n=0}^{\infty}a_nx^{\lambda+n+2} = \sum_{n=2}^{\infty}a_{n-2}x^{\lambda+n}

実際にこれらを(1)の右辺にに代入すると,

L(y)=\sum_{n=0}^{\infty}a_n \{(n+\lambda)(n+\lambda-1) + (n+\lambda) - \nu^2\}x^{n+\lambda} + \sum_{n=2}^{\infty}a_{n-2}x^{\lambda+n}\\\;\;\;\; = \sum_{n=0}^{\infty}a_n \{(n+\lambda)^2 - \nu^2\}x^{n+\lambda} + \sum_{n=2}^{\infty}a_{n-2}x^{\lambda+n}

第1種ベッセル関数

\lambda_1 = \nuに対する解y_1を求めよう.

決定方程式と漸化式から次が成り立った.

a_1=0,\;\;\;\; a_n = \frac{-a_{n-2}}{n(2\nu+n)}

この漸化式を解いてみよう.

a_{2k} = \frac{-a_{2(k-1)}}{2k(2\nu+2k)} = \(\frac{-1}{4k(\nu+k)}\)a_{2(k-1)}\\\;\;\;\; = \(\frac{-1}{4k(\nu+k)}\)\(\frac{-1}{4(k-1)(\nu+k-1)}\)a_{2(k-2)}\\\;\;\;\; = \(\frac{(-1)^k}{4^kk!(\nu+k)(\nu+k-1)\cdots(\nu+1)}\)a_0

a_{2k-1} = 0

y_1 = x^\lambda\sum_{n=0}^{\infty} a_n x^n = x^\nu\sum_{k=0}^{\infty} a_{2k} x^{2k}\\\;\;\;\; = a_0 x^\nu\{1+\sum_{k=1}^{\infty}\frac{(-1)^k}{4^kk!(\nu+k)\cdots(\nu+1)}x^{2k}\}\\\;\;\;\; = a_0 x^\nu\sum_{k=0}^{\infty}\frac{(-1)^k}{4^kk!(\nu+k)\cdots(\nu+1)}x^{2k}

ガンマ関数\Gamma(x)を用いて上の式を変形する.ガンマ関数は\Gamma(z+1)=z\Gamma(z),\Gamma(1)=1を満たす.これを用いると,

(\nu+k)(\nu+k-1)\cdots(\nu+1) = \Gamma(\nu+k+1) / \Gamma(\nu+1)

となる.これを上に代入して,

y_1 = a_0 x^\nu\sum_{k=0}^{\infty}\frac{(-1)^k}{2^{2k}k!\Gamma(\nu+k+1) / \Gamma(\nu+1)}x^{2k}\\\;\;\;\;\; = a_0 x^\nu\Gamma(\nu+1)\sum_{k=0}^{\infty}\frac{(-1)^k \(\frac{x}{2}\)^{2k}}{k!\Gamma(\nu+k+1)}

ここで,a_0 = \frac{1}{2^\nu}\Gamma(\nu+1)のように選ぶと,右辺は\nu次の第一ベッセル関数を与える.

第一ベッセル関数
J_\nu(x) = \(\frac{x}{2}\)^\nu\sum_{k=0}^{\infty}\frac{(-1)^k(\frac{x}{2}\)^{2k}}{k!\Gamma(\nu+k+1)}

Gnuplotによるグラフの出力

Gnuplotを使えば,J_0(x)J_1(x)は次のようなコマンドによって描画できる.

> set xrange [0:20]
> plot besj0(x), besj1(x)

第2種ベッセル関数

νが整数でない時

\nuが整数でない時に,\lambda = -\nuに対応する解を見つけてみよう.\nuが整数でないときは,\nuの代わりに-\nuを代入すればよく,結局

J_{-\nu}(x) = \(\frac{x}{2}\)^{-\nu}\sum_{k=0}^{\infty}\frac{(-1)^k(\frac{x}{2}\)^{2k}}{k!\Gamma(-\nu+k+1)}

も解となる.

よってこの場合の一般解は

y=AJ_\nu(x) +  BJ_{-\nu}(x)

となる.

J_{-\nu}の代わりに,J_{\nu}J_{-\nu}で定義される,次のようなノイマン関数N_\nu(x)が使われることもある.

ノイマン関数
N_\nu(x) = \frac{J_\nu(x)cos\nu\pi-J_{-\nu}(x)}{sin\nu\pi}

νが整数である場合

この場合はノイマン関数の極限として,定義される.

νが整数であるときのノイマン関数
N_n = \lim_{\alpha\right n} N_\alpha

gnuplotによる描画

gnuplotでは次のようなコマンドを使うことによって,画像を得ることができる.

> set xrange [0:20]
> plot besy0(x), besy1(x)

整数の場合はJ_-νが使えない

νが整数である場合は,J_{-\nu}は使えない.次に示すようにJ_\nuJ_{-\nu}は独立にならず,\lambda_2の解として別のものが必要となるからである.

\Gamma(-\nu+k+1)k=0,1,\ldots,\nu-1に関して\inftyとなる.よって,k\ge \nuについてのみ和を計算する.

J_{-\nu}(x) = \(\frac{x}{2}\)^{-\nu}\sum_{k=\nu}^{\infty}\frac{(-1)^k(\frac{x}{2}\)^{2k}}{k!\Gamma(-\nu+k+1)}\\             \;\;\;\;\;\; = \(\frac{x}{2}\)^{-\nu}\sum_{k=0}^{\infty}\frac{(-1)^{k+\nu}(\frac{x}{2}\)^{2(k+\nu)}}{(k+\nu)!\Gamma(-\nu+k+\nu+1)}\\                  \;\;\;\;\;\; = \(\frac{x}{2}\)^{-\nu}\sum_{k=0}^{\infty}\frac{(-1)^{k}(-1)^{\nu}(\frac{x}{2}\)^{2k}(\frac{x}{2}\)^{2\nu}}{(k+\nu)!\Gamma(k+1)}\\                   \;\;\;\;\;\; = (-1)^{\nu}\(\frac{x}{2}\)^{\nu}\sum_{k=0}^{\infty}\frac{(-1)^{k}(\frac{x}{2}\)^{2k}}{\Gamma(k+\nu+1)k!}\\                 \;\;\;\;\;\; = (-1)^{\nu}J_{\nu}(x)

よって,J_{-\nu}(x) = (-1)^\nu J_{\nu}(x)となるので,独立ではなく,線形従属になってしまう.

νが整数なときにJ_{-\nu}について成り立つ関係式
J_{-\nu}(x) = (-1)^\nu J_{\nu}(x)


Hankel関数

次の関数もBesselの微分方程式を満足する

第一種Hankel関数
H^{(1)}_\nu(x) = J_\nu(x) + iY_\nu(x)
第二種Hankel関数
H^{(2)}_\nu(x) = J_\nu(x) - iY_\nu(x)

この線形結合で解は与えられる.

Helmholtz方程式の解

2次元無限領域における次のHelmholtz方程式の解はこのHankel関数を使って与えられる.

\nabla^2 g(|\b{r}_0-\b{r}|)+k^2g(|\b{r}_0-\b{r}|) = \delta(|\b{r}_0-\b{r}|)

g(|\b{r}_0-\b{r}|)=\frac{iH^{(1)}_0(k(|\b{r}_0-\b{r}|)}{4}

参考にしたもの

Wikipedia

ベッセル関数  Bessel function

Links

ときわ台学/ベッセル関数・ベッセル微分方程式
http://www.f-denshi.com/000TokiwaJPN/14bibnh/441bes.html
ときわ台学/微分方程式・特殊関数/確定特異点
http://www.f-denshi.com/000TokiwaJPN/14bibnh/109deq.html
ベッセル関数
gnuplotを用いたベッセル関数の描画について解説
http://www18.ocn.ne.jp/~hchiba/gnu6.htm

Books

応用数学 (1963年) (建築構造講座〈4〉) 坪井 善勝 (著), 田治見 宏 (著), 角野 晃二 (著)


Made by Nobuyuki UMETANI  梅谷 信行
n.umetani@gmail.com