如何获得大型矩阵的减少梯队

时间:2017-10-31 22:37:11

标签: linear-algebra numerical-methods

我有一个大的2000 x 3000矩阵,其中最后的操作是计算缩减行的exchelon形式,以便矩阵条目更简单。例如,我们可以从一个小矩阵开始(例如从Reduced Row Echelon Form (rref)借来的)

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

但希望最终得到更简单的内容,例如:

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

我们可以通过计算减少的行梯队来做到这一点。这对我们来说很方便,因为矩阵中的条目具有物理意义,更容易以简化形式解释。

我的问题是,是否有公认的方法来计算减少的行梯形形式,这种形式在数值上更稳定,我认为应用程序如Matlab用于实现其rref的常用Gauss-Jordan分支。或者高斯乔丹与大型矩阵同样适用吗?

我看到了这个问题/答案Python: reduced row echelon form (mod p) of a very large matrix,他使用高斯乔丹,这表明它适用于大型矩阵。有没有人有计算大型矩阵的减少梯队的经验?

Reduced Row Echelon Form (rref)中有一个答案,但我不确定它是否正确,也许有人可以评论这个答案:

"来自LU分解的矩阵U是A的行梯形形式。如果你想要简化形式,你只需要减少U.也就是说,缩放每一行以使枢轴为1然后减去多个行以取消数据透视列中的值"

更新:即使上述建议是正确的,我也意识到我仍然必须取消枢轴列中的值,这可能会引入舍入错误。

0 个答案:

没有答案