編集の要約なし
編集の要約なし
1行目: 1行目:
{{interwiki
| de =
| en = Comma basis
| es =
| ja = コンマ基底
}}
'''コンマ基底'''はテンペラメントを特徴づける{{w|線形独立}}なコンマのリストである。
'''コンマ基底'''はテンペラメントを特徴づける{{w|線形独立}}なコンマのリストである。


6行目: 12行目:


== マッピングとの関係 ==
== マッピングとの関係 ==
コンマ基底はテンペラメントの[[マッピング]]行列の双対と考えられる(ヴァルとモンゾの双対関係と似て…いるか?双対空間そのものではなく{{w|双対ベクトル空間 #商空間と零化域}}あたり?)。テンペラメントはマッピングまたはコンマ基底により特定される。
コンマ基底はテンペラメントの[[マッピング]]行列の双対と考えられる(ヴァルとモンゾの双対関係と似て…いるか?双対空間が舞台だとしてもそのものではなく{{w|双対ベクトル空間 #商空間と零化域}}あたり?)。テンペラメントはマッピングまたはコンマ基底により特定される。


行列の零空間を求める機能が多くの数学ライブラリで用意されている。零空間が求まればコンマ基底が得られる。零空間を手計算で求める方法については、[[:en:Dave Keenan & Douglas Blumeyer's guide to RTT/Exploring temperaments #Nullspace]]を参照のこと。
行列の零空間を求める機能が多くの数学ライブラリで用意されている。零空間が求まればコンマ基底が得られる。零空間を手計算で求める方法については、[[:en:Dave Keenan & Douglas Blumeyer's guide to RTT/Exploring temperaments #Nullspace]]を参照のこと。
14行目: 20行目:
<!-- When applied to convert between [[wedgies]] and "multimonzos" (the wedgie version of a comma basis), the equivalent operation is the [[Hodge dual|Hodge star]]. -->
<!-- When applied to convert between [[wedgies]] and "multimonzos" (the wedgie version of a comma basis), the equivalent operation is the [[Hodge dual|Hodge star]]. -->


[https://www.sagemath.org/ Sage]などいくつかのライブラリは、両方向の機能を提供している。Sageの場合、マッピングからコンマ基底への変換は <code>left_kernel()</code>、コンマ基底からマッピングへの変換は <code>right_kernel()</code> を使う。一方で[https://www.wolfram.com/language/ Wolfram Language]の場合、<code>Nullspace[]</code> はマッピングに対して働くように設計されていて、コンマ基底から変換したい場合、コンマ基底をマッピングであるかのように{{w|転置行列|転置}}してからNullspace[]に通し、結果を転置し直す必要がある。
[https://www.sagemath.org/ Sage]などいくつかの数学ライブラリは、両方向の機能を提供している。Sageの場合、マッピングからコンマ基底への変換は <code>left_kernel()</code>、コンマ基底からマッピングへの変換は <code>right_kernel()</code> を使う。一方で[https://www.wolfram.com/language/ Wolfram Language]の場合、<code>Nullspace[]</code> はマッピングに対して働くように設計されていて、コンマ基底から変換したい場合、コンマ基底をマッピングであるかのように{{w|転置行列|転置}}してから <code>Nullspace[]</code> に通し、結果を転置し直す必要がある。


細かいことだが、上三角行列を用いる流儀のライブラリ上でこの転置テクニックを使うと、出てくるマッピング行列が下三角行列(右上が0)になる場合がある。これはマッピング行列としては見慣れない形で、基本的に左下が0、1番左の列は1番上以外0になる(すると1番目のジェネレーターがオクターブまたはその等分になる)ほうが解釈しやすい。まあライブラリを使っているならそのままエルミート標準形などに変換すればよいのだが、別の対策としては転置ではなく「反転置」(右上と左下を入れ替えるのではなく、右下と左上を入れ替える、あるいは、行列を転置しさらに180度回す)を用いることで0を左下に集めることができる。