Performs Gaussian column reduction on a matrix M, retaining only the linearly independent columns.
i1 : M = matrix {{1., 2, 3}, {2, 4, 0}, {-1, -2, 3}}
o1 = | 1 2 3 |
| 2 4 0 |
| -1 -2 3 |
3 3
o1 : Matrix RR <--- RR
53 53
|
i2 : colReduce(M, Tolerance=>0.01)
o2 = | 1 1 |
| 0 1 |
| 1 0 |
3 2
o2 : Matrix RR <--- RR
53 53
|
Entries with absolute value below the tolerance are treated as zero and not used as pivots.
i3 : N = matrix {{0.001, 0, 0}, {1, 1, 3}, {2, 2, 5.999}}
o3 = | .001 0 0 |
| 1 1 3 |
| 2 2 5.999 |
3 3
o3 : Matrix RR <--- RR
53 53
|
i4 : colReduce(N, Tolerance=>0.01)
o4 = | 0 |
| .500083 |
| 1 |
3 1
o4 : Matrix RR <--- RR
53 53
|
The lower rows are treated as the lead terms unless the optional argument Reverse is set to true.
i5 : colReduce(M, Reverse=>true)
o5 = | 1 0 |
| 0 1 |
| 1 -1 |
3 2
o5 : Matrix RR <--- RR
53 53
|
If the optional argument Normalize is set to true (default) each vector is normalized so that the lead entry is 1. Otherwise this step is skipped.
i6 : colReduce(M, Normalize=>false)
o6 = | 3 4 |
| 0 4 |
| 3 0 |
3 2
o6 : Matrix RR <--- RR
53 53
|
The object colReduce is a method function with options.