Thomas method

The Thomas method can be used to solve effectively the tridiagonal matrix equation.

Let us consider the matrix equation

  1. $${\bf{AY}} = {\bf{Z}}$$

with tridiagonal matrix A

  1. $${\bf{A}} = \left( {\matrix{    {{C_1}} & {{B_1}} & 0 & 0 & {...} & 0  \cr    {{A_2}} & {{C_2}} & {{B_2}} & 0 & {...} & 0  \cr    0 & {{A_3}} & {{C_3}} & {{B_3}} & {...} & 0  \cr    {...} & {...} & {...} & {...} & {...} & {{B_{N - 1}}}  \cr    0 & 0 & 0 & 0 & {{A_N}} & {{C_N}}  \cr   } } \right)$$

$${\bf{Y}} = \left( \matrix{
  {y_1} \hfill \cr
  {y_2} \hfill \cr
  ... \hfill \cr
  {y_N} \hfill \cr}  \right)$$

$${\bf{Z}} = \left( \matrix{
  {Z_1} \hfill \cr
  {Z_2} \hfill \cr
  ... \hfill \cr
  {Z_N} \hfill \cr}  \right)$$

We can look for a solution in the form

  1. $${y_i} = {\alpha _{i + 1}}{y_{i + 1}} + {\beta _{i + 1}}$$

At first, from the boundary condition

$$\eqalign{
  & {y_1} = {y_a}  \cr
  & {y_N} = {y_b} \cr} $$

we can calculate $\alpha_2$ and $\beta_2$ using Eq. (3). Then we can calculate $\alpha_{i+1}$ and $\beta_{i+1}$ recursively for $i=2,...,N-1$ (forward sweep) using the following recurrent formulas

  1. $$\eqalign{
      & {\alpha _{i + 1}} = {{ - {B_i}} \over {{A_i}{\alpha _i} + {C_i}}}  \cr
      & {\beta _{i + 1}} = {{{Z_i} - {A_i}{\beta _i}} \over {{A_i}{\alpha _i} + {C_i}}} } $$ 

Since we know all coefficients $\alpha_i$ and $\beta_i$ for $i=2,...,N$ and we know $y_N$, we can calculate the solution $y_i$ from Eq. (3) for $i=N-1,...,2$ (backward sweep).