A tridiagonal matrix is a special form of banded matrix where all the elements are zero except for those on and immediately above and below the leading diagonal. The above tridiagonal system can be written as a_iu_{i-1}+b_iu_i+c_iu_{i+1} = f_i, for i=1,2,\dots,n . We see that u_{-1} and u_{n+1} are not required and we can set a_1=c_n=0 . In many applications the matrix is symmetric and we have a_i=c_i . The algorithm for solving this set of equations is rather simple and requires two steps only, a forward substitution and a backward substitution. These steps are also common to the algorithms based on Gaussian elimination that we discussed previously. However, due to its simplicity, the number of floating point operations is in this case proportional with O(n) while Gaussian elimination requires 2n^3/3+O(n^2) floating point operations.