给定一个$ n times n $ matrix $ mathbf {a} $。令$ mathbf {a} $ be $ mathbf {a}^{ - 1} $(即,$ mathbf {a} mathbf {a}^{ - 1} = mathbf {i} } $)。假设更改了$ mathbf {a} $中的一个元素(假设$ a _ {ij} $到$ a'_'_ {ij} $)。目的是在此更改之后找到$ mathbf {a}^{ - 1} $。是否有一种方法可以找到该目标比从头开始重新计算逆矩阵更有效的方法。

有帮助吗?

解决方案

Sherman-Morrison公式 有帮助:

$$(a + uv^t)^{ - 1} = a^{ - 1} - frac {a^{ - 1} uv^ta^{ - 1}}} {1 + v^ta^{ - 1 } u}。 $$

令$ u =(a'_ {ij} -a_ {ij})e_i $和$ v = e_j $,其中$ e_i $是标准基列向量。您可以检查是否已更新的矩阵为$ a'$ then $$ a^{ prime -1} = a^{ - 1} - frac {(a'_'_ {ij} -a__ {ij {ij})a^a^ {-1} _ {i rightarrow} a^{ - 1t} _ { downarrow j}}}} {1 +(a'_ _ {ij} -a_ {ij {ij})a^{ - 1} 。$$

其他提示

单个元素更改,给定$ a $带有$ a^{ - 1} $的$ A $,可以通过排名一个更新来跟踪。因此,是的,绝对有一个更好的方法,而不是重新计算从头开始的倒数。

令$ delta = a_ {ij}' - a_ {ij} $为元素$ a_ {ij} $的更改。使用$ e_i $作为$ i $位置中的一个单位列向量,而在其他地方为零,我们有$$(a + e_i delta e_j^ top)a^{ - 1} = i + e_i + e_i delta e_j^^ top a^{ - 1} $$

$ e_i delta e_j^ top $是零矩阵,除了$ ij $位置中的$ delta $的值。您能在这里看到合适的等级如何使用$ a^{ - 1} $提供所需的新逆乘法? (或等效地,$ a^{ - 1} $上的基本列操作。)

或者,如果您想进行行操作,则可以使用$$ a^{ - 1}(a + e_i delta e_j^ top)= i + a^{ - 1} e_i delta e_j^ top $$

在第一种情况下,我们具有添加一行的身份。这很容易进行列操作,以便再次获得身份。在$ a^{ - 1} $上进行这些操作,结果是根据需要的新逆。第二种情况是添加列的身份。在这种情况下,您可以改用行操作。您可以选择更方便的选择。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top