Nonlinear Fitting Algorithm