Bisection method and multiple roots

In summary: You can use the intermediate value theorem to guarantee that the number of roots does not change.In summary, the bisection method can be used to find all real-valued roots of a polynomial, but it requires finding two points with opposite function values and may not work for polynomials with repeated roots. Utilizing other techniques such as finding intervals using Samuelson's inequality and using Sturm's sequence can make the bisection method more efficient for finding multiple roots.
  • #1
nikolafmf
114
0
Hello,

I have a polynomial of order n and I want to find all it's roots with bisection method. Is it possible? I already wrote an algorithm to find a root and it's works nice for finding one of it's roots, but what about others?


Nikola
 
Mathematics news on Phys.org
  • #2
nikolafmf said:
I have a polynomial of order n and I want to find all it's roots with bisection method. Is it possible? I already wrote an algorithm to find a root and it's works nice for finding one of it's roots, but what about others?

The method only finds real-valued roots. It does not find complex-valued roots. It also requires that you first find two points where the function value has opposite signs.

However, off the top of my head, I think that you can exploit the method to find all real-valued roots. Start by recursively finding all roots of the first derivative. Those are the candidates for local extrema of the polynomial in question. Between these points the polynomial will either be strictly increasing or strictly decreasing.

Say you start with a polynomial of degree n. There are at most n-1 zeroes of the first derivitive. If you sort them in order, they divide the real number line into at most n-2 open intervals plus one open-ended interval on the right and one on the left.

Within each of these intervals there can be at most one real root of the polynomial. It is straightforward to determine whether or not a root exists in each interval. If a root exists, it is straightforward to find function values of opposite sign. That will then provide a starting point to allow the bisection method to find the root.
 
  • Like
Likes 1 person
  • #3
I suppose you are looking for real roots (not complex roots) since you want to use the bisection method.

You can find an interval containing all the real roots using http://en.wikipedia.org/wiki/Samuelson's_inequality

You can use http://en.wikipedia.org/wiki/Descartes'_rule_of_signs to find the number of real roots, and http://en.wikipedia.org/wiki/Sturm's_theorem to find intervals that each contain one root.

Note, the bisection method might not work if the polynomial has repeated roots. For example, try to find the roots of ##x^2 - 2x + 1 = 0##.
 
  • Like
Likes 1 person
  • #4
http://en.wikipedia.org/wiki/Sturm's_theorem

I had found that, using Sturm's sequence (above), you can get intervals for all real roots of polynomials. Personal note: many years ago I implemented the procedure and it worked well on polynomials of eighth degree using double precision arithmetic.
 
  • #5
mathman said:
http://en.wikipedia.org/wiki/Sturm's_theorem

Personal note: many years ago I implemented the procedure and it worked well on polynomials of eighth degree using double precision arithmetic.

The general concept of a Sturm sequence has other uses in numerical analysis. For example it can be used to count the number of eigenvalues of a matrix less than a given value. (Of course you can relate that theoretically to counting the roots of the characteristic polynomial, but you don't want to find the polynomial explicitly for a matrix of size 100,000 x 100,000!)

Finding eigenvalues using only Sturm sequences and interval bisection would not be very efficient for large matrices, but it's a valuable check that faster but possibly less reliable numerical methods have found all the eigenvalues in an interval.

It is efficient if you can first reduce the matrix to a special form, e.g. tridiagonal. That type of method was the state of the art back in the 1960s and 70s, for matrices of order up to about 500 (or 1000 if you got lucky).
 
  • #6
AlephZero said:
Note, the bisection method might not work if the polynomial has repeated roots. For example, try to find the roots of ##x^2 - 2x + 1 = 0##.
Many things can go wrong. One thing to do is find the roots of the derivative.
 
  • #7
lurflurf said:
Many things can go wrong. One thing to do is find the roots of the derivative.

Using Sturm sequence method, you will find an interval containing 2 real roots (although, the numerics may give you 0 rather than 2). The interval can be repeatably shrunk.
 

Related to Bisection method and multiple roots

What is the bisection method?

The bisection method is a numerical algorithm used to find the root of a function. It works by repeatedly dividing an interval in half and checking which half the root lies in, until a desired level of accuracy is achieved.

How does the bisection method work?

The bisection method works by first identifying an interval in which the root of the function lies. Then, the interval is divided in half and the root is determined to be in either the left or right half. This process is repeated until the desired level of accuracy is achieved.

What is the difference between single and multiple roots?

In the context of the bisection method, a single root refers to a function that has only one solution, while multiple roots refer to a function that has more than one solution. The bisection method can be used to find both single and multiple roots.

What are some advantages of using the bisection method?

The bisection method is a simple and reliable method for finding roots of a function. It is guaranteed to converge to a solution as long as the function is continuous and the initial interval contains a root. It is also easy to implement and does not require derivatives of the function.

What are some limitations of the bisection method?

The bisection method may take longer to converge compared to other numerical methods, especially if the initial interval is large. It also does not work if the function has multiple roots within the same interval. Additionally, the bisection method does not provide information about the location of the root, only its approximation.

Similar threads

Replies
1
Views
9K
Replies
16
Views
2K
Replies
8
Views
2K
Replies
4
Views
922
  • General Math
Replies
9
Views
1K
  • General Math
Replies
5
Views
882
Replies
2
Views
765
  • General Math
Replies
16
Views
3K
Replies
5
Views
3K
Replies
5
Views
1K
Back
Top