我想在稀疏矩阵上进行部分旋转的 LU 分解。似乎完全旋转对于稀疏矩阵来说非常快速和有效,而部分旋转对于稀疏矩阵来说效率不高。我的猜测是它不支持或针对稀疏进行优化。
A=randn(1e4).*(rand(1e4)<0.0001);
S=sparse(A);
tic; [l,u,p]=lu(A); toc
Elapsed time is 8.699264 seconds.
tic; [l,u,p,q]=lu(S); toc
Elapsed time is 0.006430 seconds.
第二个,完全旋转的速度非常快(1400倍)
我的问题是,怎么可能?当矩阵稀疏时,部分旋转 LU 不应该更有效,并且总是(或几乎总是)比完全旋转更快吗?
有谁知道如何在稀疏矩阵上通过部分旋转来执行快速 LU?
谢谢,吉尔