【发布时间】:2014-08-06 14:00:09
【问题描述】:
我需要求解方程Ax = b,其中A 是一个大维矩阵但稀疏。 A 可能高达 70000 x 70000 甚至 30000,我担心!
现在A 也是一个带状矩阵,如下图所示。它由一个三对角矩阵加上上下非对角线中的元素组成。
例如:
x x 0 0 x 0 0
x x x 0 0 x 0
0 x x x 0 0 x
0 0 x x x 0 0
x 0 0 x x x 0
0 x 0 0 x x x
0 0 x 0 0 x x
很遗憾,A 的元素没有任何模式,因为这是有限差分方案的结果。
关于如何在 MATLAB 中有效地解决这个问题有什么建议吗?
谢谢!
【问题讨论】:
-
x = b\A有什么问题?看:mldivide. -
Shai,使用 70000 x 70000 矩阵时,程序变得异常缓慢。
-
@user157279 - 将您的矩阵转换为
sparse,然后再次尝试求解:mathworks.com/help/matlab/ref/sparse.html。此外,求解 70000 x 70000... 显然会很慢。 -
@user157279 Matlab 线性代数函数经过高度优化并考虑了稀疏性 (mathworks.es/es/help/matlab/math/sparse-matrix-operations.html)。如果这很慢,我怀疑你可以让它更快
标签: matlab matrix linear-algebra sparse-matrix pde