Exemplo n.º 1
0
function solve(m, v) {
  if(v.length !== m.length) {
    return null
  }
  var decomp = lu(m)
  if(!decomp) {
    return null
  }

  var n = m.length

  var Y = new Array(n)
  for(var j=0; j<n; j++) {
    var c = rat(0)
    for(var i=0; i<j; i++) {
        c = add(c, mul(L[i][j], Y[i]))
    }
    Y[j] = div(sub(v[j], c), L[j][j])
  }

  var X = new Array(n)
  for(var j=n-1; j>=0; j--) {
      var c = rat(0)
      for (var i=n-1; i>j; i--) {
          c = add(c, mul(U[i][j], X[i]));
      }
      X[j] = sub(Y[j], c)
  }

  return X
}
Exemplo n.º 2
0
function det(m) {
  var U = lu(m)
  if(!U) {
    return 0
  }
  U = U[0]
  var d = rat(1)
  for(var i=0; i<U.length; ++i) {
    d = mul(d, U[i][i])
  }
  return d
}