Numerical Recipes in C++: The Art of Scientific Computing

by
Edition: 2nd
Format: Hardcover
Pub. Date: 2002-02-07
Publisher(s): Cambridge University Press
  • Free Shipping Icon

    This Item Qualifies for Free Shipping!*

    *Excludes marketplace orders.

List Price: $82.94

Rent Textbook

Select for Price
There was a problem. Please try again later.

New Textbook

We're Sorry
Sold Out

Used Textbook

We're Sorry
Sold Out

eTextbook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Now the acclaimed Second Edition of Numerical Recipes is available in the C++ object-oriented programming language. Including and updating the full mathematical and explanatory contents of Numerical Recipes in C, this new version incorporates completely new C++ versions of the more than 300 Numerical Recipes routines that are widely recognized as the most accessible and practical basis for scientific computing. The product of a unique collaboration among four leading scientists in academic research and industry, Numerical Recipes is a complete text and reference book on scientific computing. In a self-contained manner it proceeds from mathematical and theoretical considerations to actual practical computer routines. Highlights include linear algebra, interpolation, special functions, random numbers, nonlinear sets of equations, optimization, eigensystems, Fourier methods and wavelets, statistical tests, ODEs and PDEs, integral equations and inverse theory. The authors' approach to C++ preserves the efficient execution that C users expect, while simultaneously employing a clear, object-oriented interface to the routines. Tricks and tips for scientific computing in C++ are liberally included. The routines, in ANSI/ISO C++ source code, can thus be used with almost any existing C++ vector/matrix class library, according to user preference. A simple class library for stand-alone use is also included in the book. Both scientific programmers new to C++, and experienced C++ programmers who need access to the Numerical Recipes routines, can benefit from this important new version of an invaluable, classic text.

Table of Contents

Preface to the C++ Edition xi
Preface to the Second Edition xii
Preface to the First Edition xv
License Information xvii
Computer Programs by Chapter and Section xxi
Preliminaries
1(34)
Introduction
1(4)
Program Organization and Control Structures
5(11)
Some C++ Conventions for Scientific Computing
16(9)
Implementation of the Vector and Matrix Classes
25(6)
Error, Accuracy, and Stability
31(4)
Solution of Linear Algebraic Equations
35(73)
Introduction
35(4)
Gauss-Jordan Elimination
39(5)
Gaussian Elimination with Backsubstitution
44(2)
LU Decomposition and Its Applications
46(7)
Tridiagonal and Band Diagonal Systems of Equations
53(5)
Iterative Improvement of a Solution to Linear Equations
58(4)
Singular Value Decomposition
62(12)
Sparse Linear Systems
74(19)
Vandermonde Matrices and Toeplitz Matrices
93(6)
Cholesky Decomposition
99(2)
QR Decomposition
101(4)
Is Matrix Inversion an N3 Process?
105(3)
Interpolation and Extrapolation
108(25)
Introduction
108(3)
Polynomial Interpolation and Extrapolation
111(3)
Rational Function Interpolation and Extrapolation
114(2)
Cubic Spline Interpolation
116(4)
How to Search an Ordered Table
120(3)
Coefficients of the Interpolating Polynomial
123(3)
Interpolation in Two or More Dimensions
126(7)
Integration of Functions
133(38)
Introduction
133(1)
Classical Formulas for Equally Spaced Abscissas
134(7)
Elementary Algorithms
141(3)
Romberg Integration
144(2)
Improper Integrals
146(6)
Gaussian Quadratures and Orthogonal Polynomials
152(14)
Multidimensional Integrals
166(5)
Evaluation of Functions
171(46)
Introduction
171(1)
Series and Their Convergence
171(4)
Evaluation of Continued Fractions
175(4)
Polynomials and Rational Functions
179(3)
Complex Arithmetic
182(2)
Recurrence Relations and Clenshaw's Recurrence Formula
184(5)
Quadratic and Cubic Equations
189(3)
Numerical Derivatives
192(4)
Chebyshev Approximation
196(5)
Derivatives or Integrals of a Chebyshev-approximated Function
201(2)
Polynomial Approximation from Chebyshev Coefficients
203(1)
Economization of Power Series
204(2)
Pade Approximants
206(3)
Rational Chebyshev Approximation
209(4)
Evaluation of Functions by Path Integration
213(4)
Special Functions
217(61)
Introduction
217(1)
Gamma Function, Beta Function, Factorials, Binomial Coefficients
218(3)
Incomplete Gamma Function, Error Function, Chi-Square Probability Function, Cumulative Poisson Function
221(6)
Exponential Integrals
227(4)
Incomplete Beta Function, Student's Distribution, F-Distribution, Cumulative Binomial Distribution
231(4)
Bessel Functions of Integer Order
235(6)
Modified Bessel Functions of Integer Order
241(4)
Bessel Functions of Fractional Order, Airy Functions, Spherical Bessel Functions
245(12)
Spherical Harmonics
257(2)
Fresnel Integrals, Cosine and Sine Integrals
259(5)
Dawson's Integral
264(1)
Elliptic Integrals and Jacobian Elliptic Functions
265(10)
Hypergeometric Functions
275(3)
Random Numbers
278(54)
Introduction
278(1)
Uniform Deviates
279(12)
Transformation Method: Exponential and Normal Deviates
291(3)
Rejection Method: Gamma, Poisson, Binomial Deviates
294(6)
Generation of Random Bits
300(4)
Random Sequences Based on Data Encryption
304(4)
Simple Monte Carlo Integration
308(5)
Quasi- (that is, Sub-) Random Sequences
313(7)
Adaptive and Recursive Monte Carlo Methods
320(12)
Sorting
332(19)
Introduction
332(1)
Straight Insertion and Shell's Method
333(3)
Quicksort
336(3)
Heapsort
339(2)
Indexing and Ranking
341(3)
Selecting the Mth Largest
344(4)
Determination of Equivalence Classes
348(3)
Root Finding and Nonlinear Sets of Equations
351(47)
Introduction
351(3)
Bracketing and Bisection
354(4)
Secant Method, False Position Method, and Ridders' Method
358(5)
Van Wijngaarden-Dekker-Brent Method
363(3)
Newton-Raphson Method Using Derivative
366(7)
Roots of Polynomials
373(10)
Newton-Raphson Method for Nonlinear Systems of Equations
383(4)
Globally Convergent Methods for Nonlinear Systems of Equations
387(11)
Minimization or Maximization of Functions
398(63)
Introduction
398(3)
Golden Section Search in One Dimension
401(5)
Parabolic Interpolation and Brent's Method in One Dimension
406(4)
One-Dimensional Search with First Derivatives
410(3)
Downhill Simplex Method in Multidimensions
413(4)
Direction Set (Powell's) Methods in Multidimensions
417(7)
Conjugate Gradient Methods in Multidimensions
424(6)
Variable Metric Methods in Multidimensions
430(4)
Linear Programming and the Simplex Method
434(14)
Simulated Annealing Methods
448(13)
Eigensystems
461(40)
Introduction
461(7)
Jacobi Transformations of a Symmetric Matrix
468(6)
Reduction of a Symmetric Matrix to Tridiagonal Form: Givens and Householder Reductions
474(7)
Eigenvalues and Eigenvectors of a Tridiagonal Matrix
481(5)
Hermitian Matrices
486(1)
Reduction of a General Matrix to Hessenberg Form
487(4)
The QR Algorithm for Real Hessenberg Matrices
491(7)
Improving Eigenvalues and/or Finding Eigenvectors by Inverse Iteration
498(3)
Fast Fourier Transform
501(41)
Introduction
501(4)
Fourier Transform of Discretely Sampled Data
505(4)
Fast Fourier Transform (FFT)
509(6)
FFT of Real Functions, Sine and Cosine Transforms
515(11)
FFT in Two or More Dimensions
526(4)
Fourier Transforms of Real Data in Two and Three Dimensions
530(6)
External Storage or Memory-Local FFTs
536(6)
Fourier and Spectral Applications
542(72)
Introduction
542(1)
Convolution and Deconvolution Using the FFT
543(7)
Correlation and Autocorrelation Using the FFT
550(2)
Optimal (Wiener) Filtering with the FFT
552(3)
Power Spectrum Estimation Using the FFT
555(8)
Digital Filtering in the Time Domain
563(6)
Linear Prediction and Linear Predictive Coding
569(8)
Power Spectrum Estimation by the Maximum Entropy (All Poles) Method
577(3)
Spectral Analysis of Unevenly Sampled Data
580(9)
Computing Fourier Integrals Using the FFT
589(7)
Wavelet Transforms
596(15)
Numerical Use of the Sampling Theorem
611(3)
Statistical Description of Data
614(47)
Introduction
614(1)
Moments of a Distribution: Mean, Variance, Skewness, and So Forth
615(5)
Do Two Distributions Have the Same Means or Variances?
620(5)
Are Two Distributions Different?
625(8)
Contingency Table Analysis of Two Distributions
633(8)
Linear Correlation
641(3)
Nonparametric or Rank Correlation
644(6)
Do Two-Dimensional Distributions Differ?
650(5)
Savitzky-Golay Smoothing Filters
655(6)
Modeling of Data
661(51)
Introduction
661(1)
Least Squares as a Maximum Likelihood Estimator
662(4)
Fitting Data to a Straight Line
666(5)
Straight-Line Data with Errors in Both Coordinates
671(5)
General Linear Least Squares
676(10)
Nonlinear Models
686(8)
Confidence Limits on Estimated Model Parameters
694(10)
Robust Estimation
704(8)
Integration of Ordinary Differential Equations
712(44)
Introduction
712(3)
Runge-Kutta Method
715(4)
Adaptive Stepsize Control for Runge-Kutta
719(8)
Modified Midpoint Method
727(2)
Richardson Extrapolation and the Bulirsch-Stoer Method
729(8)
Second-Order Conservative Equations
737(2)
Stiff Sets of Equations
739(12)
Multistep, Multivalue, and Predictor-Corrector Methods
751(5)
Two Point Boundary Value Problems
756(34)
Introduction
756(4)
The Shooting Method
760(2)
Shooting to a Fitting Point
762(3)
Relaxation Methods
765(10)
A Worked Example: Spheroidal Harmonics
775(10)
Automated Allocation of Mesh Points
785(2)
Handling Internal Boundary Conditions or Singular Points
787(3)
Integral Equations and Inverse Theory
790(39)
Introduction
790(3)
Fredholm Equations of the Second Kind
793(3)
Volterra Equations
796(3)
Integral Equations with Singular Kernels
799(7)
Inverse Problems and the Use of A Priori Information
806(5)
Linear Regularization Methods
811(7)
Backus-Gilbert Method
818(3)
Maximum Entropy Image Restoration
821(8)
Partial Differential Equations
829(62)
Introduction
829(7)
Flux-Conservative Initial Value Problems
836(13)
Diffusive Initial Value Problems
849(6)
Initial Value Problems in Multidimensions
855(4)
Fourier and Cyclic Reduction Methods for Boundary Value Problems
859(6)
Relaxation Methods for Boundary Value Problems
865(8)
Multigrid Methods for Boundary Value Problems
873(18)
Less-Numerical Algorithms
891(36)
Introduction
891(1)
Diagnosing Machine Parameters
891(5)
Gray Codes
896(2)
Cyclic Redundancy and Other Checksums
898(8)
Huffman Coding and Compression of Data
906(6)
Arithmetic Coding
912(4)
Arithmetic at Arbitrary Precision
916(11)
References 927(4)
Appendix A: Table of Function Declarations 931(8)
Appendix B: Utility Routines and Classes 939(18)
Appendix C: Converting to Single Precision 957(2)
Index of Programs and Dependencies 959(13)
General Index 972

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.