求解A = B + A BA=B+AB没有矩阵逆

计算科学 线性代数 矩阵分解
2021-12-04 00:14:52

我有一个可以表示的线性方程组

A=B+AB,
在哪里AB是实数对称矩阵。我想解决A给定B. 目前,我解决了A直接通过
A=B(IB)1,
逆计算通过LU因式分解。对于最相关的输入B, 反演进展顺利, 但当然, 有时(IB)简直是病态。有没有办法解决A没有显式计算矩阵逆?

2个回答

如果AB是实对称的,那么A=B+AB当且仅当产品AB也是实对称的。反过来,AB=BA仅当存在时才成立AB共享一个共同的特征分解。后一种说法给出了计算的秘诀A给定B.

  1. 给定B, 计算其特征分解B=VΛVT, 其中V是特征向量的正交集,并且Λ=diag(λ1,,λn)是实特征值的对角矩阵。
  2. 计算对角矩阵S=diag(s1,,sn)其中每个sk是相对于相应的定义的λk如在
    sk=λk1λk for all k{1,,n}.
  3. 输出A=VSVT.

事实上,这是求解所需方程的最稳定的数值过程。计算出的A在构造上是完全真实对称的。此外,将所有矩阵-矩阵运算限制为正交变换可以最大限度地减少从问题数据传播到计算解决方案的数值误差。

当然,如果B接近 1。但后一种现象是物理现象,反映了待求解方程的潜在病态。在后一种情况下,我们可以重新构造问题并以最小二乘的方式解决它,使用与上述步骤基本相同的步骤。

你的方程是一个西尔维斯特方程

ABA=B,
有许多解决算法。

我肯定会推荐基于真实 Schur 分解的Bartels-Stewart算法。这些可以以稳定的方式为一般方阵计算并避免复杂的算术;参看。N. Higham的《数值算法的准确性和稳定性》一书中的第 16.1 章。

但是,所有算法都假设方程是唯一可解的,在你的情况下相当于B不具有1作为特征值。对于这种情况,我从未遇到过任何可能有助于在其上构建数值算法的理论。(我对此做了相当多的研究)