· 

至る所不連続だがRiemann積分可能な関数

問題

$I=[0,1]$に属する実数$x$の2進数表示を10進小数とみなした値を$f(x)$とする. すなわち, 0あるいは1からなる数列$a_0, a_1, a_2, a_3,\cdots$により, $$ x=a_0+a_1\cdot\frac{1}{2}+a_2\cdot\frac{1}{2^2}+a_3\cdot\frac{1}{2^3}+\cdots $$ と表示した際、$f(x)=a_0.a_1a_2a_3\cdots$とする. なお, 1は$0.111\cdots$となるが, この場合は1とし、末尾に1が続く表記は用いないこととする. このとき次の問いに答えよ.
 (1)$\dfrac{1}{3}$を2進小数に表示せよ.
 (2)$f(x)$はRiemann積分可能であることを示せ.
 (3)$f(x)$の$I$上での積分の値 $$ \int_0^1 f(x)dx $$ を求めよ.

Riemann積分の定義

表記ゆれが存在するので, 初めに用語および記号の定義を行なう.
 区間 $[a,b]$ の分割$\Delta$とは \begin{equation*} a = x_0 < x_1 < \cdots < x_n = b \end{equation*} をみたす点列 $\{x_i\}_{i=0}^n$ のことであり, $\Delta:=\{x_i\}_{i=0}^n$と表せる. このとき, 関数 $f \colon [a,b] \rightarrow \mathbb{R}$ の分割 $\Delta$と, $\xi_i \in I_i:=[x_{i-1}, x_{i}]$ をみたす点列 $\boldsymbol{\xi}=\{\xi_i\}_{i=1}^{n}$ に対して定まる $$ S(f,\Delta,\boldsymbol{\xi}):= \sum_{i=0}^{n}f(\xi_i) (x_{i} - x_{i-1}) $$ を$(\Delta,\boldsymbol{\xi})$に関する$f$のRiemann和という. このとき, $f$が$[a,b]$上で積分可能であるとは, 任意の分割 $\Delta$ と任意の$\boldsymbol{\xi}$に対して, \begin{equation*} \int_a^b f(x) dx = \lim_{\delta\to0} S(f,\Delta,\boldsymbol{\xi}) \end{equation*} が存在することである. ここで $\delta$は$\delta_i:=x_i-x_{i-1}$と定義される分割 $\Delta$ の小区間$I_i$の幅の最大値であり, $\displaystyle{\delta:=\max_{\begin{subarray}{c}\\ i\end{subarray}}\ (\delta_i)}$と表せる. また, 右辺の極限は, 任意の分割 $\Delta$と点列$\boldsymbol{\xi}$のとり方によらず, $\delta\to0$ としたときに $S(f,\Delta,\boldsymbol{\xi})$ が一定の値に近づくことを意味する.
 次に, 閉区間$I_i=[x_{i-1},x_i]$において, $m_i=\inf\{f(x)|x\in I_i\},\ M_i=\sup\{f(x)|x\in I_i\}$とする. また, 不足和$s_\Delta,\ 過剰和 S_\Delta$を, \begin{align*} s_\Delta&=\sum_{i=1}^{n}m_i (x_{i} - x_{i-1})\\ S_\Delta&=\sum_{i=1}^{n}M_i (x_{i} - x_{i-1}) \end{align*} とする. さらに$\sup{s_\Delta}=s,\ \inf{S_\Delta}=S$とする. このとき, Darbouxの定理より, 任意の分割$\Delta$に対して$\lim s_\Delta=s,\ \lim S_\Delta=S$が成り立つ. $s_\Delta\leq S(f,\Delta,\boldsymbol{\xi})\leq S_\Delta$が成り立っているので, 「$f$が$[a,b]$上で積分可能であるとは, $s=S$が成り立つことである」, とも言える. もちろん積分可能であることを示すには「任意の」分割に対してRiemann和の極限が存在することを示す必要があるが、Darbouxの定理により「ある」分割において極限が存在することを示すだけでよい. 「ある」分割において$s=S$となる場合、「任意の」分割においても$s=S$が成り立つからである.

解答

(1)

$\displaystyle{\frac{1}{3}=\sum_{k=1}^{\infty}\frac{1}{2^{2k}}}$を示す. $\displaystyle{T_n=\sum_{k=1}^{n}\frac{1}{2^{2k}}}$とする. ここで, \begin{align*} T_n&=\sum_{k=1}^{n}\frac{1}{2^{2k}}=\frac{1}{4}+\frac{1}{16}+\cdots+\frac{1}{4^n}\\ 4T_n&=4\sum_{k=1}^{n}\frac{1}{2^{2k}}=1+\frac{1}{4}+\frac{1}{16}+\cdots+\frac{1}{4^{n-1}}\\ \therefore\ \ 3T_n&=1-\frac{1}{4^n}\to 1\ \ (n\to\infty)\\ \therefore\ \ \frac{1}{3}&=T_\infty=\sum_{k=1}^{\infty}\frac{1}{2^{2k}}\ \ (\because\ 等式は任意のnに対して成立) \end{align*} が成り立つので示せた. ゆえに, $\dfrac{1}{3}$は2進小数で表示すると, $0.01010\cdots=0.0\dot{1}\dot{0}$となる.

(2)

まず, $f(x)$が単調増加することを示す(これは自明である). 10進数において$a\leq b$である2数$a, b$について, 2進数でも$a\leq b$が成り立つ. これを10進数に解釈しても不等号は変化せず, $f(a)\leq f(b)$が成り立つ. ゆえに$f(x)$は単調増加関数である.
 次に閉区間$[a,b]$で単調増加する関数は積分可能であることを示す. $f(x)$が単調増加するとき, $M_i=f(x_i), m_i=f(x_{i-1})$である. ここで, \begin{align*} S_\Delta&=\sum_{i=1}^{n}M_i (x_{i} - x_{i-1})\\ s_\Delta&=\sum_{i=1}^{n}m_i (x_{i} - x_{i-1}) \end{align*} であり, $M_i\geq m_i$より, \begin{align*} 0\leq S_\Delta-s_\Delta&=\sum_{i=1}^{n}M_i (x_{i} - x_{i-1})-\sum_{i=1}^{n}m_i (x_{i} - x_{i-1})\\ &=\sum_{i=1}^{n}[f(x_i)-f(x_{i-1})]\cdot\delta_i\\ &\leq\sum_{i=1}^{n}[f(x_i)-f(x_{i-1})]\cdot\delta\ \ \left(\because\ \displaystyle{\delta=\max_{\begin{subarray}{c}\\ i\end{subarray}}\ (\delta_i)}\right)\\ &=[f(b)-f(a)]\cdot\delta \end{align*} が成り立つ. $\delta\to0$のとき, $[f(b)-f(a)]\cdot\delta\to0$であるので, $S_\Delta-s_\Delta\to0$が成り立つ. ゆえに$s=S$となるので, $f(x)$は積分可能である. したがって本問における$f(x)$も閉区間$I=[0,1]$で単調増加するので, 積分可能である.

(3) [実験]

初めに実験をしてみる. 閉区間$I=[0,1]$を$2^n$等分した分割を$\Delta_n$とし,$\xi_i=\dfrac{i}{2^n}$とする. このとき, $n=1, 2, 3$としたときの分割を考え, $f(\xi_i),\ \sum f(\xi_i),\ \delta,\ S(f,\Delta_m,\boldsymbol{\xi})$に対して表を書いてみる. すると以下のようになる. $$ \begin{array}{c|c|c|c} \hline 分割&\Delta_1 & \Delta_2 & \Delta_3\\ \hline\hline &a_0.a_1&a_0.a_1a_2&a_0.a_1a_2a_3\\ \hline &0.0 & 0.00 & 0.000 \\ & & & 0.001 \\ & & 0.01 & 0.010 \\ & & & 0.011 \\ f(\xi_i)&0.1 & 0.10 & 0.100\\ & & & 0.101 \\ & & 0.11 & 0.110 \\ & & & 0.111 \\ \hline \sum f(\xi_i)&\dfrac{2^0}{10}&\dfrac{2^1}{10}+\dfrac{2^1}{10^2}&\dfrac{2^2}{10}+\dfrac{2^2}{10^2}+\dfrac{2^2}{10^3}\\ \hline \delta&\dfrac{1}{2}&\dfrac{1}{2^2}&\dfrac{1}{2^3}\\ \hline\hline S(f,\Delta_k,\boldsymbol{\xi})&\dfrac{1}{2}\dfrac{2^0}{10}&\dfrac{1}{2^2}\left(\dfrac{2^1}{10}+\dfrac{2^1}{10^2}\right)&\dfrac{1}{2^3}\left(\dfrac{2^2}{10}+\dfrac{2^2}{10^2}+\dfrac{2^2}{10^3}\right)\\ \hline \end{array} $$ これより, $S(f,\Delta_n,\boldsymbol{\xi})=\dfrac{1}{2^n}\displaystyle{\sum_{j=1}^n \dfrac{2^{n-1}}{10^j}}$と予想できる. なおこのときのRiemann和は不足和である.
 各位の数の和が$2^{n-1}$となることについては, 次のように考えられる. まず$n=k$から$n=k+1$となる際に, $f(\xi_i)$の個数は2倍となる. これは例えば$(0.0\cdots01)$の末尾に0か1のどちらをつけるかで新たに$(0.0\cdots010)$と$(0.0\cdots011)$が生じるためである. ゆえに, $n=k+1$のときの各位の数の和は$n=k$における値の2倍となる. よって, 初項1, 公比2の等比数列となるから, 各位の数の和は$2^{n-1}$となる.
 これより, $\Delta_n$については下表のようになる. $$ \begin{array}{c|c|l} \hline 分割&\Delta_n&\\ \hline\hline &a_0.a_1\cdots a_{n-1}a_n&\ \ \ \ \ \ \ \ \ \alpha_{j}^{(i)}\in\{0,1\}\\ \hline & 0.0\cdots00&=\alpha_{0}^{(0)}.\alpha_{1}^{(0)}\cdots\alpha_{n}^{(0)}\\ & 0.0\cdots01&=\alpha_{0}^{(1)}.\alpha_{1}^{(1)}\cdots\alpha_{n}^{(1)}\\ &\vdots&\ \ \ \ \ \vdots\\ f(\xi_i) &\vdots&\ \ \ \ \ \vdots\\ &\vdots&\ \ \ \ \ \vdots\\ & 0.1\cdots11&=\alpha_{0}^{(2^{n-1})}.\alpha_{1}^{(2^{n-1})}\cdots\alpha_{n}^{(2^{n-1})}\\ \hline \sum f(\xi_i)&\displaystyle{\sum_{j=1}^n \dfrac{2^{n-1}}{10^j}}&=\displaystyle{\sum_{i=0}^{2^n} \sum_{j=0}^n \frac{\alpha_{j}^{(i)}}{10^j}}\\\hline \delta&\dfrac{1}{2^n}&\\ \hline\hline S(f,\Delta_n\boldsymbol{\xi})&\dfrac{1}{2^n}\displaystyle{\sum_{j=1}^n \dfrac{2^{n-1}}{10^j}}&\\ \hline \end{array} $$ この表を参考にして解答を作成する. 解答は以下の通りである.

(3) [解答]

閉区間$I=[0,1]$を$2^n$等分した分割を$\Delta_n$とすると,$\delta_i=x_i-x_{i-1}=\dfrac{1}{2^n}$となる. このとき, $\displaystyle{\delta=\max_{\begin{subarray}{c}\\ i\end{subarray}}\ (\delta_i)=\frac{1}{2^n}}$である. また$\xi_i=\dfrac{i}{2^n}$とすると, $\xi_i\in[x_{i-1},x_i]$である. さらに$f(\xi_i)=\alpha_{0}^{(i)}.\alpha_{1}^{(i)}\cdots\alpha_{n}^{(i)}$と表す. このとき, $\alpha_{j}^{(i)}\in\{0,1\}$とする. よって, $(\Delta_n,\boldsymbol{\xi})$に関する$f$のRiemann和は, \begin{align*} S(f,\Delta_n,\boldsymbol{\xi})&=\sum_{i=0}^{2^{n-1}}f(\xi_i)\cdot\delta_i\\ &=\frac{1}{2^n}[(0.\overbrace{0\cdots00}^{n}) + (0.0\cdots01) + (0.0\cdots10)+\cdots+ (0.1\cdots11)]\\ &=\frac{1}{2^n}\displaystyle{\sum_{i=0}^{2^{n-1}} \sum_{j=0}^n \frac{\alpha_{j}^{(i)}}{10^j}}\\ &=\frac{1}{2^n}\sum_{j=1}^n \dfrac{2^{n-1}}{10^j}\ \ \left(\because\ \ {\sum_{i=0}^{2^{n-1}} \alpha_{j}^{(i)}}=2^{n-1} \right)\\ &=\frac{1}{2}\sum_{j=1}^{n}\frac{1}{10^j} \end{align*} となる. ゆえに, \begin{align*} \int_0^1 f(x)dx=\lim_{\delta\to0} S(f,\Delta_n,\boldsymbol{\xi})=\lim_{n\to\infty} \left(\frac{1}{2}\sum_{j=1}^{n}\frac{1}{10^j}\right)=\dfrac{\dfrac{1}{2}\cdot\dfrac{1}{10}}{1-\dfrac{1}{10}}=\frac{1}{18} \end{align*} となる.

補足

$f(x)$のグラフを以下に示す. $f(x)$は, 任意の閉区間において不連続点が稠密に存在しているにも関わらず, 積分可能である一例である. また自己相似性を持つ関数でもある.
Illustration
このグラフはPythonで描画した. コードを以下に示す.
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pylab as plt

Y=[] #list型のYを初期化

def binf(x):
    u=int(x*(2**10)) #xを2^10倍してint型にしてuに代入
    v=format(u, 'b') #uを2進数のstr型に変換しvに代入
    return float(int(v)/10**10) #vをint型に変換し桁を合わせる

for i in range(0, 10000):
    x=(i+1)/10000 #xに0~1の数を代入
    y=binf(x)
    Y.append(y) #Yに要素を追加

X=np.arange(0,1,0.0001) #Xの値を設定
plt.plot(X,Y)
plt.ylim(0,1.1)
plt.show() #描画