robust-linear-solve
An exact linear solver for low dimensional systems.
Example
var linSolve = var A = 1 2 3 3 2 1 0 0 1 var b = 1 2 3 console
Output:
-14 23 -12 -4
Install
npm install robust-linear-solve
API
require("robust-linear-solve")(A, b)
Finds the exact solution to a linear system, Ax = b
, using Cramer's rule.
A
is an
-by-n
square matrix, encoded as an array of arraysb
is ann
dimensional vector encoded as a lengthn
array
Returns A projective n+1
dimensional vector of non-overlapping increasing sequences representing the exact solution to the system. That is to say, if x
is the returned solution then in psuedocode we have the following constraint:
A [ x[0], x[1], ... , x[n-1] ] = b * x[n]
Or in other words, the solution is given by the quotient:
[ x[0] / x[n], x[1] / x[n], .... , x[n-1] / x[n] ]
If the system is not solvable, then the last coefficient, x[n]
will be 0
.
Note For up to n=5
, you can avoid the extra method look up by calling linSolve[n]
directly.
Credits
(c) 2014 Mikola Lysenko. MIT License