1.0.0 • Published 10 years ago

robust-linear-solve v1.0.0

Weekly downloads
99,621
License
MIT
Repository
github
Last release
10 years ago

robust-linear-solve

An exact linear solver for low dimensional systems.

Example

var linSolve = require("robust-linear-solve")

var A = [ [1, 2, 3],
          [3, 2, 1],
          [0, 0, 1] ]

var b = [1, 2, 3]

console.log(linSolve(A, b))

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 a n-by-n square matrix, encoded as an array of arrays
  • b is an n dimensional vector encoded as a length n 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