是否有一种简单的方法来反转三角形(上部或下部)矩阵?

tun*_*nuz 13 c++ math matrix linear-algebra triangular

我正在尝试实现一些基本的线性代数运算,其中一个操作是三角形(上部和/或下部)矩阵的反演.有一个简单而稳定的算法吗?

谢谢.

jas*_*son 14

是的,使用回替代.反转矩阵的标准算法是找到它的LU分解(分解成下三角形和上三角矩阵),在三角形片上使用反向替换,然后组合结果以获得原始矩阵的逆.

  • 通过定义,三角矩阵是方形的. (8认同)
  • 此外,只有方阵才有逆矩阵。 (3认同)

小智 6

如果可以的话,不要颠倒它.这是数值线性代数的基本诫命之一.

将矩阵L本身保持在存储器和计算中要快得多且数值更稳定

inv(L)b
Run Code Online (Sandbox Code Playgroud) 每当你需要用inv(L)做其他事情时,用后向替换.

请注意,反转它的惯用算法需要求解系统

inv(L)[1 0 0 ...],
inv(L)[0 1 0 ....],
inv(L)[0 0 1 ....]
Run Code Online (Sandbox Code Playgroud) 等等,所以你看它根本不容易反转它.