我发现Matlab中的rref通过patial pivoting进行高斯消除,例如,让A为5x9矩阵:
0.4898 0.2760 0.4984 0.7513 0.9593 0.8407 0.3500 0.3517 0.2858
0.4456 0.6797 0.9597 0.2551 0.5472 0.2543 0.1966 0.8308 0.7572
0.6463 0.6551 0.3404 0.5060 0.1386 0.8143 0.2511 0.5853 0.7537
0.7094 0.1626 0.5853 0.6991 0.1493 0.2435 0.6160 0.5497 0.3804
0.7547 0.1190 0.2238 0.8909 0.2575 0.9293 0.4733 0.9172 0.5678
rref(A)给出:
1.0000 0 0 0 0 10.9716 -6.2494 33.3062 16.0275
0 1.0000 0 0 0 -2.2910 1.6003 -9.5889 -3.9001
0 0 1.0000 0 0 -3.3952 1.8012 -6.8843 -3.4078
0 0 0 1.0000 0 -8.3071 5.8617 -27.3981 -13.0805
0 0 0 0 1.0000 4.2036 -2.4313 11.1545 5.2517
如何通过执行A的LU分解来获得与rref相同的结果? 我发现LU分解也可以通过部分旋转进行高斯消除。如何用LU替换代码rref? 在[L,U] = lu(A)之后要做的步骤是什么,以获得与上例的rref(A)相同的结果。
答案 0 :(得分:0)
如果您假设 A (大小 nxm )是一个复合矩阵,例如 A =(A1 | A2) A1 a nxn 矩阵和 A2 a nx(mn)矩阵。
如果 A1 是可逆的,那么你可以写 R ,矩阵 A 精简行梯形表 >:
R = A1 ^ -1(A1 | A2)=(Id | A1 ^ -1 A2)
因此,您可以使用LU分解或直接多RHS求解器来计算 A1 ^ -1 A2 。