コンマ基底

2025年10月5日 (日) 14:55時点におけるDummy index (トーク | 投稿記録)による版

コンマ基底はテンペラメントを特徴づける線形独立なコンマのリストである。

例えば、7リミットミーントーン225/224126/12581/80テンパーアウトするが、これらのうち2つがあれば残り1個は得られる(例えば (225/224)*(126/125)=(81/80))。これはつまり、3個中2個のコンマが消され(0 セントにマップされ)るなら残り1個も必然的に消えることになる。したがって、3個中2個を示せば十分である。なのでミーントーンのコンマ基底を (81/80, 225/224) などと書く。またはモンゾを並べて [[-4 4 -1 0, [-5 2 2 -1] という形(列ベクトルを並べて表した行列ともみなせる)とも書ける。便宜上周波数比の形で書くことが多い。(どの2個を取り出せばよいのかという観点で)様々な標準形がテンペラメントの識別子のために開発されている。

数学的には、これはテンペラメント(線形写像)の零空間(核)の基底である。n 個の線形独立のベクトルで構成され、ここで nnullityである。各ベクトルはそれぞれテンパーアウトされるコンマを表している。零空間は写像の定義域の部分群をなしていて、基底のベクトルの任意の組み合わせ((81/80)^n*(225/224)^m)が同様にテンパーアウトされている。

マッピングとの関係

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

行列の零空間を求める機能が多くの数学ライブラリで用意されている。零空間が求まればコンマ基底が得られる。零空間を手計算で求める方法については、en:Dave Keenan & Douglas Blumeyer's guide to RTT/Exploring temperaments #Nullspaceを参照のこと。

この操作の逆、つまりコンマ基底からマッピング行列への変換を行いたい場合、同じ方法が使える。


Sageなどいくつかのライブラリは、両方向の機能を提供している。Sageの場合、マッピングからコンマ基底への変換は left_kernel()、コンマ基底からマッピングへの変換は right_kernel() を使う。一方でWolfram Languageの場合、Nullspace[] はマッピングに対して働くように設計されていて、コンマ基底から変換したい場合、コンマ基底をマッピングであるかのように転置してからNullspace[]に通し、結果を転置し直す必要がある。