Method tridiagonal() handles all cases now.
Added diagonal_vector() and tridiagonal_vector().