ミンコフスキーの疑問符関数

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。おいらのオイラー (会話 | 投稿記録) による 2022年8月30日 (火) 12:40個人設定で未設定ならUTC)時点の版 (Category:エポニムを除去; Category:数学のエポニムを追加 (HotCat使用))であり、現在の版とは大きく異なる場合があります。

ミンコフスキーの疑問符関数

数学において、ミンコフスキー疑問符関数: Minkowski question-mark function)は、Hermann Minkowski (1904, pages 171–172) によって定義された ?(x) と表される関数であり、さまざまな奇妙なフラクタル特性を持つ。この関数は、二次無理数英語版を有理数の二進展開連分数展開する関係式を介して、二次無理数を単位区間内の有理数に写す。この関係式は1938年にアルノー・ダンジョワ英語版(Arnaud Denjoy)によって与えられた。 また、スターン・ブロコット木英語版(Stern–Brocot tree)に密接に関連する再帰的な定義でわかるように、この関数は有理数を二進有理数英語版に写す。

定義

x無理数の場合、x連分数表現[a0; a1, a2, …] とすると、疑問符関数は次のように定義される。

x有理数の場合、x の連分数表現を [a0; a1, a2, …, am] とすると、次のようになる。

直感的な説明

上記の定義を直感的に理解するために、0で始まる無限ビット列を [0, 1] 内の実数と解釈する、2つの相異なる解釈方法を考える。

まず明白な方法は、最初の0の後に2進小数点を置き、二進小数として読む方法である。たとえば、ビット列 001001001001001001001001... は、2進数 0.010010010010... すなわち 2/7 を表す。

別の方法は、ビット列を連分数 [0; a1, a2, …] とみなす方法である。ここで整数 ai は、ビット列を連長圧縮したときの連続回数である。この場合、先ほどと同じビット列 001001001001001001001001...は [0; 2, 1, 2, 1, 2, 1, …] = 3 − 1/2 に対応する。もしビット列で同じビットが無限に続いて終わる場合、それを無視して連分数表現を終了する。この操作の妥当性は以下の恒等式に基づく。

[0; a1, …, an, ∞] = [0; a1, …, an + 1/] = [0; a1, …, an + 0] = [0; a1, …, an].

[0, 1] に対する疑問符関数は、カントール関数三進法表現を二進法表現に写すのと同様に、先程のビット列の2つ目の解釈方法を同じ列の1つ目の解釈方法に写すものと理解できる[1][2]。先程のビット列を例に挙げると、以下の等式が成り立つ。

有理数引数に対する再帰的定義

単位区間内の有理数の場合、関数を再帰的に定義することもできる。 p/qr/s|psrq| = 1 を満たす(ファレイ数列の隣接する項である)既約分数である場合[2]、次のようになる。

初期条件を次のように与えると

ファレイ数列を F2、F3と順に求めることで、任意の有理数 x に対して ?(x) を計算することが可能になる。

pn−1/qn−1pn/qn が同じ連分数をそれぞれ n - 1 段、n 段で打ち切ったものとすると、行列

行列式は ±1 となる。このような行列は、2 × 2 行列で行列式が ±1 となる群 SL(2, Z) の元である。 この群は、モジュラー群に関係する。

アルゴリズム

この再帰的な定義は、次のC言語関数が示すように、任意の実数に対して任意の精度で関数値を計算するアルゴリズムに適している。 このアルゴリズムは、入力 x を探してスターン・ブロコット木英語版を下降する途中で、y = ?(x) の二進展開の項を合計していく。 ループ不変量 qrps = 1が満たされる限り、分数 m/n = p + r/q + s を約分する必要はない。 別の不変量は p/qx < r/s である。このプログラムのforループは、 whileループのように扱われており、最初の3行の条件付きbreak構文が終了条件となる。 ループ内で不変条件に影響を与えるのは最後の2行のみであり、最初の3行がループから抜け出すことなく正常に実行されている限り、両方の不変条件が真であると示すことができる。ループ内部の第三の不変量(浮動小数点精度)は y ≤ ?(x) < y + d であるが、どの条件もテストされる前に、ループの初めに d が半分にされるため、結果的にループの終了時でしか y ≤ ?(x) < y + 2d は担保されない。

プログラムの停止を証明する英語版には、ループの反復ごとに合計 q + s が少なくとも1ずつ増加し、この合計がC言語のプリミティブ型 long で表現するには大きすぎる場合にループが終了することに注意すれば十分である。 ただし実際には、 y + d == y の条件付き break があるため、短時間でループが終了する。

/* Minkowski's question-mark function */
double minkowski(double x) {
  long p = x;
  if ((double)p > x) --p; /* p=floor(x) */
  long q = 1, r = p + 1, s = 1, m, n;
  double d = 1, y = p;
  if (x < (double)p || (p < 0) ^ (r <= 0))
    return x; /* out of range ?(x) =~ x */
  for (;;) { /* invariants: q * r - p * s == 1 && (double)p / q <= x && x < (double)r / s */
    d /= 2;
    if (y + d == y)
      break; /* reached max possible precision */
    m = p + r;
    if ((m < 0) ^ (p < 0))
      break; /* sum overflowed */
    n = q + s;
    if (n < 0)
      break; /* sum overflowed */

    if (x < (double)m / n) {
      r = m;
      s = n;
    } else {
      y += d;
      p = m;
      q = n;
    }
  }
  return y + d; /* final round-off */
}

自己相似性

疑問符関数は明らかに視覚的に自己相似である。 自己相似のモノイドは、単位正方形に作用する2つの演算子 SR によって生成され、次のように定義される。

視覚的には、 S は単位正方形を左下4分の1に縮小し、 R は中心を通る点反射を実行する。

?グラフ上の点は単位区間内の x に対して座標 (x, ?(x)) を持つ。? はすべての x ∈ [0, 1] で以下の等式を満たすため、そのような点は SR によってグラフ上の別の点に変換される。

これら2つの演算子は繰り返し結合され、モノイドを形成する。 モノイドの一般的な要素は正の整数 a1, a2, a3, … に対して

となる。このような各要素によって、疑問符関数の自己相似性が記述される。 このモノイドは周期倍加英語版モノイドとも呼ばれ、すべての周期倍加フラクタル曲線は、周期倍加モノイドによって記述される自己対称性を持つ(疑問符関数はド・ラーム曲線英語版(de Rham curve)の特殊なケースであり、ド・ラーム曲線はこのような自己相似曲線のカテゴリーである)。 モノイドの要素は、a1, a2, a3, …と連分数 [0; a1, a2, a3,…] を同一視することによって有理数と対応づけられる 。

はいずれも整数係数の線形分数変換であるため、モノイドはモジュラー群 PSL(2, Z)の部分集合と見なすことができる。

?(x) の特徴

?(x) − x

疑問符関数は狭義単調増加な連続関数である[3]が、絶対連続ではない。有理数における微分係数はゼロである。積分されたときに疑問符関数を生成する測度には、いくつかの構成法が存在する。そのような構成の1つは、実数直線上のフェリー数の密度を測定することによって得られます。 疑問符測度は、マルチフラクタル測度英語版とも呼ばれるものに対する典型的な例である。 疑問符関数は有理数を二進分数英語版に写す。二進分数とは、上で述べた再帰的定義から帰納的に証明されるように、 その二進表現が終了するものを意味する。このほか、二次無理数英語版を非二進有理数に写す。また、疑問符関数は奇関数であり、関数方程式 ?(x + 1) = ?(x) + 1 を満たすことから、 x → ?(x) − x は、周期 1 の奇周期関数である。 ?(x) が無理数である場合、 x は次数が2より大きい代数的数か、超越数である。

疑問符関数は 0, 1/2, 1、そして少なくとももう2つの不動点を持ち、中点に対して対称である。不動点の一つはは約 0.42037 である[3]

1943年、ラファエル・サレム英語版(Raphaël Salem)は疑問符関数のフーリエ・スティールチェス係数(Fourier–Stieltjes coefficients)が無限大でゼロになるかという問題を提起した[4]。つまり、

となるかどうか、ということである。この問題はギブス測度英語版の結果の特別なケースとして、ジョーダン(Jordan)とザールステン(Sahlsten)[5]によって肯定的に解決された。 ミンコフスキー疑問符関数のグラフは、ド・ラーム曲線英語版と呼ばれるフラクタル曲線の特殊なケースである。

コンウェイの箱関数

? 関数は可逆であり、逆関数も多くの数学者の研究対象となった。特にコンウェイは逆関数を独立して発見し、?−1(x)x の周りに箱を描く x という記法で表現した。箱関数は、x − ⌊ x/2二進数表現のエンコーディングのように計算することができる。ここで x床関数である。二進法表現では小数点の右側に、0 が n1 個、1 が n2 個、0 が n3 個というように続くが、 n0 = ⌊ xとすると、

x = [n0; n1, n2, n3, … ]

である。ここで、右辺は連分数である。

関連項目

脚注

  1. ^ Finch (2003) pp. 441–442.
  2. ^ a b Pytheas Fogg (2002) p. 95.
  3. ^ a b Finch (2003) p. 442
  4. ^ Salem (1943)
  5. ^ Jordan and Sahlsten (2013)

歴史的参考文献

  • Minkowski, Hermann (1904), “Zur Geometrie der Zahlen”, Verhandlungen des III. internationalen Mathematiker-Kongresses in Heidelberg, Berlin, pp. 164–173, JFM 36.0281.01, オリジナルの2015-01-04時点におけるアーカイブ。, https://web.archive.org/web/20150104205306/http://ada00.math.uni-bielefeld.de/ICM/ICM1904/ 
  • Denjoy, Arnaud (1938), “Sur une fonction réelle de Minkowski” (French), J. Math. Pures Appl., Série IX 17: 105–151, Zbl 0018.34602 

参考文献

外部リンク