Newton's method

Revision as of 08:03, 25 May 2025 by imported>Shashvat Verma (→‎top)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:About Template:Use dmy dates

File:Methode newton.png
An illustration of Newton's method.

In numerical analysis, the Newton–Raphson method, also known simply as Newton's method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valued function. The most basic version starts with a real-valued function Template:Mvar, its derivative Template:Mvar, and an initial guess Template:Math for a root of Template:Mvar. If Template:Mvar satisfies certain assumptions and the initial guess is close, then

<math display="block">x_{1} = x_0 - \frac{f(x_0)}{f'(x_0)}</math>

is a better approximation of the root than Template:Math. Geometrically, Template:Math is the x-intercept of the tangent of the graph of Template:Mvar at Template:Math: that is, the improved guess, Template:Math, is the unique root of the linear approximation of Template:Mvar at the initial guess, Template:Math. The process is repeated as

<math display="block">x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}</math>

until a sufficiently precise value is reached. The number of correct digits roughly doubles with each step. This algorithm is first in the class of Householder's methods, and was succeeded by Halley's method. The method can also be extended to complex functions and to systems of equations.

DescriptionEdit

The purpose of Newton's method is to find a root of a function. The idea is to start with an initial guess at a root, approximate the function by its tangent line near the guess, and then take the root of the linear approximation as a next guess at the function's root. This will typically be closer to the function's root than the previous guess, and the method can be iterated.

File:Newton iteration.svg
Template:Math is a better approximation than Template:Math for the root Template:Mvar of the function Template:Mvar (blue curve)

The best linear approximation to an arbitrary differentiable function <math>f(x)</math> near the point <math>x = x_{n}</math> is the tangent line to the curve, with equation

<math display="block"> f(x) \approx f(x_{n}) + f'(x_{n})(x - x_{n}). </math>

The root of this linear function, the place where it intercepts the Template:Tmath-axis, can be taken as a closer approximate root Template:Tmath:

<math display="block"> x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}. </math>

File:NewtonIteration Ani.gif
Iteration typically improves the approximation

The process can be started with any arbitrary initial guess Template:Tmath, though it will generally require fewer iterations to converge if the guess is close to one of the function's roots. The method will usually converge if Template:Tmath. Furthermore, for a root of multiplicity 1, the convergence is at least quadratic (see Rate of convergence) in some sufficiently small neighbourhood of the root: the number of correct digits of the approximation roughly doubles with each additional step. More details can be found in Template:Section link below.

Householder's methods are similar but have higher order for even faster convergence. However, the extra computations required for each step can slow down the overall performance relative to Newton's method, particularly if Template:Tmath or its derivatives are computationally expensive to evaluate.

HistoryEdit

In the Old Babylonian period (19th–16th century BCE), the side of a square of known area could be effectively approximated, and this is conjectured to have been done using a special case of Newton's method, described algebraically below, by iteratively improving an initial estimate; an equivalent method can be found in Heron of Alexandria's Metrica (1st–2nd century CE), so is often called Heron's method.<ref>Template:Cite journal</ref> Jamshīd al-Kāshī used a method to solve Template:Math to find roots of Template:Mvar, a method that was algebraically equivalent to Newton's method, and in which a similar method was found in Trigonometria Britannica, published by Henry Briggs in 1633.<ref>Template:Cite journal</ref>

The method first appeared roughly in Isaac Newton's work 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).<ref name=":0" /><ref>Template:Cite book</ref> However, while Newton gave the basic ideas, his method differs from the modern method given above. He applied the method only to polynomials, starting with an initial root estimate and extracting a sequence of error corrections. He used each correction to rewrite the polynomial in terms of the remaining error, and then solved for a new correction by neglecting higher-degree terms. He did not explicitly connect the method with derivatives or present a general formula. Newton applied this method to both numerical and algebraic problems, producing Taylor series in the latter case.

Newton may have derived his method from a similar, less precise method by mathematician François Viète, however, the two methods are not the same.<ref name=":0">Template:Cite journal</ref> The essence of Viète's own method can be found in the work of the mathematician Sharaf al-Din al-Tusi.<ref>Template:Cite journal</ref>

The Japanese mathematician Seki Kōwa used a form of Newton's method in the 1680s to solve single-variable equations, though the connection with calculus was missing.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Newton's method was first published in 1685 in A Treatise of Algebra both Historical and Practical by John Wallis.<ref>Template:Cite book</ref> In 1690, Joseph Raphson published a simplified description in Analysis aequationum universalis.<ref>Template:Cite book</ref> Raphson also applied the method only to polynomials, but he avoided Newton's tedious rewriting process by extracting each successive correction from the original polynomial. This allowed him to derive a reusable iterative expression for each problem. Finally, in 1740, Thomas Simpson described Newton's method as an iterative method for solving general nonlinear equations using 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.

Arthur Cayley in 1879 in The Newton–Fourier imaginary problem was the first to notice the difficulties in generalizing Newton's method to complex roots of polynomials with degree greater than 2 and complex initial values. This opened the way to the study of the theory of iterations of rational functions.

Practical considerationsEdit

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 functionEdit

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 rootEdit

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 1Edit

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 Template:Mvar of the root is known, the following modified algorithm preserves the quadratic convergence rate:<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

<math display="block">x_{n+1} = x_n - m\frac{f(x_n)}{f'(x_n)}. </math>

This is equivalent to using successive over-relaxation. On the other hand, if the multiplicity Template:Mvar of the root is not known, it is possible to estimate Template:Mvar after carrying out one or two iterations, and then use that value to increase the rate of convergence.

If the multiplicity Template:Mvar of the root is finite then Template:Math will have a root at the same location with multiplicity 1. Applying Newton's method to find the root of Template:Math recovers quadratic convergence in many cases although it generally involves the second derivative of Template:Math. In a particularly simple case, if Template:Math then Template:Math and Newton's method finds the root in a single iteration with

<math display="block">x_{n+1} = x_n - \frac{g(x_n)}{g'(x_n)} = x_n - \frac{\;\frac{x_n}{m}\;}{\frac{1}{m}} = 0\,.</math>

Slow convergenceEdit

The function Template:Math has a root at 0.<ref name="dennis">J. E. Dennis, Jr. and Robert B. Schnabel. Numerical methods for unconstrained optimization and nonlinear equations. SIAM</ref> Since Template:Mvar 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 Template:Math is zero at the root, quadratic convergence is not ensured by the theory. In this particular example, the Newton iteration is given by

<math>x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=\frac{1}{2}x_n.</math>

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 Template:Math also has a root at 0, where it is continuously differentiable. Although the first derivative Template:Mvar is nonzero at the root, the second derivative Template:Mvar is nonexistent there, so that quadratic convergence cannot be guaranteed. In fact the Newton iteration is given by

<math>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} .</math>

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 Template:Math and the right of which shows Newton's method applied to Template:Math. 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,...).

Template:Math Template:Math Template:Math Template:Math
1 2 1 2
1.4286 × 10−1 2.1754 × 10−1 3.3333 × 10−1 4.4444 × 10−1
1.4669 × 10−2 1.8260 × 10−2 6.6666 × 10−2 7.1111 × 10−2
9.0241 × 10−4 9.8961 × 10−4 3.9216 × 10−3 3.9369 × 10−3
2.5750 × 10−5 2.6511 × 10−5 1.5259 × 10−5 1.5259 × 10−5
2.4386 × 10−7 2.4539 × 10−7 2.3283 × 10−10 2.3283 × 10−10
5.0366 × 10−10 5.0406 × 10−10 5.4210 × 10−20 5.4210 × 10−20
1.3344 × 10−13 1.3344 × 10−13 2.9387 × 10−39 2.9387 × 10−39

The rate of convergence is distinguished from the number of iterations required to reach a given accuracy. For example, the function Template:Math has a root at 1. Since Template:Math and Template:Mvar 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.<ref>Anthony Ralston and Philip Rabinowitz. A first course in numerical analysis, second edition</ref>

Convergence dependent on initializationEdit

The function Template:Math has a root at 0. The Newton iteration is given by

<math>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.</math>

From this, it can be seen that there are three possible phenomena for a Newton iteration. If initialized strictly between Template:Math, the Newton iteration will converge (super-)quadratically to 0; if initialized exactly at Template:Math or Template:Math, the Newton iteration will oscillate endlessly between Template:Math; if initialized anywhere else, the Newton iteration will diverge.<ref>Yuri Nesterov. Lectures on convex optimization, second edition. Springer Optimization and its Applications, Volume 137.</ref> This same trichotomy occurs for Template:Math.<ref name="dennis" />

In cases where the function in question has multiple roots, it can be difficult to control, via choice of initialization, which root (if any) is identified by Newton's method. For example, the function Template:Math has roots at −1, 0, 1, and 3.Template:Sfnm If initialized at −1.488, the Newton iteration converges to 0; if initialized at −1.487, it diverges to Template:Math; if initialized at −1.486, it converges to −1; if initialized at −1.485, it diverges to Template:Math; if initialized at −1.4843, it converges to 3; if initialized at −1.484, it converges to Template:Math. This kind of subtle dependence on initialization is not uncommon; it is frequently studied in the complex plane in the form of the Newton fractal.

Divergence even when initialization is close to the rootEdit

Consider the problem of finding a root of Template:Math. The Newton iteration is

<math>x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=x_n-\frac{x_n^{1/3}}{\frac{1}{3}x_n^{-2/3}}=-2x_n.</math>

Unless Newton's method is initialized at the exact root 0, it is seen that the sequence of iterates will fail to converge. For example, even if initialized at the reasonably accurate guess of 0.001, the first several iterates are −0.002, 0.004, −0.008, 0.016, reaching 1048.58, −2097.15, ... by the 20th iterate. This failure of convergence is not contradicted by the analytic theory, since in this case Template:Mvar is not differentiable at its root.

In the above example, failure of convergence is reflected by the failure of Template:Math to get closer to zero as Template:Mvar increases, as well as by the fact that successive iterates are growing further and further apart. However, the function Template:Math also has a root at 0. The Newton iteration is given by

<math>x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=x_n\left(1-\frac{3}{1-6x_n^2}\right).</math>

In this example, where again Template:Mvar is not differentiable at the root, any Newton iteration not starting exactly at the root will diverge, but with both Template:Math and Template:Math converging to zero.<ref name="judd">Kenneth L. Judd. Numerical methods in economics. MIT Press</ref> This is seen in the following table showing the iterates with initialization 1:

Template:Math Template:Math
1 0.36788
1.6 9.0416 × 10−2
1.9342 2.9556 × 10−2
2.2048 1.0076 × 10−2
2.4396 3.5015 × 10−3
2.6505 1.2307 × 10−3
2.8437 4.3578 × 10−4
3.0232 1.5513 × 10−4

Although the convergence of Template:Math 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 Template:Math and Template:Math might falsely identify a root.

Oscillatory behaviorEdit

File:NewtonsMethodConvergenceFailure.svg
The tangent lines of Template:Math at 0 and 1 intersect the Template:Mvar-axis at 1 and 0 respectively, illustrating why Newton's method oscillates between these values for some starting points.

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 Template:Mvar to oscillate between 0 and 1, it is only necessary that the tangent line to Template:Mvar at 0 intersects the Template:Mvar-axis at 1 and that the tangent line to Template:Mvar at 1 intersects the Template:Mvar-axis at 0.<ref name="judd" /> This is the case, for example, if Template:Math. 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 Template:Mvar approximately equal to −1.76929.

Undefinedness of Newton's methodEdit

In some cases, it is not even possible to perform the Newton iteration. For example, if Template:Math, then the Newton iteration is defined by

<math>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}.</math>

So Newton's method cannot be initialized at 0, since this would make Template:Math undefined. Geometrically, this is because the tangent line to Template:Mvar at 0 is horizontal (i.e. Template:Math), never intersecting the Template:Math-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 Template:Mvar 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.<ref name="judd" /> For example, the natural logarithm function Template:Math has a root at 1, and is defined only for positive Template:Mvar. Newton's iteration in this case is given by

<math>x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}=x_n(1- \ln x_n).</math>

So if the iteration is initialized at Template:Math, the next iterate is 0; if the iteration is initialized at a value larger than Template:Math, then the next iterate is negative. In either case, the method cannot be continued.

AnalysisEdit

Suppose that the function Template:Mvar has a zero at Template:Mvar, i.e., Template:Math, and Template:Mvar is differentiable in a neighborhood of Template:Mvar.

If Template:Mvar is continuously differentiable and its derivative is nonzero at Template:Mvar, then there exists a neighborhood of Template:Mvar such that for all starting values Template:Math in that neighborhood, the sequence Template:Math will converge to Template:Mvar.<ref>Template:Citation.</ref>

If Template:Mvar is continuously differentiable, its derivative is nonzero at Template:Mvar, and it has a second derivative at Template:Mvar, then the convergence is quadratic or faster. If the second derivative is not 0 at Template:Mvar then the convergence is merely quadratic. If the third derivative exists and is bounded in a neighborhood of Template:Mvar, then:

<math display="block">\Delta x_{i+1} = \frac{f (\alpha)}{2 f' (\alpha)} \left(\Delta x_{i}\right)^2 + O\left(\Delta x_{i}\right)^3 \,,</math>

where

<math display="block">\Delta x_i \triangleq x_i - \alpha \,.</math>

If the derivative is 0 at Template:Mvar, then the convergence is usually only linear. Specifically, if Template:Mvar is twice continuously differentiable, Template:Math and Template:Math, then there exists a neighborhood of Template:Mvar such that, for all starting values Template:Math in that neighborhood, the sequence of iterates converges linearly, with rate Template:Sfrac.<ref>Template:Harvnb</ref> Alternatively, if Template:Math and Template:Math for Template:Math, Template:Mvar in a neighborhood Template:Mvar of Template:Mvar, Template:Mvar being a zero of multiplicity Template:Mvar, and if Template:Math, then there exists a neighborhood of Template:Mvar such that, for all starting values Template:Math in that neighborhood, the sequence of iterates converges linearly.

However, even linear convergence is not guaranteed in pathological situations.

In practice, these results are local, and the neighborhood of convergence is not known in advance. But there are also some results on global convergence: for instance, given a right neighborhood Template:Math of Template:Mvar, if Template:Mvar is twice differentiable in Template:Math and if Template:Math, Template:Math in Template:Math, then, for each Template:Math in Template:Math the sequence Template:Math is monotonically decreasing to Template:Mvar.

Proof of quadratic convergence for Newton's iterative methodEdit

According to Taylor's theorem, any function Template:Math which has a continuous second derivative can be represented by an expansion about a point that is close to a root of Template:Math. Suppose this root is Template:Mvar. Then the expansion of Template:Math about Template:Math is: Template:NumBlk2

where the Lagrange form of the Taylor series expansion remainder is

<math display="block">R_1 = \frac{1}{2!}f(\xi_n)\left(\alpha - x_n\right)^{2} \,,</math>

where Template:Math is in between Template:Math and Template:Mvar.

Since Template:Mvar is the root, (Template:EquationNote) becomes:

Template:NumBlk2

Dividing equation (Template:EquationNote) by Template:Math and rearranging gives

Template:NumBlk2

Remembering that Template:Math is defined by

Template:NumBlk2

one finds that

<math display="block"> \underbrace{\alpha - x_{n+1}}_{\varepsilon_{n+1}} = \frac {- f (\xi_n)}{2 f'(x_n)} {(\,\underbrace{\alpha - x_n}_{\varepsilon_{n}}\,)}^2 \,.</math>

That is,

Template:NumBlk2

Taking the absolute value of both sides gives

Template:NumBlk2\right| = \frac {\left| f (\xi_n) \right| }{2 \left| f'(x_n) \right|} \cdot \varepsilon_n^2 \,. </math> |6}}

Equation (Template:EquationNote) shows that the order of convergence is at least quadratic if the following conditions are satisfied:

  1. Template:Math; for all Template:Math, where Template:Mvar is the interval Template:Math;
  2. Template:Math is continuous, for all Template:Math;
  3. Template:Math

where Template:Mvar is given by

<math display="block"> M = \frac12 \left( \sup_{x \in I} \vert f (x) \vert \right) \left( \sup_{x \in I} \frac {1}{ \vert f'(x) \vert } \right) . \,</math>

If these conditions hold,

<math display="block"> \vert \varepsilon_{n+1} \vert \leq M \cdot \varepsilon_n^2 \,. </math>

Fourier conditionsEdit

Suppose that Template:Math is a concave function on an interval, which is strictly increasing. If it is negative at the left endpoint and positive at the right endpoint, the intermediate value theorem guarantees that there is a zero Template:Math of Template:Mvar somewhere in the interval. From geometrical principles, it can be seen that the Newton iteration Template:Math starting at the left endpoint is monotonically increasing and convergent, necessarily to Template:Math.<ref name="ostrowski">Template:Cite book</ref>

Joseph Fourier introduced a modification of Newton's method starting at the right endpoint:

<math>y_{i+1}=y_i-\frac{f(y_i)}{f'(x_i)}.</math>

This sequence is monotonically decreasing and convergent. By passing to the limit in this definition, it can be seen that the limit of Template:Math must also be the zero Template:Math.<ref name="ostrowski" />

So, in the case of a concave increasing function with a zero, initialization is largely irrelevant. Newton iteration starting anywhere left of the zero will converge, as will Fourier's modified Newton iteration starting anywhere right of the zero. The accuracy at any step of the iteration can be determined directly from the difference between the location of the iteration from the left and the location of the iteration from the right. If Template:Mvar is twice continuously differentiable, it can be proved using Taylor's theorem that

<math>\lim_{i\to\infty}\frac{y_{i+1}-x_{i+1}}{(y_i-x_i)^2}=-\frac{1}{2}\frac{f(\zeta)}{f'(\zeta)},</math>

showing that this difference in locations converges quadratically to zero.<ref name="ostrowski" />

All of the above can be extended to systems of equations in multiple variables, although in that context the relevant concepts of monotonicity and concavity are more subtle to formulate.<ref>Ortega and Rheinboldt, Section 13.3</ref> In the case of single equations in a single variable, the above monotonic convergence of Newton's method can also be generalized to replace concavity by positivity or negativity conditions on an arbitrary higher-order derivative of Template:Mvar. However, in this generalization, Newton's iteration is modified so as to be based on Taylor polynomials rather than the tangent line. In the case of concavity, this modification coincides with the standard Newton method.<ref>Template:Cite book</ref>



Error for Template:Math variablesEdit

If we seek the root of a single function <math>f : \mathbf{R}^n \to \mathbf{R}</math> then the error <math>\epsilon_n=x_n-\alpha</math> is a vector such that its components obey <math>\epsilon^{(n+1)}_k = \frac{1}{2} (\epsilon^{(n)})^T Q_k \epsilon^{(n)} + O(\|\epsilon^{(n)}\|^3)</math> where <math>Q_k</math> is a quadratic form: <math>(Q_k)_{i,j} = \sum_{\ell} ((D^2 f)^{-1})_{i,\ell} \frac{\partial^3f}{\partial x_j \partial x_k \partial x_\ell}</math> evaluated at the root <math>\alpha</math> (where <math>D^2f</math> is the 2nd derivative Hessian matrix).

ExamplesEdit

Use of Newton's method to compute square rootsEdit

Newton's method is one of many known methods of computing square roots. Given a positive number Template:Mvar, the problem of finding a number Template:Mvar such that Template:Math is equivalent to finding a root of the function Template:Math. The Newton iteration defined by this function is given by

<math>x_{n+1} = x_n-\frac{f(x_n)}{f'(x_n)} = x_n-\frac{x_n^2-a}{2x_n} = \frac{1}{2}\left(x_n+\frac{a}{x_n}\right).</math>

This happens to coincide with the "Babylonian" method of finding square roots, which consists of replacing an approximate root Template:Math by the arithmetic mean of Template:Math and Template:Math. By performing this iteration, it is possible to evaluate a square root to any desired accuracy by only using the basic arithmetic operations.

The following three tables show examples of the result of this computation for finding the square root of 612, with the iteration initialized at the values of 1, 10, and −20. Each row in a "Template:Math" column is obtained by applying the preceding formula to the entry above it, for instance

<math>306.5 = \frac{1}{2} \left( 1+\frac{612}{1} \right).</math>
Template:Math Template:Math Template:Math Template:Math Template:Math Template:Math
1 −611 10 −512 −20 −212
306.5 9.3330 × 104 35.6 655.36 −25.3 28.09
154.2483686786 2.3180 × 104 26.3955056180 84.722 −24.7448616601 0.30818
79.1079978644 5.6461 × 103 24.7906354925 2.5756 −24.7386345374 3.8777 × 10−5
43.4221286822 1.2735 × 103 24.7386882941 2.6985 × 10−3 −24.7386337537 6.1424 × 10−13
28.7581624288 215.03 24.7386337538 2.9746 × 10−9
25.0195385369 13.977
24.7402106712 7.8024 × 10−2
24.7386338040 2.4865 × 10−6
24.7386337537 2.5256 × 10−15

The correct digits are underlined. It is seen that with only a few iterations one can obtain a solution accurate to many decimal places. The first table shows that this is true even if the Newton iteration were initialized by the very inaccurate guess of Template:Math.

When computing any nonzero square root, the first derivative of Template:Mvar must be nonzero at the root, and that Template:Mvar is a smooth function. So, even before any computation, it is known that any convergent Newton iteration has a quadratic rate of convergence. This is reflected in the above tables by the fact that once a Newton iterate gets close to the root, the number of correct digits approximately doubles with each iteration.

Solution of Template:Math using Newton's methodEdit

Consider the problem of finding the positive number Template:Mvar with Template:Math. We can rephrase that as finding the zero of Template:Math. We have Template:Math. Since Template:Math for all Template:Mvar and Template:Math for Template:Math, we know that our solution lies between 0 and 1.

A starting value of 0 will lead to an undefined result which illustrates the importance of using a starting point close to the solution. For example, with an initial guess Template:Math, the sequence given by Newton's method is:

<math display="block">\begin{matrix}

x_1 & = & x_0 - \dfrac{f(x_0)}{f'(x_0)} & = & 0.5 - \dfrac{\cos 0.5 - 0.5^3}{-\sin 0.5 - 3 \times 0.5^2} & = & 1.112\,141\,637\,097\dots \\
x_2 & = & x_1 - \dfrac{f(x_1)}{f'(x_1)} & = & \vdots & = & \underline{0.}909\,672\,693\,736\dots \\
x_3 & = & \vdots & = & \vdots & = & \underline{0.86}7\,263\,818\,209\dots \\
x_4 & = & \vdots & = & \vdots & = & \underline{0.865\,47}7\,135\,298\dots \\
x_5 & = & \vdots & = & \vdots & = & \underline{0.865\,474\,033\,1}11\dots \\
x_6 & = & \vdots & = & \vdots & = & \underline{0.865\,474\,033\,102}\dots

\end{matrix} </math>

The correct digits are underlined in the above example. In particular, Template:Math is correct to 12 decimal places. We see that the number of correct digits after the decimal point increases from 2 (for Template:Math) to 5 and 10, illustrating the quadratic convergence.

Multidimensional formulationsEdit

Systems of equationsEdit

Template:Mvar variables, Template:Mvar functionsTemplate:AnchorEdit

One may also use Newton's method to solve systems of Template:Mvar equations, which amounts to finding the (simultaneous) zeroes of Template:Mvar continuously differentiable functions <math>f:\R^k\to \R.</math> This is equivalent to finding the zeroes of a single vector-valued function <math>F:\R^k\to \R^k.</math> In the formulation given above, the scalars Template:Mvar are replaced by vectors Template:Math and instead of dividing the function Template:Math by its derivative Template:Math one instead has to left multiply the function Template:Math by the inverse of its Template:Math Jacobian matrix Template:Math.<ref name=":3">Template:Cite book</ref><ref>Template:Cite book</ref><ref>Template:Cite book</ref> This results in the expression

<math display="block">\mathbf{x}_{n+1} = \mathbf{x}_{n} - J_F(\mathbf{x}_n)^{-1} F(\mathbf{x}_n) .</math>

or, by solving the system of linear equations

<math display="block">J_F(\mathbf{x}_n) (\mathbf{x}_{n+1} - \mathbf{x}_n) = -F(\mathbf{x}_n)</math>

for the unknown Template:Math.<ref>Template:Cite book</ref>

Template:Mvar variables, Template:Mvar equations, with Template:MathEdit

The Template:Mvar-dimensional variant of Newton's method can be used to solve systems of greater than Template:Mvar (nonlinear) equations as well if the algorithm uses the generalized inverse of the non-square Jacobian matrix Template:Math instead of the inverse of Template:Mvar. If the nonlinear system has no solution, the method attempts to find a solution in the non-linear least squares sense. See Gauss–Newton algorithm for more information.

ExampleEdit

For example, the following set of equations needs to be solved for vector of points <math>\ [\ x_1, x_2\ ]\ ,</math> given the vector of known values <math>\ [\ 2, 3\ ] ~.</math>Template:Refn

<math> \begin{array}{lcr} 5\ x_1^2 + x_1\ x_2^2 + \sin^2( 2\ x_2 ) &= \quad 2 \\ e^{ 2\ x_1 - x_2 } + 4\ x_2 &= \quad 3 \end{array}</math>

the function vector, <math>\ F (X_k)\ ,</math> and Jacobian Matrix, <math>\ J(X_k)\ </math> for iteration k, and the vector of known values, <math>\ Y\ ,</math> are defined below.

<math>\begin{align} ~ & F(X_k) ~ = ~ \begin{bmatrix} \begin{align} ~ & f_{1}(X_{k}) \\ ~ & f_{2}(X_{k}) \end{align} \end{bmatrix} ~ = ~ \begin{bmatrix} \begin{align} ~ & 5\ x_{1}^2 + x_{1}\ x^2_{2} + \sin^2( 2\ x_{2} ) \\ ~ & e^{ 2\ x_{1}-x_{2} } + 4\ x_{2} \end{align} \end{bmatrix}_k \\ ~ & J(X_k) = \begin{bmatrix} ~ \frac{\ \partial{ f_{1}(X) }\ }{ \partial{x_{1}} }\ , & ~ \frac{\ \partial{ f_{1}(X) }\ }{ \partial{x_{2}} } ~\\ ~ \frac{\ \partial{ f_{2}(X) }\ }{ \partial{x_{1}} }\ , & ~ \frac{\ \partial{ f_{2}(X) }\ }{ \partial{x_{2}} } ~ \end{bmatrix}_k ~ = ~ \begin{bmatrix} \begin{align} ~ & 10\ x_{1} + x^2_{2}\ , & & 2\ x_1\ x_2+4\ \sin( 2\ x_{2} )\ \cos( 2\ x_{2} ) \\ ~ & 2\ e^{ 2\ x_{1} - x_{2} }\ , & &-e^{ 2\ x_{1} - x_{2}} + 4 \end{align} \end{bmatrix}_k \\ ~ & Y =

\begin{bmatrix}~ 2 ~\\~ 3 ~\end{bmatrix}

\end{align} </math>

Note that <math>\ F(X_k)\ </math> could have been rewritten to absorb <math>\ Y\ ,</math> and thus eliminate <math>Y</math> from the equations. The equation to solve for each iteration are

<math>\begin{align} \begin{bmatrix} \begin{align} ~ & ~ 10\ x_{1} + x^2_{2 }\ , & & 2 x_1 x_2 + 4\ \sin( 2\ x_{2} )\ \cos( 2\ x_{2} ) ~\\ ~ & ~ 2\ e^{ 2\ x_{1} - x_{2} }\ , & & -e^{ 2\ x_{1} - x_{2} } + 4 ~ \end{align} \end{bmatrix}_k

\begin{bmatrix} ~ c_{1} ~\\ ~ c_{2} ~ \end{bmatrix}_{k+1} = \begin{bmatrix} ~ 5\ x_{1}^2 + x_{1}\ x^2_{2} + \sin^2( 2\ x_{2} ) - 2 ~\\ ~ e^{ 2\ x_{1} - x_{2} } + 4\ x_{2} - 3 ~ \end{bmatrix}_k

\end{align}</math>

and

<math> X_{ k+1 } ~=~ X_k - C_{ k+1 } </math>

The iterations should be repeated until <math>\ \Bigg[ \sum_{i=1}^{i=2} \Bigl| f(x_i)_k - (y_i)_k \Bigr|\Bigg] < E\ ,</math> where <math>\ E\ </math> is a value acceptably small enough to meet application requirements.

If vector <math>\ X_0\ </math> is initially chosen to be <math>\ \begin{bmatrix}~ 1 ~&~ 1 ~\end{bmatrix}\ ,</math> that is, <math>\ x_1 = 1\ ,</math> and <math>\ x_2=1\ ,</math> and <math>\ E\ ,</math> is chosen to be 1.Template:10^, then the example converges after four iterations to a value of <math>\ X_4 = \left[~ 0.567297,\ -0.309442 ~\right] ~.</math>

IterationsEdit

The following iterations were made during the course of the solution.

Converging iteration sequence
Step Variable Template:Left
Template:Math Template:Mvar <math> \begin{bmatrix}\ 1\ , & 1 \end{bmatrix} </math>
Template:Math <math> \begin{bmatrix}\ 6.82682\ , & 6.71828\ \end{bmatrix} </math>
Template:Math Template:Mvar <math> \begin{bmatrix}\ 11 ~, & \quad 0.486395 \\
                      \  5.43656\ , & 1.28172 \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix}\ 0.382211\ , & 1.27982\ \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix}\ 0.617789\ , & -0.279818\ \end{bmatrix} </math>
Template:Math <math>\begin{bmatrix}\ 2.23852\ , & 3.43195\ \end{bmatrix} </math>
Template:Math Template:Mvar <math>\begin{bmatrix}\ 6.25618\ , & -2.1453 \\
                     \  9.10244\ , &\quad  -0.551218 \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix} 0.0494549\ , & 0.0330411\ \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix}\ 0.568334\ , & -0.312859\ \end{bmatrix} </math>
Template:Math <math>\begin{bmatrix}\ 2.01366\ , & 3.00966\ \end{bmatrix} </math>
Template:Math Template:Mvar <math>\begin{bmatrix}\ 5.78122\ , & -2.25449 \\
                     \  8.52219\ , &\quad  -0.261095\ \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix} 0.00102862\ , & -0.00342339\ \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix}\ 0.567305\ , & -0.309435\ \end{bmatrix} </math>
Template:Math <math>\begin{bmatrix}\ 2.00003\ , & 3.00006\ \end{bmatrix} </math>
Template:Math Template:Mvar <math>\begin{bmatrix}\ 5.7688~ , & ~ -2.24118 \\
                     \  8.47561\ , &\quad -0.237805 \end{bmatrix}\ </math>
Template:Mvar <math>\begin{bmatrix}\ 7.73132\!\times\!10^{-6} ~, & ~ 6.93265\!\times\!10^{-6}\ \end{bmatrix} </math>
Template:Mvar <math>\begin{bmatrix}\ 0.567297\ , & -0.309442\ \end{bmatrix} </math>
Template:Math <math>\begin{bmatrix} ~ 2\ ,~ & ~ 3 ~ \end{bmatrix} </math>

Complex functionsEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

File:Newtroot 1 0 0 0 0 m1.png
Basins of attraction for Template:Math; darker means more iterations to converge.

When dealing with complex functions, Newton's method can be directly applied to find their zeroes.<ref>Template:Cite book</ref> Each zero has a basin of attraction in the complex plane, the set of all starting values that cause the method to converge to that particular zero. These sets can be mapped as in the image shown. For many complex functions, the boundaries of the basins of attraction are fractals.

In some cases there are regions in the complex plane which are not in any of these basins of attraction, meaning the iterates do not converge. For example,<ref>Template:Cite journal</ref> if one uses a real initial condition to seek a root of Template:Math, all subsequent iterates will be real numbers and so the iterations cannot converge to either root, since both roots are non-real. In this case almost all real initial conditions lead to chaotic behavior, while some initial conditions iterate either to infinity or to repeating cycles of any finite length.

Curt McMullen has shown that for any possible purely iterative algorithm similar to Newton's method, the algorithm will diverge on some open regions of the complex plane when applied to some polynomial of degree 4 or higher. However, McMullen gave a generally convergent algorithm for polynomials of degree 3.<ref>Template:Cite journal</ref> Also, for any polynomial, Hubbard, Schleicher, and Sutherland gave a method for selecting a set of initial points such that Newton's method will certainly converge at one of them at least.<ref>Template:Cite journal</ref>

In a Banach spaceEdit

Another generalization is Newton's method to find a root of a functional Template:Mvar defined in a Banach space. In this case the formulation is

<math display="block">X_{n+1}=X_n-\bigl(F'(X_n)\bigr)^{-1}F(X_n),\,</math>

where Template:Math is the Fréchet derivative computed at Template:Math. One needs the Fréchet derivative to be boundedly invertible at each Template:Math in order for the method to be applicable. A condition for existence of and convergence to a root is given by the Newton–Kantorovich theorem.<ref>Template:Cite book</ref>

Nash–Moser iterationEdit

Template:Details In the 1950s, John Nash developed a version of the Newton's method to apply to the problem of constructing isometric embeddings of general Riemannian manifolds in Euclidean space. The loss of derivatives problem, present in this context, made the standard Newton iteration inapplicable, since it could not be continued indefinitely (much less converge). Nash's solution involved the introduction of smoothing operators into the iteration. He was able to prove the convergence of his smoothed Newton method, for the purpose of proving an implicit function theorem for isometric embeddings. In the 1960s, Jürgen Moser showed that Nash's methods were flexible enough to apply to problems beyond isometric embedding, particularly in celestial mechanics. Since then, a number of mathematicians, including Mikhael Gromov and Richard Hamilton, have found generalized abstract versions of the Nash–Moser theory.<ref>Template:Cite journal</ref><ref>Template:Cite book</ref> In Hamilton's formulation, the Nash–Moser theorem forms a generalization of the Banach space Newton method which takes place in certain Fréchet spaces.

ModificationsEdit

Quasi-Newton methodsEdit

When the Jacobian is unavailable or too expensive to compute at every iteration, a quasi-Newton method can be used.

Chebyshev's third-order methodEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}Since higher-order Taylor expansions offer more accurate local approximations of a function Template:Mvar, it is reasonable to ask why Newton’s method relies only on a second-order Taylor approximation. In the 19th century, Russian mathematician Pafnuty Chebyshev explored this idea by developing a variant of Newton’s method that used cubic approximations.<ref>Template:Cite book</ref><ref>Template:Cite journal</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Over Template:Mvar-adic numbersEdit

In Template:Mvar-adic analysis, the standard method to show a polynomial equation in one variable has a Template:Mvar-adic root is Hensel's lemma, which uses the recursion from Newton's method on the Template:Mvar-adic numbers. Because of the more stable behavior of addition and multiplication in the Template:Mvar-adic numbers compared to the real numbers (specifically, the unit ball in the Template:Mvar-adics is a ring), convergence in Hensel's lemma can be guaranteed under much simpler hypotheses than in the classical Newton's method on the real line.

Template:Mvar-analogEdit

Newton's method can be generalized with the [[q-analog|Template:Mvar-analog]] of the usual derivative.<ref>Template:Cite journal</ref>

Modified Newton methodsEdit

Maehly's procedureEdit

A nonlinear equation has multiple solutions in general. But if the initial value is not appropriate, Newton's method may not converge to the desired solution or may converge to the same solution found earlier. When we have already found Template:Mvar solutions of <math>f(x)=0</math>, then the next root can be found by applying Newton's method to the next equation:<ref>Template:Harvnb</ref><ref>Template:Cite book</ref>

<math display="block">F(x) = \frac{f(x)}{\prod_{i=1}^N(x-x_i)} = 0 .</math>

This method is applied to obtain zeros of the Bessel function of the second kind.<ref>Template:Cite bookTemplate:Page needed</ref>

Hirano's modified Newton methodEdit

Hirano's modified Newton method is a modification conserving the convergence of Newton method and avoiding unstableness.<ref>Template:Cite journal</ref> It is developed to solve complex polynomials.

Interval Newton's methodEdit

Template:Cite check Combining Newton's method with interval arithmetic is very useful in some contexts. This provides a stopping criterion that is more reliable than the usual ones (which are a small value of the function or a small variation of the variable between consecutive iterations). Also, this may detect cases where Newton's method converges theoretically but diverges numerically because of an insufficient floating-point precision (this is typically the case for polynomials of large degree, where a very small change of the variable may change dramatically the value of the function; see Wilkinson's polynomial).<ref>Moore, R. E. (1979). Methods and applications of interval analysis (Vol. 2). Siam.</ref><ref>Hansen, E. (1978). Interval forms of Newtons method. Computing, 20(2), 153–163.</ref>

Consider Template:Math, where Template:Mvar is a real interval, and suppose that we have an interval extension Template:Mvar of Template:Mvar, meaning that Template:Mvar takes as input an interval Template:Math and outputs an interval Template:Math such that:

<math display="block">\begin{align}

   F'([y,y]) &= \{f'(y)\}\\[5pt]
   F'(Y) &\supseteq \{f'(y)\mid y \in Y\}.

\end{align}</math>

We also assume that Template:Math, so in particular Template:Mvar has at most one root in Template:Mvar. We then define the interval Newton operator by:

<math display="block">N(Y) = m - \frac{f(m)}{F'(Y)} = \left\{\left.m - \frac{f(m)}{z} ~\right|~ z \in F'(Y)\right\}</math>

where Template:Math. Note that the hypothesis on Template:Mvar implies that Template:Math is well defined and is an interval (see interval arithmetic for further details on interval operations). This naturally leads to the following sequence:

<math display="block"> \begin{align} X_0 &= X\\ X_{k+1} &= N(X_k) \cap X_k. \end{align} </math>

The mean value theorem ensures that if there is a root of Template:Mvar in Template:Math, then it is also in Template:Math. Moreover, the hypothesis on Template:Mvar ensures that Template:Math is at most half the size of Template:Math when Template:Mvar is the midpoint of Template:Mvar, so this sequence converges towards Template:Math, where Template:Mvar is the root of Template:Mvar in Template:Mvar.

If Template:Math strictly contains 0, the use of extended interval division produces a union of two intervals for Template:Math; multiple roots are therefore automatically separated and bounded.

ApplicationsEdit

Minimization and maximization problemsEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} Newton's method can be used to find a minimum or maximum of a function Template:Math. The derivative is zero at a minimum or maximum, so local minima and maxima can be found by applying Newton's method to the derivative.<ref>Template:Cite book</ref> The iteration becomes:

<math display="block">x_{n+1} = x_n - \frac{f'(x_n)}{f(x_n)}. </math>

Multiplicative inverses of numbers and power seriesEdit

An important application is Newton–Raphson division, which can be used to quickly find the reciprocal of a number Template:Mvar, using only multiplication and subtraction, that is to say the number Template:Mvar such that Template:Math. We can rephrase that as finding the zero of Template:Math. We have Template:Math.

Newton's iteration is

<math display="block">x_{n+1} = x_n-\frac{f(x_n)}{f'(x_n)} = x_n+\frac{\frac{1}{x_n}-a}{\frac{1}{x_n^2}} = x_n(2-ax_n). </math>

Therefore, Newton's iteration needs only two multiplications and one subtraction.

This method is also very efficient to compute the multiplicative inverse of a power series.

Solving transcendental equationsEdit

Many transcendental equations can be solved up to an arbitrary precision by using Newton's method. For example, finding the cumulative probability density function, such as a Normal distribution to fit a known probability generally involves integral functions with no known means to solve in closed form. However, computing the derivatives needed to solve them numerically with Newton's method is generally known, making numerical solutions possible. For an example, see the numerical solution to the inverse Normal cumulative distribution.

Numerical verification for solutions of nonlinear equationsEdit

A numerical verification for solutions of nonlinear equations has been established by using Newton's method multiple times and forming a set of solution candidates.Template:Cn

CodeEdit

The following is an example of a possible implementation of Newton's method in the Python (version 3.x) programming language for finding a root of a function f which has derivative f_prime.

The initial guess will be Template:Math and the function will be Template:Math so that Template:Math.

Each new iteration of Newton's method will be denoted by x1. We will check during the computation whether the denominator (yprime) becomes too small (smaller than epsilon), which would be the case if Template:Math, since otherwise a large amount of error could be introduced.

<syntaxhighlight lang="python3" line="1"> def f(x): return x**2 - 2 # f(x) = x^2 - 2

def f_prime(x): return 2*x # f'(x) = 2x

def newtons_method(x0, f, f_prime, tolerance, epsilon, max_iterations):

   """Newton's method
   Args:
     x0:              The initial guess
     f:               The function whose root we are trying to find
     f_prime:         The derivative of the function
     tolerance:       Stop when iterations change by less than this
     epsilon:         Do not divide by a number smaller than this
     max_iterations:  The maximum number of iterations to compute
   """
   for _ in range(max_iterations):
       y = f(x0)
       yprime = f_prime(x0)
       if abs(yprime) < epsilon:       # Give up if the denominator is too small
           break
       x1 = x0 - y / yprime            # Do Newton's computation
       if abs(x1 - x0) <= tolerance:   # Stop when the result is within the desired tolerance
           return x1                   # x1 is a solution within tolerance and maximum number of iterations
       x0 = x1                         # Update x0 to start the process again
   return None                         # Newton's method did not converge

</syntaxhighlight>

See alsoEdit

Template:Div col

Template:Div col end

NotesEdit

Template:Reflist

ReferencesEdit

Further readingEdit

  • Kendall E. Atkinson: An Introduction to Numerical Analysis, John Wiley & Sons Inc., Template:Isbn (1989).
  • Tjalling J. Ypma: "Historical development of the Newton–Raphson method", SIAM Review, vol.37, no.4, (1995), pp.531–551. {{#invoke:doi|main}}.
  • Template:Cite book
  • P. Deuflhard: Newton Methods for Nonlinear Problems: Affine Invariance and Adaptive Algorithms, Springer Berlin (Series in Computational Mathematics, Vol. 35) (2004). Template:Isbn.
  • C. T. Kelley: Solving Nonlinear Equations with Newton's Method, SIAM (Fundamentals of Algorithms, 1) (2003). Template:Isbn.
  • J. M. Ortega, and W. C. Rheinboldt: Iterative Solution of Nonlinear Equations in Several Variables, SIAM (Classics in Applied Mathematics) (2000). Template:Isbn.
  • Template:Cite book. See especially Sections 9.4, 9.6, and 9.7.
  • Template:Cite book

External linksEdit

Template:Sister project Template:Wikibooks category

|_exclude=urlname, _debug, id |url = https://mathworld.wolfram.com/{{#if:NewtonsMethod%7CNewtonsMethod.html}} |title = Newton's Method |author = Weisstein, Eric W. |website = MathWorld |access-date = |ref = Template:SfnRef }}

Template:Isaac Newton Template:Optimization algorithms Template:Root-finding algorithms Template:Authority control