Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.arcetri.astro.it/irlab/doc/library/recipes/bookcpdf/c6-0.pdf
Дата изменения: Thu Mar 23 12:27:03 2000
Дата индексирования: Sat Dec 22 13:33:26 2007
Кодировка:
Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) Copyright (C) 1988-1992 by Cambridge University Press.Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copying of machinereadable files (including this one) to any servercomputer, is strictly prohibited. To order Numerical Recipes books,diskettes, or CDROMs visit website http://www.nr.com or call 1-800-872-7423 (North America only),or send email to trade@cup.cam.ac.uk (outside North America).

Chapter 6.
6.0 Introduction

Special Functions

There is nothing particularly special about a special function, except that some person in authority or textbook writer (not the same thing!) has decided to bestow the moniker. Special functions are sometimes called higher transcendental functions (higher than what?) or functions of mathematical physics (but they occur in other fields also) or functions that satisfy certain frequently occurring second-order differential equations (but not all special functions do). One might simply call them "useful functions" and let it go at that; it is surely only a matter of taste which functions we have chosen to include in this chapter. Good commercially available program libraries, such as NAG or IMSL, contain routines for a number of special functions. These routines are intended for users who will have no idea what goes on inside them. Such state of the art "black boxes" are often very messy things, full of branches to completely different methods depending on the value of the calling arguments. Black boxes have, or should have, careful control of accuracy, to some stated uniform precision in all regimes. We will not be quite so fastidious in our examples, in part because we want to illustrate techniques from Chapter 5, and in part because we want you to understand what goes on in the routines presented. Some of our routines have an accuracy parameter that can be made as small as desired, while others (especially those involving polynomial fits) give only a certain accuracy, one that we believe serviceable (typically six significant figures or more). We do not certify that the routines are perfect black boxes. We do hope that, if you ever encounter trouble in a routine, you will be able to diagnose and correct the problem on the basis of the information that we have given. In short, the special function routines of this chapter are meant to be used -- we use them all the time -- but we also want you to be prepared to understand their inner workings.
CITED REFERENCES AND FURTHER READING: Abramowitz, M., and Stegun, I.A. 1964, Handbook of Mathematical Functions, Applied Mathematics Series, Volume 55 (Washington: National Bureau of Standards; reprinted 1968 by Dover Publications, New York) [full of useful numerical approximations to a great variety of functions].

IMSL Sfun/Library Users Manual (IMSL Inc., 2500 CityWest Boulevard, Houston TX 77042). NAG Fortran Library (Numerical Algorithms Group, 256 Banbury Road, Oxford OX27DE, U.K.), Chapter S.

212


6.1 Gamma, Beta, and Related Functions

213

Hart, J.F., et al. 1968, Computer Approximations (New York: Wiley). Hastings, C. 1955, Approximations for Digital Computers (Princeton: Princeton University Press). Luke, Y.L. 1975, Mathematical Functions and Their Approximations (New York: Academic Press).

6.1 Gamma Function, Beta Function, Factorials, Binomial Coefficients
The gamma function is defined by the integral


Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) Copyright (C) 1988-1992 by Cambridge University Press.Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copying of machinereadable files (including this one) to any servercomputer, is strictly prohibited. To order Numerical Recipes books,diskettes, or CDROMs visit website http://www.nr.com or call 1-800-872-7423 (North America only),or send email to trade@cup.cam.ac.uk (outside North America).

(z ) =
0

t

z -1 -t

e dt

(6.1.1)

When the argument z is an integer, the gamma function is just the familiar factorial function, but offset by one, n! = (n +1) The gamma function satisfies the recurrence relation (z +1) = z (z ) (6.1.3) (6.1.2)

If the function is known for arguments z > 1 or, more generally, in the half complex plane Re(z ) > 1 it can be obtained for z < 1 or Re (z ) < 1 by the reflection formula (1 - z ) = z = (z )sin(z ) (1 + z )sin(z ) (6.1.4)

Notice that (z ) has a pole at z = 0, and at all negative integer values of z . There are a variety of methods in use for calculating the function (z ) numerically, but none is quite as neat as the approximation derived by Lanczos [1 ]. This scheme is entirely specific to the gamma function, seemingly plucked from thin air. We will not attempt to derive the approximation, but only state the resulting formula: For certain integer choices of and N , and for certain coefficients c1 ,c2 ,... ,cN , the gamma function is given by (z +1) = (z + + 1 )z 2 в 2 c0 +
+
1 2

e-

(z + + 1 ) 2

c2 cN c1 + + ··· + + z +1 z +2 z +N

(6.1.5) (z > 0)

You can see that this is a sort of take-off on Stirling's approximation, but with a series of corrections that take into account the first few poles in the left complex plane. The constant c0 is very nearly equal to 1. The error term is parametrized by . For = 5, N = 6, and a certain set of c's, the erroris smallerthan | | < 2 в 10-10. Impressed? If not, then perhaps you will be impressed by the fact that (with these same parameters) the formula (6.1.5) and bound on apply for the complex gamma function, everywhere in the half complex plane Re z > 0.