# Convergence of QZ algorithm

When performing QZ iterations on matrices A and B where A is upper hessenberg to begin with and B is upper triangular, how can one tell when the algorithm has converged? I understand that if it consists of only real eigenvalues then the subdiagonal entries of A will approach zero. However, complex eigenvalues remain below the diagonal of A. Is there a way to determine when all of the values below the subdiagonal of A that are supposed to be zero are in fact zero while the ones that are supposed to remain are still there?

• The subdiagonal entries converge toward zero with the factor $\frac{|p(λ_{k+1})|}{|p(λ_{k})|}$ where $p$ is the polynomial collecting the current multi-shift pattern and the eigenvalues are ordered so that the sequence of the $|p(λ_{k+1})|$ is decreasing. So the subdiagonal entries will get smaller where these polynomial values are different. Only conjugate complex pairs and multiple eigenvalues will not separate. You can compare the subdiagonal entry to the neighboring diagonal entries, if the relative size is small enough, which sometimes is taken as large as a factor of $10^{-5}$. – Lutz Lehmann Mar 3 '14 at 18:26