American Institute of Aeronautics and Astronautics
1
Accuracy, Precision, and Scatter in TDLAS Measurements
Michael S. Brown1
Innovative Scientific Solutions, Inc., Dayton, OH, 45440
Dominic L. Barone2
Air Force Research Laboratory, Propulsion Directorate, WPAFB, OH, 45433
William F. Terry3
Innovative Scientific Solutions, Inc., Dayton, OH, 45440
Todd Barhorst4, and Skip Williams
5
Air Force Research Laboratory, Propulsion Directorate, WPAFB, OH, 45433
By taking advantage of impressive advances in diode laser and associated technology,
tunable diode laser absorption spectroscopy (TDLAS) has become a widespread tool for
optical diagnostics in reacting flows. Measurements of target species concentration,
temperature, pressure, and velocity have been demonstrated in a wide variety of
environments by several research groups. Commercialization of niche measurement
instruments based on TDLAS has been achieved. The current maturity of the technique
enables close scrutiny of collected signals to ascertain expectations of accuracy and precision
in measurements coupled to reacting flows. In this paper we examine some TDLAS data sets
in this context. We also discuss the propagation of uncertainties from primary measured
values of signal amplitude versus time to secondary values of temperature, number density,
and pressure.
I. Nomenclature
a y intercept of straight line
b slope of straight line
x dependent variable
y independent variable
A integrated area of an absorption transition
E energy of lower level in an absorption transition (cm-1
)
k unit conversion constant, 0.69503 cm-1
/K
L pathlength (cm)
LS line strength of absorption transition (cm2 molecule
-1 cm
-1)
N number density of target species (cm-3
)
P pressure (atm)
Q partition function
T temperature (K)
S see equation A6)
Sx see equation A6)
Sy see equation A6)
Sxx see equation A6)
Sxy see equation A7)
1 Research Physicist, 2766 Indian Ripple Rd., AIAA Associate Fellow.
2 Masters Student, AIAA Member.
3 Senior Technician, 2766 Indian Ripple Rd., AIAA Member.
4 Research Engineer, AFRL/RZAS, AIAA Member.
5 Principal Research Physicist, AFRL/RZAS, AIAA Senior Member.
48th AIAA Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition4 - 7 January 2010, Orlando, Florida
AIAA 2010-302
This material is declared a work of the U.S. Government and is not subject to copyright protection in the United States.
American Institute of Aeronautics and Astronautics
2
V velocity (m/s)
σx uncertainty in the quantity x (standard deviation)
Δ see equation A7)
ΔνD Doppler line width associated with Voigt spectral profile (cm-1
)
ΔνL Lorentzian line width associated with Voigt spectral profile (cm-1
)
ΔνV total line width (full width a half maximum) of Voigt spectral profile (cm-1
)
II. Introduction
pplication of tunable diode laser absorption spectroscopy (TDLAS) to reacting flows has been repeatedly
demonstrated in various environments primarily for temperature determination.1 At least one study
demonstrated system control using TDLAS-based measurement input in real time. In this work, closed-loop
temperature-based control of a pulsed incinerator was achieved by maximizing the measured time-averaged
temperature through adjustment of the phase between primary and secondary air forcing.2 Overall, the TDLAS
technique has matured to the point that several companies including Zolo Technologies Inc., Southwest Sciences,
Inc., Los Gatos Research, Inc., and Physical Sciences Inc. have delivered TDLAS-based commercial products for
niche measurement applications.
In-stream measurements of temperature, pressure, species concentration and velocity are possible in hypersonic
reacting flows using TDLAS.3 Specifically, demonstration measurements of temperature and water concentration
have been made at the exit of a direct-connect model scramjet engine,4 and air velocity has been measured in a
direct-connect isolator using water and oxygen absorption.5 Measurements of temperature and water concentration
have also been reported in wind-tunnel testing of model scramjet engines.6 More recently, spatial information about
the shock train in a scramjet isolator has been captured using multiple TDLAS lines of sight and a cluster math
algorithm approach to tomography.7 These results are all highly encouraging and point toward successful integration
of the technique into ground and flight tests. The Hypersonic International Flight Research Experimentation
(HIFiRE) program has embraced TDLAS technology. The Flight 1 payload includes two oxygen-based instruments
for mass capture determination. And, water-based measurements of concentration, temperature, and pressure, will be
executed on Flight 2 using 8 lines of sight at the exit plane of the combustor.8
III. Discussion
The significant TDLAS measurement achievements noted above point to a general need for understanding, in a
detailed way, the accuracy and precision to which TDLAS measurements can be made in reacting flows. While the
relative accuracy and precision may vary from one particular application to another, the limits of both will be
dictated by general considerations of signal-to-noise ratios and signal processing algorithms. In applications
associated with
reacting flows, the
largest source of
uncertainty is
typically the signal-
to-noise ratio (SNR).
The SNR in turn
depends on intrinsic
detector noise, A/D
bit depth, parasitic
etalons, gross beam
steering, beam
obscuration, etc. Limits of accuracy and precision will also be determined by the accuracy of the fundamental
spectroscopic constants associated with the target species and the specific transitions accessed during signal
collection. Some of this thinking has been addressed as researchers have sought resonant features that exhibit
temperature sensitivity over the anticipated measurement temperature range. We are currently examining such issues
in a detailed manner that is independent of hardware details using TDLAS data acquired in a number of flowing
environments. The following discussion is focused on single-scan (un-averaged) water absorption spectra acquired
in a time-multiplexed manner over the transitions shown in Table 1. The spectra were acquired using direct
absorption and individually processed to determine the integrated area under each spectral feature. Temperature was
A
Table 1 Near-infrared (~1.39 m) water transitions used in study.
Transition
Label
Transition
Frequency
(cm-1
)
Lower Energy
Level
(cm-1
)
Line Strength at 296 K
(cm2 molecule
-1 cm
-1)
A 7161.410 224.838 1.168E-20
B 7179.752 1216.195 2.438E-22
C 7181.156 136.762 1.488E-20
D 7185.597 1045.058 8.335E-22
American Institute of Aeronautics and Astronautics
3
then derived from the integrated areas using two approaches. In the first, ratios of integrated areas were calculated
and equated to the corresponding ratio of the line strengths as shown here
𝐴1
𝐴2 =
𝐿𝑆1
𝐿𝑆2 (1)
The line strengths themselves are known functions of temperature and the ratio of two is simply given by
𝐿𝑆1
𝐿𝑆2 =
𝐿𝑆1 𝑇𝑜
𝐿𝑆2 𝑇𝑜 𝑒
−1
𝑘 𝐸1 − 𝐸2
1
𝑇 −
1
𝑇𝑜
(2)
where Ei denotes the lower energy of the ith
transition and To a reference temperature (296 K).
Extracting a temperature value from the line ratio
method is simply a matter of finding the unique
value for T that satisfies Eqn. 1 and 2. (The line
strengths at the reference temperature are found in
the open literature.) The second approach for
determining the temperature is based on the well-
known Boltzmann plot. In this prescription, the
logarithm of the integrated areas normalized by
their corresponding lines strengths at the reference
temperature are graphed as a function of the
corresponding values of the lower-state energy
level for the transitions. A linear, least-squares fit
to the plotted data yields both the temperature and
density as seen from Eqn. A5 in the Appendix.
The derived density (N) associated with the first
approach is found directly from A1 = LS1(T) N L
using the temperature as found from Eqn. 1 and
Eqn. 2. The anticipated numerical uncertainties
associated with the derived temperatures and
densities associated with both approaches are written explicitly in the Appendix. Both approaches presume local
thermodynamic equilibrium of the target species over the time duration of the acquisition of a single spectrum. This
assumption is sound under the conditions that the data presented here were acquired.
The accuracy of TDLAS-derived quantities such as temperature can be ascertained via measurements made in
steady-state environments with known controlled
values or in similar environments in which the
desired parameter is measured using a second
known method. We have acquired water-based
TDLAS measurements (using the transitions in
Table 1) above a flat-flame burner along with
corrected thermocouple measurements in the same
methane/air flames at a fixed height above the
burner surface. (This work will be discussed in
detail in a future paper.) For the particular case of
an equivalence ratio of 0.9, the TDLAS
measurements yielded a path-integrated
temperature across the burner of 1825 K using
Boltzmann-plot data analysis. A sequence of
thermocouple measurements made with three
different bead diameters along the same path
yielded a path-integrated temperature value of
1785 K. These two values agree with each other at
the 2% level. Similar accuracy assessments appear
in the open literature. For example, in preparation
Figure 1. Single-shot TDLAS-based temperature
measurements (T in K) acquired in a Mach 1.8 flow stream at
the entrance to the isolator.
Figure 2. Single-shot TDLAS-based temperature
measurements (T in K); same conditions as Fig. 1.
American Institute of Aeronautics and Astronautics
4
for wind-tunnel testing of a model scramjet engine, researchers compared water-based TDLAS measurements of
temperature with those of a thermocouple in a premixed flame.6 Over the temperature range of 1000 K to 1600 K
they found the TDLAS-derived temperature to be a few percent greater than the thermocouple temperature with the
difference increasing with flame temperature.
For measurements made in reacting flows – particularly those set up to test hardware – it is frequently not
possible to obtain a secondary temperature measurement. Indeed, optical diagnostics are typically employed for
temperature measurements in environments where other thermometry approaches are not possible or practical. It is
prudent therefore to examine TDLAS data reduction strategies with regards to anticipated numerical scatter given
finite signal-to-noise ratios in the context of apparent measurement scatter (i.e. precision). Such close examination
can lead to conclusions that may be data-set dependent and care must be used in transferring such considerations
between data sets.
Using transitions A, B and D of Table 1, the temperature of ambient laboratory air was measured following the
Boltzmann plot and two-line approaches for extracting temperature. The data set included 1000 single scans of the
employed diode lasers acquired at 1 kHz. The three derived average temperatures agreed to within 6%. (We note
that the transitions of Table 1 are better suited for elevated temperature environments than for room temperature
environments.) The Boltzmann plot average temperature of 293 K agrees with the two-line temperature (288 K)
using the B/A line ratio at the 1.7% level. These three approaches yielded similar average values for the SNR-driven
average uncertainty of ~33 K. However, the observed standard deviations of the derived temperatures were smaller,
~21 K. The larger SNR-driven uncertainty value is certainly due the relatively small signal associated with
transitions B and D at room temperature.
As an example of a measurement in a reacting flow, we examine a sequence of single-scan (single-shot)
temperature acquired at the entrance to the isolator in a direct-connect hypersonic test facility. The measurements
were made using a single line-of-sight across the mid-plane of the circular hardware just downstream of the Mach
1.8 facility nozzle. The incoming air stream consisted of heated (non-vitiated) air with an average water molecule
number density of 6 × 1016
cm-3
. The data was collected at 1 kHz using the transitions noted in Table 1 and
processed to yield values of the frequency-integrated absorbance for each shot. Temperatures were derived from
these integrated areas using the area ratio approach (Eqn. 1 and 2) and the Boltzmann plot approach (Eqn. A5). The
four transitions provide for six unique area ratios. The derived temperatures for an arbitrarily chosen sequence of 40
shots are shown in Fig. 1 and 2 for the Boltzmann plot approach and five of the ratio-based approaches. As seen in
Fig. 1, the results for the Boltzmann plot approach and the ratios of transition combinations B/A and B/C (see Table
1 for transition labeling convention) follow each other quite closely. For example they each exhibit local maxima
near shot numbers 23, 37, and 52 and local minima near 32 and 47. The apparent oscillation in temperature persists
for all times recorded and probably reflects facility air supply characteristics such as compressor surge.
Temperatures derived from area ratio combinations involving transition D (B/D, D/C, and D/A) exhibit large
fluctuations (see Fig. 2) and don’t reproduce the periodic structure evident in Fig. 1. Transition D exhibited the
lowest signal-to-noise ratio observed for this data set and is the likely reason behind the excessive scatter seen in
Fig. 2.
Using a full second worth of data (1000 shots), the average temperature was calculated for each approach along
with the standard deviation of the measurements. These values are shown in Table 2. Similarly, the table includes
the average of the uncertainties of the derived temperature values based on measured signal-to-noise ratios and the
procedures detailed in the Appendix. Since the signal-to-noise ratio can include systematic error sources we do not
add the individual uncertainties in quadrature but rather report the simple average. Note that the Boltzmann plot
derived temperature using all four transitions exhibits larger observed scatter than that of the same plot with
transition D eliminated. The temperature derived from the three-transition Boltzmann analysis is plotted in Fig. 1.
As anticipated from Fig. 1 and Fig. 2, the observed experimental scatter (standard deviation) as well as the
anticipated numerical scatter are least for the three-transition Boltzmann approach and the ratio combinations of B/C
Table 2. Extracted temperatures with associated uncertainties using Boltzmann analysis and area ratios
for transitions of Table 1.
Boltzmann
Plot for
A,B,C,D
Boltzmann
Plot for
A,B,C
B / C B / A B / D A / C D / C D / A
avg. T (K) 488 425 427 437 300 371 479 503
std expt. (K) 72 49 35 38 104 122 58 68
avg. uncert. (K) 70 84 16 30 215 198 73 146
American Institute of Aeronautics and Astronautics
5
and B/A. The mean temperatures derived via these three approaches agree within 2.8%. The aforementioned
oscillation of the temperature accounts for the measured scatter being larger than the anticipated numerical scatter.
The two area ratio approaches exhibit less measured scatter as well as less anticipated numerical uncertainty.
Likewise, as anticipated from Fig. 2, temperatures derived from area ratios involving transition D exhibit widely
varying mean values along with large measured scatter and large anticipated scatter.
The primary quantities derived from a TDLAS measurement are the temperature and number density of the
target species. Numerous other quantities can be derived as well; for example, the pressure which is derivable from
the line width of an absorption transition. The relevant expressions are shown in Appendix Eqn. A12 – A17 where
use has been made of empirical relationships between the full width at half maximum of the transition, the
temperature, and the pressure. The uncertainty in the derived pressure is then dependent upon the uncertainty in the
derived temperature and measured line width. We take, as an example, the measured temperature of Table 2 (430 K)
and the Voigt line width of the 7185.6 cm-1
transition (0.067 cm-1
) along with constant values of To=296 K, n =
0.65, and o = 0.041 cm-1
/atm taken from the literature9 to find a measured pressure of 0.9 atm. Assuming no
uncertainty in the empirical constants, the uncertainty in the derived value of the pressure is 0.07 atm for a 10%
temperature uncertainty and a 5% line width uncertainty. That is, the combined effects of temperature and line width
uncertainty lead to an 8% pressure uncertainty.
For large data sets with thousands of single-shot spectra to be analyzed it is helpful to develop routines that
afford some means of rejecting compromised spectra. Degradation can occur for multiple reasons such as gross
beam steering or obscuration or transient electronic noise. One such approach that we have found valuable is close
examination of the fitting associated with the Boltzmann plot. The scatter about the linear fit can be quantified using
the standard rules for calculating χ2. For a single data set at constant flow condition we calculate the individual
values of χ2, average them, and then reject outliers that show large deviation from this average.
IV. Conclusion
While issues associated with the accuracy, precision, and scatter associated with flow field parameters derived
from TDLAS measurements have been discussed here using specific data sets, the methodology is quite general and
can be extended to other data sets. We recommend using a combination of Boltzmann plot analysis combined with
integrated area ratio analysis to extract the local path-integrated temperature. For a set of transitions it is best to
exclude a transition or transitions that exhibit poor signal-to-noise ratios as compared to other transitions in the set.
As indicated in Table 2, calculation of the anticipated numerical scatter provides guidance in selecting line pairs for
careful analysis.
V. Appendix
The following indicates the manner in which the numerical uncertainties in the derived values of temperature,
target species number density and pressure discussed above are found using standard statistical analysis for both the
line ratio approach and the Boltzmann plot approach.
The uncertainties in the measured absorption signals (A) denoted by A are determined from signal-to-noise
conditions as noted above. For any function f that is dependent upon A or a set of Ais, the uncertainty in f is
determined from the following
𝜎𝑓2 = 𝜎𝑧𝑖2𝑛
𝑖=1 𝜕𝑓
𝜕𝑧𝑖
2
A1)
where zi denotes Ai or a function of Ai. Note, we are presuming independence of the variables zi. Herein, the
uncertainty () is expressed as a standard deviation. The 95% confidence interval can be found from through
multiplication by 1.96.
We first consider the uncertainty in the temperature derived from a two-line ratio. Defining the ratio of the
integrated absorbances as R = A1/A2, the fractional temperature uncertainty can be written from Eqn. 1 and Eqn. 2 as
𝜎𝑇
𝑇 =
𝑘∆𝐸
𝑘∆𝐸 𝑙𝑛 𝑅
𝐿𝑆2 𝑇𝑜 𝐿𝑆1 𝑇𝑜 + 1 𝑇𝑜
𝜎𝑅 A2)
American Institute of Aeronautics and Astronautics
6
where ΔE = E1 – E2. Similarly, the uncertainty in the extracted number density can be expressed via
𝜎𝑁2 = 1
𝐿𝑆 𝐿
2
𝜎𝐴2 + 𝜕𝑁
𝜕 𝐿𝑆
𝜕 𝐿𝑆
𝜕𝑇
2
𝜎𝑇2 2
A3)
𝜕𝑁
𝜕 𝐿𝑆 =
−𝐴
𝐿𝑆2 𝐿
𝜕 𝐿𝑆
𝜕𝑇 = 𝐿𝑆 𝑇𝑜
𝑄 𝑇𝑜
𝑄 𝑇 𝑒−
𝐸
𝑘
1
𝑇−
1
𝑇𝑜 A4)
A Boltzmann analysis of absorption spectra stems from the following expression for each (ith
) transition in the
spectrum (we omit factors associated with stimulated emission that are insignificant in this context)
𝑙𝑛 𝐴𝑖
𝑆𝑖 𝑇𝑜 𝑒
−𝐸𝑖
𝑘 𝑇𝑜 = −𝐸𝑖
𝑘 𝑇 + 𝑙𝑛
𝑄 𝑇𝑜
𝑄 𝑇 𝑁 𝐿 A5)
where To denotes a reference temperature (usually 296 K). A Boltzmann plot is generated by graphing the left hand
side of Eqn. A5 as a function of Ei for two or more transitions. A linear fit to the plotted points yields the
temperature (T) via the slope and the number density (N) of the target species via the y intercept. To extract a
measure of the uncertainty in the derived values for T and N, we write the linear fit to the Boltzmann plot in the form
y = a + b x. Uncertainties in a and b are derivable from the uncertainties in the values of y that in turn reflect the
uncertainties in the set of Ai. A solution for a and b is found using well-established routines that we reproduce here
following the notation of Press et al.10
Each value of yi has an associated uncertainty noted as σi.
𝑆 = 1
𝜎𝑖2
𝑁𝑖=1 𝑆𝑥 =
𝑥𝑖
𝜎𝑖2 𝑆𝑦 =
𝑦𝑖
𝜎𝑖2 𝑆𝑥𝑥 = 𝑁
𝑖=1𝑁𝑖=1
𝑥𝑖2
𝜎𝑖2
𝑁𝑖=1 A6)
𝑆𝑥𝑦 = 𝑥𝑖𝑦𝑖
𝜎𝑖2
𝑁𝑖=1 ∆ = 𝑆 𝑆𝑥𝑥 − 𝑆𝑥 2 A7)
The fitted values of a and b along with their uncertainties are then given by
𝑎 = 𝑆𝑥𝑥 𝑆𝑦 − 𝑆𝑥 𝑆𝑥𝑦
∆ 𝑏 =
𝑆 𝑆𝑥𝑦 − 𝑆𝑥 𝑆𝑦
∆ A8)
𝜎𝑎2 = 𝑆𝑥𝑥
∆ 𝜎𝑏2 =
𝑆
∆ A9)
Following a Boltzmann analysis, the uncertainty in the derived value for the temperature and target species number
density are given from the above by
𝜎𝑇 = 𝜎𝑏
𝑘 𝑏2 = 1
𝑘
𝑆 ∆1.5
𝑆 𝑆𝑥𝑦 − 𝑆𝑥 𝑆𝑦 2 A10)
𝜎𝑁 = 𝑄 𝑇
𝑄 𝑇𝑜
𝑒𝑎
𝐿 𝜎𝑎 A11)
TDLAS measurements can be used to determine the local pressure through the line widths (full width at half
maximum) of the recorded spectral transitions. Under the physical environments associated with hydrocarbon-based
reacting flows, the spectral line shapes are well characterized by the Voigt spectral profile. This profile includes line
broadening due to temperature (Doppler broadening) as well as pressure (collision broadening). The collision
broadening contribution to the line width can be separated from the total line width and Doppler contribution as
follows
∆𝜈𝐿 = Δ𝜐𝑉
2 − 𝛽2 𝑇
∆𝜈𝑉 A12)
American Institute of Aeronautics and Astronautics
7
where denotes constants associated with Doppler width expression (ΔνD = T½). Careful experimental work has
revealed scaling laws that empirically show the relationship between the collision width and the pressure that are
often written in the following form
𝑃 = Δ𝜈𝐿
2 𝛾 𝛾 = 𝛾𝑜
𝑇𝑜
𝑇 𝑛
A13)
where n and o are transition-specific constants and To the reference temperature. The above can be combined into a
single expression
𝑃 = 1
2 𝛾𝑜 𝑇𝑜𝑛 𝑇𝑛 Δ𝜈𝑉 −
𝛽2
Δ𝜈𝑉 𝑇 A14)
The statistical uncertainty in the pressure can then be found from
𝜎𝑃2 = 𝜕𝑃
𝜕𝑇
2
𝜎𝑇2 + 𝜕𝑃
𝜕 ∆𝜈𝑉
2
𝜎Δ𝜈𝑉2 A15)
𝜕𝑃
𝜕∆𝜈𝑉 =
1
2 𝛾𝑜 𝑇𝑜𝑛 𝑇𝑛 +
𝛽2 𝑇𝑛+1
∆𝜈𝑉2 A16)
𝜕𝑃
𝜕𝑇 =
1
2 𝛾𝑜 𝑇𝑜𝑛 𝑇𝑛−1 ∆𝜈𝑉 𝑛 −
𝛽2 𝑇𝑛 𝑛+1
∆𝜈𝑉 A17)
Acknowledgments
This work is supported in part by the Advanced Propulsion Test Technology (APTT) Focus Area, Tom
Fetterhoff, Executing Agent, and the Air Force Office of Scientific Research (Dr. Michael Berman, Program
Manager).
References
1 Hanson, R. K., and Jeffries, J. B., “Diode Laser Sensors for Combustion and Propulsion Flows,” JANNAF-41st CS/29th
APS/23rd PSHS, San Diego, CA, Dec. 2006. 2 Furlong, E. R., Mihalcea, R. M., Webber, M. E., Baer, D. S., and Hanson, R. K., “Diode-Laser Sensors for Real-Time
Control of Pulsed Combustion Systems,” AIAA J., Vol. 37, No. 6, 1999, 733-737. 3 Hanson, R. K., and Jeffries, J. B., “Diode Laser Sensors for Combustion and Propulsion Flows,” JANNAF-41st CS/29th
APS/23rd PSHS, San Diego, CA, Dec. 2006. 4 Liu, J. T., Rieker, G. B., Jeffries, J. B, Gruber, M. R., Carter, C. D., Mathur, T., and Hanson, R. K, “Near-Infrared Diode
Laser Absorption Diagnostic for Temperature and Water Vapor in a Scramjet Combustor,” Appl. Optics, Vol. 44, No. 31,
2005, 6701-6711. 5 Williams, S., Barone, D., Barhorst, T., Jackson, K., Lin, K-C., Masterson, P., Zhao, Q., and Sappey, A. D., “Diode Laser
Diagnostics for High Speed Flows,” AIAA Paper 2006-7999, 2006. 6 Griffiths, A. D. and Houwing, A. F. P., “Diode Laser Absorption Spectroscopy of Water Vapor in a Scramjet Combustor,”
Appl. Opt. 44(31), 2005, 6653-6659. 7 Lindstrom, C. D., Davis, D., Williams, S., and Tam, C.-J., “Shock-Train Structure Resolved with Absorption Spectroscopy
Part 2: Analysis and CFD Comparison,” AIAA J. 47(10) 2009, 2379-2390. 8 Jackson, K. R., Gruber, M. R., Jackson, T. A., and Hass, N., “HIFiRE Flight 2 Scramjet Overview,” WPAFB 08-3277,
2008. 9 Liu, X., Zhou, X., Jeffries, J. B., and Hanson, R. K., “Experimental Study of H2O Spectroscopic Parameters in the Near-IR
(6940-7440 cm-1) for Gas Sensing Applications at Elevated Temperature,” J. Quant. Spectrosc. Radiative Transfer , Vol.
103, 2007, 565-577. 10 Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. P., Numerical Recipes in C++, Chap. 15, (Cambridge
University Press, Cambridge, England, 2002).