Skip to the content.

Improvements to nls()

This page summarizes the efforts made to improve the functioning of the R nls() function for nonlinear least squares estimation during the Google Summer of Code program for 2021.

Aim of the Project

Our aim is to focus attention on actions that can be realized in future versions of the installable R system. Given the very wide range of applications and features of the nls() function, however, it is almost certain that only some possibilities will be addressed in the project.

Project Title

Improvements to nls()

Project Organization

The R Project for Statistical Computing

Project Mentors

Project Student

Project Outcomes

Final Reports:

  1. RefactoringNLS
  2. nlsCompareArticle

Other (informal) Reports:

  1. PkgFromRbase: explanation of the construction of the nlspkg from the code in R-base.
  2. DerivsNLS: document to explain different ways in which Jacobian information is supplied to nonlinear least squares computation in R.
  3. MachineSummary: informal investigation of ways to report the characteristics and identity of machines running tests.
  4. VarietyInNonlinearLeastSquaresCodes: review of the different algorithms and the many choices in their implementation for nonlinear least squares.
  5. ImproveNLS.bib: consolidated BibTex bibliography for all documents in this project, possibly with wider application to nonlinear least squares in general
  6. WorkingDocument4ImproveNLS: project diary

Codes (and documentation):

  1. nlsj: A refactoring of the nls() functionality
  2. nlsCompare: an R package to compare existing and new packages’ functions for nonlinear least squares
  3. nlspkg: a packaged version of the nls() code from R-base.
  4. nlsalt: attempt to mirror nls() behaviour entirely in R
  5. nls-changes-for-small-residuals-in-nls-R-4.0.2.zip: collected material for the fix by JN to the relative offset convergence criterion failure when there are small residuals in problems sent to nls().
  6. nlsralt: a modified version of Nash and Murdoch package nlsr with improvements discovered as a result of this project.

Mentions

We would like to thank -