Exercise 2: Why a Double Root Slows Newton's Method Rather Than Breaking It — Possible Solution ==================================================================== WHY IT DOESN'T FAIL LIKE DIVISION BY EXACTLY ZERO ------------------------------ Division by exactly zero is undefined and would either crash the program or produce infinity/NaN outright. But Newton's method never actually divides by f'(x) evaluated exactly at the root - it divides by f'(x_n), the derivative evaluated at the CURRENT iterate, which starts some distance away from the root and only gets closer with each step. Near a double root, f'(x) approaches zero as x approaches the root, but at any specific iterate before full convergence, f'(x) is still some genuinely nonzero (if small) number - so the division is always well-defined at every actual step of the iteration, even though it's getting more and more ill-conditioned (per Chapter 6) as the iteration proceeds. WHY THIS SHOWS UP AS SLOWDOWN, SPECIFICALLY ------------------------------ Chapter 6 established that dividing by a value close to zero amplifies whatever error already exists in the numerator - the condition number of a division grows as the denominator shrinks. Near a double root, both f(x) and f'(x) are shrinking together as the iteration approaches the root, but they don't shrink at the same rate: f(x) behaves roughly like (x-root)^2 near a double root, while f'(x) behaves roughly like (x-root). This chapter's own verified result confirms the practical effect - instead of the quadratic convergence Newton's method usually delivers (based on ordinarily well-behaved single roots), the double-root case only achieves exact linear convergence (error ratio 0.5 every step). The division isn't failing; it's just amplifying the error components at each step in a way that only halves the error instead of squaring it away almost entirely. THE KEY DISTINCTION ------------------------------ "Undefined" (division by exactly zero) and "ill-conditioned" (division by a value that keeps shrinking toward zero but never quite reaches it during the iteration) are genuinely different situations. The double-root case is a real, verified instance of the second: the iteration still makes progress at every step, it's just much slower progress than usual, exactly matching bisection's own rate rather than crashing or producing a meaningless result. WHY THIS WORKS AS AN ANSWER ------------------------------ The explanation correctly distinguishes "dividing by a value that approaches zero over many steps" from "dividing by exactly zero," explains the mechanism (f(x) and f'(x) shrinking at different rates near a double root) using Chapter 6's own conditioning framework rather than treating it as a separate unrelated fact, and ties the conclusion directly to this chapter's own verified exact-0.5 error ratio.