Normal forms: Difference between revisions
m Change of name of my wiki article |
Changed a wrong calculation (13 is correct which was written as -13) |
||
| Line 27: | Line 27: | ||
We may write a list of vals (mapping) as a {{nowrap|(''k'', ''d'')}}-shaped matrix (read "k by d", i.e. with ''k'' rows and ''d'' columns), where the rows of the matrix are the vals (maps), and ''d'' is the dimensionality of the system<ref group="note">Calling the {{w|prime-counting function}}, written π(''x''), on the prime limit will give us this number. For examples, {{nowrap| π(2) {{=}} 1 }}, {{nowrap| π(3) {{=}} 2 }}, {{nowrap| π(5) {{=}} 3 }}, {{nowrap| π(7) {{=}} 4 }}, {{nowrap| π(11) {{=}} 5 }}, etc. </ref>. To get the '''defactored Hermite form''', we do the following: | We may write a list of vals (mapping) as a {{nowrap|(''k'', ''d'')}}-shaped matrix (read "k by d", i.e. with ''k'' rows and ''d'' columns), where the rows of the matrix are the vals (maps), and ''d'' is the dimensionality of the system<ref group="note">Calling the {{w|prime-counting function}}, written π(''x''), on the prime limit will give us this number. For examples, {{nowrap| π(2) {{=}} 1 }}, {{nowrap| π(3) {{=}} 2 }}, {{nowrap| π(5) {{=}} 3 }}, {{nowrap| π(7) {{=}} 4 }}, {{nowrap| π(11) {{=}} 5 }}, etc. </ref>. To get the '''defactored Hermite form''', we do the following: | ||
# First, defactor it (a.k.a. make sure it is [[saturated]]).<ref group="note">Historically, this step was not explicitly recognized as necessary for normal forms. The vast majority of normal forms catalogued on the wiki are not contorted/enfactored in the first place, but specifically defining this canonical form to include this requirement is an important step toward ensuring that, which will prevent redundant temperaments from being catalogued. In various domains, normal forms are often required to be unique, however, canonical forms are required to be unique even more often that normal forms are; according to [[Wikipedia: Canonical form]], 'the distinction between "canonical" and "normal" forms varies from subfield to subfield. In most fields, a canonical form specifies a unique representation for every object, while a normal form simply specifies its form, without the requirement of uniqueness.' This is the rationale behind defining ''canonical'' as opposed to merely ''normal''. To be more specific, The HNF does provide a unique representation of ''matrices'', i.e. from a perspective of pure mathematics, and so you will certainly find throughout mathematical literature that HNF is described as providing a unique representation, and this is correct. However, when applied to the RTT domain, i.e. to ''mappings'', the HNF sometimes fails to identify equivalent mappings as such. And the critical flaw with HNF is its failure to defactor matrices – meaning that a contorted mapping matrix has a different Hermite normal form than a non-contorted one with the same kernel – and this is because dividing rows is not a permitted elementary row operation when computing the HNF. See: [https://math.stackexchange.com/a/685922]. The canonical form as described here ''does'' defactor matrices, and therefore it delivers a truly canonical result.<br> | # First, defactor it (a.k.a. make sure it is [[saturated]]).<ref group="note">Historically, this step was not explicitly recognized as necessary for normal forms. The vast majority of normal forms catalogued on the wiki are not contorted/enfactored in the first place, but specifically defining this canonical form to include this requirement is an important step toward ensuring that, which will prevent redundant temperaments from being catalogued. In various domains, normal forms are often required to be unique, however, canonical forms are required to be unique even more often that normal forms are; according to [[Wikipedia: Canonical form]], 'the distinction between "canonical" and "normal" forms varies from subfield to subfield. In most fields, a canonical form specifies a unique representation for every object, while a normal form simply specifies its form, without the requirement of uniqueness.' This is the rationale behind defining ''canonical'' as opposed to merely ''normal''. To be more specific, The HNF does provide a unique representation of ''matrices'', i.e. from a perspective of pure mathematics, and so you will certainly find throughout mathematical literature that HNF is described as providing a unique representation, and this is correct. However, when applied to the RTT domain, i.e. to ''mappings'', the HNF sometimes fails to identify equivalent mappings as such. And the critical flaw with HNF is its failure to defactor matrices – meaning that a contorted mapping matrix has a different Hermite normal form than a non-contorted one with the same kernel – and this is because dividing rows is not a permitted elementary row operation when computing the HNF. See: [https://math.stackexchange.com/a/685922]. The canonical form as described here ''does'' defactor matrices, and therefore it delivers a truly canonical result.<br /> | ||
There is also a rarely mentioned Hermite Canonical Form, or HCF, described here: [http://home.iitk.ac.in/~rksr/html/03CANONICALFACTORIZATIONS.htm], which sort of combines the HNF's constraint and the [[Matrix echelon forms #RREF|RREF]]'s reduced constraint (all pivots equal 1, all other entries in pivot columns are 0, both above and below the pivot), but this is not useful because due to its constraint that all pivots be 1, it does not preserve periods that are genuinely unit fractions of an octave (at first glance, when a pivot is not equal to 1, it might trigger you to think that the mapping is enfactored. But temperaments can legitimately have generators that divide primes evenly, such as 5-limit blackwood, {{rket| {{map| 5 8 0 }} {{map| 0 0 1 }} }}, which divides the octave into 5 parts. So any form that enforces pivots all be 1's, such as HCF and RREF, would fail this criteria.) It also does not qualify as an echelon form, which becomes apparent only when you use it on [[rank-deficient]] matrices, because it does not require the rows of all zeros to be at the bottom; instead it (bizarrely, though maybe it is related to how the SNF requires all pivots exactly along the main diagonal) requires the rows to be sorted so that all the pivots fall on the main diagonal.</ref>. Note that if the matrix was not [[full-rank]], this will result in the elimination of some rows<ref group="note">Note that canonicalizing a mapping does not remove trailing ''dimensions'' with only zeros.<br> | There is also a rarely mentioned Hermite Canonical Form, or HCF, described here: [http://home.iitk.ac.in/~rksr/html/03CANONICALFACTORIZATIONS.htm], which sort of combines the HNF's constraint and the [[Matrix echelon forms#RREF|RREF]]'s reduced constraint (all pivots equal 1, all other entries in pivot columns are 0, both above and below the pivot), but this is not useful because due to its constraint that all pivots be 1, it does not preserve periods that are genuinely unit fractions of an octave (at first glance, when a pivot is not equal to 1, it might trigger you to think that the mapping is enfactored. But temperaments can legitimately have generators that divide primes evenly, such as 5-limit blackwood, {{rket|{{map| 5 8 0 }} {{map| 0 0 1 }}}}, which divides the octave into 5 parts. So any form that enforces pivots all be 1's, such as HCF and RREF, would fail this criteria.) It also does not qualify as an echelon form, which becomes apparent only when you use it on [[rank-deficient]] matrices, because it does not require the rows of all zeros to be at the bottom; instead it (bizarrely, though maybe it is related to how the SNF requires all pivots exactly along the main diagonal) requires the rows to be sorted so that all the pivots fall on the main diagonal.</ref>. Note that if the matrix was not [[full-rank]], this will result in the elimination of some rows<ref group="note">Note that canonicalizing a mapping does not remove trailing ''dimensions'' with only zeros.<br> | ||
In the case of a mapping, this would take the form of an extra column of all zeros to the right of any non-zero entries, or in other words, an unmapped prime higher than other mapped prime. For example you could have {{rket| {{map| 1 0 -4 0 }} {{map| 0 1 4 0 }} }} which is just 5-limit meantone but represented in the 7-limit even though prime 7 is not used.<br> | In the case of a mapping, this would take the form of an extra column of all zeros to the right of any non-zero entries, or in other words, an unmapped prime higher than other mapped prime. For example you could have {{rket| {{map| 1 0 -4 0 }} {{map| 0 1 4 0 }} }} which is just 5-limit meantone but represented in the 7-limit even though prime 7 is not used.<br> | ||
And for a comma basis the form this would take is rotated 90 degrees: a row of all zeros below all other nonzero entries, e.g. [{{vector| 4 -4 1 0 }}].<br> | And for a comma basis the form this would take is rotated 90 degrees: a row of all zeros below all other nonzero entries, e.g. [{{vector| 4 -4 1 0 }}].<br> | ||
| Line 236: | Line 236: | ||
<math> | <math> | ||
\left[ \begin{array} {rrr} | \left[ \begin{array} {rrr} | ||
1 & 0 & -10 & | 1 & 0 & -10 & 13 \\ | ||
0 & 1 & -4 & 4 \\ | 0 & 1 & -4 & 4 \\ | ||
\end{array} \right] | \end{array} \right] | ||
| Line 247: | Line 247: | ||
\left[ \begin{array} {rrr} | \left[ \begin{array} {rrr} | ||
\style{background-color: #F2B2B4; padding: 5px;}{1} & \style{background-color: #F2B2B4; padding: 5px;}{0} & \style{background-color: #F2B2B4; padding: 5px;}{-10} & \style{background-color: #FFF200; padding: 5px;}{ | \style{background-color: #F2B2B4; padding: 5px;}{1} & \style{background-color: #F2B2B4; padding: 5px;}{0} & \style{background-color: #F2B2B4; padding: 5px;}{-10} & \style{background-color: #FFF200; padding: 5px;}{13} \\ | ||
\style{background-color: #C6DC67; padding: 5px;}{0} & \style{background-color: #C6DC67; padding: 5px;}{1} & \style{background-color: #FFF200; padding: 5px;}{-4} & \style{background-color: #46C5DD; padding: 5px;}{4} \\ | \style{background-color: #C6DC67; padding: 5px;}{0} & \style{background-color: #C6DC67; padding: 5px;}{1} & \style{background-color: #FFF200; padding: 5px;}{-4} & \style{background-color: #46C5DD; padding: 5px;}{4} \\ | ||
\end{array} \right] | \end{array} \right] | ||