Muller's method ends, satisfies the cubic error relation, and converges locally with order 1.839 full
This proof shows: correctness, termination, local-convergence.
We write xk−2,xk−1,xk for the three points at the start of a pass and xk+1 for the new point x3 of line L9; ej=xj−x∗. Divided differences of an analytic f at points in a convex set D satisfy the Hermite-Genocchi formula
f[z0,…,zr]=∫Σrf(r)(t0z0+⋯+trzr)dt, over the simplex Σr={ti≥0,∑ti=1} of volume 1/r!. It holds for complex points because it follows from integrating derivatives along straight segments, and it gives ∣f[z0,…,zr]∣≤maxD∣f(r)∣/r!.
Claim 1: termination and the flags
Each pass returns or increases k, so the loop ends after at most kmax passes, with 3 evaluations at line L1 and one per pass at line L10. The flags record the tests of lines L1, L10 and L11.
Claim 2: the error relation
Let P be the parabola of the pass, which interpolates f at xk−2,xk−1,xk, and let xk+1 be a root of P. The Newton form of the interpolation error gives, for any x,
f(x)−P(x)=f[xk−2,xk−1,xk,x](x−xk−2)(x−xk−1)(x−xk). At x=xk+1, P(xk+1)=0. On the other side, f(xk+1)=f(xk+1)−f(x∗)=f[x∗,xk+1]ek+1 with f[x∗,xk+1]=∫01f′(x∗+tek+1)dt. Hence
f[x∗,xk+1]ek+1=f[xk−2,xk−1,xk,xk+1](xk+1−xk−2)(xk+1−xk−1)(xk+1−xk). As all points tend to x∗, the left factor tends to f′(x∗), the divided difference tends to f′′′(x∗)/6, and xk+1−xj=ek+1−ej with ek+1=o(ej), so ek+1≈−6f′(x∗)f′′′(x∗)ekek−1ek−2.
Claim 3: local convergence
Let f be analytic on the closed disc BR={∣x−x∗∣≤R} with f(x∗)=0 and μ=∣f′(x∗)∣>0. Let Mj=maxBR∣f(j)∣/j! for j=2,3. Choose ρ>0 with 7ρ≤R, with ∣f′(x)−f′(x∗)∣≤μ/4 on B7ρ, with 2ρM2≤μ/4, and with 3μ4⋅343M3ρ2≤21.
Suppose the three current points are distinct and lie in Bρ, and let ε=max(∣ek−2∣,∣ek−1∣,∣ek∣)≤ρ.
The step is defined and short. By line L5, b=f[xk−1,xk]+(xk−xk−1)f[xk−2,xk−1,xk]. The first term is the mean of f′ over a segment in Bρ, so it is within μ/4 of f′(x∗). The second has modulus at most 2ρM2≤μ/4. So ∣b∣≥μ/2. Since ∣b+s∣2+∣b−s∣2=2∣b∣2+2∣s∣2≥2∣b∣2, the denominator chosen in line L7 has ∣E∣≥∣b∣≥μ/2, so line L8 does not fail, and ∣h∣=2∣fk∣/∣E∣≤4∣fk∣/μ. As ∣fk∣=∣f[x∗,xk]∣∣ek∣≤45μ∣ek∣, we get ∣h∣≤5∣ek∣ and ∣ek+1∣≤6ε.
The new error is small. All four points lie in B6ρ. By Claim 2, with ∣f[x∗,xk+1]∣≥43μ, ∣f[xk−2,xk−1,xk,xk+1]∣≤M3 and ∣xk+1−xj∣≤∣ek+1∣+∣ej∣≤7ε,
∣ek+1∣≤3μ4M3343ε3≤21ε. So the new point is again in Bρ, with error at most half the largest of the three previous errors. By induction all iterates stay in Bρ and the largest error over three consecutive points halves at least every three passes, so ek→0. Once ∣ek+1∣≤∣ej∣ for the three previous j, the factors satisfy ∣xk+1−xj∣≤2∣ej∣, which gives ∣ek+1∣≤K∣ek∣∣ek−1∣∣ek−2∣ with K=32M3/(3μ).
If two of the three points coincide, line L3 stops; if fk+1=0 the program returns an exact root.
Claim 4: the order
Let ϵk=log(1/∣ek∣). Claim 2 gives ϵk+1=ϵk+ϵk−1+ϵk−2+c+o(1) with c=log∣6f′(x∗)/f′′′(x∗)∣ when f′′′(x∗)=0. The solutions of this linear recurrence grow like qk where q is the dominant root of q3=q2+q+1, q=1.8392867552…, and then ϵk+1/ϵk→q, which is order q.
What is not proved
Global behaviour, the behaviour at multiple roots and the iteration counts of the examples are observations.