Comma basis: Difference between revisions
+a little note and improve links |
Cmloegcmluin (talk | contribs) m prefer nullspace to null-space |
||
Line 1: | Line 1: | ||
This is a basic introduction to this concept. For a more mathematical take, see [[dual list]]. | This is a basic introduction to this concept. For a more mathematical take, see [[dual list]]. | ||
A '''comma basis''' is a [[basis]] for the [[wikipedia: Kernel (linear algebra)| | A '''comma basis''' is a [[basis]] for the [[wikipedia: Kernel (linear algebra)|nullspace]] (sometimes also called the "kernel") of a [[regular temperament|temperament]]. It consists of <math>n</math> [[wikipedia: Linear independence|linearly independent]] vectors, where <math>n</math> is the [[nullity]], each one representing a [[comma]] that is [[tempered out]]. | ||
Linear independence means that no comma can be found as the sum of any multiples of the other commas. For example, consider the set of three commas 81/80, 126/125, and 225/224. As vectors those are {{vector|-4 4 -1 0}}, {{vector|1 2 -3 1}}, and {{vector|-5 2 2 -1}}. Notice that the third comma is actually the difference between the other two; {{vector|-4 4 -1 0}} - {{vector|1 2 -3 1}} = {{vector|-5 2 2 -1}}, or as cents, 21.51¢ - 13.80¢ = 7.71¢. So, if two of these three commas are ever tempered out (mapped to 0¢), then the third one necessarily is also tempered out. Therefore, we only need to pick two of these commas to put in our comma basis; the third one would be implied. | Linear independence means that no comma can be found as the sum of any multiples of the other commas. For example, consider the set of three commas 81/80, 126/125, and 225/224. As vectors those are {{vector|-4 4 -1 0}}, {{vector|1 2 -3 1}}, and {{vector|-5 2 2 -1}}. Notice that the third comma is actually the difference between the other two; {{vector|-4 4 -1 0}} - {{vector|1 2 -3 1}} = {{vector|-5 2 2 -1}}, or as cents, 21.51¢ - 13.80¢ = 7.71¢. So, if two of these three commas are ever tempered out (mapped to 0¢), then the third one necessarily is also tempered out. Therefore, we only need to pick two of these commas to put in our comma basis; the third one would be implied. | ||
Line 11: | Line 11: | ||
The comma basis is considered the dual of the temperament's [[mapping]] matrix. Temperaments may be identified by either their mapping or comma basis. | The comma basis is considered the dual of the temperament's [[mapping]] matrix. Temperaments may be identified by either their mapping or comma basis. | ||
Functions for finding the | Functions for finding the nullspace 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 nullspace. To learn more about finding the nullspace, see [[Douglas Blumeyer's RTT How-To #The other side of duality]]. | ||
To reverse the | To reverse the nullspace operation, that is, to find a mapping from a comma basis, you can also use the nullspace operation; the relationship between a matrix and its nullspace 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 | 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 nullspace 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 nullspace into a mapping-like form, perform the nullspace operation, and then undo the initial transformation. | ||
This transformation that relates the two directions of | This transformation that relates the two directions of nullspace operations is called the [[wikipedia: Transpose|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 | However, transposing a comma basis, using a mapping-style nullspace 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. | 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. |