求解具有矩阵参数的线性系统

计算科学 线性代数
2021-12-22 05:42:40

我们都熟悉解决标准线性系统的许多计算方法

Ax=b.
但是,我很好奇是否有任何“标准”计算方法可以解决更一般的(有限维)线性系统的形式

LA=B,
在哪里,说,A是一个m1×n1矩阵,B是一个m2×n2矩阵,和L是一个线性算子m1×n1矩阵m2×n2矩阵,不涉及对矩阵进行向量化,即将所有内容转换为标准Ax=b形式。

我问的原因是我需要解决以下等式u

(RR+λI)u=f
在哪里R是 2d Radon 变换,R它的伴随,并且两者uf是二维数组(图像)。可以对这个方程进行矢量化,但这很痛苦,尤其是在我们使用 3D 时。

更一般地说,关于nD数组?例如,求解LA=B在哪里AB是 3D 数组(我也需要在某些时候使用 Radon 变换来执行此操作)。

在此先感谢您,如果您觉得有需要,请随时将我送到另一个 StackExchange。

2个回答

是的,你做对了,当你升级到 3-D 时它确实可以正常工作。最简单的部分,真的,是内积——只需在等效的展开上做一个标准的点积Rn向量。由于无论如何您都可能连续存储数据,因此您可以就地执行此操作。这甚至适用于复杂的向量空间——只需将复杂的值视为一对实数值。那是因为对于 CG 你需要真正的内在产品y,xRe(yHx).

当您使用一般线性运算符实现 CG(或类似的迭代方法)时,您必须注意的一件事是正确实现线性运算符的伴随也就是说,人们经常得到,但在实现时会出错。y=F(x)z=F(y)

我建议实施一个利用以下恒等式的简单测试:对于任何符合的 所以你要做的是生成的随机值,分别通过前向和伴随操作运行它们,并计算上面的两个内积。确保它们在合理的精度范围内匹配,并重复几次。xy

y,F(x)=F(y),x.
xy

编辑:如果你的线性算子应该是对称的,你会怎么做?好吧,你也需要验证对称性。所以使用相同的测试,只需注意 ---对应用相同的操作。当然,OP 有一个不对称的算子和一个对称的算子来处理......F=Fxy

事实证明,因为我的系统是对称的和正定的(因为我的线性算子写成),所以共轭梯度可以适应迭代求解这种类型的方程。唯一的修改是在计算内积时——即 CG 中的典型内积计算看起来像在修改后的版本中,我们使用 Frobenius 内积,可以通过对 Hadamard(逐点)积的条目求和来计算。IERR+λIrkTrkpkTApk

A,B=i,jAijBij

我怀疑当我升级到 3D 数组时这会很好,尽管我还没有看到在 3D 数组上定义的 Frobenius 内积(我会假设我可以再次对逐点积求和)。

如果有人知道,我仍然会对更通用的方法感兴趣!