matlab - matlab中的 block 共轭梯度

标签 matlab optimization linear-algebra

我想求解线性方程组 AX = B,其中 A 是稀疏且正定的。 B 是矩阵而不是列向量。所以我必须求解多个线性方程组(有多个右手边)。我如何在 Matlab 中为此使用共轭梯度?

我可以使用适用于列向量 B 的那个。

最佳答案

Supply B 是列向量 B(:)。此外,以函数形式提供 A 的有效实现,

 [ma,na]=size(A);
 [mb,nb]=size(B);
 afun=@(x)  reshape(A*reshape(x,na,[]),[],1);

 X=pcg(afun,B(:));

  X=reshape(X,na,nb);

关于matlab - matlab中的 block 共轭梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978366/

相关文章:

matlab - 如何在Matlab中更改实例的属性

c# - 如何优化并使其更具可读性

c# - .NET (C#) 中 64 位应用程序的性能优势

python - Python 中多维矩阵(数组)的乘法

matlab - 估计马尔可夫转移矩阵的置信区间

c++ - 将极坐标图像转换为笛卡尔图像

node.js - 如何优化保留文件夹结构的所有子文件夹中的图像?

c++ - 使用 gsl 库并行化线性代数

normalization - 如何将数据归一化为 1,以便每个值都获得与其自身值成比例的权重

文档页面的 MATLAB 标记