Algorithm Search⌘K

Proofs: Illinois method

These are the human proofs of Illinois method, at full length.

Correctness, termination and local order of the Illinois method full

This proof shows: correctness, termination, convergence-rate.

Theorem 1 (the bracket). Let ff be continuous on [a0,b0][a_0, b_0] with f(a0)f(b0)<0f(a_0) f(b_0) < 0. At each test of line L3, aa and bb lie in [a0,b0][a_0, b_0], f(a)≠0f(a) \ne 0, f(b)≠0f(b) \ne 0, f(a)f(a) and f(b)f(b) have opposite signs, and the stored value faf_a has the sign of f(a)f(a). Hence there is a root x∗x^* of ff strictly between aa and bb, and a return at L3 gives ∣b−x∗∣<∣b−a∣≤max⁡(δ,4 ulp)|b - x^*| < |b - a| \le \max(\delta, 4\,\mathrm{ulp}).

Proof. By induction on the number of passes. At the first test, a=a0a = a_0, b=b0b = b_0, fa=f(a)f_a = f(a), and the claim is the hypothesis. Suppose it holds at a test that does not return. Line L4 computes xx strictly between aa and bb: the regula falsi point of two values of opposite signs lies between the ends in exact arithmetic, and the fallback to the midpoint covers the case where rounding puts it on or outside an end. (The midpoint is strictly inside since the width exceeds 4 ulps.) If f(x)=0f(x) = 0, line L6 returns a root. Otherwise there are two cases. If f(x)f(x) and f(b)f(b) have opposite signs (L7, L8), the new pair is (b,x)(b, x), with fa=f(b)f_a = f(b) fresh, so all claims hold. If they have the same sign, then f(x)f(x) and f(a)f(a) have opposite signs, the new pair is (a,x)(a, x), and fa/2f_a/2 has the sign of f(a)f(a) (L9). In both cases the new points lie between the old ones, so in [a0,b0][a_0, b_0]. The intermediate value theorem gives a root strictly between aa and bb. □\square

Theorem 2 (termination). ILLINOIS ends after at most kmax⁡k_{\max} passes of the loop, so after at most kmax⁡+2k_{\max} + 2 evaluations of ff.

Proof. Each pass evaluates ff once at L5 and either returns or goes on to the next value of kk; the loop has kmax⁡k_{\max} values. □\square

When it returns at L3 or L6, Theorem 1 bounds the error. When it reaches kmax⁡k_{\max}, it reports failure, and the current bracket still holds a root.

Local analysis (the order 31/33^{1/3}). Let f∈C2f \in C^2 near a simple root x∗x^* with f′(x∗)≠0f'(x^*) \ne 0 and M=f′′(x∗)/(2f′(x∗))≠0M = f''(x^*)/(2f'(x^*)) \ne 0, and suppose the iterates are close to x∗x^*. Write ee for errors and work to first order in the errors. Dowell and Jarratt (1971) make this rigorous; we give the derivation.

Secant step. If the stored values are exact, f(u)=f′(x∗)(eu+Meu2+⋯ )f(u) = f'(x^*)(e_u + M e_u^2 + \cdots) and the same at vv. The zero of the line through (u,f(u))(u, f(u)) and (v,f(v))(v, f(v)) has the error e≈Meueve \approx M e_u e_v, the classical error equation of the secant method. If uu and vv are on opposite sides, euev<0e_u e_v < 0, so the new point lies on the side of sign −sign⁡(M)-\operatorname{sign}(M), whatever the signs of uu and vv.

Halving step. If the stored value at the far end uu is f(u)/2f(u)/2 and ∣ev∣≪∣eu∣|e_v| \ll |e_u|, the zero of the line through (u,f(u)/2)(u, f(u)/2) and (v,f(v))(v, f(v)) has, to first order,

e=ev−evev−euev−eu/2=eveu/2ev−eu/2=−ev (1+O(ev/eu)+O(eu)).e = e_v - e_v \frac{e_v - e_u}{e_v - e_u/2} = e_v \frac{e_u/2}{e_v - e_u/2} = -e_v\,(1 + O(e_v/e_u) + O(e_u)).

So the new point lies on the other side of x∗x^* at almost the same distance.

The cycle. Suppose a halving step has just produced xkx_k with ek≈−ek−1e_k \approx -e_{k-1}, so xk−1x_{k-1} and xkx_k are on opposite sides. Step k+1k+1 is a secant step between them (both values are exact), so ek+1≈Mek−1eke_{k+1} \approx M e_{k-1} e_k, on the side −sign⁡(M)-\operatorname{sign}(M). Since xk−1x_{k-1} came from a secant step it was on the side −sign⁡(M)-\operatorname{sign}(M), so xkx_k is on the side sign⁡(M)\operatorname{sign}(M), and xk+1x_{k+1} is on the side opposite to xkx_k: line L8 swaps, and step k+2k+2 is a secant step between xkx_k and xk+1x_{k+1}, with ek+2≈Mekek+1e_{k+2} \approx M e_k e_{k+1}, again on the side −sign⁡(M)-\operatorname{sign}(M), the same side as xk+1x_{k+1}. So line L9 halves the value at xkx_k, and step k+3k+3 is a halving step with ek+3≈−ek+2e_{k+3} \approx -e_{k+2}. The cycle repeats.

The order. Let ℓj=log⁡∣ej∣\ell_j = \log|e_j|, ignoring the bounded terms log⁡∣M∣\log|M|. In one cycle ℓk=ℓk−1\ell_k = \ell_{k-1}, ℓk+1=ℓk+ℓk−1=2ℓk−1\ell_{k+1} = \ell_k + \ell_{k-1} = 2\ell_{k-1}, ℓk+2=ℓk+1+ℓk=3ℓk−1\ell_{k+2} = \ell_{k+1} + \ell_k = 3\ell_{k-1}, and ℓk+3=ℓk+2=3ℓk−1\ell_{k+3} = \ell_{k+2} = 3\ell_{k-1}. Since ℓk=ℓk−1\ell_k = \ell_{k-1}, this is ∣ek+3∣≈K∣ek∣3|e_{k+3}| \approx K |e_k|^3 in each cycle of three evaluations: the method has order 3 for three evaluations, that is 31/3≈1.4423^{1/3} \approx 1.442 in each evaluation, and efficiency index 31/33^{1/3}.

This analysis is local: it assumes that the cycle has started. The tests check that log⁡∣ek+3∣/log⁡∣ek∣\log|e_{k+3}|/\log|e_k| is close to 3 near the root for several functions; the values observed on the page are 3.2 to 3.6. ■\blacksquare

Back to Illinois method