Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: Français - Português - 日本語

Please note that the recommended version of Scilab is 6.1.1. This page might be outdated.
See the recommended documentation of this function

Scilab manual >> Polynomials > roots


roots of polynomials

Calling Sequence




polynomial with real or complex coefficients or vector of the polynomial coefficients in decreasing degree order (Matlab compatibility).


x=roots(p) returns in the complex vector x the roots of the polynomial p. For real polynomials of degree <=100 the fast RPOLY algorithm (based on Jenkins-Traub method) is used. In the other cases the roots are computed as the eigenvalues of the associated companion matrix. Use x=roots(p,'e') to force this algorithm in any cases.


A=rand(3,3);roots(poly(A,'x'))    // Evals by characteristic polynomial


  • Serge Steer (INRIA)


The RPOLY algorithm is described in "Algorithm 493: Zeros of a Real Polynomial", ACM TOMS Volume 1, Issue 2 (June 1975), pp. 178-189

Jenkins, M. A. and Traub, J. F. (1970), A Three-Stage Algorithm for Real Polynomials Using Quadratic Iteration, SIAM J. Numer. Anal., 7(1970), 545-566.

Jenkins, M. A. and Traub, J. F. (1970), Principles for Testing Polynomial Zerofinding Programs. ACM TOMS 1, 1 (March 1975), pp. 26-34

Used Functions

The rpoly.f source codes can be found in the directory SCI/modules/polynomials/src/fortran of a Scilab source distribution. In the case where the companion matrix is used, the eigenvalue computation is perfomed using DGEEV and ZGEEV LAPACK codes.

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jan 26 16:23:41 CET 2011