Bernoulli's method
Adapted from Wikipedia · Discoverer experience
Bernoulli's method is a special way to find answers to certain math problems, named after Daniel Bernoulli. It helps find the biggest answer — or "root" — of a special kind of math expression called a univariate polynomial. This method works best when there is only one answer that is larger than all the others.
The method uses a sequence of numbers that follow a pattern, called a linear recurrence. By looking at the relationship between these numbers, we can get closer and closer to the answer we are looking for.
Although Bernoulli's method is not the fastest because it gets closer to the answer slowly, it is still important. It was one of the first ways people used to solve these kinds of problems, and it shows a nice link between patterns of numbers and solving equations. Sometimes, it can help give a good starting point for even better methods, like Newton's method, to find the exact answer.
History
Bernoulli's method was first introduced by the Swiss-French mathematician and physicist Daniel Bernoulli in 1728. He noticed a pattern in series created from polynomial coefficients that related to a root of the polynomial, though he did not explain why it worked. Later, the mathematician Leonhard Euler explained why the method works in 1748. Since then, Bernoulli's method has influenced the development of newer algorithms.
The method
Bernoulli's method is a way to find a special solution, or "root," of a math expression called a polynomial. This method was named after Daniel Bernoulli. It works when there is one root that is larger than all the others in size.
To use this method, you start with some basic numbers and then follow a special rule to create a list of new numbers. By looking at how these new numbers change from one to the next, you can find the largest root of the polynomial. This works whether the root is a simple number or a more complicated one with imaginary parts.
Derivation of the method
The method looks at a special kind of math problem involving sequences. These sequences follow rules based on polynomials, which are expressions made from adding and multiplying numbers and powers of a variable.
When we look at how each number in the sequence relates to the next one, we find a pattern. If one number in the pattern is bigger than all the others, the relationship between successive numbers will eventually match that biggest number. This helps us find important solutions to the original problem.
Extensions
Bernoulli's method helps find a special answer in math problems, but it only works in certain cases. There are ways to change the method to work better. For example, if you want to find a different answer, you can use a special version of the problem and then flip the answer around.
Some smart ideas were added to make the method faster or to find all the answers at once. Even though these changes can sometimes be tricky, they are useful for getting good starting points for other math tools that find answers.
Example
Bernoulli's method is a way to find important solutions to math problems with equations. In this example, we use a simple equation to show how the method works.
The equation looks like this: ( z^2 - z - 1 = 0 ). We start with two numbers, 0 and 1, and follow a special rule to create a new sequence of numbers. Each new number is the sum of the two numbers before it.
As we keep doing this, the numbers get closer and closer to a special value: ( \frac{1 + \sqrt{5}}{2} ), which is about 1.618. This number is known as the Golden ratio. It is the biggest solution to our equation.
Even if we start with different numbers, we still end up at the same special value. This shows that Bernoulli's method is a reliable way to find important solutions in math.
| n | xn | qn | |qn - φ| | order |
|---|---|---|---|---|
| -1 | 0 | − | − | − |
| 0 | 1 | 1 | 0.618033989 | − |
| 1 | 1 | 2 | 0.381966011 | 2.44042009 |
| 2 | 2 | 1.5 | 0.118033989 | 0.766784227 |
| 3 | 3 | 1.666 | 0.047966011 | 1.086347793 |
| 4 | 5 | 1.6 | 0.018033989 | 0.972379866 |
| 5 | 8 | 1.625 | 0.006966011 | 1.016299341 |
| 6 | 13 | 1.61538461538 | 0.002649373 | 0.993860956 |
| 7 | 21 | 1.61904761905 | 0.00101363 | 1.002357448 |
| 8 | 34 | 1.61764705882 | 0.00038693 | 0.999101399 |
| 9 | 55 | 1.61818181818 | 0.000147829 | 1.000343479 |
Comparison with other methods
Bernoulli's method has some unique features when compared to other ways of finding the roots of equations.
Advantages
- No initial guess needed: Methods like Newton's method, Secant method, and Halley's method need a starting value to begin. Bernoulli's method only needs the numbers that make up the equation, so there’s no need to guess where to start.
- No need for special math rules: Some methods need to use rules about how numbers change, but Bernoulli's method does not need this extra step.
- Finds the biggest root naturally: Usually finding very large roots can be tricky, but Bernoulli's method can handle this well.
Limitations
- Works slowly: Some people say Bernoulli's method takes a long time to get the right answer, while others suggest using it along with faster methods to improve the speed.
- Finds one root at a time: Bernoulli's method finds one answer at a time, unlike some other methods that can find many answers together. Special tricks can help with this.
- Can struggle with certain roots: When there are several very similar answers, the method can slow down, but there are ways to make it work better.
| Method | Convergence Order | Initial Guess | Multiple Roots | Uses Derivatives |
|---|---|---|---|---|
| Bernoulli's method | Linear (1st) | No | No (largest) | No |
| Secant method | Superlinear (1.618) | Yes (2 points) | No | No |
| Bairstow's method | Quadratic (2nd) | Yes (quadratic) | Yes (pairs) | No |
| Durand–Kerner method | Quadratic (2nd) | Yes (d points) | Yes (d roots) | No |
| Newton's method | Quadratic (2nd) | Yes (1 point) | No | Yes (1st) |
| Halley's method | Cubic (3rd) | Yes (1 point) | No | Yes (1st & 2nd) |
Modern applications
Bernoulli's method is still useful today in computing. It helps find starting points for other root-finding tools and can be adjusted to work in more advanced math areas. Some improved versions of Bernoulli's method can find complex roots and handle multiple roots better.
The method is related to another technique called the Power method when used with special matrices. New technologies have allowed Bernoulli's method to run in parallel, making it faster. It has also been expanded to find important points in special math functions and to improve other calculation methods. The method is included in some free math tool libraries and was once used on early computers, though other methods like Newton's method are often faster.
Code
Bernoulli's method can be used in the Python programming language to find a special solution of a math problem called a polynomial.
Here is a simple way to write this method in Python:
def bernoulli_method(c, eps=1e-8, max_iter=60):
"""
Bernoulli's method for finding the dominant root of a polynomial.
Parameters
----------
c : list
List of polynomial coefficients in descending order of powers.
For example, if p(x) = x^2 - x - 1, c = [1.0, -1.0, -1.0]
eps : float, optional
Convergence tolerance. Default is 1e-8.
max_iter : int, optional
Maximum number of iterations. Default is 60.
Returns
-------
float or complex
The dominant root of the polynomial if found, otherwise float('nan').
Examples
--------
>>> bernoulli_method([1.0, -1.0, -1.0]) # Golden ratio example
1.6180339901755971
>>> bernoulli_method([1.0, -3.0, 2.0]) # x^2 - 3x + 2 = (x - 2)(x - 1)
2.0000000074505806
"""
n = len(c)
x = [0.0] * (n - 2) + [1.0] # Initialize with zeros and a 1.0
q = []
for i in range(n - 1, max_iter + n):
# Apply the recurrence relation: x_n = -(a_1*x_{n-1} + ... + a_d*x_{n-d})/a_0
x.append(-sum(c[k] * x[-k + i] for k in range(1, n)) / c)
q.append(x[-1] / x[-2]) # Quotient of two successive x terms q_n = x_{n+1} / x_n
# Check for convergence after two quotient values
if len(q) >= 2 and abs(q[-1] - q[-2]) <= eps:
return q[-1] # Return the last computed quotient
return float("nan") # No convergence within max_iter
To make this method work faster, you can adjust the starting numbers at the beginning. This small change does not change how the method finds the answer. For even faster results, you can use a special trick called Aitken's delta-squared process.
Related articles
This article is a child-friendly adaptation of the Wikipedia article on Bernoulli's method, available under CC BY-SA 4.0.
Images from Wikimedia Commons. Tap any image to view credits and license.
Safekipedia