用特征值求解稀疏矩阵

时间:2016-02-24 00:01:56

标签: matrix constraints sparse-matrix eigen particle-system

我正在编写基于this论文的基于约束的粒子系统。约束C的雅可比行列式与系统中的粒子数量和约束数量成比例。因为每个约束通常只有几个依赖于它的粒子,所以矩阵将非常稀疏。我认为在Eigen中使用稀疏矩阵来解决系统可能是有益的。根据{{​​3}},似乎有几种不同的方法来解决这些稀疏矩阵方程。我的问题是:

  1. 这些矩阵的大小首先需要使用sparce矩阵吗?我需要存储雅可比行列式及其时间导数。每个都是Mx3N矩阵,其中M是约束的数量,N是粒子的数量。我的粒子系统的用户可能会在合理范围内添加任意数量的粒子。
  2. 密集矩阵上的稀疏矩阵表示的参数更多是关于性能或内存消耗的。稀疏矩阵能否比密集矩阵更快地求解?这取决于什么?
  3. 我对这些求解器的实现并不是很了解。我没有非常研究这些算法,特别是在稀疏矩阵方程的背景下。这些算法的性能如何?我应该选择哪一种?我记得几年前在我的线性代数课上学习了一些它们,我相信它们中的很多都是O(n ^ 3),对于像本文所描述的那样的系统来说它似乎不会很好。

1 个答案:

答案 0 :(得分:0)

如果N小于1000,那么你可能会使用密集存储,否则最好使用稀疏表示。每行非零的数量应该非常小,比如10左右,不超过100,以保持求解器的效率。稀疏求解器的复杂性实际上小于O(N * K),其中K是非零的数量。因此,对于非常稀疏的矩阵,它们可以比密集解算器快几个数量级。