Newton's method is a powerful technique—if the derivative of the function at the root is nonzero, then the
convergence is at least quadratic: as the method converges on the root, the difference between the root and the approximation is squared (the number of accurate digits roughly doubles) at each step. However, there are some difficulties with the method.
Difficulty in calculating the derivative of a function Newton's method requires that the derivative can be calculated directly. An analytical expression for the derivative may not be easily obtainable or could be expensive to evaluate. In these situations, it may be appropriate to approximate the derivative by using the slope of a line through two nearby points on the function. Using this approximation would result in something like the
secant method whose convergence is slower than that of Newton's method.
Failure of the method to converge to the root It is important to review the
proof of quadratic convergence of Newton's method before implementing it. Specifically, one should review the assumptions made in the proof. For
situations where the method fails to converge, it is because the assumptions made in this proof are not met. For example,
in some cases, if the first derivative is not well behaved in the neighborhood of a particular root, then it is possible that Newton's method will fail to converge no matter where the initialization is set. In some cases, Newton's method can be stabilized by using
successive over-relaxation, or the speed of convergence can be increased by using the same method. In a robust implementation of Newton's method, it is common to place limits on the number of iterations, bound the solution to an interval known to contain the root, and combine the method with a more robust root finding method.
Slow convergence for roots of multiplicity greater than 1 If the root being sought has
multiplicity greater than one, the convergence rate is merely linear (errors reduced by a constant factor at each step) unless special steps are taken. When there are two or more roots that are close together then it may take many iterations before the iterates get close enough to one of them for the quadratic convergence to be apparent. However, if the multiplicity of the root is known, the following modified algorithm preserves the quadratic convergence rate: x_{n+1} = x_n - m\frac{f(x_n)}{f'(x_n)}. This is equivalent to using
successive over-relaxation. On the other hand, if the multiplicity of the root is not known, it is possible to estimate after carrying out one or two iterations, and then use that value to increase the rate of convergence. If the multiplicity of the root is finite then will have a root at the same location with multiplicity 1. Applying Newton's method to find the root of recovers quadratic convergence in many cases although it generally involves the second derivative of . In a particularly simple case, if then and Newton's method finds the root in a single iteration with x_{n+1} = x_n - \frac{g(x_n)}{g'(x_n)} = x_n - \frac{\;\frac{x_n}{m}\;}{\frac{1}{m}} = 0\,.
Slow convergence The function has a root at 0. Since is continuously differentiable at its root, the theory guarantees that Newton's method as initialized sufficiently close to the root will converge. However, since the derivative is zero at the root, quadratic convergence is not ensured by the theory. In this particular example, the Newton iteration is given by :x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=\frac{1}{2}x_n. It is visible from this that Newton's method could be initialized anywhere and converge to zero, but at only a linear rate. If initialized at 1, dozens of iterations would be required before ten digits of accuracy are achieved. The function also has a root at 0, where it is continuously differentiable. Although the first derivative is nonzero at the root, the second derivative is nonexistent there, so that quadratic convergence cannot be guaranteed. In fact the Newton iteration is given by :x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=\frac{x_n^{4/3}}{3+4x_n^{1/3}} \approx x_n \cdot \frac{x_n^{1/3}}{3} . From this, it can be seen that the rate of convergence is superlinear but subquadratic. This can be seen in the following tables, the left of which shows Newton's method applied to the above and the right of which shows Newton's method applied to . The quadratic convergence in iteration shown on the right is illustrated by the orders of magnitude in the distance from the iterate to the true root (0,1,2,3,5,10,20,39,...) being approximately doubled from row to row. While the convergence on the left is superlinear, the order of magnitude is only multiplied by about 4/3 from row to row (0,1,2,4,5,7,10,13,...). The rate of convergence is distinguished from the number of iterations required to reach a given accuracy. For example, the function has a root at 1. Since and is smooth, it is known that any Newton iteration convergent to 1 will converge quadratically. However, if initialized at 0.5, the first few iterates of Newton's method are approximately 26214, 24904, 23658, 22476, decreasing slowly, with only the 200th iterate being 1.0371. The following iterates are 1.0103, 1.00093, 1.0000082, and 1.00000000065, illustrating quadratic convergence. This highlights that quadratic convergence of a Newton iteration does not mean that only few iterates are required; this only applies once the sequence of iterates is sufficiently close to the root.
Convergence dependent on initialization The function has a root at 0. The Newton iteration is given by :x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=x_n-\frac{x_n(1+x_n^2)^{-1/2}}{(1+x_n^2)^{-3/2}}=-x_n^3. From this, it can be seen that there are three possible phenomena for a Newton iteration. If initialized strictly between , the Newton iteration will converge (super-)quadratically to 0; if initialized exactly at or , the Newton iteration will oscillate endlessly between ; if initialized anywhere else, the Newton iteration will diverge. This same trichotomy occurs for . This is seen in the following table showing the iterates with initialization 1: Although the convergence of in this case is not very rapid, it can be proved from the iteration formula. This example highlights the possibility that a stopping criterion for Newton's method based only on the smallness of and might falsely identify a root.
Oscillatory behavior It is easy to find situations for which Newton's method oscillates endlessly between two distinct values. For example, for Newton's method as applied to a function to oscillate between 0 and 1, it is only necessary that the tangent line to at 0 intersects the -axis at 1 and that the tangent line to at 1 intersects the -axis at 0. This is the case, for example, if . For this function, it is even the case that Newton's iteration as initialized sufficiently close to 0 or 1 will
asymptotically oscillate between these values. For example, Newton's method as initialized at 0.99 yields iterates 0.99, −0.06317, 1.00628, 0.03651, 1.00196, 0.01162, 1.00020, 0.00120, 1.000002, and so on. This behavior is present despite the presence of a root of approximately equal to −1.76929.
Undefinedness of Newton's method In some cases, it is not even possible to perform the Newton iteration. For example, if , then the Newton iteration is defined by :x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)} = x_n-\frac{x_n^2-1}{2x_n} = \frac{x_n^2+1}{2x_n}. So Newton's method cannot be initialized at 0, since this would make undefined. Geometrically, this is because the tangent line to at 0 is horizontal (i.e. ), never intersecting the -axis. Even if the initialization is selected so that the Newton iteration can begin, the same phenomenon can block the iteration from being indefinitely continued. If has an incomplete domain, it is possible for Newton's method to send the iterates outside of the domain, so that it is impossible to continue the iteration. For example, the
natural logarithm function has a root at 1, and is defined only for positive . Newton's iteration in this case is given by :x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=x_n(1- \ln x_n). So if the iteration is initialized at , the next iterate is 0; if the iteration is initialized at a value larger than , then the next iterate is negative. In either case, the method cannot be continued. ==Analysis==