0

I have a large 2000 x 3000 matrix where the final operation is to compute the reduced row exchelon form so that the matrix entries are simpler. eg for a small matrix we might start with (example borrowed from 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

but want to end up with something simpler such as:

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

We can do this by computing the reduced row echelon. This is convenient for us because the entries in the matrix have a physical meanings which is easier to interpret in the reduced form.

My question is are there recognized approaches for computing the reduced row echelon form that are more numerically stable that the commonly used Gauss-Jordan elmination which I think applications such as Matlab use for implementing their rref. Or is it the case the Gauss Jordan works equally well with large matrices?

I saw this question/answer Python: reduced row echelon form (mod p) of a very large matrix and he uses Gauss Jordan which suggests that it works ok with large matrices. Does anyone have any experience in computing reduced echelons for large matrices?

There is an answer in Reduced Row Echelon Form (rref) but I am not sure if it is correct, perhaps someone can comment on this answer:

"The matrix U from an LU factorization is the row echelon form of A. If you want the reduced form, you just need to reduce U. That is, scale each row so the pivots are one and then subtract multiples of rows to cancel values in pivot columns"

Update: Even if the above suggestion is right, I realized I still have to cancel values in the pivot columns which could introduce rounding errors.

rhody
  • 2,274
  • 2
  • 22
  • 40
  • You must implement partial or total pivoting for numerical stability. –  Nov 01 '17 at 14:10
  • That is true, but I was just wondering there are any other approaches that have been developed. – rhody Nov 01 '17 at 15:34

0 Answers0