個人的な好みですが、微分可能だけど導関数は不連続な関数(など)のようなお茶目な関数にグッときます。いやぁ、
などといった滑らかな関数も魅力的なんですけどねぇ、他の関数からチヤホヤされていそうなのでわがままな人が多いのかなぁ…って私は何を書いているのだ。
さて、今回は私がとても好きな関数であるトマエ関数を紹介したいと思います。
トマエ関数とは
トマエ関数(Thomae's function,ドイツの数学者Carl Johannes Thomaeに因む)とは、実数に対して
\[T(x)=
\begin{cases}
\frac{1}{q} & (x=\frac{p}{q}\in\mathbb{Q},\;p, q\;\text{は互いに素な整数},q>0)\\
0 & (x\in\mathbb{R}\setminus\mathbb{Q})
\end{cases}\]と定義される実数値関数です。
例えば、\begin{align}
T\left(\frac{1}{2}\right) &=\frac{1}{2}\\
T\left(\frac{1}{3}\right) =T\left(\frac{2}{3}\right) &=\frac{1}{3}\\
T\left(\frac{1}{4}\right) =T\left(\frac{3}{4}\right) &=\frac{1}{4}\\
T\left(\frac{1}{5}\right) =T\left(\frac{2}{5}\right)=T\left(\frac{3}{5}\right)=T\left(\frac{4}{5}\right) &=\frac{1}{5}
\end{align}といった具合です。,
のように、無理数の場合はなんでも0に写します。
「あれ?が抜けてる?」
と思ったかもしれませんが、と約分できるので要りません。むしろ
としてしまうと、
かつ
となってしまい、
の行き先が1つに定まりません。こういう状態を引き起こさないために、有理数の場合は「
は互いに素な整数」として
という表示に限定する必要があります。また、
といった表示がありえるので「
」の方に固定して考えます。
グラフの概形はこんな感じです(の範囲)。
軸付近がブゥワーーってなっていますが、線対称でキレイなグラフですね。先ほど確認したように、よく見れば
の点は
に、
と
の点は
に写されているのが分かると思います。
またその見た目から、
- ポップコーン関数(Popcorn function)
- 雨滴関数(Raindrop function)
- 可算雲関数(Countable cloud function)
- バビロンの星(Stars over Babylon)
などの名前が付いてるらしいです。



個人的には、最近話題になった「トルコのステーキレストランの料理人が振りかける塩」にも見えます。
【Thomae's function】無理数の点で連続、有理数の点で不連続という不思議な関数。「ポップコーン関数」「雨滴関数」「トルコのステーキレストランの料理人が振りかける塩関数」などの名前が付いている。 pic.twitter.com/f9Xm8OfyIN
— コロちゃんぬ (@corollary2525) 2017年5月19日
トマエ関数の性質
トマエ関数にとても惹かれる理由は何といっても次の性質です。
有理数で不連続なのはポツンと浮いているので明らかだと思います。しかし、無理数で連続なのは意外だったのではと思います。私が大学1年生のとき、微分積分の教科書の演習問題の中でこの関数にはじめて出会いました。話を聞いてみると無理数で連続であることを知って今までの連続のイメージとは違う所に心を奪われました。
トマエ関数が無理数で連続であることを簡単に説明しましょう。ある無理数に注目しそれを含む区間を狭めていくと、その区間に潜む有理数たちの分母はどんどん大きくなってしまいます。したがって、無理数の付近でのトマエ関数のとる値は、散らばってはいますが0に近い値なのです。これに似た状況にある関数として、例えば
\[f(x)=
\begin{cases}
x^2 & (x\in\mathbb{Q})\\
0 & (x\in\mathbb{R}\setminus\mathbb{Q})
\end{cases}\]があります。有理数はによって放物線上に散らばりますが、原点で連続です。

さらにトマエ関数には次のような性質がありますが、どれもグッときます。
ここまでの性質はすべてWikipediaに詳しく載っています。
Thomae's function - Wikipedia
しかし、トマエ関数のことが好きな私にとってはこのまま記事を終わらせたくありません。ちょっとしたことでもいいから、Wikipediaに載ってない事実を見つけたかったのです。そして、トマエ関数のことをしばらく考えていたら、トマエ関数の連続関数の二重極限による表示を発見したのでご紹介します。
トマエ関数の連続関数の二重極限による表示
すべての点で不連続な関数として有名なディリクレ関数があります。
\[D(x)=
\begin{cases}
1 & (x\in\mathbb{Q})\\
0 & (x\in\mathbb{R}\setminus\mathbb{Q})
\end{cases}\]この関数は次の表示をもつことが知られています:
\[
D(x) = \lim_{n \to \infty}\lim_{k \to \infty}(\cos (n!\pi x))^{2k}.
\]場合分けで定義された関数が一本の式で表示できるのは驚きですね。この式の解説は鯵坂もっちょさんによる以下の記事がとても分かりやすいです。
www.ajimatics.com
そこで、私はこの表示を使ってトマエ関数も一本の式で表示できるのでは?と思いました。そこでいろいろ考えてみた結果がこちらです:
T(x) = \lim_{n \to \infty}\lim_{k \to \infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}
\]ここで,
ディリクレ関数の二重極限の中にを掛けることで有理数
を
に写す関数を作ることができました!極限の中身を
\[T_{n,k}(x):=\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}\]とおき、で固定して
としたときの
の様子がこちらになります。
毎度おなじみDesmosの方もご確認ください。
トマエ関数
注意: にするとグラフが鋭すぎて上手く表示されません。また、Desmosの
はデフォルトで
が備わっています。
これで連続関数がトマエ関数に収束していくようにみえたと思います。まずは、
から
が生み出される鍵となる次の命題を証明します。
\[
\lim_{n\to\infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}=\dfrac{1}{q}.
\]
証明 とする(
と
は互いに素な整数で
).
とするので
としてよい.このとき,
\begin{align}
n! &=n\cdot(n-1)\cdots(q+1)\cdot q\cdot(q-1)!\\
n!x &=n\cdot(n-1)\cdots(q+1)\cdot p\cdot(q-1)!
\end{align}となる(いわずもがな,は整数であるから
).よって,
と
は互いに素なので\[\gcd(n!x,n!)=n\cdot(n-1)\cdots(q+1)\cdot(q-1)!=\dfrac{n!}{q}.\]したがって,
が十分大きければ
となるので
\[
\lim_{n\to\infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}=\dfrac{1}{q}
\]が示された.■
\[
g(x)=\lim_{n\to\infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}
\]とおいたとき、
そして、二重極限表示が正しいことを示します。
\[
T(x) = \lim_{n \to \infty}\lim_{k \to \infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}
\]が成り立つ.
証明 とおく.
を示せばよい.
まずはのとき(
と
は互いに素な整数で
)を考える.
に対しては命題1より
であり,
であるから
(どちらの値も
に依らない定数!).よって
が十分大きければ
であるから
\[
\lim_{n\to\infty}T_n(x)=\dfrac{1}{q}
\]が成り立つ.
が無理数のときは
なので
\begin{align}
\left|\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}\right| &\le(\cos (n!\pi x))^{2k}\\
&\longrightarrow0\quad(k\to\infty)
\end{align}であることから.よって
\[
\lim_{n \to \infty}T_n(x)=0
\]が成り立つ.■
最後に、任意のに対して
が連続であることを一言述べて終わります。任意の
に対して
は
上定数なので
で
が連続であることを示せば十分ですが、
であることから
\[\lim_{x\to x_m-0}T_{n,k}(x)=\lim_{x\to x_m+0}T_{n,k}(x)=0\]が直ちに従います。
以上より、トマエ関数が連続関数の二重極限表示というお茶目な一面をみせてくれました。愛くるしいなぁトマエは。
トマエ関数の連続関数の一重極限による表示
前節までの多くは先日行われた第10回日曜数学会で発表させていただきました。そして、その発表の生放送を見てくださったせきゅーんさんのご指摘により、トマエ関数は一重極限表示できることが分かりました!!
\[
T(x) = \lim_{n \to \infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos(n!\pi x))^{2k}.
\]
についての極限はいらなかったんだ…。なんと、詳しい解説をせきゅーんさんが書いてくれましたので、こちらをぜひご参照ください:
付録 by せきゅーん
スペースを頂いて若干補足させていただきます。関数はのみを扱います。本文でも解説されているようにディリクレ関数は二重極限表示を用いて表示することができ、コロちゃんぬさんはそれを元にトマエ関数の二重極限表示を与えました。ここで、もっちょさんの記事に影響されてせきゅーんが書いた記事を思い出します:
連続関数の各点収束関数として表示することができる関数(一重極限表示を持つ関数)のことをベール級関数といい、ベール
級関数の各点収束関数として表示することができる関数(二重極限表示を持つ関数)のことをベール
級関数といいます。この言葉を用いるとディリクレ関数はベール
級関数ですが、上の記事においてディリクレ関数がベール
級関数ではないことの証明を解説しています。
つまり、ディリクレ関数は二重極限表示が最善であって一重極限表示は持たないのです!
証明は「ベール級関数は一般に連続関数ではないが、連続である点が稠密に分布する必要がある」ということを示すことによって、至る所不連続なディリクレ関数はベール
級関数ではないことがわかるという論法でした。
以上のことを踏まえると、コロちゃんぬさんによる二重極限表示によってトマエ関数はベール級関数であることがわかりますが、本文で述べているようにトマエ関数は任意の無理数で連続であるため、ディリクレ関数とは違って「ベール
級関数でもおかしくないのでは?」という疑問が生じます。実は不連続点のなす集合が高々可算であるような関数はベール
級関数であることが一般的に知られています。トマエ関数の不連続点のなす集合は
なので可算であり、一般論によりベール
級関数であることが確定します。つまり、一重極限表示を持つはずです。
ところで、本文中のアニメーションを見るとを固定しているにも関わらず
は
でトマエ関数に収束するような気がしてきます。これが気のせいではないということを示すのが上記命題の主張です。中身の関数である
が連続関数である事は既に解説されているので、トマエ関数のベール
級関数としての具体的な表示を与えたことになります。
命題の証明 が有理数のときに
に依存せず収束することは命題2の証明で既に解説されているため,
が無理数のときのみ考察対象となる. 実数全体を長さ
の区間で分割することによって,
毎に整数
が存在して
は開区間
\[
I_n:=\left(\frac{2m_n-1}{2n!}, \frac{2m_n+1}{2n!}\right)
\]
に属する(は無理数なので区間の端になることはない). また, 細分されていくので
\[
I_1 \supsetneq I_2 \supsetneq I_3 \supsetneq \cdots
\]
となっている(は一意的に定まることに注意).
の既約分数表示を
(
と
は互いに素で
, 整数
を用いて
と書ける)とする. このとき,
\[
m_n-\frac{1}{2} < n!x < m_n+\frac{1}{2}
\]
なのでであり,
\[
\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}=\dfrac{\gcd(m_n, n!)}{n!}=\dfrac{\gcd(p_na, q_na)}{q_na}=\frac{a}{q_na}=\frac{1}{q_n}
\]
を得る. 区間の長さが小さくなっていくことからであり,
であることと, 有界な区間に存在する一定の分母を持つような有理数が有限個しか存在しないことから
がわかる. 従って,
\[
\begin{split}
T_{n, k}(x) &= \dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos(n!\pi x))^{2k} \leq \dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!} = \frac{1}{q_n} \\ &\longrightarrow 0 \quad (n \to \infty)
\end{split}
\]
が示された. ■
まとめ
書き手がコロちゃんぬに代わります。せきゅーんさんありがとうございました。
私はWikipediaに載ってない性質を見つけたいという一心でトマエ関数を連続関数の二重極限で表示することができました。そして、せきゅーんさんのご指摘によって一重極限表示できる(ベール級関数である)ことが分かりました(すごい)。また、「付録」として解説をつけたいとせきゅーんさんの方からお声をいただき、このような形でコラボさせていただきました。重ねてお礼申し上げます。
せきゅーんさんの解説にもある通り、一般に不連続点が高々可算であればベール級関数であることが知られているため、トマエ関数は一重極限表示をもつことを保証されます。しかし、あくまで一重極限表示の「存在」を保証するだけなので、「具体的な表示」が求まるとは限りません。なので、トマエ関数を「具体的に」一重極限表示を求めた研究や文献が既に発表されていてもおかしくありません。しかし、現在Google検索やMathOverflow(数学者が答えてくれる質問サイト)で頑張って探しているのですが見つからないんですよね(別名が多いので検索が大変)。もしかして一番乗りなんでしょうか?一番乗りなら調子に乗って論文書いちゃいますよ(ブログで公開してしまったけど)?本当は既出だが英語の論文でないから引っかからないんでしょうか?トマエ関数に関する先行研究についてご存知の方がいましたら教えていただけると幸いです。
実はWikipediaに載ってないトマエ関数の性質(応用例)がもう一個あります(どんだけ好きやねん)。しかし、残念ながらこれはMathOverflowに載っていました。これは次回の記事で紹介する予定です。
限りなくどうでもいい一言
普段は一重だけど、アイプチ等を使わずに目をキリッとさせて
「ほら見て!二重!」
ってする女、めっちゃお茶目。
thank Q for rEaDing.φ(・▽・ )