线性方程组与本征值问题(03):三对角矩阵

所谓 三对角矩阵, 是指形如 \[ \mathbf{A}=\begin{pmatrix} a_1 & c_1 \\ b_2 & a_2 & c_2 \\ & \ddots & \ddots & \ddots \\ & & b_{n-1} & a_{n-1} & c_{n-1} \\ & & & b_n & a_n \end{pmatrix} \] 的矩阵\(\mathbf{A}\). 它同样可以进行 LU 分解, 但分解后的矩阵比较特殊: $$ \[\begin{aligned} \mathbf{L}&=\begin{pmatrix} 1 & \\ \beta_2 & 1 \\ & \ddots & \ddots \\ & & \beta_n & 1 \end{pmatrix} \\ \mathbf{U}&=\begin{pmatrix} \alpha_1 & c_1 \\ & \ddots & \ddots \\ & & \alpha_{n-1} & c_{n-1} \\ & & & \alpha_n \end{pmatrix} \end{aligned}\]

$$

它可以简便地写作矩阵元形式

\[ l_{jj}=1,\ l_{j,j-1}=\beta_j,\ u_{jj}=\alpha_j,\ u_{j,j+1}=c_j \]

根据矩阵元形式计算

\[ a_{jk}=\sum_{m=1}^nl_{jm}u_{mk}=(\alpha_j+\beta_jc_{j-1})\delta_{jk}+c_j\delta_{j,k-1}+\alpha_{j-1}\beta_j\delta_{j, k + 1} \]

与矩阵\(\mathbf{A}\)进行比对, 就可得到

\[ \begin{align} \alpha_1 &= a_1 \\ \beta_j&=\frac{b_j}{\alpha_{j-1}} \\ \alpha_j&=a_j-\beta_jc_{j-1} \\(j&=2,3,\cdots,n) \end{align} \]

这就是三对角矩阵的 Thomas 算法. 它的计算量约为\(8n-7\), 分解本身为\(3n-3\), 如果还需解线性方程组, 还要多\(5n-4\).


线性方程组与本征值问题(03):三对角矩阵
https://notes.rainchan.me/posts/线性方程组与本征值问题(03):三对角矩阵/
作者
Rain Chan
发布于
2024年5月8日
许可协议