JSPM

durand-kerner

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1405
  • Score
    100M100P100Q119416F
  • License MIT

Finds multiple roots of polynomials using Weierstrass' method

Package Exports

  • durand-kerner

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (durand-kerner) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

durand-kerner

Finds all the roots of a polynomial by Weierstrass' method (or known in Abramowitz&Stegun as the Durand-Kerner method). This is basically a generalization of Newton's method that works for multiple roots.

build status

Example

To find the roots for 1 + 1*x - 1*x^2:

var findRoots = require("durand-kerner")

var roots = findRoots([1, 1, -1])

// 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")
}

Output

 1.618033988749895+0i
-0.6180339887498949+0i

Install

Install using npm:

npm install durand-kerner

API

require("durand-kerner")(r_coeff[, i_coeff, n_iters, tolerance, initial])

Finds the roots of a polynomial whose real coefficients are given by r_coeff and imaginary coefficients by i_coeff.

  • r_coeff - the real part of the polynomial's coefficients, stored in an array
  • i_coeff - the imaginary part of the polynomial's coefficients (default all 0)
  • n_iters - Maximum number of iterations to run before bailout. Default is 100 * n * n
  • tolerance - Stopping threshold. Default is 1e-6
  • initial - Initial guess for solution vector (must have the same length as r_coeff). This also gets the solution (optional)

Returns An array of roots.

License

(c) 2013 Mikola Lysenko. MIT License