Finds roots of polynomials by solving the eigenvalues of the companion matrix

npm install companion-roots
11 downloads in the last month


Finds all roots of a polynomial by computing the eigenvalues of its companion matrix. In other words, it factorizes the polynomial over the complex numbers.


Install using npm:

npm install companion-roots
var findRoots = require("companion-roots")

var roots = findRoots([1, 1, -1])  // Finds roots for 1 + 1*x - 1*x^2

// Now:
//      roots[0] = real part of roots
//      roots[1] = imaginary part of roots

for(var i=0; i<roots.length; ++i) {
  console.log(roots[0][i] + "+" + roots[1][i] + "i")

// Prints:
//  1.618033988749895+0i
//  -0.6180339887498949+0i

require("companion-roots")(real_coeffs[, imag_coeffs])

Computes the roots of a polynomial

  • real_coeffs the real coefficients of the polynomial arranged in order of increasing degree
  • imag_coeffs (optional) the imaginary coefficients of the polynomial. If not specified, assumed to be zero

Returns: A pair of vectors representing the real and imaginary parts of the roots of the polynomial

Time Complexity: O(real_coeffs.length^3)


(c) 2013 Mikola Lysenko. MIT License

npm loves you