Sie sind auf Seite 1von 6

CE 245 Pollutant Transport Systems

Notes on Bessel Functions


The Bessel functions Jn (x) and Yn (x) are linearly independent solutions to the differential equation: d2y dy x 2 2 + x + ( x 2 n2 ) y = 0 (1) dx dx For integer n, the Jn (x) are regular at x = 0, while the Yn (x) have a logarithmic divergence at x = 0. If n = 0, then J0 (x) is also a solution, and a Bessel function of order zero: J 0 ( x) =1 If n=1, then J1(x) becomes: J1 ( x ) = x x3 x5 x7 2 + 2 2 2 2 2 + iii 2 2 i 4 2 i 4 i6 2 i 4 i 6 i 8 (3) x2 x4 x6 + + iii 22 22 i 42 22 i 42 i 62 (2)

Jn (x) is often called the Bessel function of the first kind of order n: J n ( x) = and J n ( x) = ( 1) J n ( x)
n

xn x2 x4 1 + iii n 2 n ! 2i2n + 2 2i4i2n + 2i2n + 4 (4)

Yn (x) is the Bessel function of the second kind, the Weber function, or the Neumann function. It can be computed from the Bessel functions of the first kind: Yn ( x ) = and Y n ( x ) = ( 1) Yn ( x )
n

J n ( x ) cos ( n ) J n ( x ) sin ( n ) (5)

The modified Bessel functions In (x) and Kn (x) are solutions to the differential equation: x2 d2y dy + x ( x 2 + n2 ) y = 0 2 dx dx (6)

or, dividing by x2 , for the case where n = 0:

d 2 y 1 dy + y =0 dx 2 x dx For example, K0(x) is Neumanns Bessel function of the second kind of order zero: K 0 ( x) = J 0 ( x) log x + x 2 3x 4 + iii 4 128

(7)

(8)

and I0(x) is a modified Bessel function of the first kind of order zero: x2 x4 x6 I 0 ( x) = 1 + 2 + 2 2 + 2 2 2 + iii 2 2 i4 2 i4 i6 (9)

When the value of x is greater than one, K0(x) may be approximated by an exponential function:

K o ( x >1)

2x

exp( x)

(10)

The complete Bessel function and the exponential approximation above are plotted and compared over a range of values below: K0(x) Approximation
4 3.5 3 2.5 F(x) 2 1.5 1 0.5 0 0.0 0.5 1.0 1.5 Values of x K0(x) Exp. Approx 2.0 2.5 3.0

See Appendix I, where several Bessel functions are plotted using Mathematica. In Appendix II, FORTAN code for two Bessel functions is listed. In Appendix III, VBA code for two Bessel functions is listed.

References Abramowitz, M. and I. a. Stegun, 1967. Handbook of Mathematical Functions, National Bureau of Standards, Washington, D.C. F. Bowman, 1958. Introduction to Bessel Functions, Dover, N.Y. Appendix I. Bessel Functions Plotted using Mathematica
Plot@ BesselJ@0, xD, 8x, 0, 10< D
1 0.8 0.6 0.4 0.2

Plot@ BesselY@0, xD, 8x, 0, 10< D


0.5

2 -0.5

10

-1
2 -0.2 -0.4 4 6 8 10

-1.5

Plot@ BesselJ@1, xD, 8x, 0, 10< D


0.6 0.4 0.2

Plot@ BesselJ@1, xD, 8x, 0, 10< D


0.6 0.4 0.2

2 -0.2

10

2 -0.2

10

Plot@ BesselK@0, xD, 8x, 0, 4< D


8

Plot@ BesselY@0, xD, 8x, 0, 10< D


0.5

6 2 4 -0.5 4 6 8 10

-1

-1.5 1 2 3 4

Plot@ BesselI@0, xD, 8x, 0, 5< D


25

Plot@ BesselY@1, xD, 8x, 0, 10< D


2 4 6 8 10

20 15 10 5

-1 -2 -3 -4 -5 1 2 3 4 5

Appendix II. FORTRAN Code for Bessel Functions


REAL*8 FUNCTION I0(X) C.... Modified Bessel Function of Order Zero, First Kind C.... Polynomial Approximation C.... Ref: Abramowitz and Stegun, p. 378 T = X/3.75 IF (X.GE.(-3.75) .OR. X.LT.3.75) THEN I0 = 1. + 3.5156229 * T * T + 3.0899424 * T ** 4 I0 = I0 + 1.2067492 * T ** 6 + 0.2659732 * T ** 8 I0 = I0 + 0.0360768 * T ** 10 + 0.0045813 * T ** 12 RETURN ENDIF I0 = 0.39894228 + 0.01328592 / T + 0.00225319 / T ** 2 I0 = I0 - 0.00157565 / T ** 3 + 0.00916281 / T ** 4 I0 = I0 - 0.02057706 / T ** 5 + 0.02635537 / T ** 6 I0 = I0 - 0.01647633 / T ** 7 + 0.00392377 / T ** 8 I0 = I0 / SQRT(X) * EXP(X) RETURN END REAL*8 FUNCTION K0(X) C.... Modified Bessel Function of Order Zero, Second Kind C.... Polynomial Approximation C.... Ref.: Abramowitz and Stegun, p. 379. REAL*8 I0 IF (X.GT.0. .AND. X.LE.2.) THEN X2 = X/2. K0 = - ALOG(X2) * I0(X) - 0.57721566 K0 = K0 + 0.42278420 * X2 ** 2 + 0.23069756 * X2 ** 4 K0 = K0 + 0.03488590 * X2 ** 6 + 0.00262698 * X2 ** 8 K0 = K0 + 0.00010750 * X2 ** 10 K0 = K0 + 0.00000740 * X2 ** 12 RETURN ENDIF XX2 = 2. / X K0 = 1.25331414 - 0.07832358 * XX2 + 0.02189568 * XX2 ** 2 K0 = K0 - 0.01062446 * XX2 ** 3 + 0.00587872 * XX2 ** 4 K0 = K0 - 0.00251540 * XX2 ** 5 + 0.00053208 * XX2 ** 6 K0 = K0 / SQRT(X) / EXP(X) RETURN END

Appendix III. Visual Basic Applications Code (Hunt, 2006)


'To calculate the modified Bessel function K0(x) for 0<x<infinity. Function BessK0(x) A0 = -0.57721566 A1 = 0.4227842 A2 = 0.23069756 A3 = 0.0348859 A4 = 0.00262698 A5 = 0.0001075 A6 = 0.0000074 B0 = 1.25331414 B1 = -0.07832358 B2 = 0.02189568 B3 = -0.01062446 B4 = 0.00587872 B5 = -0.0025154 B6 = 0.00053208 If x <= 2 Then t = (x / 2) ^ 2 BessK0 = A0 + t * (A1 + t * (A2 + t * (A3 + t * (A4 + t * (A5 + t * A6))))) BessK0 = BessK0 - Application.Ln(x / 2) * BessI0(x) Else t=2/x BessK0 = B0 + t * (B1 + t * (B2 + t * (B3 + t * (B4 + t * (B5 + t * B6))))) BessK0 = BessK0 * Exp(-x) / Sqr(x) End If End Function 'To compute the Bessel function J(n,x) for n=integer and 0<x<infinity. Function BessJ(n, x) a = Sqr((Abs(x) + 7) ^ 2 / 2 + n ^ 2 / 4) L = Int(2 + 2 * Int(a)) BJ = 1 d=1 r=1 Do r = x / (2 * L - r * x) If L <= n Then BJ = BJ * r End If Frac = L / 2 - Int(L / 2) d = d * r + 2 * Frac L=L-1 Loop Until L = 0 BessJ = BJ / (2 * d - 1) End Function

Das könnte Ihnen auch gefallen