Corollaryは必然に。

このブログは「コロちゃんぬ」の提供でお送りします

トマエ関数の性質と連続関数の極限による表示

個人的な好みですが、微分可能だけど導関数は不連続な関数(x^2\sin(\frac{1}{x})など)のようなお茶目な関数にグッときます。いやぁ、e^xなどといった滑らかな関数も魅力的なんですけどねぇ、他の関数からチヤホヤされていそうなのでわがままな人が多いのかなぁ…って私は何を書いているのだ。

さて、今回は私がとても好きな関数であるトマエ関数を紹介したいと思います。

トマエ関数とは

トマエ関数(Thomae's function,ドイツの数学者Carl Johannes Thomaeに因む)とは、実数x\in\mathbb{R}に対して

\begin{equation*}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}\end{equation*}

と定義される実数値関数です。

例えば、

\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*}

といった具合です。T(\sqrt{2})=0T(\frac{\pi^2}{6})=0のように、無理数の場合はなんでも0に写します。

「あれ?T\left(\frac{2}{4}\right)=\frac{1}{4}が抜けてる?」

と思ったかもしれませんが、\frac{2}{4}=\frac{1}{2}と約分できるので要りません。むしろT\left(\frac{2}{4}\right)=\frac{1}{4}としてしまうと、T(\frac{1}{2})=\frac{1}{2}かつT(\frac{1}{2})=T(\frac{2}{4})=\frac{1}{4}となってしまい、T(\frac{1}{2})の行き先が1つに定まりません。こういう状態を引き起こさないために、有理数の場合は「p, qは互いに素な整数」として\frac{p}{q}という表示に限定する必要があります。また、\frac{-p}{q}=\frac{p}{-q}といった表示がありえるので「q>0」の方に固定して考えます。

細かい所ですが、整数n=\frac{n}{1}に対してはT(n)=1となります。特にn=0の場合は
0=\frac{0}{1}と考えてT(0)=1とします。もっと細かいことを言うと、「0と1は互いに素」、「0とn\;(n\geqq2)は互いに素でない」が言えるので「0=\frac{0}{1}と考えて『よい』」ことが分かります。

グラフの概形はこんな感じです(0< x< 1の範囲)。
f:id:corollary2525:20170604081714p:plain
x軸付近がブゥワーーってなっていますが、線対称でキレイなグラフですね。先ほど確認したように、よく見れば\frac{1}{2}=0.5の点は0.5に、\frac{1}{3}=0.333\cdots\frac{2}{3}=0.666\cdotsの点は0.333\cdotsに写されているのが分かると思います。

またその見た目から、

  • ポップコーン関数(Popcorn function)
  • 雨滴関数(Raindrop function)
  • 可算雲関数(Countable cloud function)
  • バビロンの星(Stars over Babylon)

などの名前が付いてるらしいです。

f:id:corollary2525:20171023174325p:plainf:id:corollary2525:20171023175230p:plainf:id:corollary2525:20171023175308p:plain

個人的には、最近話題になった「トルコのステーキレストランの料理人が振りかける塩」にも見えます。



トマエ関数の性質

トマエ関数にとても惹かれる理由は何といっても次の性質です。

定理
トマエ関数は次の性質を持つ:


有理数で不連続なのはポツンと浮いているので明らかだと思います。しかし、無理数で連続なのは意外だったのではと思います。私が大学1年生のとき、微分積分の教科書の演習問題の中でこの関数にはじめて出会いました。話を聞いてみると無理数で連続であることを知って今までの連続のイメージとは違う所に心を奪われました。

トマエ関数が無理数で連続であることの感覚的な説明をしましょう。ある無理数に注目しそれを含む区間を狭めていくと、その区間に潜む有理数たちの分母はどんどん大きくなってしまいます。したがって、無理数の付近でのトマエ関数のとる値は、散らばってはいますが0に近い値なのです。これに似た状況にある関数として、例えば
\begin{equation*}f(x)=
\begin{cases}
x^2 & (x\in\mathbb{Q})\\
0 & (x\in\mathbb{R}\setminus\mathbb{Q})
\end{cases}\end{equation*}があります。
f:id:corollary2525:20171023171258p:plain有理数fによって放物線上に散らばりますが、原点で連続です。

トマエ関数はこういうタイプの連続がすべての無理数で起きている、と私は理解しています。


さらにトマエ関数には次のような性質がありますが、どれもグッときます。

  • すべての点で微分不可能
  • 周期1の周期関数である: T(x+1)=T(x)\quad(\forall x\in\mathbb{R})
  • リーマン積分可能で,任意の区間に対して\displaystyle\int_a^b T(x)dx=0

ここまでの性質はすべてWikipediaに詳しく載っています。
Thomae's function - Wikipedia

しかし、トマエ関数のことが好きな私にとってはこのまま記事を終わらせたくありません。ちょっとしたことでもいいから、Wikipediaに載ってない事実を見つけたかったのです。そして、トマエ関数のことをしばらく考えていたら、トマエ関数の連続関数の二重極限による表示を発見したのでご紹介します。


トマエ関数の連続関数の二重極限による表示

すべての点で不連続な関数として有名なディリクレ関数があります。
\begin{equation*}D(x)=
\begin{cases}
1 & (x\in\mathbb{Q})\\
0 & (x\in\mathbb{R}\setminus\mathbb{Q})
\end{cases}\end{equation*}この関数は次の表示をもつことが知られています:
\begin{equation*}
D(x) = \lim_{n \to \infty}\lim_{k \to \infty}(\cos (n!\pi x))^{2k}.
\end{equation*}場合分けで定義された関数が一本の式で表示できるのは驚きですね。この式の解説は鯵坂もっちょさんによる以下の記事がとても分かりやすいです。
www.ajimatics.com

そこで、私はこの表示を使ってトマエ関数も一本の式で表示できるのでは?と思いました。そこでいろいろ考えてみた結果がこちらです:

\begin{equation*}
T(x) = \lim_{n \to \infty}\lim_{k \to \infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}
\end{equation*}

ここで,\gcd(a,b)abの最大公約数を表し,\operatorname{round}(x)xの小数点以下を四捨五入して整数にする関数を表す.

ディリクレ関数の二重極限の中に\frac{\gcd(\operatorname{round}(n!x), n!)}{n!}を掛けることで有理数x=\frac{p}{q}\frac{1}{q}に写す関数を作ることができました!極限の中身を

\begin{equation*}
T_{n,k}(x):=\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}
\end{equation*}

とおき、k=5で固定してn=1, 2, 3, 4, 5としたときのT_{n,k}の様子がこちらになります。

f:id:corollary2525:20171022214407g:plain

毎度おなじみDesmosの方もご確認ください。
トマエ関数
注意: n\ge 6にするとグラフが鋭すぎて上手く表示されません。また、Desmosの\gcdはデフォルトで\operatorname{round}が備わっています。

これで連続関数T_{n,k}がトマエ関数に収束していくようにみえたと思います。まずは、\frac{\gcd(\operatorname{round}(n!x), n!)}{n!}から\frac{1}{q}が生み出される鍵となる次の命題を証明します。

命題1
x=\frac{p}{q}とする(pqは互いに素な整数でq >0).このとき,
\begin{equation*}
\lim_{n\to\infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}=\dfrac{1}{q}.
\end{equation*}

証明 x=\frac{p}{q}とする(pqは互いに素な整数でq >0).n\to\inftyとするのでn >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*}

となる(いわずもがな,n!xは整数であるから\operatorname{round}(n!x)=n!x).よって,pqは互いに素なので

\begin{equation*}
\gcd(n!x,n!)=n\cdot(n-1)\cdots(q+1)\cdot(q-1)!=\dfrac{n!}{q}.
\end{equation*}

したがって,nが十分大きければ\dfrac{\gcd(n!x,n!)}{n!}=\dfrac{1}{q}となるので
\begin{equation*}
\lim_{n\to\infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}=\dfrac{1}{q}
\end{equation*}が示された.■

余談ですが、
\begin{equation*}
g(x)=\lim_{n\to\infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}
\end{equation*}とおいたとき、gにうっかりx=\frac{kp}{kq}pqは互いに素でk自然数)を代入してしまってもちゃんとg(x)=\frac{1}{q}を返してくれます!これはn >kqとして先ほどの同じ議論をすることで証明ができます。


そして、二重極限表示が正しいことを示します。

命題2
T(x)をトマエ関数とすると

\begin{equation*}
T(x) = \lim_{n \to \infty}\lim_{k \to \infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos (n!\pi x))^{2k}
\end{equation*}

が成り立つ.

証明 \displaystyle T_n(x):=\lim_{k\to\infty}T_{n,k}(x)とおく.\displaystyle\lim_{n\to\infty}T_n(x)=T(x)を示せばよい.
まずはx=\frac{p}{q}のとき(pqは互いに素な整数でq >0)を考える.n >qに対しては命題1より\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}=\dfrac{1}{q}であり,n!x\in\mathbb{Z}であるから(\cos (n!\pi x))^{2k}=1\:(どちらの値もk\in\mathbb{N}に依らない定数!).よってnが十分大きければT_n(x)=\dfrac{1}{q}であるから
\begin{equation*}
\lim_{n\to\infty}T_n(x)=\dfrac{1}{q}
\end{equation*}が成り立つ.

x無理数のときは\cos (n!\pi x)<1\:(\forall n\in\mathbb{N})なので

\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*}

であることからT_n(x)=0.よって
\begin{equation*}
\lim_{n \to \infty}T_n(x)=0
\end{equation*}が成り立つ.■


最後に、任意のn,k\in\mathbb{N}に対してT_{n,k}連続であることを一言述べて終わります。任意のm\in\mathbb{Z}に対して\gcd(\operatorname{round}(n!x), n!)m-\frac{1}{2}\le n!x< m+\frac{1}{2}上定数なのでx_m:=\frac{1}{n!}(m-\frac{1}{2})T_{n,k}が連続であることを示せば十分ですが、\cos (n!\pi x_m)=0であることから
\begin{equation*}\lim_{x\to x_m-0}T_{n,k}(x)=\lim_{x\to x_m+0}T_{n,k}(x)=0\end{equation*}が直ちに従います。


以上より、トマエ関数が連続関数の二重極限表示というお茶目な一面をみせてくれました。愛くるしいなぁトマエは。


トマエ関数の連続関数の一重極限による表示

前節までの多くは先日行われた第10回日曜数学会で発表させていただきました。そして、その発表の生放送を見てくださったせきゅーんさんのご指摘により、トマエ関数は一重極限表示できることが分かりました!!

命題
トマエ関数は正整数kの選び方に依らず以下の表示をもつ:

\begin{equation*}
T(x) = \lim_{n \to \infty}\dfrac{\gcd(\operatorname{round}(n!x), n!)}{n!}(\cos(n!\pi x))^{2k}.
\end{equation*}

kについての極限はいらなかったんだ…。なんと、詳しい解説をせきゅーんさんが書いてくれましたので、こちらをぜひご参照ください:

付録 by せきゅーん

スペースを頂いて若干補足させていただきます。関数は\mathbb{R} \to \mathbb{R}のみを扱います。本文でも解説されているようにディリクレ関数は二重極限表示を用いて表示することができ、コロちゃんぬさんはそれを元にトマエ関数の二重極限表示を与えました。ここで、もっちょさんの記事に影響されてせきゅーんが書いた記事を思い出します:

integers.hatenablog.com

連続関数の各点収束関数として表示することができる関数(一重極限表示を持つ関数)のことをベール1級関数といい、ベール1級関数の各点収束関数として表示することができる関数(二重極限表示を持つ関数)のことをベール2級関数といいます。この言葉を用いるとディリクレ関数はベール2級関数ですが、上の記事においてディリクレ関数がベール1級関数ではないことの証明を解説しています。

つまり、ディリクレ関数は二重極限表示が最善であって一重極限表示は持たないのです!

証明は「ベール1級関数は一般に連続関数ではないが、連続である点が稠密に分布する必要がある」ということを示すことによって、至る所不連続なディリクレ関数はベール1級関数ではないことがわかるという論法でした。

以上のことを踏まえると、コロちゃんぬさんによる二重極限表示によってトマエ関数はベール2級関数であることがわかりますが、本文で述べているようにトマエ関数は任意の無理数で連続であるため、ディリクレ関数とは違って「ベール1級関数でもおかしくないのでは?」という疑問が生じます。実は不連続点のなす集合が高々可算であるような関数はベール1級関数であることが一般的に知られています。トマエ関数の不連続点のなす集合は\mathbb{Q}なので可算であり、一般論によりベール1級関数であることが確定します。つまり、一重極限表示を持つはずです。

ところで、本文中のアニメーションを見るとk=5を固定しているにも関わらずT_{n, k}n \to \inftyでトマエ関数に収束するような気がしてきます。これが気のせいではないということを示すのが上記命題の主張です。中身の関数であるT_{n, k}が連続関数である事は既に解説されているので、トマエ関数のベール1級関数としての具体的な表示を与えたことになります。

命題の証明 x有理数のときにkに依存せず収束することは命題2の証明で既に解説されているため, x無理数のときのみ考察対象となる. 実数全体を長さ\frac{1}{n!}区間で分割することによって, n毎に整数m_nが存在してxは開区間
\begin{equation*}
I_n:=\left(\frac{2m_n-1}{2n!}, \frac{2m_n+1}{2n!}\right)
\end{equation*}
に属する(x無理数なので区間の端になることはない). また, 細分されていくので
\begin{equation*}
I_1 \supsetneq I_2 \supsetneq I_3 \supsetneq \cdots
\end{equation*}
となっている(I_nは一意的に定まることに注意). \frac{m_n}{n!}の既約分数表示を\frac{p_n}{q_n}p_nq_nは互いに素でq_n > 0, 整数aを用いてm_n=p_na, n!=q_naと書ける)とする. このとき,
\begin{equation*}
m_n-\frac{1}{2} < n!x < m_n+\frac{1}{2}
\end{equation*}
なので\operatorname{round}(n!x)=m_nであり,

\begin{equation*}
\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}
\end{equation*}

を得る. 区間の長さが小さくなっていくことから\displaystyle \lim_{n \to \infty}\frac{p_n}{q_n}=xであり, x \neq \frac{p_n}{q_n}であることと, 有界区間に存在する一定の分母を持つような有理数が有限個しか存在しないことから\displaystyle \lim_{n \to \infty}q_n=\inftyがわかる. 従って,

\begin{equation*}
\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}
\end{equation*}

が示された. ■


まとめ

書き手がコロちゃんぬに代わります。せきゅーんさんありがとうございました。

私はWikipediaに載ってない性質を見つけたいという一心でトマエ関数を連続関数の二重極限で表示することができました。そして、せきゅーんさんのご指摘によって一重極限表示できる(ベール1級関数である)ことが分かりました(すごい)。また、「付録」として解説をつけたいとせきゅーんさんの方からお声をいただき、このような形でコラボさせていただきました。重ねてお礼申し上げます。

せきゅーんさんの解説にもある通り、一般に不連続点が高々可算であればベール1級関数であることが知られているため、トマエ関数は一重極限表示をもつことを保証されます。しかし、あくまで一重極限表示の「存在」を保証するだけなので、「具体的な表示」が求まるとは限りません。なので、トマエ関数を「具体的に」一重極限表示を求めた研究や文献が既に発表されていてもおかしくありません。しかし、現在Google検索やMathOverflow(数学者が答えてくれる質問サイト)で頑張って探しているのですが見つからないんですよね(別名が多いので検索が大変)。もしかして一番乗りなんでしょうか?一番乗りなら調子に乗って論文書いちゃいますよ(ブログで公開してしまったけど)?本当は既出だが英語の論文でないから引っかからないんでしょうか?トマエ関数に関する先行研究についてご存知の方がいましたら教えていただけると幸いです。

追記(2018年4月15日)
Counterexamples in Analysisという本を購入して調べたところ、「連続関数の一様連続でない極限が連続でない例」の一つとしてトマエ関数が紹介されていました。

実はWikipediaに載ってないトマエ関数の性質(応用例)がもう一個あります(どんだけ好きやねん)。しかし、残念ながらこれはMathOverflowに載っていました。これは次回の記事で紹介する予定です。

限りなくどうでもいい一言

普段は一重だけど、アイプチ等を使わずに目をキリッとさせて
「ほら見て!二重!」
ってする女、めっちゃお茶目。


thank Q for rEaDing.φ(・▽・ )