1

我正在尝试将 matlab eigs 函数重写为 ARPACK 的 C++ 包装器,因为 arpack++(arpack 的 C++ 包装器)在常规模式下非常慢,移位反转模式无法正常工作。但我被困住了,我需要一脚。:)

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 一样高效的程序。

4

0 回答 0