You are on page 1of 15

# The Levenberg-Marquardt method for nonlinear least squares curve-tting problems

c Henri Gavin Department of Civil and Environmental Engineering Duke University April 13, 2011
Abstract The Levenberg-Marquardt method is a standard technique used to solve nonlinear least squares problems. Least squares problems arise when tting a parameterized function to a set of measured data points by minimizing the sum of the squares of the errors between the data points and the function. Nonlinear least squares problems arise when the function is not linear in the parameters. Nonlinear least squares methods involve an iterative improvement to parameter values in order to reduce the sum of the squares of the errors between the function and the measured data points. The Levenberg-Marquardt curve-tting method is actually a combination of two minimization methods: the gradient descent method and the Gauss-Newton method. In the gradient descent method, the sum of the squared errors is reduced by updating the parameters in the direction of the greatest reduction of the least squares objective. In the Gauss-Newton method, the sum of the squared errors is reduced by assuming the least squares function is locally quadratic, and nding the minimum of the quadratic. The Levenberg-Marquardt method acts more like a gradient-descent method when the parameters are far from their optimal value, and acts more like the Gauss-Newton method when the parameters are close to their optimal value. This document describes these methods and illustrates the use of software to solve nonlinear least squares curve-tting problems.

1 Introduction
In tting a function y (t; p) of an independent variable t and a vector of n parameters p to a set of data points (ti , yi ), it is customary and convenient to minimize the sum of the weighted squares of the errors (or weighted residuals) between the measured data y(ti ) and the curve-t function y (ti ; p). This scalar-valued goodness-of-t measure is called the chi-squared error criterion. 1 m y(ti ) y (ti ; p) (p) = (1) 2 i=1 wi 1 = (y y(p))T W(y y(p)) (2) 2 1 T 1 = y Wy yT W + yT W y y (3) 2 2 The value wi is a measure of the error in measurement y(ti ). The weighting matrix W is 2 diagonal with Wii = 1/wi . If the function y is nonlinear in the model parameters p, then 2 the minimization of with respect to the parameters must be carried out iteratively. The goal of each iteration is to nd a perturbation h to the parameters p that reduces 2 .
2 2

## 2 The Gradient Descent Method

The steepest descent method is a general minimization method which updates parameter values in the direction opposite to the gradient of the objective function. It is recognized as a highly convergent algorithm for nding the minimum of simple objective functions [3, 4]. For problems with thousands of parameters, gradient descent methods may be the only viable method. The gradient of the chi-squared objective function with respect to the parameters is 2 = (y y(p))T W (y y(p)) p p (p) y = (y y(p))T W p = (y y)T WJ (4) (5) (6)

where the m n Jacobian matrix [/p] represents the local sensitivity of the function y y to variation in the parameters p. For notational simplicity J will be used for [/p]. The y perturbation h that moves the parameters in the direction of steepest descent is given by hgd = JT W(y y) , (7)

where the positive scalar determines the length of the step in the steepest-descent direction.

## 3 The Gauss-Newton Method

The Gauss-Newton method is a method of minimizing a sum-of-squares objective function. It presumes that the objective function is approximately quadratic in the parameters near the optimal solution . For more moderately-sized problems the Gauss-Newton method typically converges much faster than gradient-descent methods . The function evaluated with perturbed model parameters may be locally approximated through a rst-order Taylor series expansion. y(p + h) y(p) + y h = y + Jh , p (8)

Substituting the approximation for the perturbed function, y + Jh, for y in equation (3), 1 1 1 1 2 (p + h) yT Wy + yT W yT W (y y)T WJh + hT JT WJh . y y (9) 2 2 2 2 This shows that 2 is approximately quadratic in the perturbation h, and that the Hessian of the chi-squared t criterion is approximately JT WJ. The perturbation h that minimizes 2 is found from 2 /h = 0. 2 (p + h) (y y)T WJ + hT JT WJ , h and the resulting normal equations for the Gauss-Newton perturbation are JT WJ hgn = JT W(y y) . 2 (10)

(11)

## 4 The Levenberg-Marquardt Method

The Levenberg-Marquardt algorithm adaptively varies the parameter updates between the gradient descent and Gauss-Newton update, JT WJ + I hlm = JT W(y y) , (12)

where small values of the algorithmic parameter result in a Gauss-Newton update and large values of result in a gradient descent update. At a large distance from the function minimum, the steepest descent method is utilized to provide steady and convergent progress toward the solution. As the solution approaches the minimum, is adaptively decreased, the Levenberg-Marquardt method approaches the Gauss-Newton method, and the solution typically converges rapidly to the local minimum [3, 4, 5]. Marquardts suggested update relationship  JT WJ + diag(JT WJ) hlm = JT W(y y) . (13)

is used in the Levenberg-Marquardt algorithm implemented in the Matlab function lm.m 4.1 Numerical Implementation The Jacobian (J Rmn ) is numerically approximated using backwards dierences, Jij = y (ti ; p + pj ) y (ti ; p) yi = , pj ||pj || (14)

where the j-th element of pj is the only non-zero element and is set to 2 (1 + |pj |). If in an iteration 2 (p) 2 (p + h) > 3 hT (h + JT W(y y)) then p + h is suciently better than p, p is replaced by p + h, and is reduced by a factor of ten. Otherwise is increased by a factor of ten, and the algorithm proceeds to the next iteration. Convergence is achieved if max(|hi /pi |) < 2 , 2 /m < 3 , or max(|JT W(y y)|) < 1 . Otherwise, iterations terminate when the iteration number exceeds a pre-specied limit. 4.2 Error Analysis Once the optimal curve-t parameters pt are determined, parameter statistics are 2 computed for the converged solution using weight values, wi , equal to the mean square 2 measurement error, y ,
2 2 wi = y =

## 1 (y y(pt ))T (y y(pt )) i . nm+1

(15)

The parameter covariance matrix is then computed from Vp = [JT WJ]1 , the asymptotic standard parameter errors are given by p = diag([JT WJ]1 ) , 3 (17) (16)

The asymptotic standard error is a measure of how unexplained variability in the data propagates to variability in the solution, and is essentially an error measure for the parameters. The standard error of the t is given by y = diag(J[JT WJ]1 JT ) . (18)

The standard error of the t indicates how variability in the parameters aects the variability in the curve-t. The asymptotic standad prediction error reects the standard error of the t as well as the mean square measurement error. yp = 4.3 Matlab Implementation: lm.m The Matlab function lm.m implements the Levenberg-Marquardt method for curvetting problems. The code with examples are available here: http://www.duke.edu/hpgavin/lm.m http://www.duke.edu/hpgavin/lm examp.m http://www.duke.edu/hpgavin/lm func.m
[p,X2,sigma_p,sigma_y,corr,R_sq,cvg_hst] = lm(func,p,t,y_dat,weight,dp,p_min,p_max,c) Levenberg Marquardt curve-fitting: minimize sum of weighted squared residuals -------- INPUT VARIABLES --------func = function of n independent variables, t, and m parameters, p, returning the simulated model: y_hat = func(t,p,c) p = n-vector of initial guess of parameter values t = m-vectors or matrix of independent variables (used as arg to func) y_dat = m-vectors or matrix of data to be fit by func(t,p,c) weight = weighting vector for least squares fit ( weight >= 0 ) ... inverse of the standard measurement errors Default: sqrt(d.o.f. / ( y_dat * y_dat )) dp = fractional increment of p for numerical derivatives dp(j)>0 central differences calculated dp(j)<0 one sided backwards differences calculated dp(j)=0 sets corresponding partials to zero; i.e. holds p(j) fixed Default: 0.001; p_min = n-vector of lower bounds for parameter values p_max = n-vector of upper bounds for parameter values c = an optional vector of constants passed to func(t,p,c) ---------- OUTPUT VARIABLES ------p = least-squares optimal estimate of the parameter values X2 = Chi squared criteria sigma_p = asymptotic standard error of the parameters sigma_y = asymptotic standard error of the curve-fit corr = correlation matrix of the parameters R_sq = R-squared coefficient of multiple determination cvg_hst = convergence history
2 y + diag(J[JT WJ]1 JT ) .

(19)

The m-le to solve a least-squares curve-t problem with lm.m can be as simple as:
my_data = load(my_data_file); t = my_data(:,1); y_dat = my_data(:,2); p_min = [ -10 p_max = [ 10 p_init = [ 3 0.1 5 0.1 ]; 5.0 15 0.5 ]; 2.0 10 0.2 ]; % load the data % if the independent variable is in column 1 % if the dependent variable is in column 2 % minimum expected parameter values % maximum expected parameter values % initial guess for parameter values

[ p_fit, X2, sigma_p, sigma_y, corr, R_sq, cvg_hst ] = ... lm ( lm_func, p_init, t, y_dat, 1, -0.01, p_min, p_max )

## where the user-supplied function lm_func.m could be, for example,

function y_hat = lm_func(t,p,c) y_hat = p(1) * t .* exp(-t/p(2)) .* cos(2*pi*( p(3)*t - p(4) ));

It is common and desirable to repeat the same experiment two or more times and to estimate a single set of curve-t parameters from all the experiments. In such cases the data le may arranged as follows:
% t-variable 0.50000 0.80000 0.90000 : etc. y (1st experiment) 3.5986 8.1233 12.2342 : etc. y (2nd experiemnt) y (3rd experiemnt) 3.60192 3.58293 8.01231 8.16234 12.29523 12.01823 : : etc. etc.

If your data is arranged as above you may prepare the data for lm.m using the following lines.
my_data = load(my_data_file); t_column = 1; y_columns = [ 2 3 4 ]; y_dat = my_data(:,y_columns); y_dat = y_dat(:); t t t = my_data(:,t_column); = t*ones(1,length(y_columns)); = t(:); % load the data % column of the independent variable % columns of the measured dependent variables % the measured data % a single column vector % the independent variable % a column of t for each column of y % a single column vector

Note that the arguments t and y dat to lm.m may be matrices as long as the dimensions of t match the dimensions of y dat. The columns of t need not be identical.

## Results may be plotted as follows:

Npar = length(p_init); % number of parameters

figure(1); % ------------ plot convergence history of the fit clf subplot(211) plot( [1:length(cvg_hst(:,1))], cvg_hst(:,1:Npar) ); legend(p_1,p_2,p_3,p_4); xlabel(iteration number) ylabel(parameter values) subplot(212) semilogy( [1:length(cvg_hst(:,1))] , [ cvg_hst(:,Npar+1) cvg_hst(:,Npar+2) ]) legend(\chi2,\lambda); xlabel(iteration number) ylabel(\chi2 and \lambda)

figure(2); % ------------ plot data, fit, and confidence interval of the fit clf subplot(211) plot(t,y_dat,o, t,y_fit,-, t,y_fit+ 1.96*sigma_y,-r, t,y_fit-1.96*sigma_y,-r); legend(y_{data},y_{fit},y_{fit}+1.96\sigma_y,y_{fit}-1.96\sigma_y); xlabel(t) ylabel(y(t)) subplot(212) semilogy(t,sigma_y,-r); xlabel(t) ylabel(\sigma_y(t))

figure(3); % ------------ plot histogram of residuals, are they Gaussean? clf hist(y_dat - y_fit) title(histogram of residuals) xlabel(y_{data} - y_{fit}) ylabel(count)

4.4 Numerical Examples The robustness of lm.m is tested in three numerical examples by curve-tting simulated experimental measurements. Noisy experimental measurements y are simulated by adding random measurement noise to the curve-t function evaluated with a set of true parameter values y (t; ptrue ). The random measurement noise is normally distributed with a mean of zero and a standard deviation of 0.20. yi = y (ti ; ptrue ) + N (0, 0.20). (20)

The convergence of the parameters from an erroneous initial guess pinitial to values closer to ptrue is then examined. Each numerical example below has four parameters (n = 4) and one-hundred measurements (m = 100). Each numerical example has a dierent curve-t function y (t; p), a dierent true parameter vector ptrue , and a dierent vector of initial parameters pinitial . For several values of p2 and p4 , the 2 error criterion is calculated and is plotted as a surface over the p2 p4 plane. The bowl-shaped nature of the objective function is clearly evident in each example. The objective function may not appear quadratic in the parameters and the objective function may have multiple minima. The presence of measurement noise does not aect the smoothness of the objective function. The gradient descent method endeavors to move parameter values in a down-hill direction to minimize 2 (p). This often requires small step sizes but is required when the objective function is not quadratic. The Gauss-Newton method approximates the bowl shape as a quadratic and endeavors to move parameter values to the minimum in a small number of steps. This method works well when the parameters are close to their optimal values. The Levenberg-Marquardt method retains the best features of both the gradient-descent method and the Gauss-Newton method. The evolution of the parameter values, the evolution of 2 , and the evolution of from iteration to iteration is plotted for each example. The simulated experimental data, the curve t, and the 95-percent condence interval of the t are plotted, the standard error of the t, and a histogram of the t errors are also plotted. The initial parameter values pinitial , the true parameter values ptrue , the t parameter values pt , the standard error of the t parameters p , and the correlation matrix of the t parameters are tabulated. The true parameter values lie within the condence interval pt 1.96p < ptrue < pt + 1.96p with a condence level of 95 percent.

4.4.1 Example 1 Consider tting the following function to a set of measured data. y (t; p) = p1 exp(t/p2 ) + p3 t exp(t/p4 ) The m-function to be used with lm.m is simply:
function y_hat = lm_func(t,p,c) y_hat = p(1)*exp(-t/p(2)) + p(3)*t.*exp(-t/p(4));

(21)

The true parameter values ptrue , the initial parameter values pinitial , resulting curve-t parameter values pt and standard errors of the t parameters p are shown in Table 1. The R2 t criterion is 98 percent. The standard parameter errors are less than one percent of the parameter values except for the standard error for p2 , which is 1.5 percent of p2 . The parameter correlation matrix is given in Table 2. Parameters p3 and p4 are the most correlated at -96 percent. Parameters p1 and p4 are the least correlated at -35 percent. The bowl-shaped nature of the 2 objective function is shown in Figure 1(a). This shape is nearly quadratic and has a single minimum. The convergence of the parameters and the evolution of 2 and are shown in Figure 1(b). The data points, the curve t, and the curve t condence band are plotted in Figure 1(c). Note that the standard error of the t is smaller near the center of the t domain and is larger at the edges of the domain. A histogram of the dierence between the data values and the curve-t is shown in Figure 1(d). Ideally these curve-t errors should be normally distributed.

## Table 1. Parameter values and standard errors.

pinitial 5.0 2.0 0.2 10.0 ptrue 20.0 10.0 1.0 50.0 pt 19.918 10.159 0.9958 50.136 p 0.150 0.152 0.005 0.209 p /pt (%) 0.75 1.50 0.57 0.41

## Table 2. Parameter correlation matrix.

p1 p2 p3 p4 p1 1.00 -0.74 0.40 -0.35 p2 -0.74 1.00 -0.77 0.71 p3 0.40 -0.77 1.00 -0.96 p4 -0.35 0.71 -0.96 1.00

50 parameter values 40 30 20 10 0 1 10000 2.5 2 and 90 80 100 1 0.01 0.0001 1e-06 1 2 3 4 5 6 iteration number histogram of residuals 20 7 8 70 2 3 4 5 6 iteration number 7 8

p1 p2 p3 p4

4 3.5 log10(2) 3

10

60

p4

50

40

30

20

10

16 18 12 14 8 10 p 2

(a)
19 18 y(t) 17 16 15 14 ydata yfit yfit+1.96y yfit-1.96y

(b)

10

15 count 10 20 30 40 50 t 60 70 80 90 100

0.1

10

y(t)

## 0 0.01 -0.2 10 20 30 40 50 t 60 70 80 90 100 -0.1

(c)

(d)

0 ydata - yfit

0.1

0.2

Figure 1. (a) The sum of the squared errors as a function of p2 and p4 . (b) Top: the convergence
of the parameters with each iteration, (b) Bottom: the reduction in 2 and changes in each iteration. (c) Top: data y, curve-t y (t; pt ), curve-t+error, and curve-t-error; (c) Bottom: standard error of the t, y (t). (d) Histogram of the errors between the data and the t.

4.4.2 Example 2 Consider tting the following function to a set of measured data. y (t; p) = p1 (t/ max(t)) + p2 (t/ max(t))2 + p3 (t/ max(t))3 + p4 (t/ max(t))4 (22)

This function is linear in the parameters and may be t using methods of linear least squares. The m-function to be used with lm.m is simply:
function y_hat = lm_func(t,p,c) mt = max(t); y_hat = p(1)*(t/mt) + p(2)*(t/mt).2 + p(3)*(t/mt).3 + p(4)*(t/mt).4;

The true parameter values ptrue , the initial parameter values pinitial , resulting curve-t parameter values pt and standard errors of the t parameters p are shown in Table 3. The R2 t criterion is 99.9 percent. In this example, the standard parameter errors are larger than in example 1. The standard error for p2 is 12 percent and the standard error of p3 is 17 percent. Note that a very high value of the R2 coecient of determination does not necessarily mean that parameter values have been found with great accuracy. The parameter correlation matrix is given in Table 4. These parameters are highly correlated with one another, meaning that a change in one parameter will almost certainly result in changes in the other parameters. The bowl-shaped nature of the 2 objective function is shown in Figure 2(a). This shape is nearly quadratic and has a single minimum. The correlation of parameters p2 and p4 , for example, is easily seen from this gure. The convergence of the parameters and the evolution of 2 and are shown in Figure 2(b). The parameters converge monotonically to their nal values. The data points, the curve t, and the curve t condence band are plotted in Figure 2(c). Note that the standard error of the t approaches zero at t = 0 and is largest at t = 100. This is because y (0; p) = 0, regardless of the values in p. A histogram of the dierence between the data values and the curve-t is shown in Figure 1(d). Ideally these curve-t errors should be normally distributed, and they appear to be so in this example.

10

## Table 3. Parameter values and standard errors.

pinitial 4.0 -5.0 6.0 10.0 ptrue 20.0 -24.0 30.0 -40.0 pt 19.934 -22.959 27.358 -38.237 p 0.506 2.733 4.597 2.420 p /pt (%) 2.54 11.90 16.80 6.33

## Table 4. Parameter correlation matrix.

p1 p2 p3 p4 p1 1.00 -0.97 0.92 -0.87 p2 -0.97 1.00 -0.99 0.95 p3 0.92 -0.99 1.00 -0.99 p4 -0.87 0.95 -0.99 1.00

parameter values

p1 p2 p3 p4

-30

-40

-50

-60

-70

-45 -40

## -25 -35 -30

-20 -15 p2

-10 -5

100 10 1 0.1 0.01 0.001 0.0001 1e-05 1e-06 1e-07 1 2 3 4 iteration number histogram of residuals 20 5

(a)
5 0 y(t) -5 -10 -15 10 0.1 20 30 40 50 t 60 70 80 90 100 ydata yfit yfit+1.96y yfit-1.96y

(b)

15

count

10

y(t)

5 0.01

## 0 0.001 -0.3 10 20 30 40 50 t 60 70 80 90 100 -0.2 -0.1 ydata - yfit 0 0.1 0.2

(c)

(d)

Figure 2. (a) The sum of the squared errors as a function of p2 and p4 . (b) Top: the convergence
of the parameters with each iteration, (b) Bottom: the reduction in 2 and changes in each iteration. (c) Top: data y, curve-t y (t; pt ), curve-t+error, and curve-t-error; (c) Bottom: standard error of the t, y (t). (d) Histogram of the errors between the data and the t.

11

4.4.3 Example 3 Consider tting the following function to a set of measured data. y (t; p) = p1 exp(t/p2 ) + p3 sin(t/p4 ) (23)

This function is linear in the parameters and may be t using methods of linear least squares. The m-function to be used with lm.m is simply:
function y_hat = lm_func(t,p,c) y_hat = p(1)*exp(-t/p(2)) + p(3)*sin(t/p(4));

The true parameter values ptrue , the initial parameter values pinitial , resulting curve-t parameter values pt and standard errors of the t parameters p are shown in Table 5. The R2 t criterion is 99.8 percent. In this example, the standard parameter errors are all less than one percent. The parameter correlation matrix is given in Table 6. Parameters p4 is not correlated with the other parameters. Parameters p1 and p2 are most correlated at 73 percent. The bowl-shaped nature of the 2 objective function is shown in Figure 3(a). This shape is clearly not quadratic and has multiple minima. In this example, the initial guess for parameter p4 , the period of the oscillatory component, has to be within ten percent of the true value, otherwise the algorithm in lm.m will converge to a very small value of the amplitude of oscillation p3 and an erroneous value for p4 . When such an occurrence arises, the standard errors p of the t parameters p3 and p4 are quite large and the histogram of curve-t errors (Figure 3(d)) is not normally distributed. The convergence of the parameters and the evolution of 2 and are shown in Figure 3(b). The parameters converge monotonically to their nal values. The data points, the curve t, and the curve t condence band are plotted in Figure 3(c). A histogram of the dierence between the data values and the curve-t is shown in Figure 1(d). Ideally these curve-t errors should be normally distributed, and they appear to be so in this example.

12

## Table 5. Parameter values and standard errors.

pinitial 10.0 50.0 6.0 5.6 ptrue 6.0 20.0 1.0 5.0 pt 5.987 20.100 0.978 4.999 p 0.032 0.144 0.010 0.004 p /pt (%) 0.53 0.72 0.98 0.08

## Table 6. Parameter correlation matrix.

p1 p2 p3 p4 p1 1.00 -0.74 -0.28 -0.02 p2 -0.74 1.00 0.18 0.02 p3 -0.28 0.18 1.00 -0.02 p4 -0.02 0.02 -0.02 1.00

## 2.3 2.2 2.1 2 1.9 log10(21.8 ) 1.7 1.6 1.5 9 8 2 and 7 35

30 25 20 15 10 5 0 1 2 3 4 iteration number 5

parameter values

p1 p2 p3 p4

## 100 1 0.01 0.0001 1e-06

p4

10

15

20

25 p2

30

(a)
6 5 4 3 2 1 0 -1 10 0.1 20 30 40 50 t 60 70 ydata yfit yfit+1.96y yfit-1.96y

(b)
20

## 4 iteration number histogram of residuals

y(t)

15

count

80

90

100

10

y(t)

0.01

0 -0.2 10 20 30 40 50 t 60 70 80 90 100

-0.1

0 ydata - yfit

0.1

0.2

0.3

(c)

(d)

Figure 3. (a) The sum of the squared errors as a function of p2 and p4 . (b) Top: the convergence
of the parameters with each iteration, (b) Bottom: the reduction in 2 and changes in each iteration. (c) Top: data y, curve-t y (t; pt ), curve-t+error, and curve-t-error; (c) Bottom: standard error of the t, y (t). (d) Histogram of the errors between the data and the t.

13

4.5 Fitting in Multiple Dimensions The code lm.m can carry out tting in multiple dimensions. For example, the function z (x, y) = (p1 xp2 + (1 p1 )y p2 )1/p2 may be t to data points zi (xi , yi ), (i = 1, , m), using lm.m using an m-le such as
my_data x_dat = y_dat = z_dat = = load(my_data_file); my_data(:,1); my_data(:,2); my_data(:,3); 0.1 2.0 1.0 ]; ]; ]; % % % % load the data if the independent variable x is in column 1 if the independent variable y is in column 2 if the dependent variable z is in column 3

## p_min = [ 0.1 p_max = [ 0.9 p_init = [ 0.5

% minimum expected parameter values % maximum expected parameter values % initial guess for parameter values % x and y are column vectors of independent variables

t = [ x_dat y_dat ];

## with the m-function lm_func2d.m

function z_hat = lm_func2d(t,p) % example function used for nonlinear least squares curve-fitting % to demonstrate the Levenberg-Marquardt function, lm.m, % in two fitting dimensions x_dat = t(:,1); y_dat = t(:,2); z_hat = ( p(1)*x_dat.p(2) + (1-p(1))*y_dat.p(2) ).(1/p(2));

14

5 Remarks
This text and lm.m were written in an attempt to understand and explain methods of nonlinear least squares for curve-tting applications. It is important to remember that the purpose of applying statistical methods for data analysis is primarily to estimate parameter statistics . . . not the parameter values themselves. Reasonable parameter values can often be found using non-statistical minimization algorithms, such as random search methods, the Nelder-Mead simplex method, or simply griding the parameter space and nding the best combination of parameter values. Nonlinear least squares problems can have objective functions with multiple local minima. Fitting algorithms will converge to dierent local minima depending upon values of the initial guess, the measurement noise, and algorithmic parameters. It is perfectly appropriate and good to use the best available estimate of the desired parameters as the initial guess. In the absence of physical insight into a curve-tting problem, a reasonable initial guess may be found by coarsely griding the parameter space and nding the best combination of parameter values. There is no sense in forcing any statistical curve-tting algorithm to work too hard by starting it with a poor initial guess. In most applications, parameters identied from neighboring initial guesses (5%) should converge to similar parameter estimates (0.1%). The t statistics of these converged parameters should be the same, within two or three signicant gures.

References
 A. Bjrck. Numerical methods for least squares problems, SIAM, Philadelphia, 1996. o  K. Levenberg. A Method for the Solution of Certain Non-Linear Problems in Least Squares. The Quarterly of Applied Mathematics, 2: 164-168 (1944).  M.I.A. Lourakis. A brief description of the Levenberg-Marquardt algorithm implemented by levmar, Technical Report. Institute of Computer Science, Foundation for Research and Technology - Hellas, 2005.  K. Madsen, N.B. Nielsen, and O. Tingle. Methods for nonlinear least squares problems. Technical Report. Informatics and Mathematical Modeling, Technical University of Denmark, 2004.  D.W. Marquardt. An algorithm for least-squares estimation of nonlinear parameters. Journal of the Society for Industrial and Applied Mathematics, 11(2):431-441, 1963.  W.H. Press, S.A. Teukosky, W.T. Vetterling, and B.P. Flannery. Numerical Recipes in C, Cambridge University Press, second edition, 1992.

15