【发布时间】:2013-06-30 11:13:06
【问题描述】:
我想在稀疏矩阵上进行部分旋转的 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?
谢谢, 吉尔
【问题讨论】:
-
在第一行尝试
lu分解S,而不是A。您正在比较两个没有真正可比性的操作。 -
是的,但是如果我将它应用到 S 上,它甚至比在 A 上还要慢。
-
不,不是。在这种情况下,你做错了什么。你能展示你对那个案例的结果吗?
-
你是对的。很抱歉给您带来麻烦,谢谢!
标签: matlab matrix linear-algebra sparse-matrix