Abstract
In this article we will discuss Laguerre's algorithm for finding zeros of polynomial equations of degree n in the complex plane. We will derive a particular case and analyze convergence for simple roots. We will discuss and verify some examples using the implemented algorithm, showing some of its virtues and limitations.
1. Introduction
The problem of finding zeros of a polynomial of degree n has substantially influenced the development of mathematics through the centuries and is still quite important in practical and theoretical applications.
Currently, the study of polynomials of the form
does not play a central role in mathematics or applied mathematics. In particular, many of the problems that arise are linearized and solved using linear algebra tools and fast Fourier transforms, which may involve roots of polynomial equations.
However, equations of this type are still of interest in some areas of applied mathematics and algorithms continue to be developed and studied.
As was proven in 1827 by Abel, for polynomials of degree equal to or greater than 4 it is not possible to find a formula to obtain the exact solution, and therefore, any problem that requires the solution of such a polynomial requires us to use numerical methods.
In the present article we discuss Laguerre's method in the complex plane and an implementation of it with some different types of polynomials.
2. Theorical Results
2.1 Initial Definitions and Theorems
Definition 1: We say that an algorithm has convergence order
at root
if,
Definition 2: A numerical method is said to be global if it does not require an initial value sufficiently close to the zero of the polynomial to converge, otherwise we say it is local.
Theorem 1: Let p(z) be a polynomial of degree n, n > 1, with complex coefficients. Then p(z) has n complex roots.
Theorem 2: Let p(z) be a normalized polynomial with degree m > 4 and let
be the set of roots. For
with
or
the sequence
defined by:
with
and
1.
where
and
otherwise, with
If there exists a simple root
such that
then
converges to the limit p and
with
for all
If all roots of p(z) are simple, then in 2.,
can be replaced by the lower bound
with coefficients
of the polynomial
These coefficients can be calculated using only coefficients of p(z). All roots of p(z) are simple if, and only if,
Theorem 3: Let
The proof is immediate, simply rewriting the polynomial.
Theorem 4 (Horner's Algorithm for Polynomial Division): Let
Then, if
To prove this result, simply equate the coefficients on both sides.
2.2 Laguerre's Method
Let
By Theorem 1, we have
therefore,
and then,
We define equations (7) and (8) as G and H, respectively, we have
where
To proceed, we will assume that the sought root
Thus,
And therefore,
Such that we take
Since the factor inside the root can be negative, a can be a complex number.
If the root of the polynomial is simple, it is proven that the method converges cubically. If the root is multiple, we have linear convergence.
Theorem 2 determines for each simple root a disk centered on it, such that for all initial values in this neighborhood the convergence of the root is guaranteed.
Thus, this method offers the possibility of convergence to a complex root and if the polynomial has only real roots, it is guaranteed that the method converges independently of the given initial point, therefore convergence in this case is global.
3. Algorithm
The algorithm was developed in C language and designed to run on compilers like GCC that support the C99 and C11 standards. In these standards, the complex.h library is implemented with functions for working with complex numbers in a simple and elegant way.
Using some of the results from the section above, the necessary libraries were built for calculating the value of the polynomial at a point, polynomial division, and the method's algorithm.
The evalpoly.h and deflation.h libraries were developed from Theorems 3 and 4, respectively, just as the main algorithm, laguerre.h, was made according to what was developed in the second part of the previous section.
Rounding errors occur mainly when the deflate (deflation.h) and evalpoly (evalpoly.h) functions are called. Therefore, the calculations were done with long double to try to minimize rounding errors.
4. Results and Discussion
Several tests were performed, among which those listed in the table below.
For low-degree polynomials, we note that the precision of the solution is remarkable, allowing, for example, to calculate the square root approximation with up to 13 decimal places of precision.
We can note, according to the results obtained, that for roots with multiplicity less than or equal to 10, the algorithm behaves exceptionally well, since it was not developed with this type of problem in mind. From higher degrees onwards, we begin to notice problems such as divergence of the polynomial solution, which could not be circumvented by increasing the maximum number of iterations (since, as this method converges linearly for multiple roots, we expect to need a large number of iterations for this type of problem).
For polynomials with simple roots and slightly higher degrees
We also note that as the degree of the polynomial increases considerably, the precision drops drastically.
Test Results Table
5. Conclusion
For a first implementation, the algorithm presents good performance, but with more time and in a longer project it would be possible to considerably improve its performance, since in its current state it could not be used in a production environment to solve high-performance problems (such as in software like Mathematica or MATLAB).
The complete project can be found here
References
Pan Y., Victor, Solving a Polynomial Equation: Some History and Recent Progress, SIAM Review, Vol. 39, No. 2 (Jun., 1997), pp. 187-220.
Ahlfors, Lars, Complex Analysis, McGraw-Hill, 1979.
Moller, Herbert, Convergence and visualization of Laguerre's rootfinding algorithm, January 9, 2015.
Acton S. Forman, Numerical Methods that work, The Mathematical Association of America, 1990.
Kiusalaas, Jaan, Numerical Methods in Engineering with Python 3, Cambridge, 2013.

Top comments (0)