SymPy 기호수학 - 응용 5. Bessel 함수¶
sympy 라이브러리를 불러오고, 사용할 기호 변수를 선언한다. 출력을 LaTex 수식으로 나타내고, 맷플롯립 모듈을 불러온다.
from sympy import *
x, y, z, t = symbols('x y z t')
f, g, h = symbols('f, g, h', cls=Function)
init_printing()
%matplotlib inline
Bessel 함수¶
Bessel 함수는 Bessel 방정식을 만족하는 해이다.
Bessel 방정식은 편미분 방정식을 원통 좌표계로 표현할 때 나타나며, $\nu$는 $\,0$ 또는 양의 실수이다.
Bessel 방정식의 해는 급수 해법으로 얻어진다. "제1종 Bessel 함수" $\, J _{\nu} (x) \,$는 다음과 같이 주어진다.
$$\,{{J}_{\nu }}\left( x \right)\,\,\,=\,\,\,{{x}^{\nu }} \sum\limits_{m \,=\, 0}^{\infty }{\,\,\frac{{{\left( -1 \right)}^{m}}\,{{x}^{2m}}}{{{2}^{2m+\nu }}m\,!\,\,\Gamma \left( \nu +m+1 \right)\,\,}}\,\,$$
$ \nu \ne n $ 인 경우 (정수가 아닌 양의 실수), Bessel 방정식의 일반해는
$$ y \left( x \right) \,=\, {{c}_{1}}\,{{J}_{\nu }}\left( x \right) \,+\, {{c}_{2}} \,{{J}_{-\nu }}\left( x \right)$$
로 주어진다.
$\nu = n $ 의 경우 (0 또는 양의 정수), 감마 함수를 계승 함수로 나타낼 수 있다.
$$ {{J}_{n}}\left( x \right)\,\,\,=\,\,\,{{x}^{n}} \sum\limits_{m\, =\, 0}^{\infty }{\,\,\frac{{{\left( -1 \right)}^{m}}\,{{x}^{2m}}}{{{2}^{2m+n}}m\,!\,\left( n+m \right)\,!\,}}\,\,$$
$ J _0 (x)$
plot( besselj(0,x), (x,0,20) )
Bessel 함수의 값이 0 이되는 x 의 값들을 구한다.
Zeros = []
xini = N(pi)
for i in range(10) :
zero = nsolve( besselj(0,x), x, xini )
Zeros.append( zero )
xini = zero + N(pi)
print( Zeros )
$ J _1 (x)$
plot( besselj(1,x), (x,0,20) )
Zeros = []
xini = N(pi)
for i in range(10) :
zero = nsolve( besselj(1,x), x, xini )
Zeros.append( zero )
xini = zero + N(pi)
print( Zeros )
$\nu = n $ ( 0 또는 양의 정수)의 경우에는, 두 해가 서로 일차종속의 관계를 가지게 된다.
$${{J}_{-n}}\left( x \right)\,\,\,=\,\,\,{{\left( -1 \right)}^{n}}{{J}_{n}}\left( x \right) $$
따라서, 독립적인 해가 추가적으로 필요하다.
이 해를 “제2종 Bessel 함수” $\, Y _{\nu} (x) \,$라 하고, 다음과 같이 정의된다.
$\nu \,\,$가 정수인 경우에는
• $\,\, \nu = n = 0$
$$ {{h}_{1}} = 1\,, \qquad {{h}_{m}}=1 + \frac{1}{2} + \cdots + \frac{1}{m} $$
$\qquad \qquad \qquad \qquad \qquad \qquad \gamma$ 는 Euler 상수로서
$$\qquad \qquad \,\,\,\,\,\,\, \gamma = \underset{s \to \infty }{\mathop{\lim }} \left( 1\,\,+\,\,\frac{1}{2}\,\,+\,\,\,\cdots \,\,\,+\,\,\frac{1}{s}\,\,-\,\,\ln s \right) =0.577\,215\,664\cdots \,\,\,\,$$
• $\,\, \nu = n = 1,2, \cdots \,$
로 주어진다.
$ \nu \ge 0 $ 인 모든 경우에 대하여, Bessel 방정식의 일반해를 다음과 같이 나타낼 수 있다.
$$ y \left( x \right) \,=\, {{C}_{1}}{{J}_{\nu }}\left( x \right) \,+\, {{C}_{2}} {{Y}_{\nu }}\left( x \right)$$
$ Y _0 (x)$
plot( bessely(0,x), xlim=(0,10), ylim=(-1,1) )
$ Y _1 (x)$
plot( bessely(1,x), xlim=(0,10), ylim=(-1,1) )
버금 Bessel 방정식 (associated Bessel equation)¶
Bessel 방정식과 유사한 형태를 가지는, 버금 Bessel 방정식은 다음의 식으로 주어진다.
버금 Bessel 방정식의 일반해는
$$\,\,\, y\,\left( x \right) \,\,=\,\, {{c}_{1}}\,{{I}_{\nu }}\left( x \right)\,\,\,+\,\,{{c}_{2}}\,{{K}_{\nu }}\left( x \right)\,$$"변형 제1종 Bessel 함수" $\, I _{\nu} (x) \,$는 다음과 같이 주어진다.
$$\,{{I}_{\nu }}\left( x \right)\,\,\,=\,\,\,{{x}^{\nu }}\,\,\sum\limits_{m \,=\, 0}^{\infty }{\,\,\frac{{{x}^{2m}}}{{{2}^{2m+\nu }}m\,!\,\,\Gamma \left( \nu +m+1 \right)\,\,}}\,\,$$
“변형 제2종 Bessel 함수” $\, K _{\nu} (x) \,$는 다음과 같이 주어진다.
$${{K}_{\nu }}\left( x \right)\,\,=\,\, \frac{\pi }{2\, \sin \nu \pi }\left[ \,{{I}_{-\nu }}\left( x \right)\,\,-\,\,{{I}_{\nu }}\left( x \right)\, \right]$$
$\nu = n $ 의 경우에는
$ I _0 (x)$
plot( besseli(0,x), xlim=(0,10), ylim=(0,10) )
$ K _0 (x)$
plot( besselk(0,x), xlim=(0,10), ylim=(0,1) )