Matrix echelon forms: Difference between revisions
Cmloegcmluin (talk | contribs) →SNF: add note about useful application in xenharmonics |
Cmloegcmluin (talk | contribs) m prefer nullspace to null-space |
||
| Line 84: | Line 84: | ||
== IRREF == | == IRREF == | ||
'''[[Normal_lists|Integer Reduced Row Echelon Form]]''', or '''IRREF''': based on the name, one might expect this form to be a combination of the constraints for RREF and IREF, and therefore if represented in an [https://en.wikipedia.org/wiki/Euler_diagram Euler diagram] (generalization of Venn diagram) would only exist within their intersection. However this is not the case. That's because the IRREF does not include the key constraint of RREF which is that all of the pivots must be 1. IRREF is produced by simply taking the unique RREF and multiplying each row by whatever minimum value is necessary to make all of the entries integers<ref>Alternatively, IRREF can be computed by finding the | '''[[Normal_lists|Integer Reduced Row Echelon Form]]''', or '''IRREF''': based on the name, one might expect this form to be a combination of the constraints for RREF and IREF, and therefore if represented in an [https://en.wikipedia.org/wiki/Euler_diagram Euler diagram] (generalization of Venn diagram) would only exist within their intersection. However this is not the case. That's because the IRREF does not include the key constraint of RREF which is that all of the pivots must be 1. IRREF is produced by simply taking the unique RREF and multiplying each row by whatever minimum value is necessary to make all of the entries integers<ref>Alternatively, IRREF can be computed by finding the nullspace of a mapping, or in other words, the corresponding [[comma basis]] for the temperament represented by the mapping, and then in turn taking the nullspace of the comma basis to get back to an equivalent mapping. The relationship between the process for finding the IRREF from the RREF and this process is not proven, but thousands of automated tests run as an experiment strongly suggest that these two techniques are equivalent.<br> | ||
<span style="font-family: monospace; font-size: 10px;"><br> | <span style="font-family: monospace; font-size: 10px;"><br> | ||
rref[m_] := RowReduce[m]<br> | rref[m_] := RowReduce[m]<br> | ||
| Line 108: | Line 108: | ||
Print[output] <br> | Print[output] <br> | ||
<br></span><br> | <br></span><br> | ||
There is a difference in that IRREF does not remove rows of zeros in the end for rank-deficient mappings, while this " | There is a difference in that IRREF does not remove rows of zeros in the end for rank-deficient mappings, while this "nullspace'n'back" does, but for most normal cases, they're the same. | ||
</ref>. Of course, this sometimes results in the pivots no longer being 1, so sometimes it is no longer RREF. It is always still REF, though<ref>Also, it will always still satisfy the second aspect of reduced, i.e. that all other entries in pivot columns besides the pivots are zeroes.</ref>, and because it is also always integer, that makes it always IREF; therefore, IRREF is strictly a subcategory of IREF. And because the RREF is unique, and the conversion process does not alter that, the IRREF is also unique. | </ref>. Of course, this sometimes results in the pivots no longer being 1, so sometimes it is no longer RREF. It is always still REF, though<ref>Also, it will always still satisfy the second aspect of reduced, i.e. that all other entries in pivot columns besides the pivots are zeroes.</ref>, and because it is also always integer, that makes it always IREF; therefore, IRREF is strictly a subcategory of IREF. And because the RREF is unique, and the conversion process does not alter that, the IRREF is also unique. | ||