Tearing, deflation, the secular equation and Loewner's formula give the eigendecomposition full
This proof shows: correctness, termination.
Notation of the page. T is symmetric tridiagonal, T=diag(T1,T2)+ρvvT with v=em+em+1, and Ti=QiDiQiT. Exact arithmetic unless stated.
Lemma 1 (tearing). T=diag(T1,T2)+ρvvT and T=Q(D+ρzzT)QT with Q=diag(Q1,Q2) and z=QTv.
Proof. ρvvT has ρ in positions (m,m), (m,m+1), (m+1,m) and (m+1,m+1). Adding it to diag(T1,T2) restores am and am+1 and puts bm=ρ in the two off-diagonal positions. Then QTTQ=D+ρ(QTv)(QTv)T. z=QTv is Q1Tem stacked on Q2Te1: the last row of Q1 and the first row of Q2. □
Lemma 2 (deflation). (a) If zi=0, then (D+ρzzT)ei=diei. (b) If di=dj with i=j, let G be the rotation in the (i,j) plane with (Gz)j=0. Then GDGT=D, so G(D+ρzzT)GT=D+ρz^z^T with z^j=0, and (a) applies. (c) In the inexact case of line L5, the dropped quantities are ρzi or cs(di−dj), each at most the tolerance τ=8umax(max∣d∣,ρ).
Proof. (a) (D+ρzzT)ei=diei+ρzzi=diei. (b) In the (i,j) plane D is diI, which commutes with G. (c) For a small zi, replacing zi by 0 changes the matrix by ρ(zzT−z′z′T), whose norm is at most 2ρ∣zi∣∥z∥≤2τ for ∥z∥=1. For a rotation with di=dj, GDGT differs from a diagonal matrix only by the off-diagonal entry cs(dj−di) in positions (i,j) and (j,i); dropping it is a symmetric perturbation of norm at most τ. □
Lemma 3 (secular equation). Let d1<⋯<dK, every zj=0, and ρ=0. Then (a) no dj is an eigenvalue of M=D+ρzzT; (b) λ is an eigenvalue of M exactly when f(λ)=1+ρ∑jzj2/(dj−λ)=0, with eigenvector (D−λI)−1z; (c) for ρ>0, f has exactly one root in each interval (di,di+1) and one in (dK,dK+ρ∥z∥22].
Proof. (a) If Mx=djx, row j gives ρzj(zTx)=0, so zTx=0, and then (D−djI)x=0 forces x to be a multiple of ej; but zTej=zj=0, a contradiction. (b) For λ not a pole, Mx=λx means (D−λI)x=−ρz(zTx). If zTx=0, then x=0; otherwise x is a multiple of (D−λI)−1z, and taking the inner product with z gives zTx=−ρ(zTx)∑jzj2/(dj−λ), which is f(λ)=0. Conversely, a root gives an eigenvector this way. (c) f′(λ)=ρ∑jzj2/(dj−λ)2>0, so f increases on each interval between poles. On (di,di+1) it goes from −∞ to +∞, so it has exactly one root there. On (dK,∞) it goes from −∞ to 1. At λ=dK+ρ∥z∥2 each term ρzj2/(dj−λ) is at least −zj2/∥z∥2, so f(λ)≥0. That gives K roots for K eigenvalues. □
The case ρ<0 reduces to ρ>0 by D+ρzzT=−((−D)+∣ρ∣zzT), which is what the implementation does.
Lemma 4 (Loewner's formula). Let d1<⋯<dK, ρ>0, and let λ1,…,λK satisfy di<λi<di+1 for i<K and dK<λK. Then
z^j2=ρ∏i=j(di−dj)∏i(λi−dj) is positive, and D+ρz^z^T has the eigenvalues λ1,…,λK.
Proof. Signs: λi−dj<0 for i<j and >0 for i≥j, so the numerator has sign (−1)j−1. In the denominator, di−dj<0 for i<j, also j−1 factors, so z^j2>0. For any z^, det(D+ρz^z^T−λI)=∏i(di−λ)⋅f^(λ) by the matrix determinant lemma, where f^ is the secular function of z^. So the characteristic polynomial is p(λ)=∏i(di−λ)+ρ∑jz^j2∏i=j(di−λ). Put q(λ)=∏i(λi−λ), monic up to the sign (−1)K like p. Both p−q and the interpolation below have degree at most K−1, and at λ=dj, p(dj)=ρz^j2∏i=j(di−dj)=∏i(λi−dj)=q(dj). So p−q vanishes at K distinct points and has degree at most K−1; hence p=q. □
Theorem 1 (merge). In exact arithmetic, with the deflation of Lemma 2 and the exact roots of Lemma 3, lines L6 to L9 give z^=±z componentwise and orthonormal eigenvectors, and Q[S,Idefl] is an orthogonal matrix of eigenvectors of T.
Proof. By Lemma 3 the exact roots strictly interlace, so Lemma 4 applies, and the polynomial identity of Lemma 4 for z itself shows zj2=z^j2. The vectors si=(D−λiI)−1z^ are eigenvectors of the symmetric D+ρz^z^T for distinct eigenvalues, so they are orthogonal; line L8 normalizes them. The deflated unit vectors ei are eigenvectors and are orthogonal to the others because the reduced problem lives on the complementary coordinates. Multiplying by the orthogonal Q of Lemma 1 (and the deflation rotations) gives eigenvectors of T. □
Theorem 2 (correctness and termination). DC-EIG returns the eigenvalues of T and an orthogonal matrix of eigenvectors; it terminates.
Proof. Induction on n. For n=1, line L1 is correct. For n≥2, 1≤m<n, so both halves are smaller, and the induction hypothesis gives their decompositions; Lemma 1 and Theorem 1 finish the merge. Each recursive call works on a strictly smaller matrix, so the recursion has depth ⌈log2n⌉. Each root search runs at most 200 steps, and each step either takes a model point inside the bracket or bisects it. □
Floating point (statements). The computed roots satisfy ∣f(λ^i)∣≤8Ku(1+ρ∑j∣zj2/(dj−λ^i)∣), the stopping test, or the bracket has collapsed to rounding level. Gu and Eisenstat (1995, Section 3) show that, with the differences dj−λ^i computed relative to the nearer pole, z^ from Lemma 4 is close to z in a normwise sense, and the computed eigenvectors are orthogonal to O(Ku) and are exact for D+ρz^z^T to working accuracy. With the deflation bound of Lemma 2(c), the whole method is backward stable: T+E=Q~Λ^Q~T for an exactly orthogonal Q~ with ∥Q~−Q^∥2=O(nu) and ∥E∥2=O(nu∥T∥2), where Q^ and Λ^ are the computed factors.