Matrix 求解奇异矩阵

Matrix 求解奇异矩阵,matrix,eigen,finite-element-analysis,singular,unwrap,Matrix,Eigen,Finite Element Analysis,Singular,Unwrap,我正在尝试为网格编写一个小的展开程序。这将使用有限元方法来求解展平表面和原始表面之间的最小线性应力。目前,有一些顶点被固定以获得结果。如果没有这个,三角形将随机旋转和平移 但由于这个问题不需要钉扎,更好的解决方案是直接求解奇异矩阵。Petsc通过提供一些关于零空间的信息,提供了一些解决奇异系统的方法。我想知道在Eigen中是否有其他替代方案。如果没有,是否有其他方法可以在不固定/固定顶点的情况下解决此问题 谢谢, 你好 有关更多信息,请参见此链接: Eigen为SVD分解提供了一种算法: SVD

我正在尝试为网格编写一个小的展开程序。这将使用有限元方法来求解展平表面和原始表面之间的最小线性应力。目前,有一些顶点被固定以获得结果。如果没有这个,三角形将随机旋转和平移

但由于这个问题不需要钉扎,更好的解决方案是直接求解奇异矩阵。Petsc通过提供一些关于零空间的信息,提供了一些解决奇异系统的方法。我想知道在Eigen中是否有其他替代方案。如果没有,是否有其他方法可以在不固定/固定顶点的情况下解决此问题

谢谢, 你好

有关更多信息,请参见此链接:

Eigen为SVD分解提供了一种算法:

SVD分解给出了零空间。按照的符号,设
M=udv
为M的SVD分解,其中
D
是奇异值的对角矩阵。然后,从:

与M的消失奇异值对应的右奇异向量[V]跨越M的零空间


我认为SVD不适合更大的矩阵。我想使用共轭梯度解算器。SVD是一个相当耗时的分解,但在Eigen中的实现非常可靠(关于数值精度)。您的目标矩阵大小是多少?您还可以查看可以为您提供内核的
PartialPivLU
FullPivLU
类。我认为矩阵可以达到10^6 x 10^6,但是非常稀疏和对称。这是一个迭代过程,我使用最后一个结果作为下一个线性解的猜测。我现在对所有3个自由度(2平移一旋转)使用拉格朗日乘数。所以这就限制了x平移,y平移和旋转。这个效果很好。但是我仍然在寻找如何从rhs投影零空间解的答案。如果零空间在分析上是已知的,那么你可以尝试编写一个自定义的预处理器,它将是一个用于消除刚性运动的投影仪。看看