![d156f21923c790ea3e339e53be59a8c6.png](https://img-blog.csdnimg.cn/img_convert/d156f21923c790ea3e339e53be59a8c6.png)
本篇为稀疏矩阵求解算法经典论著<Direct Methods for Sparse Linear System>的<读书笔记 8>
4.6 Symbolic analysis
矩阵的符号分析是其数值分解的前导。它通常只包括计算非零模式而不进行数值计算。这使得数值分解可以对具有相同非零模式的矩阵序列进行重复计算(在求解非线性方程时经常出现的一种情况)。符号因子分解包括对因子分解的非零模式的显式表示的计算;一些稀疏的Cholesky算法需要这一点。矩阵的置换对fill-in有很大的影响。通常找到一个fill-reducing置换矩阵
4.7 Up-looking Cholesky
函数cs_cho1是up-looking Cholesky算法的实现。在本书中,用粗体描述代码中相对应的注释,如下:
Nonzero pattern of L(k, :):
Triangular solve:
Compute L(k,k):
执行完整的稀疏Cholesky分解,包括用函数S=cs_schol(order,A)完成fill-reducing preordering和符号分析,接下来用N=cs_chol(A,S),其中order为0,则用自然排序,如果order为1,则用对
4.8 left-looking and supernodal Cholesky
left-looking的Cholesky分解算法比向上的Cholesky分解算法更常用。其伪代码为:
![97cac8c8fd85277ce81bc4bf7dcf4572.png](https://img-blog.csdnimg.cn/img_convert/97cac8c8fd85277ce81bc4bf7dcf4572.png)
它一次计算一列,可以从以下表达式推导得到:
其中,每个矩阵的中间的行和列均为矩阵第
![67355f6b0ec006e8516ea30f1a86c847.png](https://img-blog.csdnimg.cn/img_convert/67355f6b0ec006e8516ea30f1a86c847.png)
该方法要求计算
left-looking的数值分解需要访问
left-looking算法构成了超节点法(supernodal)的基础。在Cholesky分解以及LU分解中,经常会出现以下形式的矩阵,黑色的稠密块(block)即被称为超节点supernodal。考虑到上面提到的公式,三个矩阵中间的行与列可以扩展为维度为
![f3ed311f08415cd2d8845027b42d35d3.png](https://img-blog.csdnimg.cn/img_convert/f3ed311f08415cd2d8845027b42d35d3.png)
chol_super函数是supernodal left- looking Cholesky分解的原型。
![af1a4ec64e8328ca6a760838c8eb2b4e.png](https://img-blog.csdnimg.cn/img_convert/af1a4ec64e8328ca6a760838c8eb2b4e.png)
chol_super依赖于四个关键操作,所有这些操作都可以利用密集的矩阵内核:
1. 一个对称的更新
2. 一个密集的Cholesky分解,函数chol。
3.一个稀疏矩阵乘积,
4. 稠密三角形解
4.9 Right-looking and multifrontal Cholesky
right-looking Cholesky 分解基于以下表达式,其中
可以通过
![45c74772272c33498d0c4666c6227aee.png](https://img-blog.csdnimg.cn/img_convert/45c74772272c33498d0c4666c6227aee.png)
right-looking方法是multifrontal法的基础。multifrontal法与choL_right方法类似,除了对外积
与chol_right不同的是,在前波矩阵中计算的外积不会立即添加到稀疏矩阵