Skip to main content

Non-linear Least Squares with Inequality Constraints

Project description

NLSIC stands for “Non-linear Least Squares with Inequality Constraints”. This algorithm was first published in Sokol et al. (2012) <doi:10.1093/bioinformatics/btr716>. His advantage is in combination of the following features:

  • Jacobi matrix J is not squared, i.e. J^tJ is not calculated, thus preserving the solution from condition number degradation. Instead, QR decomposition is used;

  • taking into account inequality constraints is based on a well known NNLS algorithm by Lawson and Hanson;

  • convergence in non-linear iterations is globalized by back-tracking method. I.e. with enough iterations, the process will reach a convergence point but no guaranty is given that it will be a global minimum;

  • if J is rank deficient, a least norm (also known as “minimum norm”) increment is used. To find such increment exactly (not just a regularized one) in presence of inequality constraints is not a trivial task. We use our own algorithm implemented in lsi_ln(...) function;

  • if an initial approximation for a solution vector is outside of feasibility domain (FD) defined by inequality constraints then it is first projected on the FD (cf. ldp(...)) and the non-linear iterations start afterward.

This python implementation is an adaptation of the R one which is distributed with influx_si software. The original R version is in advance on this one. So users desiring to catch with the latest developments are invited to switch to the R version.

The main function to call is nlsic(...).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nlsic-1.3.4.tar.gz (30.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page