【发布时间】:2016-06-22 12:18:13
【问题描述】:
我想求解一个线性方程组,AX = B,其中 A 是相对较大的稀疏正定 JxJ 矩阵。 B 是矩阵而不是维度为 JxS 的列向量。
一种方法是“调整”这个问题,以便标准 pcg 例程可以工作,例如:
design=kron(speye(S),A)
X=pcg(design,B(:));
但是,以上对我来说是不可能的,因为矩阵design 太大而无法存储,即使在利用其稀疏性之后也是如此。因此更好的解决方案是运行 pcg 而不存储矩阵design,即
afun=@(x) reshape(A*reshape(x,J,[]),[],1);
X=pcg(afun,B(:));
X=reshape(X,J,S);
现在我的问题是:有没有办法允许对上面编写的代码使用预处理器(例如,来自 ichol) 不存储任何额外的矩阵?
我这样说是因为X=pcg(afun,B(:)); 需要永远收敛,希望预处理器可以在这种情况下提供帮助。
【问题讨论】:
标签: matlab