Algorithm Search⌘K

Proofs: Bernoulli's method

These are the human proofs of Bernoulli's method, at full length.

Correctness of Bernoulli's method full

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

Let p(x)=a0xn+⋯+anp(x) = a_0x^n + \cdots + a_n with a0≠0a_0 \ne 0, n≥1n \ge 1, and distinct roots r1,…,rsr_1, \dots, r_s with multiplicities m1,…,msm_1, \dots, m_s, so p(x)=a0∏i(x−ri)mip(x) = a_0\prod_i (x - r_i)^{m_i}. Let sk=∑imiriks_k = \sum_i m_ir_i^k be the power sums, with s0=ns_0 = n. Statements are in exact arithmetic.

Lemma 1 (the computed sequence is the power sums)

The window of line L1 is (s0,…,sn−1)(s_0, \dots, s_{n-1}), and the terms produced at L3 are, up to one common positive factor per step, sn,sn+1,…s_n, s_{n+1}, \dots. In particular each ratio of L6 equals sj+1/sjs_{j+1}/s_j for the corresponding jj.

Proof. Newton's identities state a0sk+a1sk−1+⋯+ak−1s1+kak=0a_0s_k + a_1s_{k-1} + \cdots + a_{k-1}s_1 + ka_k = 0 for 1≤k≤n1 \le k \le n, so L1 computes s1,…,sn−1s_1, \dots, s_{n-1} correctly. For k≥nk \ge n,

∑j=0najsk−j=∑imirik−n∑j=0najrin−j=∑imirik−np(ri)=0,\sum_{j=0}^{n} a_js_{k-j} = \sum_i m_ir_i^{k-n}\sum_{j=0}^{n}a_jr_i^{n-j} = \sum_i m_ir_i^{k-n}p(r_i) = 0,

so the power sums satisfy the recurrence of L3, and a sequence satisfying it is determined by any nn consecutive terms. The rescaling at L4 multiplies the whole window by 1/c1/c for some c>0c > 0; since the recurrence is linear, every later term is multiplied by the same factor, and a ratio of two terms of one window is unchanged. Line L6 divides the new term by the last term of the window it was computed from, before that window is rescaled, so the ratio is sj+1/sjs_{j+1}/s_j. □\square

Theorem 1 (convergence to the dominant root)

Suppose r1r_1 is the only distinct root of largest modulus and r1≠0r_1 \ne 0, and let λ=max⁡i≥2∣ri∣/∣r1∣<1\lambda = \max_{i \ge 2}|r_i|/|r_1| < 1 (with λ=0\lambda = 0 when s=1s = 1). Then r1r_1 is real, sj≠0s_j \ne 0 for all large jj, and

sj+1sj−r1=11+εj∑i≥2mim1(ri−r1)(rir1)j,εj=∑i≥2mim1(rir1)j,\frac{s_{j+1}}{s_j} - r_1 = \frac{1}{1 + \varepsilon_j}\sum_{i \ge 2}\frac{m_i}{m_1}(r_i - r_1)\Bigl(\frac{r_i}{r_1}\Bigr)^j, \qquad \varepsilon_j = \sum_{i \ge 2}\frac{m_i}{m_1}\Bigl(\frac{r_i}{r_1}\Bigr)^j,

so ∣sj+1/sj−r1∣≤2n∣r1∣λj/(1−nλj)|s_{j+1}/s_j - r_1| \le 2n|r_1|\lambda^j/(1 - n\lambda^j) once nλj<1n\lambda^j < 1. If moreover r2r_2 is the only distinct root of modulus λ∣r1∣\lambda|r_1|, the errors Ej=sj+1/sj−r1E_j = s_{j+1}/s_j - r_1 satisfy Ej+1/Ej→r2/r1E_{j+1}/E_j \to r_2/r_1.

Proof. If r1r_1 were not real, rˉ1≠r1\bar r_1 \ne r_1 would be a root of the same modulus, since the coefficients are real; so r1r_1 is real. Write sj=m1r1j(1+εj)s_j = m_1r_1^j(1 + \varepsilon_j). Since ∣ri/r1∣≤λ|r_i/r_1| \le \lambda for i≥2i \ge 2 and ∑imi=n\sum_i m_i = n, ∣εj∣≤nλj/m1≤nλj|\varepsilon_j| \le n\lambda^j/m_1 \le n\lambda^j, which tends to 0, so sj≠0s_j \ne 0 once nλj<1n\lambda^j < 1. Then

sj+1−r1sj=∑i≥2mirij(ri−r1),s_{j+1} - r_1s_j = \sum_{i \ge 2} m_i r_i^j (r_i - r_1),

and dividing by sjs_j gives the identity. Using ∣ri−r1∣≤2∣r1∣|r_i - r_1| \le 2|r_1| and ∑i≥2mi≤n\sum_{i \ge 2}m_i \le n gives the bound. For the last claim, the terms with ∣ri∣<∣r2∣|r_i| < |r_2| are o(∣r2/r1∣j)o(|r_2/r_1|^j), so Ej=m2m1(r2−r1)(r2/r1)j(1+o(1))E_j = \frac{m_2}{m_1}(r_2 - r_1)(r_2/r_1)^j(1 + o(1)), with r2r_2 real by the same conjugation argument, and Ej+1/Ej→r2/r1E_{j+1}/E_j \to r_2/r_1. □\square

So the method converges linearly with rate λ\lambda for every multiplicity m1m_1; since the power sums contain no factors polynomial in jj, a multiple dominant root does not slow it. If r1=0r_1 = 0 is the only root, p=a0xnp = a_0x^n, the window becomes all zeros after nn steps and L4 returns 0, which is correct.

Ties for the largest modulus

The hypothesis cannot be dropped. For p=x2−1p = x^2 - 1 the power sums are 2,0,2,0,…2, 0, 2, 0, \dots, so every other ratio is undefined and the others are 0. For a dominant conjugate pair re±iθre^{\pm i\theta} with 0<θ<π0 < \theta < \pi and no other root of that modulus, sj=2m∣r∣jcos⁡(jθ)+o(∣r∣j)s_j = 2m|r|^j\cos(j\theta) + o(|r|^j), and the ratios ∣r∣cos⁡((j+1)θ)/cos⁡(jθ)|r|\cos((j+1)\theta)/\cos(j\theta) do not converge. In both cases the method only stops at the cap.

Termination

Each pass of the loop L2 either returns at L4 or L7 or ends with kk increased; L8 returns after KK passes. The rescaling keeps the window's largest entry equal to 1 in absolute value, so no term overflows. When the run stops at L7, the theorem gives an error bound only through λ\lambda, which the method does not know: a small change of the ratio is evidence of convergence, not a proof, and the page's pitfalls give the estimate ∣ρk−ρk−1∣λ/(1−λ)|\rho_k - \rho_{k-1}|\lambda/(1 - \lambda) that holds asymptotically when r2r_2 is the only subdominant root. In floating point the recurrence and the rounded coefficients add noise to the ratios; its size is observed in the tests, not bounded here.

Back to Bernoulli's method