Numerical Recipes in C

13 years 11 months ago
Numerical Recipes in C
C code implementation of several math algorithms such as Linear Algebraic Equations, Interpolation and Extrapolation, Integration of Functions, Evaluation of Functions, Random Numbers, Sorting and Selection, Root Finding and Nonlinear Sets of Equations, Minimization or Maximization of Functions, Eigensystems, Fast Fourier Transform, Fourier and Spectral Applications, Statistical Description of Data, Modeling of Data, Classification and Inference, Integration of Ordinary Differential Equations, Two-Point Boundary Value Problems, Integral Equations and Inverse Theory, Partial Differential Equations, Computational Geometry, and Less-Numerical Algorithms.
William H. Press, Saul A. Teukolsky, William T. Ve
Added 13 Jan 2009
Updated 21 May 2009
Authors William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery

Table of Content

Chapter 0:  Front Matter and Web Tools
   0.0 Title Page
   0.1 Contents
   0.2 Prefaces
   0.3 License and Legal Information
   0.4 Index of Routines
   0.5 Dependencies Tool
 Chapter 1:  Preliminaries
   1.0 Introduction
   1.1 Error, Accuracy, and Stability
   1.2 C Family Syntax
   1.3 Objects, Classes, and Inheritance
   1.4 Vector and Matrix Objects
   1.5 Some Further Conventions and Capabilities
 Chapter 2:  Solution of Linear Algebraic Equations
   2.0 Introduction
   2.1 Gauss-Jordan Elimination
   2.2 Gaussian Elimination with Backsubstitution
   2.3 LU Decomposition and Its Applications
   2.4 Tridiagonal and Band-Diagonal Systems of Equations
   2.5 Iterative Improvement of a Solution to Linear Equations
   2.6 Singular Value Decomposition
   2.7 Sparse Linear Systems
   2.8 Vandermonde Matrices and Toeplitz Matrices
   2.9 Cholesky Decomposition
   2.10 QR Decomposition
   2.11 Is Matrix Inversion an N3 Process?
 Chapter 3:  Interpolation and Extrapolation
   3.0 Introduction
   3.1 Preliminaries: Searching an Ordered Table
   3.2 Polynomial Interpolation and Extrapolation
   3.3 Cubic Spline Interpolation
   3.4 Rational Function Interpolation and Extrapolation
   3.5 Coefficients of the Interpolating Polynomial
   3.6 Interpolation on a Grid in Multidimensions
   3.7 Interpolation on Scattered Data in Multidimensions
   3.8 Laplace Interpolation
 Chapter 4:  Integration of Functions
   4.0 Introduction
   4.1 Classical Formulas for Equally Spaced Abscissas
   4.2 Elementary Algorithms
   4.3 Romberg Integration
   4.4 Improper Integrals
   4.5 Quadrature by Variable Transformation
   4.6 Gaussian Quadratures and Orthogonal Polynomials
   4.7 Adaptive Quadrature
   4.8 Multidimensional Integrals
 Chapter 5:  Evaluation of Functions
   5.0 Introduction
   5.1 Polynomials and Rational Functions
   5.2 Evaluation of Continued Fractions
   5.3 Series and Their Convergence
   5.4 Recurrence Relations and Clenshaw's Recurrence Formula
   5.5 Complex Arithmetic
   5.6 Quadratic and Cubic Equations
   5.7 Numerical Derivatives
   5.8 Chebyshev Approximation
   5.9 Derivatives or Integrals of a Chebyshev-Approximated Function
   5.10 Polynomial Approximation from Chebyshev Coefficients
   5.11 Economization of Power Series
   5.12 Padé Approximants
   5.13 Rational Chebyshev Approximation
   5.14 Evaluation of Functions by Path Integration
 Chapter 6:  Special Functions
   6.0 Introduction
   6.1 Gamma Function, Beta Function, Factorials, Binomial Coefficients
   6.2 Incomplete Gamma Function and Error Function
   6.3 Exponential Integrals
   6.4 Incomplete Beta Function
   6.5 Bessel Functions of Integer Order
   6.6 Bessel Functions of Fractional Order, Airy Functions, Spherical Bessel Functions
   6.7 Spherical Harmonics
   6.8 Fresnel Integrals, Cosine and Sine Integrals
   6.9 Dawson's Integral
   6.10 Generalized Fermi-Dirac Integrals
   6.11 Inverse of the Function x log x
   6.12 Elliptic Integrals and Jacobian Elliptic Functions
   6.13 Hypergeometric Functions
   6.14 Statistical Functions
 Chapter 7:  Random Numbers
   7.0 Introduction
   7.1 Uniform Deviates
   7.2 Completely Hashing a Large Array
   7.3 Deviates from Other Distributions
   7.4 Multivariate Normal Deviates
   7.5 Linear Feedback Shift Registers
   7.6 Hash Tables and Hash Memories
   7.7 Simple Monte Carlo Integration
   7.8 Quasi- (that is, Sub-) Random Sequences
   7.9 Adaptive and Recursive Monte Carlo Methods
 Chapter 8:  Sorting and Selection
   8.0 Introduction
   8.1 Straight Insertion and Shell's Method
   8.2 Quicksort
   8.3 Heapsort
   8.4 Indexing and Ranking
   8.5 Selecting the Mth Largest
   8.6 Determination of Equivalence Classes
 Chapter 9:  Root Finding and Nonlinear Sets of Equations
   9.0 Introduction
   9.1 Bracketing and Bisection
   9.2 Secant Method, False Position Method, and Ridders' Method
   9.3 Van Wijngaarden-Dekker-Brent Method
   9.4 Newton-Raphson Method Using Derivative
   9.5 Roots of Polynomials
   9.6 Newton-Raphson Method for Nonlinear Systems of Equations
   9.7 Globally Convergent Methods for Nonlinear Systems of Equations
 Chapter 10:  Minimization or Maximization of Functions
   10.0 Introduction
   10.1 Initially Bracketing a Minimum
   10.2 Golden Section Search in One Dimension
   10.3 Parabolic Interpolation and Brent's Method in One Dimension
   10.4 One-Dimensional Search with First Derivatives
   10.5 Downhill Simplex Method in Multidimensions
   10.6 Line Methods in Multidimensions
   10.7 Direction Set (Powell's) Methods in Multidimensions
   10.8 Conjugate Gradient Methods in Multidimensions
   10.9 Quasi-Newton or Variable Metric Methods in Multidimensions
   10.10 Linear Programming: The Simplex Method
   10.11 Linear Programming: Interior-Point Methods
   10.12 Simulated Annealing Methods
   10.13 Dynamic Programming
 Chapter 11:  Eigensystems
   11.0 Introduction
   11.1 Jacobi Transformations of a Symmetric Matrix
   11.2 Real Symmetric Matrices
   11.3 Reduction of a Symmetric Matrix to Tridiagonal Form: Givens and Householder Reductions
   11.4 Eigenvalues and Eigenvectors of a Tridiagonal Matrix
   11.5 Hermitian Matrices
   11.6 Real Nonsymmetric Matrices
   11.7 The QR Algorithm for Real Hessenberg Matrices
   11.8 Improving Eigenvalues and/or Finding Eigenvectors by Inverse Iteration
 Chapter 12:  Fast Fourier Transform
   12.0 Introduction
   12.1 Fourier Transform of Discretely Sampled Data
   12.2 Fast Fourier Transform (FFT)
   12.3 FFT of Real Functions
   12.4 Fast Sine and Cosine Transforms
   12.5 FFT in Two or More Dimensions
   12.6 Fourier Transforms of Real Data in Two and Three Dimensions
   12.7 External Storage or Memory-Local FFTs
 Chapter 13:  Fourier and Spectral Applications
   13.0 Introduction
   13.1 Convolution and Deconvolution Using the FFT
   13.2 Correlation and Autocorrelation Using the FFT
   13.3 Optimal (Wiener) Filtering with the FFT
   13.4 Power Spectrum Estimation Using the FFT
   13.5 Digital Filtering in the Time Domain
   13.6 Linear Prediction and Linear Predictive Coding
   13.7 Power Spectrum Estimation by the Maximum Entropy (All-Poles) Method
   13.8 Spectral Analysis of Unevenly Sampled Data
   13.9 Computing Fourier Integrals Using the FFT
   13.10 Wavelet Transforms
   13.11 Numerical Use of the Sampling Theorem
 Chapter 14:  Statistical Description of Data
   14.0 Introduction
   14.1 Moments of a Distribution: Mean, Variance, Skewness, and So Forth
   14.2 Do Two Distributions Have the Same Means or Variances?
   14.3 Are Two Distributions Different?
   14.4 Contingency Table Analysis of Two Distributions
   14.5 Linear Correlation
   14.6 Nonparametric or Rank Correlation
   14.7 Information-Theoretic Properties of Distributions
   14.8 Do Two-Dimensional Distributions Differ?
   14.9 Savitzky-Golay Smoothing Filters
 Chapter 15:  Modeling of Data
   15.0 Introduction
   15.1 Least Squares as a Maximum Likelihood Estimator
   15.2 Fitting Data to a Straight Line
   15.3 Straight-Line Data with Errors in Both Coordinates
   15.4 General Linear Least Squares
   15.5 Nonlinear Models
   15.6 Confidence Limits on Estimated Model Parameters
   15.7 Robust Estimation
   15.8 Markov Chain Monte Carlo
   15.9 Gaussian Process Regression
 Chapter 16:  Classification and Inference
   16.0 Introduction
   16.1 Gaussian Mixture Models and k-Means Clustering
   16.2 Viterbi Decoding
   16.3 Markov Models and Hidden Markov Modeling
   16.4 Hierarchical Clustering by Phylogenetic Trees
   16.5 Support Vector Machines
 Chapter 17:  Integration of Ordinary Differential Equations
   17.0 Introduction
   17.1 Runge-Kutta Method
   17.2 Adaptive Stepsize Control for Runge-Kutta
   17.3 Richardson Extrapolation and the Bulirsch-Stoer Method
   17.4 Second-Order Conservative Equations
   17.5 Stiff Sets of Equations
   17.6 Multistep, Multivalue, and Predictor-Corrector Methods
   17.7 Stochastic Simulation of Chemical Reaction Networks
 Chapter 18:  Two-Point Boundary Value Problems
   18.0 Introduction
   18.1 The Shooting Method
   18.2 Shooting to a Fitting Point
   18.3 Relaxation Methods
   18.4 A Worked Example: Spheroidal Harmonics
   18.5 Automated Allocation of Mesh Points
   18.6 Handling Internal Boundary Conditions or Singular Points
 Chapter 19:  Integral Equations and Inverse Theory
   19.0 Introduction
   19.1 Fredholm Equations of the Second Kind
   19.2 Volterra Equations
   19.3 Integral Equations with Singular Kernels
   19.4 Inverse Problems and the Use of A Priori Information
   19.5 Linear Regularization Methods
   19.6 Backus-Gilbert Method
   19.7 Maximum Entropy Image Restoration
 Chapter 20:  Partial Differential Equations
   20.0 Introduction
   20.1 Flux-Conservative Initial Value Problems
   20.2 Diffusive Initial Value Problems
   20.3 Initial Value Problems in Multidimensions
   20.4 Fourier and Cyclic Reduction Methods for Boundary Value Problems
   20.5 Relaxation Methods for Boundary Value Problems
   20.6 Multigrid Methods for Boundary Value Problems
   20.7 Spectral Methods
 Chapter 21:  Computational Geometry
   21.0 Introduction
   21.1 Points and Boxes
   21.2 KD Trees and Nearest-Neighbor Finding
   21.3 Triangles in Two and Three Dimensions
   21.4 Lines, Line Segments, and Polygons
   21.5 Spheres and Rotations
   21.6 Triangulation and Delaunay Triangulation
   21.7 Applications of Delaunay Triangulation
   21.8 Quadtrees and Octrees: Storing Geometrical Objects
 Chapter 22:  Less-Numerical Algorithms
   22.0 Introduction
   22.1 Plotting Simple Graphs
   22.2 Diagnosing Machine Parameters
   22.3 Gray Codes
   22.4 Cyclic Redundancy and Other Checksums
   22.5 Huffman Coding and Compression of Data
   22.6 Arithmetic Coding
   22.7 Arithmetic at Arbitrary Precision
Comments (0)