In mathematics, a bidiagonal matrix is a banded matrix with non-zero entries along the main diagonal and either the diagonal above or the diagonal below. This means there are exactly two non-zero diagonals in the matrix.
When the diagonal above the main diagonal has the non-zero entries the matrix is upper bidiagonal. When the diagonal below the main diagonal has the non-zero entries the matrix is lower bidiagonal.
For example, the following matrix is upper bidiagonal:
\begin{pmatrix} 1&4&0&0\\ 0&4&1&0\\ 0&0&3&4\\ 0&0&0&3\\ \end{pmatrix}
and the following matrix is lower bidiagonal:
\begin{pmatrix} 1&0&0&0\\ 2&4&0&0\\ 0&3&3&0\\ 0&0&4&3\\ \end{pmatrix}.
One variant of the QR algorithm starts with reducing a general matrix into a bidiagonal one,[1] and the singular value decomposition (SVD) uses this method as well.
See main article: Bidiagonalization.
Bidiagonalization allows guaranteed accuracy when using floating-point arithmetic to compute singular values.[2]