Eigen 本征值的就地修改';s LDLT对象

Eigen 本征值的就地修改';s LDLT对象,eigen,Eigen,给定一个矩阵的LDLT分解,我想修改对角线-例如所有值。有没有办法用eigen做到这一点 明确地说,我可以做到: auto-ldlt_=matrix.ldlt() 我想跟进: ldlt_uu.vectorD().cwiseMax(向量::常数(n,ε)) 在解决问题之前: ldlt求解(a) 我没有看到矢量成员的任何非常量访问器-我缺少什么?不,你不能这样做,我认为这样增加小(或负)对角线条目不是一个好主意。如果条目太小,通常的方法是忽略它们(LDLT::solve的默认行为),或者使用matr

给定一个矩阵的LDLT分解,我想修改对角线-例如所有值。有没有办法用eigen做到这一点

明确地说,我可以做到:

auto-ldlt_=matrix.ldlt()

我想跟进:

ldlt_uu.vectorD().cwiseMax(向量::常数(n,ε))

在解决问题之前:

ldlt求解(a)


我没有看到矢量成员的任何非常量访问器-我缺少什么?

不,你不能这样做,我认为这样增加小(或负)对角线条目不是一个好主意。如果条目太小,通常的方法是忽略它们(LDLT::solve的默认行为),或者使用
matrix+eps*I
重新进行因式分解。无论如何,如果您真的想自己调整
D
,那么您必须实现自己的solve函数