Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I've been using NSolve to find roots and now I've been wondering what underlying algorithm mathematica uses. It's probabaly similiar to FindRoot so is it the Newton-Raphson method?
In class we've been told that it probably is a mix of the Newton-Raphson and the bisection methods.

share|improve this question
it must be documented somewhere here wolfram.com/learningcenter/tutorialcollection specifically here reference.wolfram.com/mathematica/tutorial/NDSolveOverview.html and most probably there reference.wolfram.com/mathematica/tutorial/… –  chris May 1 '14 at 10:01
For sparse linear systems, Solve and NSolve use several efficient numerical methods, mostly based on Gauss factoring with Markowitz products (approximately 250 pages of code). For systems of algebraic equations, NSolve computes a numerical Gröbner basis using an efficient monomial ordering, then uses eigensystem methods to extract numerical roots. See also Numerical Root Finding and Numerical Equation Solving. –  Artes May 1 '14 at 11:05
For univariate inputs NSolve calls the function NRoots. That in turn has a Method option. From the documentation for NRoots: Possible settings for the Method option include: "Aberth", "CompanionMatrix", and "JenkinsTraub". The methods mentioned in the post are good for finding an individual root (not necessarily of a polynomial) but not really meant for finding all polynomial roots. And bisection is only for real roots. –  Daniel Lichtblau May 1 '14 at 14:21

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.