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) )