我正在尝试实现一些基本的线性代数运算,其中一个操作是三角形(上部和/或下部)矩阵的反演.有一个简单而稳定的算法吗?
谢谢.
是的,使用回替代.反转矩阵的标准算法是找到它的LU分解(分解成下三角形和上三角矩阵),在三角形片上使用反向替换,然后组合结果以获得原始矩阵的逆.
如果可以的话,不要颠倒它.这是数值线性代数的基本诫命之一.
将矩阵L本身保持在存储器和计算中要快得多且数值更稳定
inv(L)b每当你需要用inv(L)做其他事情时,用后向替换.
请注意,反转它的惯用算法需要求解系统
inv(L)[1 0 0 ...], inv(L)[0 1 0 ....], inv(L)[0 0 1 ....]等等,所以你看它根本不容易反转它.