Comma basis: Difference between revisions
Cmloegcmluin (talk | contribs) m link to basis |
Cmloegcmluin (talk | contribs) →With respect to the mapping: correction re: transpose and anti-transpose |
||
| Line 13: | Line 13: | ||
Functions for finding the null-space of a matrix are readily available in many math libraries. All you need to do to get a comma basis for a mapping is to find the null-space. To learn more about finding the null-space, see [[Douglas_Blumeyer's_RTT_How-To#The_other_side_of_duality|here]]. | Functions for finding the null-space of a matrix are readily available in many math libraries. All you need to do to get a comma basis for a mapping is to find the null-space. To learn more about finding the null-space, see [[Douglas_Blumeyer's_RTT_How-To#The_other_side_of_duality|here]]. | ||
To reverse the null-space operation, that is, to find a mapping from a comma basis, you can also use the null-space operation; the relationship between a matrix and its null-space essentially works both ways. | To reverse the null-space operation, that is, to find a mapping from a comma basis, you can also use the null-space operation; the relationship between a matrix and its null-space essentially works both ways. | ||
Some math libraries, such as [https://www.sagemath.org/ Sage], provide functions for both directions; in Sage, to go from a mapping to a comma basis, use <code>left_kernel()</code>, and to go from a comma basis to a mapping, use <code>right_kernel()</code>. In other math libraries, such as [https://www.wolfram.com/language/ Wolfram Language], the null-space operation <code>NullSpace[]</code> is primarily designed to work for mappings, and so if you want correct results, you must transform the basis for the null-space into a mapping-like form, perform the null-space operation, and then undo the initial transformation. | |||
This transformation that relates the two directions of null-space operations is called the '''transpose'''. It works by reflecting a matrix's values across its ''main'' diagonal, i.e. either the diagonal running from the top-left corner toward the bottom-right, or the diagonal running from the bottom-right corner toward the top-left. | |||
However, transposing a comma basis, using a mapping-style null-space function, then transposing again, will return a mapping in a strange form, with all of its zeros in the top-right corner, rather than the bottom-left as is preferred. The solution for this problem is to use the '''anti-transpose''' instead of the transpose. This is the same you reflect the matrix's entries across its ''anti-''diagonal (starting from either the top-right or bottom-left corner). | |||
You can remember this because most mappings and comma bases have zeroes in the bottom-left corner, and you want to keep them there; some kind of transpose is necessary to convert the constituent comma vectors columns of the comma basis into rows as if they were constituent generator maps (rows) of a mapping, but a normal transpose of the comma basis would flip its zeroes into the top-right corner instead. | |||
[[Category:Regular temperament theory]] | [[Category:Regular temperament theory]] | ||