ARLS: Automatically Regularized Linear System Solver (Revised)
ARLS is intended for use in solving linear systems, Ax=b, which other solvers
may not be able to handle. Ill-conditioning is the usual reason for people to seek
alternative solvers such as this. ARLS also has a rich set of constraints.
All these solvers apply to any shape of the matrix, A. That is, the
system can have more rows than columns (over-determined), or the same number
of rows and columns (square), or fewer rows than columns (under-determined).
And the matix A can be full rank, or have near zero singular values,
or exactly zero singular values of any number.
Please see the in-code comments for details of calls and returns,
including example applications for each routine.
Also please see the code itself for version history.
USAGE
Our primary solver is:
x = arls(A, b)
If you need to solve many systems with the same matrix, A, but different b vectors, use:
x = arlsusv(b, U, S, Vt)
where U, S, and Vt are the singular value decomposition of A, from:
U, S, Vt = np.linalg.svd(A, full_matrices=False)
If you need to add constraint equations which must be satisfied exactly
(such as "the sum of the solution elements must be 100.0")
then put those equation in a separate system, Ex == f and call:
x = arlseq(A, b, E, f)
If you need to add inequality constraints, such as "x1 + x2 >= 1.0" then
put those equations in a separate system, Gx >= h and call:
x = arlsgt(A, b, G, h)
For "<=" constraints you need to multiply both sides by -1.0 to convert
the constraint to a ">=" constraint.
If you need both equality and inequality constraints, use
x =arlsall(A, b, E, f, G, h)
While you can require many different types of constraints using the above,
we offer three special cases routines which are more efficient and robust
and precise than using general constraints above:
If you know the solution should be non-negative, use:
x = arlsnn(A, b)
If you know the solution should be non-decreasing ("rising") then use:
x = arlsrise(A, b)
If you know the solution should be non-increasing ("falling") then use:
x = arlsfall(A, b)
Metadata
Release files for arls 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arls-2.1.0.tar.gz | 21.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arls-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.2 kB
Release files / arls-2.1.0.tar.gz
| Download URL | arls-2.1.0.tar.gz |
|---|---|
| Size | 21.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b489f05d627516675e386851c0109e74ffb44a136d4267cf1cdfece61f76c12d
|
|
BLAKE2b-256 checksum How to use checksums |
336e6e9f2c9ca88118ab820673ff3e3792267bdcbc6911d54d0b65aaf2db8874
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|
Release files / arls-2.1.0-py3-none-any.whl
| Download URL | arls-2.1.0-py3-none-any.whl |
|---|---|
| Size | 22.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b374d56f98714db881e28e7433c4b0c09d8c862cc81ca4882670d350b09cfb61
|
|
BLAKE2b-256 checksum How to use checksums |
71ba51327f25308d5061c6ffbdf71f575b906d3dc5aea7676dfcdbdcb11d17c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|