Root-Finding & Nonlinear Equations

Newton's method failure modes

Newton's method is fast, but fast is not the same as safe. Its quadratic speed is a promise that holds only in a small neighbourhood of a simple root, with a sensible starting point and a cooperative function. Step outside those conditions and Newton can do alarming things: shoot off to infinity, bounce between the same two values forever, or grind to a near-halt. Knowing the failure modes is what separates a toy implementation from a robust one.

The classic failures come from the step formula x_{n+1} = x_n - f(x_n) / f'(x_n). (1) Poor initial guess: start in the wrong region and the tangent points you away from the root you wanted — Newton may converge to a DIFFERENT root or diverge entirely; the set of starting points that lead to a given root (the 'basin of attraction') can be wildly fractal. (2) Near-zero derivative: if f'(x_n) is tiny, dividing by it produces an enormous step that overshoots far beyond the root (a flat spot acts like a slingshot). (3) Cycling: for some functions the iteration falls into a periodic loop — the standard example is f(x) = x^3 - 2x + 2 started at x = 0, which oscillates between 0 and 1 forever. (4) Overshoot and divergence: for f(x) = arctan(x) started too far from 0, each step lands farther out than the last and the iterates fly apart. (5) Multiple root: where f' also vanishes, the quadratic speed collapses to merely linear (see multiple root).

The cures are equally classic and worth knowing. Bracket the root first and keep a bisection fallback so a bad Newton step is rejected and replaced by a safe one — this is the heart of Brent's and the 'safeguarded Newton' methods. Use a line search or damping (take a fraction of the full Newton step) to prevent overshoot in higher dimensions. Watch for f'(x_n) near zero and refuse to divide by it. The lesson is not that Newton is unreliable but that pure, unguarded Newton is — in practice you always wrap it in safeguards.

Newton on f(x) = x^3 - 2x + 2 from x_0 = 0 steps to x_1 = 1, then back to x_2 = 0, then to 1 again — a perfect 2-cycle that never approaches the real root near -1.77. And on f(x) = arctan(x), starting beyond about |x| = 1.39 makes each iterate larger than the last, so the method diverges instead of finding the obvious root at 0.

Cycling, overshoot, and divergence: pure Newton needs safeguards.

These are not exotic pathologies — they bite ordinary functions with ordinary starting guesses. Never ship unguarded Newton: keep a bracket and a bisection fallback (Brent), check for tiny f', and damp the step.

Also called
when Newton's method breaksNewton divergence and cycling牛頓法發散與循環