A couple of weeks ago there was a question regarding apparent convergence in nls when using the SSfol selfStart model for fitting a first-order pharmacokinetic model. I can't manage to find the original message either in my archive or in the list archives but the data were time conc dose 0.50 5.40 1 0.75 11.10 1 1.00 8.40 1 1.25 13.80 1 1.50 15.50 1 1.75 18.00 1 2.00 17.00 1 2.50 13.90 1 3.00 11.20 1 3.50 9.90 1 4.00 4.70 1 5.00 5.00 1 6.00 1.90 1 7.00 1.90 1 9.00 1.10 1 12.00 0.95 1 14.00 0.46 1 and the attempted fit looked like > nls(conc ~ SSfol(dose, time, lKe, lKa, lCl), testdat, trace = 1) nls(conc ~ SSfol(dose, time, lKe, lKa, lCl), testdat, trace = 1) 99.15824 : -1.2061792 0.1296156 -4.3020997 86.07567 : -0.7053265 -0.3873204 -4.1278009 85.19743 : -0.5548499 -0.5333776 -4.1173627 Error in nls(conc ~ SSfol(dose, time, lKe, lKa, lCl), testdat, trace = 1) : step factor 0.000488281 reduced below `minFactor' of 0.000976562 If one allows much smaller step factors you can get more iterations but nls still doesn't converge. It took me a long time to find out why. The lack of convergence is related to the form of the SSfol model. When the first two parameters (lKe and lKa) are equal the model degenerates to a different analytic form. If you were to express the corresponding system of ordinary differential equations in the matrix form (as described in Appendix 5 of Bates and Watts (1988)), it would be a Schur triangular block and the special techniques for nondiagonalizable matrices, described in section A5.2 of that appendix, must be used. The clue here is that the first two parameter values are getting very close to each other and this shows up as a singularity. The fitted model is determined by two parameters, not three.