我正在尝试重写matlab eigs函数作为ARPACK的C ++包装器,因为arpack ++(用于arpack的C ++包装器)在常规模式下非常慢,shift-invert模式无法正常工作。但我陷入了困境,我需要一脚踢。 :)
LU Factorization
Matlab功能:
function [L,U,pp,qq,dgAsB] = LUfactor
AsB = A;
[L,U,pp,qq,dgAsB] = lu(AsB);
end
是否有任何c ++库可以像上面的代码那样返回输出?而且我想问一下qq和dgAsB是什么意思。意思是L和U很清楚也是pp,我在大学学会了它,但我不知道其他人是什么意思。
Arpack OP
function [v] = AminusSigmaBsolve (u)
v = qq*(U \ (L \ (pp*(dgAsB \ u))));
end
定义了用于移位反转模式的Arpack OP(A-sigma * I)^ - 1 * I * u。首先,我无法理解matlab代码与Arpack OP的关系。我想问一下是否存在任何C ++库,我可以用C ++编写AminusSigmaBsolve的效率代码。
感谢您的回答,因为我想在C ++中使用与Matlab一样高效的程序。