UCAS-Network-Lab-10~12-TCP Stack
重头戏
重头戏
半年前退坑的我大概也想不到终于有一天我会遗忘这些基础技艺并且会重返Rendering
挺难理解的一次实验
代码量最小的一集
多重网格法是Graphics从业者的标配。——胡渊鸣
最近更新速度比我想的要快,这就出第三篇了。。。也就是稀疏矩阵的直接求解方法。
上一篇讲过了矩阵的一些迭代求解方法,这些方法可以很自然地应用于稀疏矩阵中。然而直接方法就并非如此了。通常,直接方法将矩阵分解为三角阵的乘积(这一步必然是立方复杂度),分别求解。然而,稀疏矩阵的规模巨大,直接套用稠密矩阵的做法并没有充分利用稀疏性,效率必然很低,还有可能导致分解之后退化为稠密矩阵。因此稀疏矩阵求解的直接方法往往比迭代方法复杂很多。
整个话题相当庞杂,因此这篇文章也是长期更新。但是显然我没有那么多工夫去天天折腾数值算法所以说不准哪天本文就永远停更了
这个系列的第二篇从上学期鸽到现在。。。
线性代数最基本的问题就是解线性系统了,但是这也是个很不trivial的问题。
求解线性系统,主要有两类方法,直接求解(分解)或者迭代方法。对于大型稀疏矩阵而言,两种方法各有优势,都有不少深入的文献和代码可以学习。这次简要介绍求解线性系统的迭代方法,直接方法留到这个系列的第三篇(又不知道会鸽到什么时候了,大悲)。
迭代法是一个很大的话题,也有一些专著,比如Yousef Saad(GMRES方法的发明者)的书Iterative Methods for Sparse Linear Systems。这次不仅参考了这本书,同时也参考了徐树方的数值线性代数。当然,由于内容丰富不可能一下子学完,这篇小水文也会随着我的继续学习长期更新写完共轭梯度就咕咕。