多层自适应交叉近似(MLACA)算法:原理、实现与应用
1. MLACA块右侧项(Block-RHS)求解
对于具有多个右侧项的问题,可对算法进行调整后应用。在步骤4和10的回代之前,需先将[LU]bb重构为全尺寸,此操作速度快且开销小。尽管LU矩阵的块采用MLACA压缩,但这里使用单级ACA来压缩右侧项块。因此,会出现U或V型MLACA压缩的LU矩阵块与单级ACA压缩的右侧项矩阵块之间的矩阵乘积。
具体计算步骤如下:
1. 先计算中间乘积:
- (C_{k_A\times k_B}=A_{k_A\times n_1}^vB_{m_2\times k_B}^u)
2. 若A为U型,接下来执行(A^uC)还是(CB^v)取决于哪种路径的总运算次数最少。若A为V型,由于(A^u)是稀疏块矩阵,先执行最左侧的乘积(A^uC):
- (D_{m_1\times k_B}=A_{m_1\times k_A}^uC_{k_A\times k_B})
3. 最后得到:
- ([AB] {m_1\times n_2}=D {m_1\times k_B}B_{k_B\times n_2}^v)
以下是MLACA压缩块右侧项求解的算法:
Algorithm 13 MLACA-Compressed Block-RHS Solution
1: Given LU X = B, first solve UX = L−1B:
2: for b = 1 to M do
3:
Reconstruct [LU]bb
4:
Bb =
超级会员免费看
订阅专栏 解锁全文
2842

被折叠的 条评论
为什么被折叠?



