Newton's method
|
In numerical analysis, Newton's method (or the Newton-Raphson method) is an efficient algorithm for finding approximations to the zeros (or roots) of a real-valued function. As such, it is an example of a root-finding algorithm. It can also be used to find a minimum or maximum of such a function, by finding a zero in the function's first derivative, see Newton's method as an optimization algorithm.
Contents |
Description of the method
The idea of the method is as follows: one starts with a value which is reasonably close to the true zero, then replaces the function by its tangent (which can be computed using the tools of calculus) and computes the zero of this tangent (which is easily done with elementary algebra). This zero of the tangent will typically be a better approximation to the function's zero, and the method can be iterated.
Suppose f : [a, b] -> R is a differentiable function defined on the interval [a, b] with values in the real numbers R. We start with an arbitrary value x0 (the closer to the zero the better) and then define for each natural number n:
- <math>x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}.<math>
Here, f ' denotes the derivative of the function f.
One can prove that, if f ' is continuous, and if the unknown zero x is isolated, then there exists a neighborhood of x such that for all starting values x0 in that neighborhood, the sequence {xn} will converge towards x. Furthermore, if f '(x) ≠ 0, then the convergence is quadratic, which intuitively means that the number of correct digits roughly doubles in every step.
- Missing image
Newton_iteration.png
alt Illustration of Newton's method
- Missing image
An illustration of Newton's method. We see that <math>x_{n+1}<math> is a better guess than <math>x_n<math> for the zero <math>x<math> of the function f.
Example
Consider the problem of finding the positive number x with cos(x) = x3. We can rephrase that as finding the zero of f(x) = cos(x) - x3. We have f '(x) = -sin(x) - 3x2. Since cos(x) ≤ 1 for all x and x3 > 1 for x>1, we know that our zero lies between 0 and 1. We try a starting value of x0 = 0.5.
- <math>\begin{matrix}
x_1 & = & x_0 - \frac{f(x_0)}{f'(x_0)} & = & 0.5 - \frac{\cos(0.5) - 0.5^3}{-\sin(0.5) - 3 \times 0.5^2} & = & 1.112141637097 \\ x_2 & = & x_1 - \frac{f(x_1)}{f'(x_1)} & & \vdots & = & \underline{0}.909672693736 \\ x_3 & & \vdots & & \vdots & = & \underline{0.86}7263818209 \\ x_4 & & \vdots & & \vdots & = & \underline{0.86547}7135298 \\ x_5 & & \vdots & & \vdots & = & \underline{0.8654740331}11 \\ x_6 & & \vdots & & \vdots & = & \underline{0.865474033102}
\end{matrix} <math>
The correct digits are underlined in the above example. In particular, all digits of x6 are correct. We see that the number of correct digits after the decimal point increases from 2 (for x3) to 5 and 10, illustrating the quadratic convergence.
Consider the following example in pseudocode.
function newtonIterationFunction(x) { return x - (cos(x) - x^3) / (-sin(x) - 3*x^2) } var x := 0.5 for i from 0 to 99 { print "Iteration: " + i print "Guess: " + x xold := x x := NewtonIterationFnct(x) if x = xold { print "Solution found!" break } }
Here is the same using a calculator.
<math>\begin{matrix} \mbox{What to type} & & & \\ 0.5\;\mbox{(enter)} & = & x_0 & = & 0.5 \\ Ans - \frac{\cos (Ans) - Ans^3}{-\sin (Ans) - 3 * Ans^2}\;\mbox{(enter)} & = & x_1 & = & 1.1121416371 \\ \mbox{(enter)} & = & x_2 & = & 0.909672693736 \\ \mbox{(enter)} & = & x_3 & = & 0.867263818209 \\ \vdots & & \vdots & & \vdots \end{matrix} <math>
History
Newton's method was described by Isaac Newton in De analysi per aequationes numero terminorum infinitas (written in 1669, published in 1711 by William Jones) and in De metodis fluxionum et serierum infinitarum (written in 1671, translated and published as Method of Fluxions in 1736 by John Colson). However, his description differs substantially from the modern description given above: Newton applies the method only to polynomials. He does not compute the successive approximations xn, but computes a sequence of polynomials and only at the end, he arrives at an approximation for the root x. Finally, Newton views the method as purely algebraic and fails to notice the connection with calculus. Isaac Newton probably derived his method from a similar but less precise method by François Viète. The essence of Viète's method can be found in the work of the Persian mathematician Sharaf al-Din al-Tusi.
Heron of Alexandria used essentially the same method in book 1, chapter 8, of his Metrica to determine the square root of 720.
Newton's method was first published in 1685 in A Treatise of Algebra both Historical and Practical by John Wallis. In 1690, Joseph Raphson published a simplified description in Analysis aequationum universalis. Raphson again viewed Newton's method purely as an algebraic method and restricted its use to polynomials, but he describes the method in terms of the successive approximations xn instead of the more complicated sequence of polynomials used by Newton. Finally, in 1740, Thomas Simpson described Newton's method as an iterative methods for solving general nonlinear equations using fluxional calculus, essentially giving the description above. In the same publication, Simpson also gives the generalization to systems of two equations and notes that Newton's method can be used for solving optimization problems by setting the gradient to zero.
Practical considerations
In general the convergence is quadratic: the error is essentially squared at each step (that is, the number of accurate digits doubles in each step). There are some caveats, however. First, Newton's method requires that the derivative be calculated directly. If instead the derivative is approximated by the slope of the line through two points on the function's graph, the secant method results — though depending on how one measures computational effort, the secant method may be more efficient. Second, if the starting value is too far removed from the true zero, Newton's method can fail to converge at all. Because of this, all practical implementations of Newton's method put an upper limit on the number of iterations and perhaps on the size of the iterates. Third, if the root being sought has multiplicity greater than one, the convergence rate is reduced to linear (errors reduced by a constant factor at each step) unless special steps are taken.
Generalizations
One may use Newton's method also to solve systems of n (non-linear) equations, which amounts to finding the zeros of continuously differentiable functions F : Rk -> Rk. In the formulation given above, one then has to multiply with the inverse of the k-by-k Jacobian matrix JF(xn) instead of dividing by f '(xn). Rather than actually computing the inverse of this matrix, one can save time by solving the system of linear equations
- <math>J_F(x_n) (x_{n+1} - x_n) = -F(x_n)<math>
for the unknown xn+1 - xn. Again, this method only works if the initial value x0 is close enough to the true zero. Typically, a region which is well-behaved is located first with some other method and Newton's method is then used to "polish" a root which is already known approximately.
Newtroot_1_0_0_0_0_m1.png
Newtroot_1_0_m3i_m5m2i_3_1.png
Newton's method can also be applied to find zeros of complex functions. For many complex functions, the set of all starting values that cause the method to converge to the true zero (the "basin of attraction") is a fractal.
References
Tjalling J. Ypma (1995), Historical development of the Newton-Raphson method, SIAM Review 37 (4), 531–551.
de:Newton-Verfahren fr:Méthode de Newton he:שיטת ניוטון-רפסון ja:ニュートン法 zh-cn:牛顿法