01 収束
黒木玄
2018-04-18, 2023-06-22
Copyright 2018, 2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/01%20convergence.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/01%20convergence.ipynb)
https://genkuroki.github.io/documents/Calculus/01%20convergence.pdf(https://genkuroki.github.io/documents/Calculus/01%20convergence.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 収束の定義
1.1 数列の収束の定義
1.2 級数の収束の定義
1.3 連続的な極限
 2 収束の判定法の基本
2.1 挟撃法 (挟み撃ち)
2.2 二項定理の復習
2.3 多項式函数より指数函数の方が速く増加すること
2.4 指数函数より階乗の方が速く増加すること
2.5 まとめ 3 上限と下限と上極限と下極限
3.1 上限と下限
3.2 上極限と下極限
 4 実数の連続性の帰結
4.1 有界単調実数列の収束
4.2 Bolzano–Weierstrassの定理
4.3 実数のCauchy列の収束
4.4 閉区間に関するHeine-Borelの被覆定理
4.5 閉区間上の実数値連続函数が最大最小を持つこと

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)
default(fmt=:png)#clibrary(:misc)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 収束の定義
1.1 数列の収束の定義

𝑎𝑛 が 𝑛 → ∞ で 𝛼 に収束するとは, 任意の 𝜀 > 0 に対して, ある番号 𝑁 が存在して, 𝑁 以降のすべての番号 𝑛 につ|𝑎𝑛 − 𝛼| < 𝜀 が成立することである. □𝑎𝑛 が 𝛼 に収束するとき, 𝑎𝑛 の極限の値を 𝑛→∞
lim 𝑎𝑛 = 𝛼 と定義する. 収束しないときには極限の値は定義されない.
𝑎𝑛 が 𝛼 に収束することを 𝑎𝑛 → 𝛼 と書くことにする.
上の定義に基けば, 数列 𝑎𝑛 が 𝑛 → ∞ で 𝛼 に収束しないことは, ある 𝜀 > 0 が存在して, 任意の番号 𝑁 について, ある 𝑛 ≧ 𝑁
で |𝑎𝑛 − 𝛼| ≧ 𝜀 を満たすものが存在することだと言い換えられる.
定義: 数列いてどのような数にも収束しない数列は発散しているという.

𝜀 𝑁 論法による数列の収束の定義である.

以上は所謂 -

𝜀 𝑁 論法や 𝜀-𝛿 論法による詳しい証明は多くの場合に扱わな

勉強の仕方について1: このノートから始まる一連のノート群では い予定である.

𝜀𝑁

𝜀 𝑁 および 𝜀-𝛿 の方が易しく扱える場合

しかし, 以下では数列の収束について - について詳しく説明しておくことにする. は結構多いので教養として身に付けておいて損はないと思われる.

特に解析学の知識を信頼できる数値計算の遂行に役立てたいと思っている人は, どこかの段階で ε-N と ε-δ の考え方をマスターしておくべきである. なぜならば, ε-N と ε-δ は「誤差の評価をまじめに行うこと」そのものだからである. 単に数学を応用するだけならば, ε-N と ε-δ は必要ないという考え方は誤りである.
初心者のために, 下の方には ε-N を使わない解答例1と ε-N を使った解答例2の両方を解説した場合を複数書いておいた. それらの解答を比較することは, 収束に関する直観と論理の整備に役に立つだろう.
しかし, 無理はいけない.
初心者のうちは ε-N および ε-δ を使った証明を無理してフォローする必要はない.
すぐに理解できそうもないならば, 「適当に証明を飛ばしながら先に進み, 必要に応じて何度でも前に戻ることを繰り返しながら膨大な時間をかければいつかは理解できる」のように考えるのがよいと思う.

□

𝜀𝑁 𝜀𝛿

∀∃

勉強の仕方について2: 筆者の個人的な経験では, 初心者のうちは, - や - の議論を書き下すときには, , という記号を使わない方がよいと思う. より正確に言えば, , という記号を使わずに説明できないと感じたら, , という記号を使わない方がよい. 記号に頼る議論は非常によろしくない. 頼るべきなのは記号ではなく, 健全な直観である.

∀∃

∀∃

∀∃

特に解析学の議論を , という記号を使った形式的な記号計算として理解しようとするのはやめた方がよい. 解析学のポイン
トは「近似の誤差にあたるものが何にどのように依存しているか」を見極めることにある場合が多い.
「〇〇の大きさが△△に◇◇のように依存して決まっており, 大雑把には□□と評価される」というような考え方を滑らかにできるようになることを目標にするのがよい.

□

𝑎𝑛 で 𝛼 の値を近似計算したい場合には次のような意味を持つ.
(1) 計算可能な数列 𝑎𝑛 は直接正確な値を計算できない数値 𝛼 に収束することがわかっているとする.
(2) 𝜀 > 0 を任意に与え, 数列 𝑎𝑛 の計算によって数値 𝛼 を誤差 𝜀 未満で計算したいとする.
(3) もしも数列 𝑎𝑛 が 𝛼 に収束しているならば, ある番号 𝑁 が存在して, その 𝑛 ≧ 𝑁 とすれば 𝑎𝑛 と 𝛼 の差は 𝜀 未満になる.
(4) そのとき, もしも 𝜀 から 𝑁 を具体的に求めることができれば, 𝑁 以上の 𝑛 に対する 𝑎𝑛 を実際に計算することによって, 𝛼の値を誤差 𝜀 未満で求めることができる. □⎯⎯⎯⎯例: 𝛼 = √ 2 に対して, 𝑎𝑛 を √ 2 を小数点以下第 𝑛 桁まで計算した結果だとする. 例えば, 𝑎1 = 1.4 , 𝑎2 = 1.41 , 𝑎3 = 1.414,…. このとき, |𝑎𝑛 − 𝛼| < 10−𝑛 なので, 𝛼 = √⎯⎯2 を誤差 10−𝑁 未満で求めるためには 𝑛 ≧ 𝑁 に対する 𝑎𝑛 を求めればよい. □数列が α に収束しないことの正確な定義の1つの解釈: 数列 𝑎𝑛 が 𝛼 に収束しないことは次のように言い換えられる: ある 𝜀 > 0が存在して, どんなに番号 𝑁 を大きくしても, ある 𝑛 ≧ 𝑁 で |𝑎𝑛 − 𝛼| ≧ 𝜀 を満たすものが存在する.
数列の収束の正確な定義の1つの解釈: 上の定義は数列

これは, 以下のような意味を持っている.

𝑎𝑛 で数値 𝛼 を近似計算したいとする.
(2) しかし, 𝑎𝑛 は 𝛼 に収束していないとする.
(3) その場合には, 許される誤差 𝜀 > 0 を小さく取り過ぎると, どんなに 𝑁 を大きくしても, 𝑁 以上の 𝑛 の中に 𝑎𝑛 による 𝛼 の近似計算の誤差が許される誤差 𝜀 以上になるものが存在する.
もしも 𝑎𝑛 が 𝛼 に収束しているならば, どんなに許される誤差 𝜀 > 0 を小さくしても, 十分に 𝑁 を大きくすると, 𝑁 以上の 𝑛については常に 𝑎𝑛 による 𝛼 の近似計算の誤差が許される誤差 𝜀 未満になる. すなわち, あるところから先の 𝑎𝑛 と 𝛼 の距離は𝜀 未満になる.
𝑎𝑛 が 𝛼 に収束していなければ, 許される誤差 𝜀 > 0 を小さくし過ぎると, どんなに先の 𝑎𝑁 以降の 𝑎𝑁 , 𝑎𝑁+1 , 𝑎𝑁+2 ,… の中に誤差が 𝜀 以上になるものが含まれてしまう. □⎯⎯例: 𝑎𝑛 は上の例と同様に 𝛼 = √ 2 を小数点以下 𝑛 桁まで計算した結果であるとし, 𝑏𝑛 = 𝑎𝑛 − (0.005 + (−1) 𝑛 × 0.005) とお⎯⎯
く. このとき, 𝑏2𝑘+1 = 𝑎2𝑘+1 かつ 𝑏2𝑘 = 𝑎𝑛 − 0.01 となる. だから, 奇数の 𝑛 についてのみ 𝑏𝑛 を考えれば 𝛼 = √ 2 に収束する⎯⎯
が, 偶数の 𝑛 に対する 𝑏𝑛 は √ 2 よりも 0.01 以上小さくなる. だから, どんなに番号 𝑁 を大きくしても 𝑏𝑁 , 𝑏𝑁+1 , 𝑏𝑁+2 ,… の⎯⎯⎯⎯中に 𝛼 = √ 2 との差が 0.01 以上になるものが存在する. これは 𝑏𝑛 が 𝛼 = √ 2 に収束しないということを意味している. □問題: 数列 𝑎𝑛 が 𝛼 に収束することと, 次の条件が同値であることを示せ:(☆) 任意の 𝜀 > 0 に対して, 𝑎𝑛 と 𝛼 の距離が 𝜀 以上になる 𝑛 達の個数は有限個しかない.
数列 𝑎𝑛 が 𝛼 に収束しないことと, 次の条件が同値であることを示せ:(1) 数列(★) ある𝜀 > 0 で, 𝑎𝑛 と 𝛼 からの距離が 𝜀 以上になる 𝑛 達の個数が無限個になるものが存在する.

注意: 同値なのでこれらの条件を収束する, しないの定義として採用してもよい.

𝑎𝑛 → 𝛼|𝑎𝑛 − 𝛼| ≧ 𝜀

𝜀 > 0 を取る. 収束の定義より、ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば |𝑎𝑛 − 𝛼| < 𝜀 とな
𝑛 < 𝑁 となるので, 𝛼 からの距離が 𝜀 以上の 𝑎𝑛 の個数は 𝑁 未満の有限個になる. これで解答例:と仮定し, 任意にる. そのとき,
ならば(☆)が示された.

𝜀 > 0 であるとする. 𝛼 から距離が 𝜀 以上の 𝑎𝑛 達の個数は有限個なので, そのような 𝑛 の最大値が存在する.
𝑁 − 1 と書くと, 𝑛 ≧ 𝑁 のとき 𝑎𝑛 と 𝛼 の距離は 𝜀 未満になる. これで 𝑎𝑛 → 𝛼 が示された.
条件(★)は条件(☆)の否定そのものであり, 条件(☆)は 𝑎𝑛 が 𝛼 に収束することの定義と同値だったので, 条件(★)は 𝑎𝑛 が 𝛼 に収
条件(☆)を仮定し,その最大値を束しないことと同値になる.

𝜀>0
𝑁 に対して, ある 𝑛 ≧ 𝑁 で|𝑎𝑛 − 𝛼| ≧ 𝜀
ある 𝜀 > 0 が存在して, 任意の番号 𝑁 に対して, ある 𝑛 ≧ 𝑁 で |𝑎𝑛 − 𝛼| ≧ 𝜀 を満たすものが存在すると仮定する. もしも|𝑎𝑛 − 𝛼| ≧ 𝜀 を満たす 𝑛 達が有限個しかないとすると, そのような 𝑛 の最大値が存在し, そのとき 𝑛 がその最大値より大きければ常に |𝑎𝑛 − 𝛼| < 𝜀 となってしまい仮定に反する。ゆえに |𝑎𝑛 − 𝛼| ≧ 𝜀 を満たす 𝑛 達は無限個存在する. これで条件(★)が示
これで示すべきことがすべて示されたが, 条件(★)と「あるが存在して, 任意の番号を満たすものが存在する」が同値であることも示しておこう.

された.

𝜀 > 0 𝑎𝑛 𝛼𝜀𝑛𝑛≧𝑁|𝑎𝑛 − 𝛼| < 𝜀|𝑎𝑛 − 𝛼| ≧ 𝜀𝑛 ≧ 𝑁 |𝑎𝑛 − 𝛼| ≧ 𝜀𝑛 ≧ 𝑁 |𝑎𝑛 − 𝛼| ≧ 𝜀

条件(★)を仮定する. すなわち, あるで,と からの距離が 以上になる 達の個数が無限個になるものが存在すると仮定する. 任意にを取る. もしもならば常にとなるならば,となる 達の個数が以下になってしまうので, 仮定に反する. ゆえに, あるでとなるものが存在する. これで, 「あるが存在して, 任意の番号に対して, あるでを満たすものが存在する」という条件が示された.

𝑁𝑁問題(三角不等式): 実数 𝐴,𝐵 について
|𝐴 ± 𝐵| ≦ |𝐴| + |𝐵|, |𝐴 ± 𝐵| ≧ |𝐴| − |𝐵|, |𝐴 ± 𝐵| ≧ |𝐵| − |𝐴|

𝑛

𝑁−1
𝜀>0
□

となることを示せ.
解答例:(|𝐴| + |𝐵|)2 − |𝐴 ± 𝐵|2 = |𝐴|2 + 2|𝐴||𝐵| + |𝐵|2 − (𝐴2 ± 2𝐴𝐵 + 𝐵2 ) = 2(|𝐴||𝐵| ∓ 𝐴𝐵) ≧ 0,
より, |𝐴 ± 𝐵| ≦ |𝐴| + |𝐵| が得られる. その不等式で 𝐴 を −(𝐴 ± 𝐵) で置き換えると, |𝐴| ≦ |𝐴 ± 𝐵| + |𝐵| が得られるので, |𝐴 ± 𝐵| ≧ |𝐴| − |𝐵| が得られる. その不等式で 𝐴 と 𝐵 の立場を取り換えると, |𝐴 ± 𝐵| ≧ |𝐵| − |𝐴| が得られる. □三角不等式のよくある使い方: |𝐴 − 𝐵| が小さいことを示すために, 三角不等式を|𝐴 − 𝐵| = |𝐴 − 𝐶 + 𝐶 − 𝐵| ≦ |𝐴 − 𝐶| + |𝐶 − 𝐵|の形で用い, |𝐴 − 𝐶| と |𝐶 − 𝐵| が小さいことを示すという手段が非常によく使われる. ここで使われる 𝐶 は初等幾何の問題
における補助線のようなものであり, うまい 𝐶 を見付けることが証明のポイントになることが多い. □三角不等式は空気のごとく多用される.
問題: 数列している.)
解答例1:

𝑎𝑛 が 𝛼 と 𝛽 に収束しているならば, 𝛼 = 𝛽 となることを示せ. (これは同一の数列の収束先は唯一であることを意味

𝑛 → ∞ とすると,|𝛽 − 𝛼| = |𝛽 − 𝑎𝑛 + 𝑎𝑛 − 𝛼| ≦ |𝛽 − 𝑎𝑛 | + |𝑎𝑛 − 𝛼| → 0.
ゆえに |𝛽 − 𝛼| = 0 となるので, 𝛽 = 𝛼 . □解答例2: 任意に 𝜀 > 0 を取る. 𝑎𝑛 は 𝛼 に収束しているので, ある番号 𝑁 ′ が存在して, 𝑛 ≧ 𝑁 ならば |𝑎𝑛 − 𝛼| < 𝜀/2 となる.
ある番号 𝑁 ″ が存在して, 𝑛 ≧ 𝑁 ″ ならば |𝑎𝑛 − 𝛽| < 𝜀/2 となる. ゆえに,
𝑎𝑛 は 𝛽 にも収束しているので,′″
𝑁 = max{𝑁 , 𝑁 } とおくと, 𝑛 ≧ 𝑁 のとき,
|𝛽 − 𝛼| = |(𝑎𝑛 − 𝛼) − (𝑎𝑛 − 𝛽)| ≦ |𝑎𝑛 − 𝛼| + |𝑎𝑛 − 𝛽| < 𝜀2 + 𝜀2 = 𝜀.
ここで ≦ では三角不等式を使った. 𝜀 > 0 はいくらでも小さくできるので, 𝛼 = 𝛽 となる. □解説: 以上の解答例は等式 𝛽 = 𝛼 を示すために不等式を使っている. 等式を不等式を使って証明することは解析学における典型的な議論の仕方だと言ってよい. 𝛼 と 𝛽 が等しいことを示すためには, それらの差がどんな正の実数よりも小さいことを示せよばよい. 𝛼 と 𝛽 の差は三角不等式によって,|𝛽 − 𝛼| = |(𝑎𝑛 − 𝛼) − (𝑎𝑛 − 𝛽)| ≦ |𝑎𝑛 − 𝛼| + |𝑎𝑛 − 𝛽|と評価される. これは 𝑎𝑛 と 𝛼 の差と 𝑎𝑛 と 𝛽 の差が同時に小さくなれば 𝛼 と 𝛽 の差も小さくなることを意味している. 𝑎𝑛 が 𝛼と 𝛽 に収束するならば, 𝑎𝑛 と 𝛼 の差も 𝑎𝑛 と 𝛽 の差も同時に小さくできるので, 示したいことが示される. □問題: 収束する実数列
せ.

𝑎𝑛 , 𝑏𝑛 が全ての番号 𝑛 について 𝑎𝑛 ≦ 𝑏𝑛 を満たしているならば, 𝑛→∞lim 𝑎𝑛 ≦ 𝑛→∞lim 𝑏𝑛 が成立することを示

𝑎𝑛 , 𝑏𝑛 の収束先をそれぞれ 𝛼,𝛽 と書くことにする. 一般に実数 𝐴 について −|𝐴| ≦ 𝐴 ≦ |𝐴| が成立しているので,
𝑎𝑛 = 𝑎𝑛 − 𝛼 + 𝛼 ≧ −|𝑎𝑛 − 𝛼| + 𝛼, 𝑏𝑛 = 𝑏𝑛 − 𝛽 + 𝛽 ≦ |𝑏𝑛 − 𝛽| + 𝛽
なので 𝑎𝑛 ≦ 𝑏𝑛 なので−|𝑎𝑛 − 𝛼| + 𝛼 ≦ 𝑎𝑛 ≦ 𝑏𝑛 ≦ |𝑏𝑛 − 𝛽| + 𝛽.
解答例1:

ゆえに

𝛼 ≦ 𝛽 + |𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛽|.
𝑛 → ∞ とすると, |𝑎𝑛 − 𝛼| → 0, |𝑏𝑛 − 𝛽| → 0 となるので, 𝛼 ≦ 𝛽 を得る. □注意: 上の証明中で, 全ての番号 𝑛 について 𝑎𝑛 < 𝑏𝑛 が成立していれば−|𝑎𝑛 − 𝛼| + 𝛼 ≦ 𝑎𝑛 < 𝑏𝑛 ≦ |𝑏𝑛 − 𝛽| + 𝛽となるので,

𝛼 < 𝛽 + |𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛽|.
となるが, この不等式で 𝑛 → ∞ としても, 𝛼 < 𝛽 となるとは限らないことに注意せよ. 実際には 𝛼 = 𝛽 だが
|𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛽| が常に正であるおかげで, 𝛼 < 𝛽 + |𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛽| となっているかもしれないからである. 例えば
𝑎𝑛 = − 1𝑛 , 𝑏𝑛 = 1𝑛 のとき, 𝑎𝑛 < 𝑏𝑛 となっているが, 𝑎𝑛 → 0, 𝑏𝑛 → 0 となっている. □解答例2: 𝑎𝑛 , 𝑏𝑛 の収束先をそれぞれ 𝛼,𝛽 と書くことにする. 任意に 𝜀 > 0 を取る. 𝑎𝑛 は 𝛼 に収束するので, ある番号 𝑁 が存在
して, 𝑛 ≧ 𝑁 ならば |𝑎𝑛 − 𝛼| < 𝜀, 特に 𝛼 + 𝜀 < 𝑎𝑛 が成立している. 𝑏𝑛 は 𝛽 に収束するので, ある番号 𝑁 ′ が存在して,𝑛 ≧ 𝑁 ′ ならば |𝑏𝑛 − 𝛽| < 𝜀, 特に 𝑏𝑛 < 𝛽 + 𝜀 が成立している. そのとき, 𝑛 ≧ max{𝑁, 𝑁 ′ } ならば
𝛼 − 𝜀 < 𝑎𝑛 ≦ 𝑏𝑛 < 𝛽 + 𝜀となるので

𝛼 < 𝛽 + 2𝜀となる.

𝜀 > 0 は幾らでも小さくできるので, 𝛼 ≦ 𝛽 が成立している. (もしも 𝛼 > 𝛽 ならば 𝜀 = (𝛼 − 𝛽)/2 > 0 のとき
𝛼 < 𝛽 + 2𝜀 = 𝛼 となって矛盾する.) □注意: 収束する実数列 𝑎𝑛 , 𝑏𝑛 が全ての番号 𝑛 について 𝑎𝑛 < 𝑏𝑛 を満たしていても, lim 𝑎𝑛 < lim 𝑏𝑛 が成立するとは限らない.
𝑛→∞𝑛→∞
例えば 𝑎𝑛 = −1/𝑛 , 𝑏𝑛 = 1/𝑛 は 𝑎𝑛 < 𝑏𝑛 を満たしているが, どちらも 0 に収束する.
このように ≦ の型の不等号は極限で保たれるが, < の型の不等号は保たれるとは限らない. この意味で証明中で極限操作を多用する場合には ≦ 型の不等号を多用した方が便利な場合がある. □問題: 数列 𝑎𝑛 , 𝑏𝑛 がそれぞれ 𝛼,𝛽 に収束するとき, 数列 𝑎𝑛 + 𝑏𝑛 が 𝛼 + 𝛽 に収束することを証明せよ.
解答例1: 三角不等式より, 𝑛 → ∞ とすると,|(𝑎𝑛 + 𝑏𝑛 ) − (𝛼 + 𝛽)| = |(𝑎𝑛 − 𝛼) + (𝑏𝑛 − 𝛽)| ≦ |𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛼| → 0.
ゆえに |(𝑎𝑛 + 𝑏𝑛 ) − (𝛼 + 𝛽)| → 0. すなわち 𝑎𝑛 + 𝑏𝑛 → 𝛼 + 𝛽. □解答例2: 任意に 𝜀 > 0 を取る. 𝑎𝑛 は 𝛼 に収束するので, ある番号 𝑁 ′ が存在して, 𝑛 ≧ 𝑁 ′ ならば |𝑎𝑛 − 𝛼| < 𝜀/2 となる. 𝑏𝑛
は 𝛽 に収束するので, ある番号 𝑁 ″ が存在して, 𝑛 ≧ 𝑁 ″ ならば |𝑏𝑛 − 𝛽| < 𝜀/2 となる. ゆえに, 𝑁 = max{𝑁 ′ , 𝑁 ″ } とおくと, 𝑛 ≧ 𝑁 ならば,|(𝑎𝑛 + 𝑏𝑛 ) − (𝛼 + 𝛽)| = |(𝑎𝑛 − 𝛼) + (𝑏𝑛 − 𝛽)|≦ |𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛼| < 𝜀2 + 𝜀2 = 𝜀.
ここで ≦ では三角不等式を使った. これで 𝑎𝑛 + 𝑏𝑛 が 𝛼 + 𝛽 に収束することが示された. □解説: 𝑎𝑛 + 𝑏𝑛 が 𝛼 + 𝛽 に収束することを示すためにはそれらの差が適当な条件のもとで適切な意味で小さくなることを示せばよい. それらの差は三角不等式によって|(𝑎𝑛 + 𝑏𝑛 ) − (𝛼 + 𝛽)| = |(𝑎𝑛 − 𝛼) + (𝑏𝑛 − 𝛽)| ≦ |𝑎𝑛 − 𝛼| + |𝑏𝑛 − 𝛼|𝑎𝑛 𝛼 𝑏𝑛 𝛽
𝑎𝑛 + 𝑏𝑛 𝛼 + 𝛽𝑁□
問題: 𝑎𝑛 , 𝑏𝑛 がそれぞれ 𝛼,𝛽 に収束するならば 𝑎𝑛 − 𝑏𝑛 が 𝛼 − 𝛽 に収束することを示せ. □を満たしている. これはと の差とと の差が両方小さくなれば,との差も小さくなることを意味してる
う う当たり前の議論を論法の言葉 書き直せば上の問題の解答が得られる

上の問題と本質的に同じ証明が可能なので解答は略す.

𝑎𝑛

問題: 数列がある値に収束しているならば, ある正の実数を収束する数列は有界であるという.)𝑀 で |𝑎𝑛 | ≦ 𝑀 を満たすものが存在することを示せ. (この事実

𝑎𝑛 の収束先は 𝛼 であるとする. ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば |𝑎𝑛 − 𝛼| ≦ 1 となるので,|𝑎𝑛 | = |𝑎𝑛 − 𝛼 + 𝛼| ≦ |𝑎𝑛 − 𝛼| + |𝛼| ≦ 1 + |𝛼|.
ゆえに 𝑀 = max{|𝑎1 |,…,|𝑎𝑁−1 |,1 + |𝛼|} とおくと, すべての番号 𝑛 について |𝑎𝑛 | ≦ 𝑀 となる. □1000 である場合に上の解答例の議論を適用してみよう. そのとき, 𝑛 ≧ 1000 とすると,
例: 𝑎𝑛 = 10 +
𝑛 10
1000
|𝑎𝑛 − 10| = 𝑛 ≦ 1000 ≦ 1 となり, |𝑎𝑛 | ≦ 1 + 10 = 11 となる. 𝑎1 = 1010, 𝑎2 = 510, …, 𝑎999 = 10 + 1000/999,
1 + 10 = 11 の最大値は 1010 である. ゆえにすべての番号 𝑛 について |𝑎𝑛 | ≦ 1010. □問題: 数列 𝑎𝑛 , 𝑏𝑛 がそれぞれ 𝛼,𝛽 に収束するとき, 数列 𝑎𝑛 𝑏𝑛 が 𝛼𝛽 に収束することを示せ.
解答例1: 収束する数列は有界なので, ある正の実数 𝑀 ですべての番号 𝑛 について |𝑎𝑛 | ≦ 𝑀 を満たすものが存在する. 三角不等式より, 𝑛 → ∞ のとき|𝑎𝑛 𝑏𝑛 − 𝛼𝛽| = |𝑎𝑛 𝑏𝑛 − 𝑎𝑛 𝛽 + 𝑎𝑛 𝛽 − 𝛼𝛽| = |𝑎𝑛 (𝑏𝑛 − 𝛽) + (𝑎𝑛 − 𝛼)𝛽|≦ |𝑎𝑛 ||𝑏𝑛 − 𝛽| + |𝑎𝑛 − 𝛼||𝛽| ≦ 𝑀|𝑏𝑛 − 𝛽| + |𝑎𝑛 − 𝛼||𝛽| → 0となるので, 𝑎𝑛 𝑏𝑛 → 𝛼𝛽 となる. □解答例2: 𝑎𝑛 𝑏𝑛 と 𝛼𝛽 の差は三角不等式によって|𝑎𝑛 𝑏𝑛 − 𝛼𝛽| = |𝑎𝑛 𝑏𝑛 − 𝑎𝑛 𝛽 + 𝑎𝑛 𝛽 − 𝛼𝛽| = |𝑎𝑛 (𝑏𝑛 − 𝛽) + (𝑎𝑛 − 𝛼)𝛽|≦ |𝑎𝑛 ||𝑏𝑛 − 𝛽| + |𝑎𝑛 − 𝛼||𝛽|と上から評価される. 上の問題の結果より, ある正の実数 𝑀 が存在して, すべての番号 𝑛 について |𝑎𝑛 | ≦ 𝑀 となる. 𝑏𝑛 は 𝛽に収束するので, ある番号 𝑁 ″ が存在して, 𝑛 ≧ 𝑁 ″ ならば |𝑏𝑛 − 𝛽| < 𝜀/(2𝑀) となる. 𝑎𝑛 は 𝛼 に収束するので, ある番号
𝑁 ′ が存在して, 𝑛 ≧ 𝑁 ′ ならば |𝑎𝑛 − 𝛼| < 𝜀/(2|𝛽| + 1) となる. そのとき, 𝑛 ≧ max{𝑁 ′ , 𝑁 ″ } ならば, 上の評価式より,|𝑎𝑛 𝑏𝑛 − 𝛼𝛽| < 𝑀 2𝑀𝜀 + 2|𝛽|𝜀+ 1 |𝛽| ≦ 𝜀2 + 𝜀2 = 𝜀.
これで 𝑎𝑛 𝑏𝑛 が 𝛼𝛽 に収束することが示された. □問題: 𝑎𝑛 が 𝛼 ≠ 0 に収束するならば, 𝑟 < |𝛼| を満たす任意の実数 𝑟 に対して, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば|𝑎𝑛 | ≧ 𝑟 となることを示せ.
解答例: 𝑟 < |𝛼| より 𝜀 = |𝛼| − 𝑟 とおくと, 𝜀 > 0 となり, 𝑎𝑛 は 𝛼 に収束するので, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば,|𝑎𝑛 − 𝛼| < 𝜀 = |𝛼| − 𝑟 となり,|𝑎𝑛 | = |𝑎𝑛 − 𝛼 + 𝛼| ≧ |𝛼| − |𝑎𝑛 − 𝛼| > 𝑟となる. □
𝑛 100 と 𝑟 = 0.9 の場合に上の解答例の議論を適用してみよう. 𝑛 ≧ 1001 とすると
例: 𝑎𝑛 = −1 + (−1)
𝑛100100|𝑎𝑛 − (−1)| = 𝑛 ≦ 1001 < 0.1 となるので, |𝑎𝑛 | ≧ | − 1| − |𝑎𝑛 − (−1)| > 1 − 0.1 = 0.9 = 𝑟 となる. □解答例:

𝑎𝑛 が 𝛼 ≠ 0 に収束しているならば 1/𝑎𝑛 は 1/𝛼 に収束することを示せ.
|𝛼| となる. 三角不等式より, 𝑛 → ∞ のとき,
解答例1: 𝑎𝑛 → 𝛼 ≠ 0 より, 十分に 𝑛 を大きくすると |𝑎𝑛 | ≧2|| 1 − 1 || = || 𝛼 − 𝑎𝑛 || = |𝑎𝑛 − 𝛼| ≦ |𝑎𝑛 − 𝛼| → 0.
|| 𝑎𝑛 𝛼 || || 𝑎𝑛 𝛼 || |𝑎𝑛 ||𝛼| (|𝛼|/2)|𝛼|
1 1
ゆえに
𝑎𝑛 → 𝛼 となる. □解答例2: 1/𝑎𝑛 と 1/𝛼 の差は問題:

|| 1 − 1 || = || 𝛼 − 𝑎𝑛 || = |𝑎𝑛 − 𝛼||| 𝑎𝑛 𝛼 || || 𝑎𝑛 𝛼 || |𝛼|
をみたしている. 上の問題の結果より, ある番号 𝑁 ′ が存在して, 𝑛 ≧ 𝑁 ′ ならば |𝑎𝑛 | ≧ |𝛼|/2 となる. 𝑎𝑛 は 𝛼 に収束している
2ので, ある番号 𝑁 ″ が存在して, 𝑛 ≧ 𝑁 ″ ならば |𝑎𝑛 − 𝛼| < |𝛼| 𝜀/2 となる. そのとき, 𝑁 = max{𝑁 ′ , 𝑁 ″ } とおくと,𝑛 ≧ 𝑁 ならば|| 1 − 1 || = |𝑎𝑛 − 𝛼| < |𝛼|2 𝜀/2 = 𝜀.
|| 𝑎𝑛 𝛼 || |𝑎𝑛 ||𝛼| (|𝛼|/2)|𝛼|
これで 1/𝑎𝑛 が 𝛼 に収束することが示された. □問題: 数列 𝑎𝑛 が 𝛼 に収束しているならば
𝑏𝑛 = 𝑎1 + ⋯𝑛 + 𝑎𝑛
も 𝛼 に収束することを示せ.
ヒント: 𝑎𝑛 を 𝑎𝑛 − 𝛼 で置き換えることによって, 𝑎𝑛 が 0 で収束するならば 𝑏𝑛 も 0 に収束することを示せば十分であることがわかる. 𝑎𝑛 が 0 に収束するならば, 十分大きな 𝑁 について 𝑎𝑛 はほとんど 0 になるので, 𝑛 ≧ 𝑁 のとき加法平均(𝑎𝑁 + 𝑎𝑁+1 + ⋯ + 𝑎𝑛 )/(𝑛 − 𝑁 + 1) もほとんど 0 になるだろう. 𝑁 を固定したまま 𝑛 ≧ 𝑁 を大きくすれば(𝑎1 + ⋯ + 𝑎𝑁−1 )/𝑛 は 0 に収束する. □注意: 上の問題は 𝜀-𝑁 論法を使った方が「易しい」例として有名である. 𝜀-𝑁 論法を理解しているかどうかのチェックにもよく使われる. 以下の解答例を読まずに自力で証明を考えた方がよいと思われる. □解答例1: 𝐴𝑛 = 𝑎𝑛 − 𝛼 とおくと,𝑏𝑛 − 𝛼 = 𝑎1 + ⋯𝑛 + 𝑎𝑛 − 𝛼 = (𝑎1 − 𝛼) + ⋯𝑛 + (𝑎𝑛 − 𝛼) = 𝐴1 + ⋯𝑛 + 𝐴𝑛 .
これの右辺を 𝐵𝑛 を書くことにする. これより, 𝐴𝑛 → 0 から 𝐵𝑛 → 0 を示せば十分であることがわかる. 以下では 𝐴𝑛 , 𝐵𝑛 をそれぞれ 𝑎𝑛 , 𝑏𝑛 と書く. 𝑎𝑛 → 0 という仮定のもとで 𝑏𝑛 → 0 を示せばよい.
𝜀 未満になるので, 𝑛 ≧ 𝑁 な
任意に 𝜀 > 0 を取る. 𝑎𝑛 → 0 より, ある番号 𝑁 が存在して, |𝑎𝑁 |,|𝑎𝑁+1 |,|𝑎𝑁+2 |,… がすべて
2
らば|𝑏𝑛 | ≦ |𝑎1 | + ⋯𝑛 + |𝑎𝑛 |= |𝑎1 | + ⋯𝑛+ |𝑎𝑁−1 | + |𝑎𝑁 | + |𝑎𝑁+1𝑛| + ⋯ + |𝑎𝑛 || + ⋯ + |𝑎𝑛 |≦ |𝑎1 | + ⋯𝑛+ |𝑎𝑁−1 | + |𝑎𝑁 | + |𝑛𝑎𝑁+1
−𝑁+1
|
|
+
⋯
+
|
|
𝑎
𝑎
𝜀
𝑁−1
1
<
+ 2.
𝑛
𝑁 ′ は 2(|𝑎1 | + ⋯ + |𝑎𝑁−1 |)/𝜀 より大きな正の整数であるとする. そのとき, 𝑛 ≧ 𝑁 ′ ならば|𝑎1 | + ⋯ + |𝑎𝑁−1 | < |𝑎1 | + ⋯ + |𝑎𝑁−1 | = 𝜀 .
2(|𝑎1 | + ⋯ + |𝑎𝑁−1 |)/𝜀 2𝑛以上より, 𝑛 ≧ max{𝑁, 𝑁 ′ } ならば|𝑏𝑛 | < 𝜀2 + 𝜀2 = 𝜀.
これで 𝑏𝑛 が 0 に収束することが示された. □𝑎1 + ⋯ + 𝑎𝑛 が収束していても, 𝑎𝑛 が収束しない場合がある. 例えば,
注意: 上の問題の逆は成立しない. すなわち 𝑏𝑛 =𝑎𝑛 = (−1)𝑛 のとき, 𝑎𝑛 は振動して収束しないが, 𝑏𝑛 は 0𝑛 に収束する. □問題: 数列 𝑎𝑛 が収束するならば 𝑎𝑛+1 − 𝑎𝑛 も 0 に収束することを示せ.
解答例1: 数列 𝑎𝑛 は 𝛼 に収束していると仮定する. 三角不等式より, 𝑛 → ∞ のとき|𝑎𝑛+1 − 𝑎𝑛 | = |𝑎𝑛+1 − 𝛼 + 𝛼 − 𝑎𝑛 | ≦ |𝑎𝑛+1 − 𝛼| + |𝛼 − 𝑎𝑛 | → 0.
これで, 𝑎𝑛+1 − 𝑎𝑛 が 0 に収束することが示された. □解答例2: 数列 𝑎𝑛 は 𝛼 に収束すると仮定し, 𝜀 > 0 を任意に取る. 𝑎𝑛 が 𝛼 に収束することから, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁
ならば |𝑎𝑛 − 𝛼| < 𝜀/2 となる. そのとき, 𝑛 ≧ 𝑁 ならば|𝑎𝑛+1 − 𝑎𝑛 | = |𝑎𝑛+1 − 𝛼 + 𝛼 − 𝑎𝑛 | ≦ |𝑎𝑛+1 − 𝛼| + |𝛼 − 𝑎𝑛 | < 𝜀2 + 𝜀2 = 𝜀.
これで 𝑎𝑛+1 − 𝑎𝑛 が 0 に収束することが示された. □注意: 上の問題の逆は成立しない. すなわち 𝑎𝑛+1 − 𝑎𝑛 → 0 であっても 𝑎𝑛 が収束しない場合がある. 例えば,
𝑎𝑛 = 11 + 12 + ⋯ + 1𝑛 のとき, 𝑎𝑛+1 − 𝑎𝑛 = 𝑛 +1 1 は 0 に収束するが, 𝑎𝑛 は無限大に発散する. □問題(Cauchy列=基本列): 数列 𝑎𝑛 がCauchy列もしくは基本列であるとは, 任意の 𝜀 > 0 に対して, ある番号 𝑁 が存在して,𝑚,𝑛 ≧ 𝑁 ならば |𝑎𝑚 − 𝑎𝑛 | ≦ 𝜀 となることだと定める. 収束する数列はCauchy列であることを示せ.
解答例: 本質的に上の問題の解答例と同じ. 数列 𝑎𝑛 は 𝛼 に収束すると仮定し, 𝜀 > 0 を任意に取る. 𝑎𝑛 が 𝛼 に収束することから, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば |𝑎𝑛 − 𝛼| < 𝜀/2 となる. そのとき, 𝑚,𝑛 ≧ 𝑁 ならば|𝑎𝑚 − 𝑎𝑛 | = |𝑎𝑚 − 𝛼 + 𝛼 − 𝑎𝑛 | ≦ |𝑎𝑚 − 𝛼| + |𝛼 − 𝑎𝑛 | < 𝜀2 + 𝜀2 = 𝜀.
これで示すべきことが全て示された. □注意1: 数列 𝑎𝑛 がCauchy列であることを, 「𝑚,𝑛 → ∞ のとき |𝑎𝑚 − 𝑎𝑛 | → 0 になる」と言うこともある. その代わりに「𝑚,𝑛 ≧ 𝑁 で 𝑁 → ∞ のとき |𝑎𝑚 − 𝑎𝑛 | → 0 となる」と言う方がよいかもしれない. □注意2(完備性の定義): 𝑎𝑛 が収束する数列ならば 𝑎𝑛 はCauchy列になる. 実数や複素数の範囲内ではこれの逆が成立している. すなわち, 𝑎𝑛 が実数列(もしくは複素数列)でかつCauchy列ならば, ある実数 𝛼 (もしくは複素数 𝛼)が存在して 𝑎𝑛 は 𝛼 に収束する.
この結果を「実数(もしくは複素数)全体の集合は完備である」という.

実数全体の集合は有理数全体の集合の通常の絶対値による距離に関する完備化として定義されていると思ってよい. その意味で実数全体の集合の定義の中には完備性が含まれていると思ってよい.

□

1.2 級数の収束の定義(無限)級数

∞

𝑛

∞

𝑛

𝑛=1

𝑘=1

𝑛=1

𝑘=1

lim ∑ 𝑎𝑘 と書く.
∑ 𝑎𝑛 の収束は数列 𝑠𝑛 = ∑ 𝑎𝑘 の収束で定義される. 収束するとき ∑ 𝑎𝑛 = 𝑛→∞例(等比級数):|𝑞| < 1, 𝑎𝑛 = 𝑞 𝑛−1 のとき𝑛𝑠𝑛 = ∑ 𝑎𝑘 = 1 + 𝑞 + 𝑞 2 + ⋯ + 𝑞 𝑛−1 = 11−−𝑞𝑞𝑛
𝑘=1

𝑛 → ∞ で 𝑞 𝑛 → 0 なので, 𝑠𝑛 → 1/(1 − 𝑞) となる. すなわち,∞∞
𝑚 = 𝑞 𝑛−1 = 1 .
𝑞
∑ ∑
1−𝑞 □
𝑚=0
𝑛=1
1 − 𝑞 𝑛 は 𝑞 → 1 で 𝑛 に収束する. これを 𝑞 数 (𝑞-number)と呼び, (𝑛)𝑞 のように書くことがある:
注意: 1 + 𝑞 + ⋯ + 𝑞 𝑛−1 =1−𝑞(𝑛)𝑞 = 11−−𝑞𝑞𝑛 .
さらに 𝑞 階乗 (𝑞 -factorial)や 𝑞 二項係数が(𝑛)𝑞!
(𝑛)𝑞! = (1)𝑞(2)𝑞 ⋯(𝑛)𝑞, (𝑘𝑛) = (𝑘)𝑞!(𝑛− 𝑘) 𝑞 !
𝑞と定義される. このようにして, 数学的対象にパラメーター 𝑞 を入れて解析を行うことを 𝑞 解析と呼ぶ. 20世紀の終わり頃に量子群が発見され, 𝑞 解析と深い繋がりがあることが判明した. □であり,

問題: 級数∞𝑎𝑛 が収束しているならば, 𝑛 → ∞ で 𝑎𝑛 → 0 となることを示せ.
∑
𝑛=1

解答例1: 級数

∞

𝑛

𝑛=1

𝑘=1

∑ 𝑎𝑛 は 𝛼 に収束していると仮定する. すなわち, ∑ 𝑎𝑘 は 𝑛 → ∞ で 𝛼 に収束していると仮定する. このとき,𝑛 → ∞ のとき,

| 𝑛 𝑛−1 | | 𝑛| |𝑛−1 ||𝑎𝑛 | = |||∑ 𝑎𝑘 − ∑ 𝑎𝑘 ||| = |||∑ 𝑎𝑘 − 𝛼||| + |||∑ 𝑎𝑘 − 𝛼||| → 0.
|𝑘=1 𝑘=1 | |𝑘=1 | |𝑘=1 |𝑎𝑛 → 0 であることが示された. □∞𝑎𝑛 は 𝛼 に収束していると仮定し, 𝜀 > 0 を任意に取る. このとき, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば
解答例2: 級数
∑
𝑛=1
|| 𝑛
|
||∑ 𝑎𝑘 − 𝛼||| < 𝜀2 となる. ゆえに 𝑛 − 1 ≧ 𝑁 のとき,
|𝑘=1 || 𝑛 𝑛−1 | | 𝑛| |𝑛−1 ||𝑎𝑛 | = |||∑ 𝑎𝑘 − ∑ 𝑎𝑘 ||| = |||∑ 𝑎𝑘 − 𝛼||| + |||∑ 𝑎𝑘 − 𝛼||| < 𝜀2 + 𝜀2 = 𝜀.
|𝑘=1 𝑘=1 | |𝑘=1 | |𝑘=1 |これで, 𝑎𝑛 → 0 となることが示された. □これで問題: 上の問題の逆が成立しないことを示せ. すなわち,∞

𝑎𝑛 → 0 であっても, ∑ 𝑎𝑛 が収束するとは限らないことを示せ.
𝑛=1

𝑎𝑛 = 1/𝑛 とおくと, 𝑎𝑛 → 0 である. しかし, 𝑛 ≦ 𝑥 ≦ 𝑛 + 1 のとき 1/𝑥 ≦ 1/𝑛 なので,
𝑘+1
𝑘+1
log(𝑘 + 1) − log𝑘 = ∫𝑘 𝑑𝑥𝑥 ≦ ∫𝑘 𝑘1 𝑑𝑥 = 𝑘1 = 𝑎𝑘となるので, 両辺を 𝑘 = 1,…,𝑛 について足し上げてると,𝑛𝑛log(𝑛 + 1) ≦ ∑ 𝑘1 = ∑ 𝑎𝑘 .
解答例:

これより,

In [3]:

Out[3]:

1
2
3
4
5
6
7
8
9
10
11
12
13

𝑛

𝑘=1

𝑘=1

𝑛 → ∞ で ∑ 𝑎𝑘 → ∞ となることがわかる. □𝑘=1# 1/1+1/2+...+1/n と log n の比較# nを大きくするとそれらの差はEuler定数 γ = 0.5772… に近付く
# ゆえに, 1/1+1/2+...+1/n は log n + γ でよく近似される.
# 以下のプロットでもそれらのグラフはほとんど一致している.
​
f(x) = sum(k->1/k, 1:floor(Int, x))n = 1:100
x = 1:0.1:100
plot(size=(500,350), legend=:bottomright)
plot!(n, f.(n), label="1/1+1/2+...+1/n", lw=2.5)
plot!(x, log.(x), label="log(x)", ls=:dashdot, color=:orange)plot!(x, log.(x.+1), label="log(x+1)", ls=:dashdot, color=:darkgreen)
plot!(x, log.(x).+eulergamma, label="log(x) + Euler's gamma", lw=2, ls=:dash, color=:red

In [4]:

1 ?eulergamma

search: eulergamma
Out[4]: γeulergamma
Euler's constant.

Examplesjulia> Base.MathConstants.eulergamma
γ = 0.5772156649015...
julia> dx = 10^-6;
julia> sum(-exp(-x) * log(x) for x in dx:dx:100) * dx
0.5772078382499133

1.3 連続的な極限

𝑥

𝑓(𝑥) 𝑥 → 𝑎 で 𝛼 に収束するとは, 任意の 𝜀 > 0 に対して, ある 𝛿 > 0 が存在して, 0 < |𝑥 − 𝑎| < 𝛿𝑥|𝑓(𝑥) − 𝛼| < 𝜀 が成立することである.
𝑓(𝑥) が 𝑥 → 𝑎 で 𝛼 に収束するとき, その極限の値を 𝑥→𝑎lim 𝑓(𝑥) = 𝛼 と定義する. 収束しないときには極限の値は定義されない.
函数の における値がを満たすすべての について

問題: 上の定義における|𝑓(𝑥) − 𝛼| < 𝜀 を |𝑓(𝑥) − 𝛼| ≦ 𝜀 に置き換えても同値な条件になることを示せ. □解答例: 以下の2条件が互いに同値であることを示そう.
(1) 任意のる.
(2) 任意のる.

𝜀 > 0 に対して, ある 𝛿 > 0 が存在して, 0 < |𝑥 − 𝑎| < 𝛿 を満たすすべての 𝑥 について |𝑓(𝑥) − 𝛼| < 𝜀 が成立す
𝜀 > 0 に対して, ある 𝛿 > 0 が存在して, 0 < |𝑥 − 𝑎| < 𝛿 を満たすすべての 𝑥 について |𝑓(𝑥) − 𝛼| ≦ 𝜀 が成立す

𝑀 について以下も同値であることも示してしまおう.
(3) 任意の 𝜀 > 0 に対して, ある 𝛿 > 0 が存在して, 0 < |𝑥 − 𝑎| < 𝛿 を満たすすべての 𝑥 について |𝑓(𝑥) − 𝛼| ≦ 𝑀𝜀 が成立
ついでに任意の正の実数
する.

⟹

𝜀>0

0 < |𝑥 − 𝑎| < 𝛿𝑥|𝑓(𝑥) − 𝛼| < 𝜀 が(1)(2): (1)を仮定して, 任意にを取る. (1)より,を満たすすべての について成立し, そのときが自明に成立している. これで(1)から(2)が自明に導かれることがわかった.

⟹|𝑓(𝑥) − 𝛼| ≦ 𝜀

𝜀 > 0 を取る. (2)の 𝜀 として 𝑀𝜀 を採用すると, ある 𝛿 > 0 が存在して, 0 < |𝑥 − 𝑎| < 𝛿|𝑓(𝑥) − 𝛼| ≦ 𝑀𝜀 が成立する. これで(2)から(3)も自明に導かれることがわかった.
(3) ⟹ (1): (3)を仮定して, 任意に 𝜀 > 0 を取る. (3)の 𝜀 として 𝜀/(2𝑀) を採用すると, ある ある 𝛿 > 0 が存在して,0 < |𝑥 − 𝑎| < 𝛿 を満たすすべての 𝑥 について |𝑓(𝑥) − 𝛼| ≦ 𝑀(𝜀/(2𝑀)) = 𝜀/2 < 𝜀 が成立する. これで(3)から(1)が導かれ(2)(3): (2)を仮定して, 任意にを満たすすべての について𝑥

ることがわかった.

以上によって(1),(2),(3)が互いに同値であることがわかった.
問題: さらに□< 𝛿 の部分を ≦ 𝛿 に変更しても同値であることを示せ. \QED

上の解答例と完全に同じ考え方で証明できるので解答略.

2 収束の判定法の基本
2.1 挟撃法 (挟み撃ち)

𝐴𝑛 ≦ 𝑎𝑛 ≦ 𝐵𝑛 でかつ 𝐴𝑛 と 𝐵𝑛 が 𝛼 に収束するならば 𝑎𝑛 も 𝛼 に収束する.
証明: 𝜀 > 0 を任意に取る. 𝐴𝑛 → 𝛼 より, ある番号 𝑁 ′ が存在して, 𝑛 ≧ 𝑁 ′ ならば |𝐴𝑛 − 𝛼| < 𝜀, 特に 𝛼 − 𝜀 < 𝐴𝑛 となる.
𝑁 ″ が存在して, 𝑛 ≧ 𝑁 ″ ならば |𝐴𝑛 − 𝛼| < 𝜀, 特に 𝐵𝑛 < 𝛼 + 𝜀 となる. ゆえに
𝐵𝑛 → 𝛼 より,′ある番号″
𝑁 = max{𝑁 , 𝑁 } とおくと, 𝑛 ≧ 𝑁 のとき,
𝛼 − 𝜀 < 𝐴𝑛 ≦ 𝑎𝑛 ≦ 𝐵𝑛 < 𝛼 + 𝜀
定理:

なので

|𝑎𝑛 − 𝛼| < 𝜀 となる. これで 𝑎𝑛 → 𝛼 が示された. □𝐴𝑛 ≦ 𝑎𝑛 でかつ 𝐴𝑛 → ∞ ならば 𝑎𝑛 → ∞ となる.
証明: 𝑀 は任意の実数であるとする. 𝐴𝑛 → ∞ より, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば 𝐴𝑛 ≧ 𝑀 となり, 𝑎𝑛 ≧ 𝐴𝑛 ≧ 𝑀となる. これで 𝑎𝑛 → ∞ を示せた. □注意: 挟撃法は「|𝑎𝑛 | ≦ 𝐴𝑛 かつ 𝐴𝑛 → 0 ならば 𝑎𝑛 → 0 となる」の形式で使われることが非常に多い. したがって, 挟撃法を便利に利用するためには 0 に収束する 𝐴𝑛 の例をたくさん知っておくことが必要である. □例: 𝑛 → ∞ のとき 𝑎𝑛 → 0 かつ 𝑏𝑛 → 𝛽 となっているならば, 𝑎𝑛 𝑏𝑛 → 0 となる. 同様に, 𝑥 → 0 のとき, 𝑓(𝑥) → 0 かつ
𝑔(𝑥) → 0 となっているならば, 𝑓(𝑥)𝑔(𝑥) → 0 となる. この場合は簡単である. 難しいのは 𝑎𝑛 → 0 かつ 𝑏𝑛 → ∞ となっているときの, 𝑎𝑛 𝑏𝑛 の 𝑛 → ∞ での様子や, 𝑥 → 0 のとき 𝑓(𝑥) → 0 かつ 𝑔(𝑥) → ∞ となっているときの, 𝑓(𝑥)𝑔(𝑥) の 𝑥 → 0 での様子を調べることである. □上の例の補足の注意: 𝑎𝑛 → ∞ の定義は, 任意の実数 𝑀 に対して, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば 𝑎𝑛 ≧ 𝑀 となることである. 𝑥 → 0 のとき 𝑓(𝑥) → ∞ となることの定義は, 任意の実数 ＄Ｍ＄に対して, ある 𝛿 > 0 が存在して, 0 < |𝑥| < 𝛿 ならば 𝑓(𝑥) ≧ 𝑀 となることである. □定理:

2.2 二項定理の復習
以下の節では

0 への収束の判定を主に扱うが, そのための準備として二項定理について復習しておく.

二項係数を𝑛 𝑛(𝑛 − 1)⋯(𝑛 − 𝑘 + 1)
(𝑘) =
𝑘!

と定義する. 例えば𝑛𝑛𝑛 𝑛(𝑛 − 1) 𝑛 𝑛(𝑛 − 1)(𝑛 − 2) .
(0) = 1, (1) = 𝑛, (2) = 2 , (3) =6𝑛 も 𝑘 も非負の整数のとき (𝑛𝑘) は 𝑛 個から 𝑘 個選び出すときの場合の数に一致している. 高校数学では 𝑛 𝐶𝑘 のように書いてい𝑛𝑛るようだが, 一般には (𝑘) と書くことの方が多いように感じられるので, (𝑘) の方を使用する. (上の定義に従えば, 𝑘 が非負の整𝑛数でありさえすれば, 𝑛 が整数でなくても (𝑘) が定義されていることに注意せよ. この事実は二項展開を考えるときに必要になる.)

以上の記号法のもとで, 二項定理は

𝑛𝑛(𝑥 + 𝑦)𝑛 = ∑ (𝑘𝑛)𝑥𝑘 𝑦𝑛−𝑘 = ∑ (𝑘𝑛)𝑥𝑛−𝑘 𝑦𝑘
𝑘=0

𝑘=0

(∗)

と書ける. ２つ目の等号は自明である.
高校数学で証明を習っているはずだが, 忘れている人は二項定理を証明しておくこと.
考え方: 解析学では不等式を扱いたい. しかし, 二項定理のような良い等式は良い不等式を生み出すために非常に役に立つ. 解析
学では非自明な等式は非自明な不等式を作る材料になる. 次の節の証明を見よ!

(𝑥 + 𝑦)𝑛

𝑥𝑘 𝑦𝑛−𝑘𝑘

𝑥 𝑛 − 𝑘 個の 𝑦 の並べ方の個数に等しい. そ二項定理の証明1:を展開したときに得られるの係数は 個の との個数は全部で 個並べるうち 個の の場所の選び方の個数に等しい. それは

𝑛

に等しい.

□

𝑥

𝑛! = 𝑛𝑘!(𝑛 − 𝑘)! (𝑘)𝑛 に関する帰納法を使う. 𝑛 = 0 の場合に(∗)は成立している. (∗)が 𝑛 について成立していると仮定する. その𝑘 が負の整数のとき (𝑛𝑘) = 0 と約束しておくと,二項定理の証明2:
とき,

𝑘

𝑛
𝑛 𝑛(𝑛 − 1)⋯(𝑛 − 𝑘 + 2) + 𝑛(𝑛 − 1)⋯(𝑛 − 𝑘 + 2)(𝑛 − 𝑘 + 1)
(𝑘 − 1) + (𝑘) =(𝑘 − 1)!
𝑘!
𝑛(𝑛
−
1)⋯(𝑛
−
𝑘
+
2)
=
× (𝑘 + (𝑛 − 𝑘 + 1))𝑘!
− 𝑘 + 2) × (𝑛 + 1)
= 𝑛(𝑛 − 1)⋯(𝑛𝑘!
𝑛+
1= ( 𝑘 ).
ゆえに 𝑛 に関する帰納法の仮定(∗ )を使うと,
𝑛(𝑥 + 𝑦)𝑛+1 = (𝑥 + 𝑦)(𝑥 + 𝑦)𝑛 = (𝑥 + 𝑦) ∑ (𝑘𝑛)𝑥𝑘 𝑦𝑛−𝑘
𝑘=0
𝑛 𝑛
𝑛 𝑛
= ∑ (𝑘)𝑥𝑘+1 𝑦𝑛−𝑘 + ∑ (𝑘)𝑥𝑘 𝑦𝑛+1−𝑘
𝑘=0
𝑘=0
𝑛+1 𝑛
𝑛+1
= ∑ (𝑘 − 1)𝑥𝑘 𝑦𝑛+1−𝑘 + ∑ (𝑘𝑛)𝑥𝑘 𝑦𝑛+1−𝑘
𝑘=0
𝑘=0
𝑛+1
= ∑ ((𝑘 𝑛 1) + (𝑘𝑛)) 𝑥𝑘 𝑦𝑛+1−𝑘∞ 𝑥𝑘
注意: 二項定理は形式べき級数としての 𝑓(𝑥) =∑ 𝑘! が
𝑘=0

𝑓(𝑥 + 𝑦) = 𝑓(𝑥)𝑓(𝑦)を満たしていることと同値である. なぜならば,∞𝑓(𝑥 + 𝑦) = ∑ 𝑛!1 (𝑥 + 𝑦)𝑛 ,𝑛=0∞ 𝑘 𝑦𝑙 ∞ 𝑛−𝑘 𝑥𝑘 𝑦𝑛−𝑘
∞ 𝑛−𝑘𝑓(𝑥)𝑓(𝑦) = ∑ 𝑥𝑘!𝑙!
= ∑ ∑ 𝑘!(𝑛 − 𝑘)! = ∑ 𝑛!1 ∑ (𝑘𝑛)𝑥𝑘 𝑦𝑛−𝑘 .
𝑘,𝑙=0
𝑛=0 𝑘=0𝑛=0 𝑘=0𝑓(𝑥) は 𝑒𝑥+𝑦 = 𝑒𝑥 𝑒𝑦 を満たす指数函数 𝑒𝑥 の 𝑥 = 0 におけるTaylor展開に等しい. そのことを使うことを許せば,𝑥+𝑦二項定理を経由せずに 𝑓(𝑥 + 𝑦) = 𝑓(𝑥)𝑓(𝑦) を示せる. このように, 二項定理のような組み合わせ論的な内容を持つ定理と 𝑒= 𝑒𝑥 𝑒𝑦 のような特別な函数が満たす特別な関係式が同値になっていることはよくある. □2.3 多項式函数より指数函数の方が速く増加すること定理:

𝑙𝑎 > 1 ならば 𝑛 → ∞ のとき 𝑎𝑛𝑛 → 0. □証明: 二項定理を使う.

𝐿 は 𝑙 より大きな正の整数であるとし, 𝑛 は 𝐿 以上であると仮定する.
そのとき特に 𝑛 → ∞ のとき 𝑛𝑙 /𝑛𝐿 → 0 が成立している.
𝑎 > 1 なので 𝑎 = 1 + 𝛼, 𝛼 > 0 と書ける. 二項定理より
𝑛𝑛− 𝑘 + 1) 𝛼 2
𝑎𝑛 = (1 + 𝛼)𝑛 = ∑ (𝑘𝑛)𝛼 𝑘 = ∑ 𝑛(𝑛 − 1)⋯(𝑛
𝑘!
𝑘=0
𝑘=0
− 𝐿 + 1) 𝛼 𝐿 = 𝑛𝐿 (1 − 1/𝑛)⋯(1 − (𝐿 − 1)/𝑛)𝛼 𝐿 .
≧ 𝑛(𝑛 − 1)⋯(𝑛
𝐿!
𝐿!
ゆえに, 𝑛 → ∞ のとき
0 ≦ 𝑎𝑛𝑛𝑙 ≦ 𝑛𝑛𝐿𝑙 × (1 − 1/𝑛)⋯(1𝐿!− (𝐿 − 1)/𝑛)𝛼 𝐿 → 0 × 𝛼𝐿!𝐿 = 0. □𝑎 = 1.01, 𝑙 = 100 のとき, 𝑛𝑙 と 𝑎𝑛 の大きさを比較するためのグラフを描いてみよ.
解答例: 直接 𝑛𝑙 と 𝑎𝑛 を扱うと数値が巨大になり過ぎるので, それらの対数を比較することにする.
問題:

In [5]:



1
2
3
4
5
6
7
8

a = 1.01
l = 100
n = 1:10^3:2*10^5f(n) = l*log(n)g(n) = n*log(a)plot(size=(500, 350), legend=:topleft, xlabel="n")plot!(n, f.(n), label="$l*log(n)")
plot!(n, g.(n), label="n*log($a)")

Out[5]:

𝑙𝑎 > 1 ならば, 𝑥 > 0 が連続的に幾らでも大きくなるとき 𝑎𝑥𝑥 → 0 となることを示せ.
証明: 正の整数 𝑛 について 𝑛 ≦ 𝑥 ≦ 𝑛 + 1 のとき, 𝑥𝑙 は 𝑛𝑙 と (𝑛 + 1) 𝑙 のあいだにあり, 𝑎𝑥 は 𝑎𝑛 以上になる. ゆえに, 𝑥 → ∞のとき, 𝑛 → ∞ となり,𝑙𝑙 + 1) 𝑙 }𝑛𝑙 , 𝑎 (𝑛 + 1)𝑙 → 0.
0 ≦ 𝑎𝑥𝑥 ≦ max{𝑛 ,(𝑛≦max{ 𝑎𝑛 𝑎𝑛+1 }𝑎𝑛
最後に上の方の定理を使った. これで示すべきことが示された. □問題: 𝑥 > 0 について, 𝑥 → 0 のとき 𝑥log𝑥 → 0 となることを示せ.
証明: 𝑥 > 0 なので 𝑥 = 𝑒−𝑡 , 𝑡 ∈ ℝ と書ける. 𝑥 → 0 のとき 𝑡 → ∞ となるので,𝑥log𝑥 = 𝑒−𝑡 log 𝑒−𝑡 = − 𝑒𝑡𝑡 → 0.
最後の上の問題の結果を使った. □注意: 統計学に出て来る計算では 0log0 = 0 と約束しておくことが適切な場合が多い. □問題:

In [6]:

1 f(x) = x*log(x)2 x = 0.001:0.001:1
3 plot(x, f.(x), xlim=(-0.1,1), ylim=(-0.4,0), label="y = x log x", legend=:top)Out[6]:

2.4 指数函数より階乗の方が速く増加すること𝑛𝑎 > 0 と仮定する. そのとき 𝑛 → ∞ ならば 𝑎𝑛! → 0 が成立する.
𝑎
証明: 𝑁 を十分大きくすると
𝑁 + 1 < 1 となる. そして, 𝑛 > 𝑁 とすると,
𝑎𝑛 = 𝑎𝑁 𝑎 𝑎 ⋯ 𝑎 ≦ 𝑎𝑁 𝑎 𝑛−𝑁 → 0 (𝑛 → ∞). □𝑛! 𝑁! 𝑁 + 1 𝑁 + 2 𝑛 𝑁! ( 𝑁 + 1 )𝑛! → 0 が成立することを示せ.
問題: 𝑎 > 1 と仮定する. そのとき 𝑛 → ∞ ならば
𝑎𝑛2
𝑛
𝑛 1
解答例: 指数函数は多項式函数より速く増加するので 𝑛 → 0 . ゆえにある番号 𝑁 が存在して 𝑛 > 𝑁 ならば 𝑎𝑛 ≧ 2 となる.
𝑎
したがって, 𝑛 > 𝑁 のとき,
𝑛! = 𝑛! = 𝑁! 𝑁 + 1 𝑁 + 2 ⋯ 𝑛 ≦ 𝑁! 1 𝑛−𝑁 → 0 (𝑛 → ∞). □𝑎𝑛2 (𝑎𝑛 )𝑛 (𝑎𝑛 )𝑁 𝑎𝑛 𝑎𝑛 𝑎𝑛 (𝑎𝑁 )𝑛 ( 2 )定理:

2.5 まとめ𝑛 → ∞ のとき 𝑎𝑏𝑛𝑛 → 0 となることを 𝑎𝑛 ≺ 𝑏𝑛 と書くことにする. 𝑎 > 1 のとき
1 ≺ ⋯ ≺ loglog𝑛 ≺ log𝑛 ≺ 𝑛 ≺ 𝑛2 ≺ ⋯ ≺ 𝑎𝑛 ≺ 𝑛! ≺ 𝑎𝑛2 ≺ ⋯右に行くほど 𝑛 → ∞ で速く増加する. このように増大度に階層性があるという認識は解析学における基本になる.
例: Stirlingの近似公式より,

𝑛! = 𝑛𝑛 𝑒1𝑛 √⎯𝑛 √⎯2𝜋⎯⎯⎯ (1 + 𝜀𝑛 ) (𝜀𝑛 → 0)が成立することが知られている(この一連のノート群の中でも複数回証明される)). 右辺に登場する

𝑛 → ∞ で速く増加する.
𝛿𝑛 = log(1 + 𝜀𝑛 ) とおき, Stirlingの近似公式の両辺の対数を取ると,log𝑛! = 𝑛log𝑛 − 𝑛 + 12 log𝑛 + 12 log2𝜋 + 𝛿𝑛 (𝛿𝑛 → 0).
1 1 ⎯⎯⎯⎯
右辺に登場する 𝑛log𝑛, 𝑛, log𝑛 , log √ 2𝜋 , 𝛿𝑛 は左のものほど 𝑛 → ∞ で速く増加する. □2 2のほど

𝑛𝑛 , 𝑒𝑛 , √⎯𝑛, √⎯2𝜋⎯⎯⎯ は左のも

次のセルでIn [7]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

log𝑛! がどのように近似されるかをプロットしてみよう. □lfact(n) = lgamma(n+1) # = log n!
f1(n) = n*log(n)f2(n) = n*log(n) - n
f3(n) = n*log(n) - n + 0.5*log(n)f4(n) = n*log(n) - n + 0.5*log(n) + 0.5*log(2π)​
function plot_logfactorial(n)plot(legend=:topleft)
plot!(n, lfact.(n), label="log n!", lw=1.5)
plot!(n, f1.(n), label="n log n", ls=:dash)plot!(n, f2.(n), label="n log n - n", ls=:dash)plot!(n, f3.(n), label="n log n - n + 0.5 log n", ls=:dash)plot!(n, f4.(n), label="n log n - n + (1/2)log n + (1/2)log 2pi", color=:red, ls=:daend

Out[7]: plot_logfactorial (generic function with 1 method)
In [8]:



1 plot_logfactorial(1:20)

Out[8]:

In [9]:

Out[9]:

1 plot_logfactorial(10:10:1000)

In [10]:

1 plot_logfactorial(10^16:10^16:10^18)Out[10]:

すぐ上のプロットを見れば,がわかる.

𝑛 がこのように極めて大きな値であれば log𝑛! の log 𝑛𝑛 = 𝑛log𝑛 による近似もそう悪くないこと

3 上限と下限と上極限と下極限
3.1 上限と下限

𝑌 は空でない実数の集合であると仮定する.
実数 𝑀 で任意の 𝑦 ∈ 𝑌 について 𝑦 ≦ 𝑀 を満たすものを実数の集合 𝑌 の上界(upper bound)と呼ぶ. 実数 𝑚 で任意の 𝑦 ∈ 𝑌について 𝑚 ≦ 𝑦 を満たすものを 𝑌 の下界(lower bound)と呼ぶ.
𝑌 の上界が1つ以上存在するとき, 𝑌 は上に有界(bounded from above)であると言い, 𝑌 の下界が1つ以上存在するとき, 𝑌 は下に有界(bounded from below)であると言う. 𝑌 が上に有界かつ下に有界であるとき, 𝑌 は有界(bounded)であると言う.
次の結果は認めて使うことにする.

𝑌 が上に有界ならば 𝑌 の上界全体の集合の中に最小値が存在する. □𝑌 が上に有界なとき, 𝑌 の上界全体の集合の最小値を 𝑌 の最小上界(least upper bound)もしくは上限(supremum)と呼び. 同様に, 𝑌 が下に有界ならば 𝑌 の下界全体の集合の中に最大値が存在する. その最大値を 𝑌 の最大下界(greatest lower bound)または下限(infimum)と呼ぶ. 𝑌 の上限と下限をそれぞれ
sup𝑌, inf𝑌と書く. 集合 𝑋 上の実数値函数 𝑓(𝑥) による集合 𝑋 の像 𝑓(𝑋) = {𝑓(𝑥) ∣ 𝑥 ∈ 𝑋} の上限と下限をそれぞれ
sup𝑓(𝑋) = 𝑥∈𝑋
sup 𝑓(𝑥), inf𝑓(𝑋) = 𝑥∈𝑋
inf 𝑓(𝑥)と書く. 𝑓(𝑋) が上に(もしくは下)に有界なとき, 函数 𝑓 は 𝑋 において上に有界(もしくは下)に有界であるという.
𝑌 が上に有界でないときには 𝑌 は(有限な)上限を持たないが, そのとき sup𝑌 = ∞ と書くことがある. 同様に 𝑌 が下に有界でないときには 𝑌 は(有限な)下限を持たないが, そのとき inf𝑌 = −∞ と書くことがある.
𝑌 に最大値 max𝑌 が存在するとき, sup𝑌 = max𝑌 となる. 同様に 𝑌 に最小値 min𝑌 が存在するとき, inf𝑌 = min𝑌 とな
実数の連続性: 実数の空でない集合

る.

𝑋

±∞

上限と下限の便利なところ:に最大値や最小値が存在しなくても, 上限と下限は値としてを許せば常に存在する. 上限と下限は, 最大値や最小値が存在しないときに, それらに代わるものとして用いることができる場合が結構ある.

□
例: 開区間 𝑌 = (0,1) には最小値も最大値も存在しない. 𝑌 = (0,1) のとき inf𝑌 = 0 , sup𝑌 = 1 となる. □例: 𝑌 = {1,1/2,1/3,…} には最大値 1 は存在するが, 最小値は存在しない. このとき,

sup𝑌 = 𝑛=1,2,3,…
sup 1𝑛 = 𝑛=1,2,3,…
max 1𝑛 = 1, inf𝑌 = 𝑛=1,2,3,…
inf 1𝑛 = 0.
例: 𝑌 = {1,2,3,…} は上に有界でないので有限の上限を持たない. 下限は最小値の 1 になる:□

3.2 上極限と下極限
この節はすぐに読む必要はない. 上極限と下極限が必要になったときに読めば十分である.

𝑋

𝑌
sup𝑋 ≧ sup𝑌

𝑋

𝑌

𝑋

𝑌

実数の集合
とその部分集合 を考える.
の上界は の上界にもなるので,の上界の最小値は の上界の最小値以上になる. すなわち,となる(これは図を描いて考えれば明らかだろう). 部分集合の上限はもとの集合の上限以下になる. 同様に部分集合の下限はもとの集合の下限以上になる.
したがって, 実数列

𝑎𝑛 に対して, 数列 𝛼𝑛 = sup
𝑎𝑘 は単調減少し, 数列 𝛽𝑛 = 𝑘≧𝑛
inf 𝑎𝑘 は単調増加する. ゆえに ±∞ も収束先に含𝑘≧𝑛めれば, それらの数列は常に収束することになる. それぞれの収束先を次のように書く:

lim𝑛→∞sup 𝑎𝑛 = 𝑛→∞lim sup𝑎𝑘 = 𝑛≧1
inf sup
𝑎𝑘 ,
𝑘≧𝑛
𝑘≧𝑛
lim𝑛→∞inf 𝑎𝑛 = 𝑛→∞lim 𝑘≧𝑛
inf 𝑎𝑘 = supinf 𝑎𝑘 .
𝑛≧1 𝑘≧𝑛

これらをそれぞれ上極限(limit superior), 下極限(limit inferior)と呼ぶ.

lim inf𝑎𝑛 , lim sup𝑎𝑛 と略して書くこともある.
自明に inf 𝑎𝑘 ≦ sup 𝑎𝑘 が成立しているので,
𝑘≧𝑛𝑘≧𝑛lim𝑛→∞inf 𝑎𝑛 ≦ lim𝑛→∞sup 𝑎𝑛
それぞれをが成立している.
定理: 実数列

𝑎𝑛 についてが成立しているならば, 実数列−∞ < lim𝑛→∞inf 𝑎𝑛 = lim𝑛→∞sup 𝑎𝑛 < ∞𝑎𝑛 は収束して,

𝛼 = lim inf𝑛→∞ 𝑎𝑛 = lim sup𝑛→∞ 𝑎𝑛

lim 𝑎𝑛 = lim𝑛→∞inf 𝑎𝑛 = lim𝑛→∞sup 𝑎𝑛 .
𝑛→∞
𝜀>0

証明:
とおき, 任意にと取って固定する.
について単調増加することに注意すれば, ある番号が存在して,

𝑁′

𝛼 = lim inf𝑛→∞ 𝑎𝑛 より, inf𝑗≧𝑛 𝑎𝑗 が 𝑛

𝛼 − 𝜀 ≦ inf𝑎 ≦ 𝛼 (𝑛 ≧ 𝑁 ′ ).
𝑗≧𝑛 𝑗
同様に, sup𝑗≧𝑛 𝑎𝑗 が 𝑛 について単調減少することに注意すれば, ある番号 𝑁 ″ が存在して,
𝛼 ≦ sup𝑎𝑗 ≦ 𝛼 + 𝜀 (𝑛 ≧ 𝑁 ″ ).
𝑗≧𝑛
ゆえに 𝑛 = max{𝑁 ′ , 𝑁 ″ } のとき, 𝑘 ≧ 𝑛 ならば
𝛼 − 𝜀 ≦ inf𝑎 ≦ 𝑎 ≦ sup 𝑎 ≦ 𝛼 + 𝜀.
𝑗≧𝑛 𝑘 𝑘 𝑗≧𝑛 𝑗
これは 𝑘 ≧ 𝑛 のとき, |𝑎𝑘 − 𝛼| ≦ 𝜀 が成立することを意味する. したがって, 数列の収束の定義より, 数列 𝑎𝑛 は 𝛼 に収束する.
これで示すべきことが示された. □上極限と下極限の便利な点: lim𝑎𝑛 と違って, lim inf𝑎𝑛 と lim sup𝑎𝑛 は収束先として ±∞ を含めれば常に収束しているので収束性を確認せずに気軽に使うことができる. そして上の定理より, lim inf𝑎𝑛 と lim sup𝑎𝑛 が一致していれば, 𝑎𝑛 は収束していて収束先はそれらと同じになる.

𝑎𝑛 に対して, 任意の 𝜀 > 0 に対して, それに依存して決まる別の数列
(𝜀)
(𝜀)
𝛼
と
で同じ値
に収束するものが存在して,
さらに
𝐴𝑛 𝐵𝑛
𝐴(𝜀)𝑛 − 𝜀 ≦ 𝑎𝑛 ≦ 𝐵(𝜀)𝑛 + 𝜀だから, 以下のような使われ方をすることが多い. 実数列が成立していると仮定する. このとき,𝑛 → ∞ とすると,
𝛼 − 𝜀 ≦ lim𝑛→∞inf 𝑎𝑛 ≦ lim𝑛→∞sup 𝑎𝑛 ≦ 𝛼 + 𝜀.

𝜀 > 0 は幾らでも小さくできるので,となる. ゆえに数列𝑛→∞𝑎𝑛 は 𝛼 に収束する:「とすると」の段階では数列ければいけない.

□

lim𝑛→∞inf 𝑎𝑛 = lim𝑛→∞sup 𝑎𝑛 = 𝛼
lim 𝑎𝑛 = 𝛼.
𝑛→∞𝑎𝑛 が収束するかどうかわかっていないので, lim ではなく, lim inf と lim sup を使わな

問題: 以下の実数列の上極限を求めよ.

𝑎𝑛 = 10/𝑛 + (−1)𝑛 .
(2) 𝑏𝑛 = 10/𝑛 + sin(4𝑛) .
𝜋 が無理数であることを認めて使ってよい.
解答例: (1) lim sup 𝑎𝑛 = lim sup(10/𝑛 + (−1) 𝑛 ) = 1 .
(2) 𝜋 は無理数なので 𝑎 = 4/(2𝜋) も無理数である. そのとき, sin(4𝑛) = sin(2𝜋𝑛𝑎) . 次の問題より, 任意の 𝑘 > 0 に対して, ある正の整数 𝑛𝑘 で 𝑛𝑘 𝑎 の小数点以下の部分と 1/4 の距離が 1/𝑘 以下になるものが存在する. そのとき, 𝑛𝑘 𝑎 の小数点以下の部分
は 1/4 に収束するので, 𝑘 → ∞ で sin(2𝜋𝑛𝑘 𝑎) → sin(2𝜋(1/4)) = 1 となる. これより, lim sup 𝑏𝑛 = 1 となることがわかる.
□
問題: 実数 𝑥 に対して 𝑥 以下の最大の整数を ⌊𝑥⌋ と書き, 𝑓(𝑥) = 𝑥 − ⌊𝑥⌋ とおく. 𝑓(𝑥) は 𝑥 の小数点以下の部分になっている. 𝑎 は無理数であるとする. そのとき, 任意の 𝛼 ∈ [0,1) と 𝜀 > 0 に対して, ある正の整数 𝑛 で 𝑓(𝑛𝑎) と 𝛼| の距離が 𝜀 以下に(1)なるものが存在することを示せ.

𝑎𝑎,2𝑎,3𝑎,…
𝑓(𝑎),𝑓(2𝑎),𝑓(3𝑎),…
𝑓(𝑚𝑎) = 𝑓(𝑛𝑎) 𝑚 < 𝑛𝑛𝑎 − 𝑚𝑎 = (𝑛 − 𝑚)𝑎{𝑓(𝑎),𝑓(2𝑎),𝑓(3𝑎),…}[0,1)
𝑚 < 𝑛 𝑓(𝑚𝑎)𝑓(𝑛𝑎)𝜀(𝑛 − 𝑚)𝑎𝜀𝑓(𝑘(𝑛 − 𝑚)) 𝑘 = 1,2,3,… [0,1)𝜀𝑘𝑓(𝑘(𝑛 − 𝑚)𝑎) 𝛼𝜀□

解答例: は無理数なのでは決して整数にはならない. そして,の中の任意の2つは決して一致しない. なぜならば, もしも,ならばが整数になって矛盾するからである.) だから,は有限半開区間の無限部分集合になる. ゆえにある正の整数の組
でとの距離が 以下になるものが存在する. そのとき,とそれに最も近い整数のあいだの距離は 以下になる. このとき,,はの中に刻み幅が 以下の等差数列を作るので, 正の整数 をうまく取ればと の距離を 以下にできる.
In [11]:Out[11]:1
2
3
4nmax = 100
n = 1:nmax
plot(n, @.(10/n + (-1)^n), label="a_n", ylims=(-1.5,10), marker=:o, markersize=3, marker
plot!(n, fill(1, size(n)), label="1")In [12]:

1
2
3
4



nmax = 200
n = 1:nmax
plot(n, @.(10/n + sin(4*n)), label="b_n", ylims=(-1.5, 10), marker=:o, markersize=2, mar
plot!(n, fill(1, size(n)), label="1")Out[12]:𝑎𝑛 は実数列であるとし, 𝛼 = lim𝑛→∞sup 𝑎𝑛 とおく. 以下を示せ.
(1) 𝛼 > 𝐴 のとき, 任意の番号 𝑛 に対して, ある 𝑘 ≧ 𝑛 で 𝑎𝑘 ≧ 𝐴 を満たすものが存在する(𝑎𝑘 ≧ 𝐴 を満たす 𝑘 が無限個存在問題(上極限の特徴付け):

する).

𝛼<𝐵

(2)
のとき, ある番号
立している).

𝑁 が存在して, 𝑘 ≧ 𝑁 ならば 𝑎𝑘 ≦ 𝐵 となる(ある番号から先のすべての 𝑘 について 𝑎𝑘 ≦ 𝐵 が成

𝛼 が満たしていれば, 𝛼 = lim𝑛→∞sup 𝑎𝑛 となることも示せ.
解答例: (1)を示そう. 𝛼 = inf sup 𝑎𝑘 より, 任意の番号 𝑛 について sup 𝑎𝑘 ≧ 𝛼 となる. ゆえに, 𝛼 > 𝐴 という仮定より, 各 𝑛 ご𝑛≧1 𝑘≧𝑛𝑘≧𝑛とにある 𝑘 ≧ 𝑛 で 𝑎𝑘 ≧ 𝐴 を満たすものが存在する.
(2)を示そう. 𝛼 < 𝐵 と sup → 𝛼 より, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば sup 𝑎𝑘 ≦ 𝐵 すなわち 𝑎𝑘 ≦ 𝐵 (𝑘 ≧ 𝑛) となる.
𝑘≧𝑛𝑘≧𝑛
ゆえに 𝑘 ≧ 𝑁 ならば 𝑎𝑘 ≦ 𝐵 となる.
(1),(2)を仮定して, 𝛼 = lim sup 𝑎𝑛 を示そう. 𝐴 < 𝛼 < 𝐵 と仮定する. (1)より, 任意の番号 𝑛 に対してある 𝑘 ≧ 𝑛 で 𝑎𝑘 ≧ 𝐴 を𝑛→∞満たすものが存在するので, sup 𝑎𝑘 ≧ 𝐴 となる. ゆえに lim sup 𝑎𝑛 ≧ 𝐴 となる. (2)より, ある番号 𝑁 が存在して, 𝑘 ≧ 𝑁 なら𝑘≧𝑛𝑛→∞
ば 𝑎𝑘 ≦ 𝐵 となる. すなわち, sup ≦ 𝐵 となる. ゆえに, lim sup 𝑎𝑛 ≦ 𝐵 となる. これで𝑘≧𝑁𝑛→∞
𝐴 ≦ lim𝑛→∞sup 𝑎𝑛 ≦ 𝐵が示された. 𝐴,𝐵 は 𝛼 に幾らででも近くに取れるので 𝛼 = lim sup 𝑎𝑛 となる. □𝑛→∞
逆に(1),(2)を問題: 実数列

𝑎𝑛 が収束しているならばとなっていることを示せ.

lim𝑛→∞sup 𝑎𝑛 = lim𝑛→∞inf 𝑎𝑛 = 𝑛→∞lim 𝑎𝑛𝑎𝑛 は 𝛼 に収束していると仮定する. lim𝑛→∞sup 𝑎𝑛 = 𝛼 のみを示そう. 𝐴 < 𝛼 < 𝐵 と仮定する. 𝑎𝑛 → 𝛼 なので, ある番号 𝑁 が存在して 𝑘 ≧ 𝑁 ならば 𝐴 ≦ 𝑎𝑘 ≦ 𝐵 となる. ゆえに, 上の問題の条件(1),(2)を 𝛼 は満たしている. したがって,
lim𝑛→∞sup 𝑎𝑛 = 𝛼 となる. □解答例: 実数列

4 実数の連続性の帰結
この節を読むときの注意: この節の内容は初心者にとっては難しいので, 解析学の議論に慣れてから読んだ方がよい. 初心者であるにもかかわらず, どうしても読みたい場合には, まず証明には目を通さずに, 各主張の内容を図に描いたり, 図には描けない理想的な様子をイメージしてみたりする方がよいと思う. 十分に健全な直観があれば(ない場合にはそのような健全な直観を心の中に育成することが大事), 実数の連続性もその帰結もどれも当然成り立ってほしい結果であることがわかるはずである. 少なくとも, 驚くべきような仮定をしているわけでもないし, 驚くべきような結論が導かれているわけではない.

□

補足: 数学における仮定や結論の多くは通常の直観のもとでは当然そうなって欲しいと感じられるような事柄に過ぎない. 当然
そうなって欲しいことを論理的に適切にかつ厳密に記述するためにテクニカルな(技術的な)要素が必要になる点が難しいだけで, 直観的には驚くべきことが含まれていない場合は相当に多い. そういう場合について, 直観的に何か非常に以外なことをやっているかのように誤解するのはまずい. それとは対照的に通常の直観では想像もできないような驚くべき主張をしている数学的命題も存在する. そのような場合に素直に驚きを感じて感動すればよい. 普段から通常の直観で「明らか」だと感じられ事柄を明らかだと感じられるような直観を身に付けておいた方が, 想定外の定義や結論への感動は大きくなると思われる.

□

この節では次の実数の連続性を認めて使って, 幾つかの帰結を導く.

𝑌 が上に有界ならば 𝑌 の上界全体の集合の中に最小値が存在する. □𝑌 を −𝑌 = {−𝑦 ∣ 𝑦 ∈ 𝑌 } に置き換えることによって, 実数の空でない集合 𝑌 が下に有界ならば 𝑌 の下界全体の集合の中に実数の連続性: 実数の空でない集合
最大値が存在することを示せる.

4.1 有界単調実数列の収束
有界単調数列の収束: 上に有界な単調増加実数列はある実数に収束する.

𝑎𝑛

𝛼
𝜀>0
𝑎𝑛
𝛼 − 𝜀 𝑎𝑛𝛼𝑎𝑛 ≦ 𝛼 − 𝜀𝑛≧𝑁
𝛼 𝑎𝑛𝑎𝑁 > 𝛼 − 𝜀𝑎𝑛𝑎𝑛 > 𝛼 − 𝜀𝑛≧𝑁
𝛼 − 𝜀 < 𝑎𝑛 ≦ 𝛼|𝑎𝑛 − 𝛼| < 𝜀
𝑎𝑛 𝛼

証明:
は上に有界な単調増加実数列であるとする. 実数の連続性より,達の最小上界 が存在する. 任意にを取る.
もしもすべての番号 についてとなっているならば,も達の上界になり, が最小の上界であることに反するので, ある番号
が存在して
となる.
は単調増加数列なのでのときとなる. はたちの上界なのででもある. ゆえに
ならば,
なので特に
となる. これでがに収束することが示された.

𝑛𝑁𝑎𝑛 ≦ 𝛼

注意: 数列をその□−1 倍で置き換えることによって, 下に有界な単調減少実数列はある実数に収束することも得られる. □4.2 Bolzano–Weierstrassの定理
数列
数列

𝑎𝑛 に対して, 1 ≦ 𝑘1 < 𝑘2 < 𝑘3 < ⋯ が定める数列 𝑏𝑛 = 𝑎𝑘𝑛 を 𝑎𝑛 の部分列と呼ぶ. 例えば, 数列 1,4,9,16,25,… は
1,2,3,4,5,… の部分列である.

Bolzano–Weierstrassの定理: 有界な実数列は収束する部分列を持つ.

𝐴,𝐵𝑛
𝐴 ≦ 𝑎𝑛 ≦ 𝐵
𝑘𝐴1 = 𝐴 𝐵1 = 𝐵
𝑎𝑘 ∈ [𝐴1 , 𝐵1 ]𝐴𝑛 , 𝐵𝑛 𝑎𝑘 ∈ [𝐴𝑛 , 𝐵𝑛 ]𝑘
𝐶𝑛 𝐴𝑛 , 𝐵𝑛𝑘𝑎𝑘 ∈ [𝐴𝑛 , 𝐶𝑛 ]𝑘
𝐴𝑛+1 = 𝐴𝑛 𝐵𝑛+1 = 𝐶𝑛
𝑎𝑘 ∈ [𝐶𝑛 , 𝐵𝑛 ]𝐴𝑛+1 = 𝐶𝑛
𝐵𝑛+1 = 𝐵𝑛
𝐴𝑛 ≦ 𝐴𝑛+1 ≦ 𝐵𝑛+1 ≦ 𝐵𝑛
𝐴𝑛
𝐵𝑛
𝛼,𝛽
𝐴𝑛 𝐵𝑛
− 𝐴1 | なので 𝛼 = 𝛽 となる. 各 𝑛 について, 𝑎𝑘 ∈ [𝐴𝑛 , 𝐵𝑛 ] を満たす 𝑘 は無限個存在するので,|𝐵𝑛 − 𝐴𝑛 | = |𝐵12𝑛−1
1 ≦ 𝑘1 < 𝑘2 < ⋯ ですべての番号 𝑛 について 𝑎𝑘𝑛 ∈ [𝐴𝑛 , 𝐵𝑛 ] を満たすものが存在する. このとき, 𝑎𝑛 の部分列 𝑎𝑘𝑛 は𝐴𝑛 ≦ 𝑠𝑘𝑛 ≦ 𝐵𝑛 を満たしているので 𝛼 = 𝛽 に収束する. □𝑎𝑛

証明:
は有界な実数列であるとする. 有界なのである実数
ですべての番号 についてが成立するものが
存在する.
,
とおくと,
を満たす は(当然)無限個存在する.
でを満たすが無限個存在するものを帰納的に以下のように定める.
をの中点とする.
を満たす が無限個ある
ならば,とおき, そうでないならばを満たす は無限個あるので,とおく. このとき,なのでは上に有界な単調増加数列になり,は下に有界な単調減少数列になる. ゆえに有界単調実数列の収束性より,,は収束する. それぞれの収束先をと書く.

4.3 実数のCauchy列の収束

𝑎𝑛𝑚,𝑛 ≧ 𝑁 → ∞ のとき |𝑎𝑚 − 𝑎𝑛 | → 0 となることであると定める. そり正確に言え𝑚,𝑛 ≧ 𝑁 ならば |𝑎𝑚 − 𝑎𝑛 | < 𝜀 が存在することであると定める.

数列
がCauchy列(基本列)であるとは,ば, 任意のに対して, ある番号が存在して,𝜀>0

𝑁

実数のCauchy列の収束: 実数のCauchy列はある実数に収束する.

𝑎𝑛 は実数のCauchy列であるとする. そのとき, ある番号 𝑁 が存在して 𝑛 ≧ 𝑁 のとき |𝑎𝑛 − 𝑎𝑁 | < 1 となるので,|𝑎𝑛 | < |𝑎𝑁 | + 1 となる. ゆえに 𝑀 = max{|𝑎1 |,…,|𝑎𝑁−1 |,|𝑎𝑁 | + 1} とおくと, すべての番号 𝑛 について |𝑎𝑛 | ≦ 𝑀 となり, 数列 𝑎𝑛 が有界であることがわかる.
Bolzano-Weierstrass の定理より, 𝑎𝑛 のある部分列 𝑎𝑘𝑛 である実数 𝛼 に収束するものが存在する. 𝜀 > 0 を任意に取る. 𝑎𝑛 は𝜀 となる. 部分列 𝑎𝑘𝑛 は 𝛼 に収束するので, ある番
Cauchy列なので, ある番号 𝑁 ′ が存在して 𝑚,𝑛 ≧ 𝑁 ′ ならば |𝑎𝑛 − 𝑎𝑚 | <2
𝜀 となる. 𝑘𝑚 ≧ 𝑁 ′ となるような𝑚 ≧ 𝑁 ″ が存在する. そのとき, 𝑛 ≧ 𝑁 ′号 𝑁 ″ が存在して 𝑚 ≧ 𝑁 ″ ならば |𝑎𝑘𝑚 − 𝛼| <
2
証明:

ならば

|𝑎𝑛 − 𝛼| ≦ |𝑎𝑛 − 𝑎𝑘𝑚 | + |𝑎𝑘𝑚 − 𝛼| < 𝜀2 + 𝜀2 = 𝜀.
これで, 𝑎𝑛 が 𝛼 に収束することが示された. □4.4 閉区間に関するHeine-Borelの被覆定理𝑎 ≦ 𝑏 であるとし, 閉区間 𝐼 = [𝑎,𝑏] を考える. 開区間 𝑈𝜆 = (𝑎𝜆 ,, 𝑏𝜆 ), 𝑎𝜆 < 𝑏𝜆 ,𝜆 ∈ Λ 達によって 𝐼 が覆われていると仮定する: 𝐼 ⊂ ⋃ 𝑈𝜆 . このとき有限個の 𝑈𝜆 達で 𝐼 を覆うことができる. すなわち有𝜆∈Λ
𝑟限個の 𝜆1 ,…, 𝜆𝑟 ∈ Λ で 𝐼 ⊂⋃ 𝑈𝜆𝑖 を満たすものが存在する.
閉区間に関するHeine-Borelの被覆定理:

𝑎=𝑏

𝑖=1

𝑎<𝑏
𝑈𝜆 𝐼 = [𝑎,𝑏][𝑎1 , 𝑏1 ]𝑈𝜆𝑎1 = 𝑎 𝑏1 = 𝑏
𝑈𝜆[𝑎𝑛 , 𝑏𝑛 ]𝑎𝑛 < 𝑏𝑛 [𝑎𝑛 , 𝑏𝑛 ]𝑈𝜆[𝑎𝑛 , 𝑐𝑛 ][𝑐 𝑛 , 𝑏 𝑛 ]𝑐𝑛 𝑎𝑛 , 𝑏𝑛
𝑈𝜆[𝑎𝑛 , 𝑐𝑛 ][𝑐 𝑛 , 𝑏 𝑛 ]𝑎𝑛+1 = 𝑎𝑛 𝑏𝑛+1 = 𝑐𝑛
[𝑎𝑛+1 , 𝑏𝑛+1 ]𝑈𝜆𝑎𝑛+1 = 𝑐𝑛 𝑏𝑛+1 = 𝑏𝑛
− 𝑎 なので, 𝑎𝑛 と 𝑏𝑛 はCauchy列になり, 同一の 𝛼 ∈ 𝐼 に収束する. 𝑈𝜆 達は𝑎𝑛 ≦ 𝑎𝑛+1 ≦ 𝑏𝑛+1 ≦ 𝑏𝑛 でかつ |𝑏𝑛 − 𝑎𝑛 | ≦ 𝑏2𝑛−1
𝐼 を覆っているので, ある 𝜆0 ∈ Λ が存在して 𝛼 ∈ 𝑈𝜆0 となる. 𝑎𝑛 , 𝑏𝑛 はともに 𝛼 に収束するので, 十分に 𝑛 を大きくすると,[𝑎𝑛 , 𝑏𝑛 ] ⊂ 𝑈𝜆0 となる. これは [𝑎𝑛 , 𝑏𝑛 ] が有限個の 𝑈𝜆 達で覆えないことに反する. これで矛盾が出た. ゆえに上の定理の結論は成立する. □証明:の場合は自明なのでであると仮定する. この定理の結論が成立していないと仮定して矛盾を導こう. すなわ
ち, 有限個の達でを覆うことができないと仮定する.
,
とおくと,
は有限個の
達で覆
うことはできない.
でが有限個の達で覆えないものを以下のように帰納的に定めることができる.
が有限個の達で覆うことができないならば,をの中点とするとき,
またはのどちらかは有限個ので覆うことはできない.
の方がそうならば,
とおき, それ以外の場合にはの方がそうなっているので,とおく. このとき,も有限個の達で覆うことはできない. このとき,

4.5 閉区間上の実数値連続函数が最大最小を持つこと
ノート「連続函数 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/04%20continous%20functions.ipynb)」の対応する節 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/04%20continous%20functions.ipynb#閉区間上の実数値連続函数が最大最小を持つこと)を参照せよ.

02 級数黒木玄
2018-04-18～2019-04-03, 2020-04-25, 2023-06-22
Copyright 2018,2019,2020,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/02%20series.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/02%20series.ipynb)
https://genkuroki.github.io/documents/Calculus/02%20series.pdf(https://genkuroki.github.io/documents/Calculus/02%20series.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 級数 1.1 絶対収束と条件収束
1.1.1 絶対収束と条件収束の定義
1.1.2 絶対収束級数の収束先は和を取る順番によらないこと
 1.2 絶対収束級数の例
1.2.1 絶対収束級数の例1 (Riemannのゼータ函数)
1.2.2 絶対収束級数の例2
 1.3 条件収束級数の例 (交代級数)
1.3.1 条件収束交代級数の例1 (log 2)
1.3.2 Euler変換による交代級数の数値計算
1.3.3 無限和と積分の交換に関する注意
1.3.4 条件収束交代級数の例2 (arctan 1 = π/4)
 2 複素数の級数
2.1 複素数の絶対収束級数
2.2 条件収束する複素級数の例
2.3 多重対数函数
2.4 二重対数函数のζ(2)の近似計算への応用
2.5 二重対数函数のζ(2)の正確な計算への応用
2.6 二重対数函数の高木貞治『解析概論』§35の例2(p.113)への応用
2.7 二重対数函数の五項関係式
 3 無限積
3.1 無限積の絶対収束
3.2 絶対収束する無限積の収束先が積の順序によらないこと
 3.3 量子二重対数函数
3.3.1 量子二重対数函数と量子指数函数との関係
3.3.2 q二項定理
3.3.3 q指数函数の加法公式
3.3.4 量子二重対数函数の五角形恒等式

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#pyplot(fmt=:svg)
pyplot()#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
lgamma(x::Real) = logabsgamma(x)[1]​
using QuadGK
using PyPlot: PyPlot, plt

In [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 級数
1.1 絶対収束と条件収束
1.1.1 絶対収束と条件収束の定義

𝑛𝑎𝑛 ≧ 0 であると仮定する. そのとき, ある正の定数 𝑀 が存在して, すべての番号 𝑛 について ∑ 𝑎𝑘 ≦ 𝑀 が成立してい𝑘=1∞
るならば, 無限級数
∑ 𝑎𝑛 は有限の値に収束する.
定理:

証明:

𝑛

𝑛=1

𝑠𝑛 = ∑ 𝑎𝑛 とおくと, 𝑠𝑛 は上に有界な単調増加実数列になる. ゆえに実数の連続性より, 𝑠𝑛 は有限の値に収束する. □
𝑘=1

∞

∞

∞

𝑛=1

𝑛=1

𝑛=1

定理:

∑ |𝑎𝑛 | < ∞ ならば級数 ∑ 𝑎𝑛 は収束する. そのとき, 級数 ∑ 𝑎𝑛 は絶対収束するという.

証明:

𝑠𝑛 = ∑ 𝑎𝑘 とおく. 任意に 𝜀 > 0 を取る. ∑ |𝑎𝑛 | < ∞ より, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば

𝑛

∞

𝑘=1

𝑛=1

∞

∑
𝑘=𝑛+1

|𝑎𝑘 | < 𝜀𝑚 ≧ 𝑛 ≧ 𝑁 のとき,∞
|𝑚 | 𝑚|𝑠𝑚 − 𝑠𝑛 | = ||| ∑ 𝑎𝑘 ||| ≦ ∑ |𝑎𝑘 | ≦ ∑ |𝑎𝑘 | < 𝜀.
𝑘=𝑛+1
|𝑘=𝑛+1 | 𝑘=𝑛+1
ゆえに 𝑠𝑛 はCauchy列になる. ゆえに実数の完備性より, 𝑠𝑛 は収束する. □となる. ゆえに

注意: 上の定理の逆は成立しないことに注意に注意せよ. 級数

∞

∞

∞

𝑛=1

𝑛=1

∑ 𝑎𝑛 が収束していても ∑ |𝑎𝑛 | = ∞ となる場合がある. その𝑎𝑛 は条件収束するという. □∑𝑛=1
注意: 上の定理は 𝑎𝑛 が実数列でも複素数列でも成立している. さらに 𝑎𝑛 が ℝ 𝑛 や ℂ𝑛 の点列でかつ絶対値をノルムで置き換え
とき, 級数た場合にも成立している. 直観的には「長さが有限の紐の先端に対応する点が収束先として存在する」というような発想で考えればよい.

より一般にはノルム空間においては上の定理が成立することと完備性の条件は同値になっている. 実数列の場合には実数の連続性と同値になっている.
実数の連続性について理解していなくても, 絶対収束の概念を理解していれば足りることは多い.

1.1.2 絶対収束級数の収束先は和を取る順番によらないこと
定理: 絶対収束する無限級数の収束先は足し上げる順序をどのように変えても同じになる.
このノートでは, 絶対収束する無限級数

∞

□

□

𝑎𝑛 に関する以下の2つの結果を証明しておくことにしよう.
∑
𝑛=1∞

𝑘 ↦ 𝑛𝑘 は正の整数全体と正の整数全体を一対一に対応させる写像であるならば, ∑ 𝑎𝑛𝑘 も絶対収束して,
𝑘=1∞∞∑ 𝑎𝑛𝑘 = ∑ 𝑎𝑛 が成立する.
(1)

𝑘=1

𝑛=1

∞

(𝑘,𝑙) ↦ 𝑛𝑘,𝑙 が正の整数の対の全体と正の整数全体を一対一に対応させる写像であるならば, すべての 𝑘 について ∑ 𝑎𝑛𝑘,𝑙
𝑙=1
∞ ∞
∞ ∞
∞
は絶対収束し, さらに∑ ∑ 𝑎𝑛𝑘,𝑙 も絶対収束して, ∑ ∑ 𝑎𝑛𝑘,𝑙 = ∑ 𝑎𝑛 が成立する.
(2)

証明:
(1)

∞

𝑘=1 𝑙=1

𝑘=1 𝑙=1

𝑛=1

𝑀 = ∑ |𝑎𝑛 | とおく.
𝑛=1

𝑛1 , 𝑛2 ,…, 𝑛𝐾 の最大値を 𝑁 と書くと,

𝐾

𝑁

𝑘=1

𝑛=1

∑ |𝑎𝑛𝑘 | ≦ ∑ |𝑎𝑛 | ≦ 𝑀 < ∞∞∞|𝑎𝑛𝑘 | は収束する. つまり ∑ 𝑎𝑛𝑘 は絶対収束する.
∑
𝑘=1
𝑘=1
𝑛𝑘 = 1,2,…,𝑁 となる 𝑘 の最大値を 𝐾𝑁 書くと, 𝑛1 , 𝑛2 ,…, 𝑛𝐾𝑁 は 1,2,…,𝑁 をすべて含み, 𝑁 → ∞ のとき 𝐾𝑁 → ∞
なので

となり,

𝑁 | ∞
𝑁
|| 𝐾𝑁
||∑ 𝑎𝑛𝑘 − ∑ 𝑎𝑛 ||| ≦ ∑ |𝑎𝑛 | = 𝑀 − ∑ |𝑎𝑛 | → 0 (𝑁 → ∞)𝑛=1
|𝑘=1 𝑛=1 | 𝑛=𝑁+1

となるので,∞∞∑ 𝑎𝑛𝑘 = ∑ 𝑎𝑛 となることがわかる.

𝑘=1
𝑛=1(2) 各 𝑛𝑘,1 , 𝑛𝑘,2 ,…, 𝑛𝑘,𝐿 の最大値を 𝑁 と書くと,
𝐿

𝑁

𝑙=1

𝑛=1

∑ |𝑎𝑛𝑘,𝑙| ≦ ∑ |𝑎𝑛 | ≦ 𝑀 < ∞

なので,

∞

𝑎𝑛𝑘,𝑙 は絶対収束する.
∑
𝑙=1

∞

𝐿𝑘

𝜀 > 0 を取る. 𝑘 = 1,2,…,𝐾 ごとに 𝐿𝑘 を十分に大きくすると, ∑ |𝑎𝑘,𝑙 | ≦ ∑ |𝑎𝑘,𝑙 | + 𝜀 となるので, 𝑛𝑘,𝑙 (𝑙=1
𝑙=1
𝑘 = 1,2,…,𝐾 , 𝑙 = 1,2,…,𝐿𝑘 ) の最大値を 𝑁 と書くと,
𝐾 || ∞ || 𝐾 ∞
𝐾 𝐿𝑘
𝑁
≦
|
|
≦
|
|
+
𝐾𝜀
≦
|𝑎𝑛 | + 𝐾𝜀 ≦ 𝑀 + 𝐾𝜀.
𝑎
𝑎
𝑎
|
|
𝑘,𝑙
𝑛𝑘,𝑙 ∑ ∑ 𝑛𝑘,𝑙∑∑
𝑘=1 ||∑
𝑙=1 || ∑𝑘=1 ∑𝑙=1
𝑘=1 𝑙=1𝑛=1
𝜀 > 0 はいくらでも小さくできるので,
𝐾 || ∞ || 𝐾 ∞| 𝑎𝑘,𝑙 || ≦ ∑ ∑ |𝑎𝑛𝑘,𝑙| ≦ 𝑀 < ∞.
∑𝑘=1 ||∑
𝑙=1 | 𝑘=1 𝑙=1∞ ∞ゆえに∑ ∑ 𝑎𝑛𝑘,𝑙 も絶対収束する.
任意に

𝑘=1 𝑙=1

𝜀>0{ 𝑛𝑘,𝑙 ∣ 𝑘 = 1,2,…,𝐾, 𝑙 = 1,2,3,…} ⊃ {1,2,…,𝑁} となるような最小の 𝐾 を 𝐾𝑁 と書くこと
𝑁 → ∞ ならば 𝐾𝑁 → ∞ となる. 各 𝑘 = 1,2,…,𝐾𝑁 に対して, ある 𝐿𝑘 が存在して,{ 𝑛𝑘,𝑙 ∣ 𝑘 = 1,2,…,𝐾, 𝑙 = 1,2,…, 𝐿𝑘 } ⊃ {1,2,…,𝑁}

任意に
を取る.
にする. このとき,

かつ

|| ∞
𝐿𝑘 |
||∑ 𝑎𝑛𝑘,𝑙 − ∑ 𝑎𝑛𝑘,𝑙||| < 𝐾𝜀𝑁
𝑙=1 |
| 𝑙=1

となる. ゆえに,

𝑁 || || 𝐾𝑁 ∞𝐾𝑁 𝐿𝑘 || || 𝐾𝑁 𝐿𝑘
𝑁 |||| 𝐾𝑁 ∞
−
≦
−
+
−
𝑎
𝑎
𝑎
𝑎
𝑎
||∑ ∑ 𝑛𝑘,𝑙 ∑ 𝑛 || ||∑ ∑ 𝑛𝑘,𝑙 ∑ ∑ 𝑛𝑘,𝑙|| ||∑ ∑ 𝑛𝑘,𝑙 ∑ 𝑎𝑛 ||𝑛=1 | | 𝑘=1 𝑙=1
𝑘=1 𝑙=1 | | 𝑘=1 𝑙=1
𝑛=1 ||𝑘=1 𝑙=1
𝐾𝑁 || ∞
𝐿𝑘 || ∞
≦ ∑ ||∑ 𝑎𝑛𝑘,𝑙 − ∑ 𝑎𝑛𝑘,𝑙|| + ∑ |𝑎𝑛 |𝑘=1 | 𝑙=1
𝑙=1 | 𝑛=𝑁+1∞< 𝜀 + ∑ |𝑎𝑛 |.
𝑛=𝑁+1

𝜀 > 0 はいくらでも小さくできるので,

𝑁 || ∞|| 𝐾𝑁 ∞−𝑎||∑ ∑ 𝑛𝑘,𝑙 ∑ 𝑎𝑛 || ≦ ∑ |𝑎𝑛 |.
𝑛=1 | 𝑛=𝑁+1|𝑘=1 𝑙=1∞ ∞∞右辺は 𝑁 → ∞ のとき 0 に収束するので,=
𝑎𝑛∑ ∑ 𝑘,𝑙 ∑ 𝑎𝑛 が成立することがわかる. □𝑘=1 𝑙=1𝑛=1

上の定理から次の系(corollary, 当然の結果)がただちに導かれる.

𝑎𝑛 ≧ 0 のとき 𝑎1 , 𝑎2 ,… の無限和は足し上げる順序をどのように変えても同じになる. □注意: 𝑎𝑛 ≧ 0 のとき 𝑎1 , 𝑎2 ,… の無限和の値として ∞ も許せば, その無限和は常に値を持っているとみなせる. 非負の実数の無限和を扱うときには収束先として ∞ も許したくなる場合が多いので, その場合には収束先が有限の値になるか否かを明瞭に述べておいた方が誤解が少なくなる. □
系:

問題:

∞

∞

𝑚=1

𝑛=1

∑ 𝑎𝑚 と ∑ 𝑏𝑛 が絶対収束しているならば,

𝑚,𝑛≧1, ∑𝑚+𝑛≦𝑁+1|𝑎𝑚 𝑏𝑛 | も 𝑁 → ∞ で収束しており,

lim
𝑁→∞
が成立していることを示せ.
解答例:

∞

∞

𝑚=1

𝑛=1

𝑚,𝑛≧1, ∑𝑚+𝑛≦𝑁+1

∞

∞

𝑚=1

𝑛=1

𝑎𝑚 𝑏𝑛 = ∑ 𝑎𝑚 ∑ 𝑏𝑛(∗)

𝐿 = ∑ |𝑎𝑚 |, 𝑀 = ∑ |𝑏𝑛 | とおく. このとき,𝑚,𝑛≧1, ∑𝑚+𝑛≦𝑁+1

𝑁

𝑁

𝑚=1

𝑛=1

|𝑎𝑚 𝑏𝑛 | ≦ ∑ |𝑎𝑚 | ∑ |𝑏𝑛 | ≦ 𝐿𝑀 < ∞.

|𝑎𝑚 𝑏𝑛 | も 𝑁 → ∞ で収束することがわかる. これは 𝑁→∞lim ∑ 𝑎𝑚 𝑏𝑛 が絶対収束すること
𝑚,𝑛≧1, 𝑚+𝑛≦𝑁+1を意味している. したがって, 上の方の定理の(2)より(∗ )が成立することもわかる. □注意: 条件収束級数の収束先は足し上げる順序によって変わるので扱いには注意が必要になる. □これより,𝑚,𝑛≧1, ∑𝑚+𝑛≦𝑁+1∞

𝑎𝑛 の級数 ∑ 𝑎𝑛 は条件収束していると仮定する. このとき, 任意の実数 𝛼 に対して, その級数の足し上げる順序をう𝑛=1
まく変えることによって, 収束先を 𝛼 にできることを示せ.
解答例: 𝑎𝑛 うち非負のもの全体を 𝑏1 ≧ 𝑏2 ≧ … と書き, 負のもの全体を 𝑐1 ≧ 𝑐2 ≧ … と書く. このとき, 𝑏𝑛 → 0, 𝑐𝑛 → 0,∞
𝑏𝑛 = ∞ かつ ∑∞𝑛=1 𝑐𝑛 = −∞ が成立している. まず, 𝑏1 + ⋯ + 𝑏𝑘 が最初に 𝛼 以上になる 𝑘 を 𝑘1 と定める. 次に∑
𝑛=1∞
𝑏1 + ⋯ + 𝑏𝑘1 + 𝑐1 + ⋯ + 𝑐𝑙 が最初に 𝛼 以下になる 𝑙 を 𝑙1 と定める. これを同様に繰り返すと, 級数 ∑ 𝑎𝑛 の項の順序を並𝑛=1
問題: 実数

び換えた級数𝑏1 + ⋯ + 𝑏𝑘1 + 𝑐1 + ⋯ + 𝑐𝑙1 + 𝑏𝑘1+1 + ⋯ + 𝑏𝑘2 + 𝑐𝑙1+1 + ⋯ + 𝑐𝑙2 + ⋯ができ上がる. 𝑏𝑘𝑖 までの和は和の途中段階も含めてすべて 𝛼 + 𝑏𝑘𝑖 未満であり, 𝑐𝑙𝑗 までの和は和の途中段階も含めてすべて
𝛼 + 𝑐𝑙𝑗 より大きくなる(𝑐𝑙 < 0 に注意せよ). したがって, 𝑏𝑛 → 0 と 𝑐𝑛 → 0 より, 上のように並び換えた級数が 𝛼 に収束する
ことがわかる. □∞注意: 上の解答例の最後の部分の議論は 𝑎𝑛 ≧ 0 , 𝑎𝑛 ≧ 𝑎𝑛+1 , 𝑎𝑛 → 0 のとき, 交代級数(−1)𝑛−1 𝑎𝑛 が常に収束することを示∑
𝑛=1
すためにも使える. □1.2 絶対収束級数の例
1.2.1 絶対収束級数の例1 (Riemannのゼータ函数)∞
𝑠 > 1 と仮定する. このとき ∑ 𝑛1𝑠 < ∞ である. なぜならば 𝑛 → ∞ のとき
𝑛=1

これより

𝑠 > 1 のときとなることがわかった.

1 ≦ 1 + 𝑛 𝑑𝑥 = 1 + 1 − 𝑛1−𝑠 → 1 + 1 .
𝑠
∑
∫1 𝑥𝑠
𝑠−1
𝑠−1
𝑘=1 𝑘
𝑛

𝑠 > 1 の函数 𝜁(𝑠) を

∞ 1
1
≦
1
+
𝑠
∑
𝑠−1
𝑛=1 𝑛
∞
𝜁(𝑠) = ∑ 𝑛1𝑠𝑛=1𝑠 ≠ 1 の複素数全体に自然に拡張される(解析と定める. これをRiemannのゼータ函数と呼ぶ. Riemannのゼータ函数の定義域は接続される). Riemannのゼータ函数は整数論における最も基本的で重要な函数である.

問題:∞ ( 1)𝑛−1

𝑠 > 1 と仮定する. この仮定のもとで次の公式を証明せよ:∞
𝑛−1(1 − 21−𝑠 )𝜁(𝑠) = ∑ (−1)𝑛𝑠 .
𝑛=1

証明: 絶対収束級数を扱っているので, 以下のように形式的に計算した結果がそのまま証明になる.

∞∞∞(1 − 21−𝑠 )𝜁(𝑠) = (1 − 22𝑠 ) ∑ 𝑛1𝑠 = ∑ 𝑛1𝑠 − ∑ (2𝑛)2 𝑠
𝑛=1
𝑛=1
𝑛=1
1
1
1
1
= ( 1𝑠 + 2𝑠 + 3𝑠 + 4𝑠 + ⋯) − ( 22𝑠 + 42𝑠 + ⋯)∞𝑛−1
= 11𝑠 − 21𝑠 + 31𝑠 − 41𝑠 + ⋯ = ∑ (−1)𝑛𝑠 . □𝑛=1

問題:
In [3]:

𝜁(2) を数値計算して, 𝜋2 /6 に近いことを確認せよ.
1
2
3
4
5
6



N = 10^8
SimpleSum = sum(n->1/n^2, 1:N)
TrueValue = π^2/6@show SimpleSum@show TrueValue@show SimpleSum - TrueValue;

SimpleSum = 1.6449340568482282
TrueValue = 1.6449340668482264
SimpleSum - TrueValue = -9.999998162868451e-9
問題:

𝜁(2) = 𝜋2 /6 の証明について調べよ.

□
正の偶数 2𝑚 について 𝜁(2𝑚) はすべて計算されている. しかし, 3以上の奇数 2𝑚 + 1 に対する 𝜁(2𝑚 + 1) の数学的な素性はま
ヒント: この問題はBasel問題などと呼ばれているようである. インターネットで検索してみよ.
だよくわかっていない.

1.2.2 絶対収束級数の例2∞問題:(𝜁(𝑛) − 1) = 1 を示せ.
∑
𝑛=2

証明:

𝑘 ≧ 2 のとき

∞ 1
1/𝑘2 = 1 = 1 − 1 .
=𝑛∑𝑛=2 𝑘 1 − 1/𝑘 𝑘(𝑘 − 1) 𝑘 − 1 𝑘そして∞𝜁(𝑛) − 1 = 21𝑛 + 31𝑛 + 41𝑛 + ⋯ = ∑ 𝑘1𝑛
𝑘=2

なので,

∞ ∞ 1 ∞ ∞ 1 ∞
1 1
(𝜁(𝑛)
−
1)
=
𝑛 = ∑ ∑ 𝑘𝑛 = ∑ ( 𝑘 − 1 − 𝑘 )
∑
∑
∑
𝑘
𝑛=2
𝑛=2 𝑘=2𝑘=2 𝑛=2
𝑘=2= ( 11 − 12 ) + ( 12 − 13 ) + ( 13 − 13 ) + ⋯ = 1.
2つ目の等号で 1/𝑘𝑛 ≧ 0 なので足し上げる順序を変えても総和は等しいことを使った. □∞以下はコンピューターによる計算.

In [4]:

1 N = 50
2 sum(n->zeta(n)-1, 2:N)

Out[4]: 1.0000000000000044
In [5]:

Out[5]:

1

1 l, n = symbols("l n", integer=true, positive=true) # l = k-1
2 s = sympy.Sum(1/(l+1)^n, (n,2,oo)).doit().simplify()
3 S = sympy.Sum(s, (l,1,oo)).doit()

問題: 上の問題の結果より,

証明:∞(−1)𝑛 (𝜁(𝑛) − 1) は絶対収束する. その収束先を求めよ.
∑
𝑛=2

𝑘 ≧ 2 のとき

∞ (−1)𝑛1/𝑘2 = 1 = 1 − 1 .
=𝑛∑
1 + 1/𝑘 𝑘(𝑘 + 1) 𝑘 𝑘 + 1
𝑛=2 𝑘

そして

∞ (−1)𝑛𝑛 (−1)𝑛 (−1)𝑛(−1)𝑛 (𝜁(𝑛) − 1) = (−1)
+
+
+
⋯
=
∑ 𝑘𝑛
2𝑛 3𝑛 4𝑛𝑘=2なので,

∞ ∞ (−1)𝑛 ∞ ∞ (−1)𝑛 ∞ 1
1𝑛 (𝜁(𝑛) − 1) =(−1)
𝑛 = ∑ ∑ 𝑘𝑛 = ∑ ( 𝑘 − 𝑘 + 1 )
∑
∑
∑
𝑘
𝑛=2
𝑛=2 𝑘=2𝑘=2 𝑛=2
𝑘=2
1
1
1
1
1
= ( 2 − 3 ) + ( 3 − 4 ) + ( 4 − 15 ) + ⋯ = 12 .
2つ目の等号で絶対収束級数なので足し上げる順序を変えても総和は等しいことを使った. □∞以下はコンピューターによる計算.
In [6]:

1 N = 50
2 sum(n->(-1)^n*(zeta(n)-1), 2:N)

Out[6]: 0.5000000000000018
In [7]:

Out[7]:

12

1 l, n = symbols("l n", integer=true, positive=true) # l = k-1
2 s = sympy.Sum((-1)^n/(l+1)^n, (n,2,oo)).doit().simplify()
3 S = sympy.Sum(s, (l,1,oo)).doit()

1 = ∞ を示せ.
∑
𝑛=2 𝑛log𝑛
解答例: 𝑁 → ∞ のとき,
𝑁 1
𝑁 𝑛+1 𝑑𝑥
𝑁+1 𝑑𝑥≧=2 ≧ loglog(𝑁 + 1) → ∞.
∑ 𝑛log𝑛 ∑ ∫𝑛 𝑥log𝑥 ∫2 𝑥log𝑥 = [loglog𝑥]𝑁+1
問題:

問題:

∞

𝑛=2

𝑛=2

1 < ∞ を示せ.
∑
𝑛=3 𝑛(log𝑛)2∞

解答例: 左辺の部分和が有界であることが次のようにして確認できる:1 ≦ 𝑁 𝑛 𝑑𝑥 = 𝑁 𝑑𝑥 = −1 𝑁 ≦ 1 .
∑𝑛=3 𝑛(log𝑛)2 ∑𝑛=3 ∫𝑛−1 𝑥(log𝑥)2 ∫2 𝑥(log𝑥)2 [ log𝑥 ]2 log2∞
1 < ∞ となることを示せ.
問題: 𝑎 > 1 のとき
𝑎∑𝑛(log𝑛)𝑛=3
𝑁

解答例: 左辺の部分和が有界であることが次のようにして確認できる:□□1 ≦ 𝑁 𝑛 𝑑𝑥 = 𝑁 𝑑𝑥 = log(𝑥)1−𝑎 𝑁 ≦ (log2)1−𝑎 . □
𝑎
𝑎
𝑎
∑
𝑎−1
𝑛=3 𝑛(log𝑛) ∑𝑛=3 ∫𝑛−1 𝑥(log𝑥) ∫2 𝑥(log𝑥) [ 1 − 𝑎 ]2
𝑑𝑥 = 𝑑𝑦 なので, 0 < 𝑟 < 𝑅 について,
注意: 𝑥 = 𝑒𝑦 と置換すると, log𝑥 = 𝑦 ,𝑥
log 𝑅 𝑑𝑦𝑅 𝑑𝑥=∫𝑟 𝑥(log𝑥)𝑎 ∫log 𝑟 𝑦𝑎 .
これは, 𝑎 ≦ 1 ならば 𝑅 → ∞ で無限大に発散し, 𝑎 > 1 ならば有限の値に収束する. □問題: 正の整数 𝑛 について 𝑛 が十進表示で 9 を含まないときに 𝑎𝑛 = 1/𝑛 と定め, 含むとき 𝑎𝑛 = 0 と定める. このとき∞
𝑎𝑛 < 30 となることを示せ.
∑
𝑛=1
解答例: 1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 = 2.717857⋯ < 3 である. そして, 各々の 𝑚 = 1,2,…,8 について,
𝑘−1 である. ゆえに, ちょうど十進表示で9を含まないちょうど 𝑘 桁の正の整数で左端の数字が 𝑚 であるものの全体の個数は 9
𝑘
10 −1
𝑘−1
𝑘 桁の 𝑛 に関する和は ∑ 𝑎𝑛 < 3 × 109 𝑘−1 となる. これより,
𝑛=10𝑘−1∞∞ 9𝑘−13<
3
𝑎∑ 𝑛 ∑ 10𝑘−1 = 1 − 9/10 = 30.
𝑁

これで

∞

𝑛=1

𝑘=1

𝑎𝑛 < 30 が示された. □∑𝑛=1

s[k] = (ちょうど k 桁の数で9を含まないものの逆数の和) を８桁まで計算してみよう.
In [8]:



1 @time s = [sum(1/n for n in 10^(k-1):10^k-1 if !in('9', string(n))) for k in 1:8]
6.723354 seconds (200.11 M allocations: 8.873 GiB, 15.06% gc time, 1.25% compilation time)

Out[8]: 8-element Vector{Float64}:
2.7178571428571425
2.0539916222249173
1.817871425200977
1.633364212583175
1.4697833892399725
1.322783057766752
1.1905027726933806
1.0714523172875223
k が大きなとき, k が1つ増えるごとに s[k] は約In [9]:



0.9 倍になって行く.

1 s[2:end] ./ s[1:end-1]

Out[9]: 7-element Vector{Float64}:
0.755739361659628
0.8850432521393778
0.8985037060047283
0.8998503688993538
0.8999850368772813
0.8999985036875966
0.8999998503686641
S[k] = (桁数が k 以下の数で9を含まないものの逆数の和) を計算してみよう.
In [10]:

1 S = cumsum(s)Out[10]: 8-element Vector{Float64}:
2.7178571428571425
4.77184876508206
6.589720190283037
8.223084402866213
9.692867792106185
11.015650849872937
12.206153622566315
13.277605939853839

以上の数値計算の結果を認めて次の問題を解いてみよ.
問題: 正の整数∞

𝑛 について 𝑛 が十進表示で 9 を含まないときに 𝑎𝑛 = 1/𝑛 と定め, 含むとき 𝑎𝑛 = 0 と定める. このとき

𝑎𝑛 < 23 となることを示せ.
∑
𝑛=1
解答例:

9999

9999

10𝑘−1

𝑛=1000𝑛=10𝑘−1

9𝑘−4 となる. さらに,=
1.633⋯
<
1.64
<
1.64
×
𝑎
𝑎
であるから, 𝑘 ≧ 5 のとき
𝑛
𝑛
∑
∑
10𝑘−4

𝑎𝑛 = 8.223⋯ < 8.23 なので,∑
𝑛=1

∞ 9𝑘−4
9/10
<
8.23
+
1.64
𝑎
𝑛
∑
∑ 10𝑘−4 = 8.23 + 1.64 1 − 9/10 = 22.99 < 23.
∞

これで

𝑛=1

∞

𝑘=5

𝑎𝑛 < 23 が示された. □∑𝑛=1∞

𝑎𝑛 の真の値は 22.9206766192⋯ なので, 上の問題の結論は上からの悪くない評価を与えている.
∑
𝑛=1
この級数は Kempner series (https://en.wikipedia.org/wiki/Kempner_series) と呼ばれることがあるらしい. □注意: 上の問題におけるIn [11]:

1 8 + 23//100 + (1 + 64//100)*(9//10)/(1 - 9//10)

Out[11]: 2299//100
問題: 以上の例以外の絶対収束級数の例について調べ, ノートにまとめよ.

1.3 条件収束級数の例 (交代級数)
定理: 一般に𝑎1 ≧ 𝑎2 ≧ 𝑎3 ≧ ⋯ かつ 𝑎𝑛 ≧ 0 かつ 𝑎𝑛 → 0 のとき, 交代級数∞∑(−1)𝑛−1 𝑎𝑛 = 𝑎1 − 𝑎2 + 𝑎3 − 𝑎4 + ⋯𝑛=1

は常に収束する.
注意: この定理中の

証明:

𝑛

∞

𝑎𝑛 について ∑ 𝑎𝑛 = ∞ が成立しているとき, 交代級数は条件収束級数になる.
𝑛=1

𝑐𝑛 = ∑(−1)𝑘−1 とおくと, 𝑛 が奇数のとき 𝑐𝑛 = 1 となり, 𝑛 が偶数のとき 𝑐𝑛 = 0 となる. 𝑐𝑛 − 𝑐𝑛−1 = (−1)𝑛−1 なので,
𝑘=1
𝑛

𝑛

𝑘=1

𝑘=1

𝑛

𝑛−1

𝑛−1

∑(−1)𝑘−1𝑎𝑘 = ∑(𝑐𝑘 − 𝑐𝑘−1 )𝑎𝑘 = ∑ 𝑐𝑘 𝑎𝑘 − ∑ 𝑐𝑘 𝑎𝑘+1 = 𝑐𝑛 𝑎𝑛 − 𝑐0 𝑎1 + ∑ 𝑐𝑘 (𝑎𝑘 − 𝑎𝑘+1 )

𝑘=1
𝑘=0
𝑘=1
であり, |𝑐𝑘 | ≦ 1 かつ 𝑎𝑛 が単調減少することより 𝑎𝑘 − 𝑎𝑘+1 ≧ 0 であり, 𝑎𝑛 → 0 より 𝑎𝑛 ≧ 0 なので,
𝑛−1
𝑛−1
|
||
−
|
≦
𝑐
𝑎
𝑎
𝑘 𝑘 𝑘+1 ∑(𝑎𝑘 − 𝑎𝑘+1 ) = 𝑎1 − 𝑎𝑛 ≦ 𝑎1 .
∑
𝑘=1
𝑘=1
∞
𝑛
(
−
)
(−1)𝑘−1𝑎𝑘 が
𝑐
𝑎
𝑎
ゆえに
は絶対収束する. そして, 𝑎𝑛 → 0 かつ |𝑐𝑛 | ≦ 1 より 𝑐𝑛 𝑎𝑛 → 0 となるので,
𝑘+1
𝑘
𝑘
∑
∑
𝑘=1
𝑘=1

𝑛 → ∞ で収束することがわかる. □注意: 上の証明は部分積分と類似の計算を和の場合に行っている. 部分積分やそれと同様の和の変形は収束し難い積分や無限和を収束し易くするために役に立つ.

□
注意: 上の証明の議論は 𝑐𝑛 が有界で 𝑎𝑛 が単調減少しながら 0 に収束する場合に一般化される. □別証明: 𝑎𝑛 が0以上で単調減少であることより, 𝑠𝑛 = 𝑎1 − 𝑎2 + 𝑎3 − 𝑎4 + ⋯ + (−1) 𝑛−1 𝑎𝑛 は
0 ≦ 𝑠2 ≦ 𝑠4 ≦ 𝑠6 ≦ ⋯ ≦ 𝑠5 ≦ 𝑠3 ≦ 𝑠1

𝑠1 , 𝑠3 , 𝑠5 ,… は下に有界な単調減少数列なので収束し, 𝑠2 , 𝑠4 , 𝑠6 ,… は上に有界な単調増加数列
𝑠𝑛 − 𝑠𝑛−1 = 𝑎𝑛 0 に収束することからそれらの収束先は一致し, 𝑠𝑛 も収束することがわかる. □注意: 交代級数の部分和の誤差の評価にはこの別証明の議論が有用であり, よく使われる. 上の議論より, 𝑠𝑛 の収束先を 𝛼 と書く
を満たしていることがわかる.
なので収束し,がとき,が成立していることがわかる.

𝑛 is odd ⟹ −𝑎𝑛+1 ≦ 𝛼 − 𝑠𝑛 ≦ 0,
𝑛 is even ⟹ 0 ≦ 𝛼 − 𝑠𝑛 ≦ 𝑎𝑛+1□

1.3.1 条件収束交代級数の例1 (log 2)∞ (−1)𝑛−1∞ 1= ∞ となる.
∑
𝑛=1 𝑛
𝑛 1
𝑛+1 𝑑𝑥≧
なぜならば,∑
𝑥 = log(𝑛 + 1) → ∞ (𝑛 → ∞) が成立するからである.
𝑘=1 𝑘 ∫1∑𝑛=1 𝑛は収束するが,∞ (−1)𝑛−1∑
𝑛=1 𝑛
解答: log2 .
問題:

を求めよ.

証明: 一般に𝑥 𝑑𝑡∫1 𝑡 = log𝑥.
ゆえに,

一方,

𝑑𝑥 = 2 𝑑𝑦 = log2.
∫0 1 + 𝑥 ∫1 𝑦
1|𝑥| < 1 のとき

なので

1
2 3
1+𝑥 =1−𝑥+𝑥 −𝑥 +⋯𝑑𝑥 = 1 (1 − 𝑥 + 𝑥2 − 𝑥3 + ⋯) = 1 − 1 + 1 − 1 + ⋯ = ∞ (−1)𝑛−1 .
∑∫0 1 + 𝑥 ∫0
2 3 4
𝑛=1 𝑛
1

したがって,

𝑑𝑥 = log2 = ∞ (−1)𝑛−1 .
∑∫0 1 + 𝑥𝑛=1 𝑛1

以下はコンピューターによる計算.
In [12]:

Out[12]:
In [13]:

1 n = symbols("n", integer=true)
2 S = sympy.Sum((-1)^(n-1)/n, (n, 1, oo)).doit()log(2)
123456

N = 1000
SimpleSum = sum(n->(-1)^(n-1)/n, 1:N)
TrueValue = log(2)@show SimpleSum@show TrueValue@show SimpleSum - TrueValue;

SimpleSum = 0.6926474305598223
TrueValue = 0.6931471805599453
SimpleSum - TrueValue = -0.0004997500001230337

1.3.2 Euler変換による交代級数の数値計算□

𝑁 (−1)𝑛−1

∑
𝑛=1 𝑛

で

𝑁 = 1000 としても収束先の値を小数点以下第2桁までしか再現してくれない. 一般に条件収束する交代級数を定義通り足し上げると収束は遅い.
収束を加速するための様々な方法が知られているが, 交代級数の場合にはEuler変換が有名である. 詳しくは交代ゼータ函数のオイラー変換 (http://nbviewer.jupyter.org/gist/genkuroki/4a8fea5e2ed1b4e3b737c99acf237042)
を参照せよ. 交代級数∞(−1)𝑘𝑎𝑘 のEuler変換の結果は
∑
𝑘=0
𝐿−1

lim ∑ 𝑤(𝐿)𝑘 (−1)𝑘𝑎𝑘 ,𝐿→∞
𝑘=0

すなわち交代級数のEuler変換は交代級数の各項にウェイト

𝑤(𝐿)𝑘 = ∑ 2−𝑛−1 (𝑘𝑛).
𝐿−1
𝑛=𝑘𝑤(𝐿)𝑘 をかけてから 𝐿 → ∞ の極限を取る形になる.

以下のようにEuler変換を使えば数十項で精密な計算が可能になるIn [14]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

binom(n,k) = exp(lgamma(n+1) - lgamma(k+1) - lgamma(n-k+1))​
struct EulerWeight{T} W::T end
function EulerWeight(; Lmax=2^6)
W = zeros(Lmax,Lmax)
for L in 1:Lmax
for k in 0:L-1
W[L,k+1] = sum(n->2.0^(-n-1)*binom(n,k), k:L-1)
end
end
EulerWeight(W)end(eulerweight::EulerWeight)(L,k) = eulerweight.W[L,k+1]
eulerweight = EulerWeight()

Out[14]: EulerWeight{Matrix{Float64}}([0.5 0.0 … 0.0 0.0; 0.75 0.25 … 0.0 0.0; … ; 1.0 1.0 … 1.08420
21724855044e-19 0.0; 1.0 1.0 … 3.523657060577904e-18 5.421010862427522e-20])
In [15]:



1
2
3
4
5
6

L = 2^6
EulerTran = sum(k->eulerweight(L,k)*(-1)^k/(k+1), 0:L-1)
TrueValue = log(2)@show EulerTran@show TrueValue@show EulerTran - TrueValue

EulerTran = 0.6931471805599453
TrueValue = 0.6931471805599453
EulerTran - TrueValue = 0.0
Out[15]: 0.0
Euler変換を使うと, 次のセルのように𝜁(𝑠) の非自明な零点をプロットすることができる.

In [16]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

f(s) = sum(k -> eulerweight(L,k)*(-1)^k/(1+k)^s, 0:L-1)/(1-2^(1-s))x = 0.0:0.005:1.0
y = 13.75:0.005:14.75
z = x' .+ im.*y@time w = f.(z)# plot(size=(600, 500), title="first non-trivial zero of zeta(s)")# heatmap!(x, y, abs.(w), color=:rainbow, xlabel="Re s", ylabel="Im s")# vline!([0.5], color="gray", ls=:dot, label="")cmap = ["prism", "CMRmap", "gist_rainbow_r"]
plt.figure(figsize=(6,5))
plt.title("first non-trivial zero of zeta(s)")
plt.pcolormesh(x, y, abs.(w), cmap=cmap[3])plt.xlabel("Re s")
plt.ylabel("Im s")
plt.vlines([0.5], extrema(y)..., lw=0.2, ls="--")

0.878905 seconds (13.55 M allocations: 349.856 MiB, 7.93% gc time, 32.61% compilation time)
sys:1: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X andY, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This
will become an error two minor releases later.

Out[16]: PyObject <matplotlib.collections.LineCollection object at 0x0000015A6A8E3070>0複素平面における実部が からをの非自明な零点と呼ぶ.

𝜁(𝑠)Riemann予想:

1 の縦に無限に長い帯状の領域を 𝜁(𝑠) の critical strip と呼ぶ. 𝜁(𝑠) の critical strip における零点

𝜁(𝑠) の非自明な零点の実部はすべて 1/2 である. □この予想は非常に有名であり, もしも証明されれば素数の分布に関する精密な評価が得られる.

𝜁(𝑠) のcritical stripにおける様子をプロットせよ. □次のセルを見よ. 虚部が12から45までのcritical stripでの 𝜁(𝑠) の様子がプロットされている. 少なくともその範囲内で 𝜁(𝑠) の非自明な零点の実部はどれも 1/2 になっていそうなことがわかる.
問題:

In [17]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

x = 0:0.01:1
y = 12:0.005:45
s = x' .+ y*im@time w = zeta.(s)​plt.figure(figsize=(4,10))​plt.subplot(121)plt.pcolormesh(x, y, log.(abs.(w)), cmap="prism")
plt.colorbar()
plt.grid(ls=":")
plt.title("log(abs(ζ(s)))")​
plt.subplot(122)
plt.pcolormesh(x, y, angle.(w), cmap="rainbow")
plt.colorbar()
plt.grid(ls=":")
plt.title("angle(ζ(s))")​plt.tight_layout()

1.318941 seconds (332.13 k allocations: 31.703 MiB, 0.86% gc time, 22.14% compilation time)1.3.3 無限和と積分の交換に関する注意∫01 𝑥𝑛 𝑑𝑥 = 1/(𝑛 + 1) となることと, 無限和 1 − 𝑥 + 𝑥2 − 𝑥3 + ⋯ と積分 ∫01 𝑑𝑥 の順序を交換できることを用いた.
無限和と積分の順序交換が可能なことは以下のようにして確認できる. まず |𝑥| < 1 で
1 = 1 − 𝑥 + 𝑥2 − 𝑥3 + ⋯ + (−1)𝑁−1 𝑥𝑁−1 + (−1)𝑁 𝑥𝑁
1+𝑥
1+𝑥
上では

となることを確認せよ. この公式を使うと,𝑑𝑥 = 1 − 1 + 1 + (−1)𝑁−1 1 + (−1)𝑁 1 𝑥𝑁 𝑑𝑥∫0 1 + 𝑥∫0 1 + 𝑥
𝑁
2 3
さらに 0 ≦ 𝑥 ≦ 1 のとき, 1 ≦ 1 + 𝑥 なので
0 ≦ 1𝑥+𝑁𝑥 ≦ 𝑥𝑁
1

となるから,

なので,

1 𝑁
1
0 ≦ ∫0 1𝑥+ 𝑥 𝑑𝑥 ≦ ∫0 𝑥𝑁 𝑑𝑥 = 𝑁 1+ 1

𝑁→∞で

1 𝑥𝑁

∫0 1 + 𝑥 𝑑𝑥 → 0.
以上を合わせると,

𝑑𝑥 = lim 𝑁 (−1)𝑛−1 = ∞ (−1)𝑛−1∑∫0 1 + 𝑥 𝑁→∞ ∑
𝑛=1 𝑛
𝑛=1 𝑛
1

となることがわかる.

1(−1)𝑁 ∫0 1𝑥+𝑁𝑥 𝑑𝑥 のように, 極限で 0 になって欲しい項が積分表示を持つことは多い. 極限で 0 になって欲しい部分を「+⋯」のように書くと正体不明で不安になるのだが, 積分表示を持つ場合にはそのような不安は完全に解消してしまう. □注意: 上の計算における1.3.4 条件収束交代級数の例2 (arctan 1 = π/4)

∞ (−1)𝑛−1を求めよ.
∑
𝑛=1 2𝑛 − 1
答え: 𝜋/4 .
証明: 𝑎 = tan𝜃 の −𝜋/2 < 𝜃 < 𝜋/2 における逆函数を 𝜃 = arctan𝑎 と書くと,
𝑎 𝑑𝑡∫0 1 + 𝑡2 = arctan𝑎.
この公式は左辺で 𝑡 = tan𝜃 と置換すれば確認できる.
問題:

ゆえに,

一方,

𝑑𝑥
𝜋
∫0 1 + 𝑥2 = arctan1 = 4
1|𝑥| < 1 のときなので

1 = 1 − 𝑥2 + 𝑥4 − 𝑥6 + ⋯1 + 𝑥2𝑑𝑥 = 1 (1 − 𝑥2 + 𝑥4 − 𝑥6 + ⋯) = 1 − 1 + 1 − 1 + ⋯ = ∞ (−1)𝑛−1 .
∑∫0 1 + 𝑥2 ∫0
3 5 7
𝑛=1 2𝑛 − 1
1

したがって,

𝑑𝑥 = arctan1 = 𝜋 = ∞ (−1)𝑛−1 .
∫0 1 + 𝑥2
4 ∑𝑛=1 2𝑛 − 1
1□

問題: 上の例の計算における無限和と積分の交換の正当化を実行せよ.
解答例:

0 < 𝑡 < 1 のとき

1 = 𝑛−1 (−𝑡2 )𝑘 + (−𝑡2 )𝑛 = 𝑛−1 (−1)𝑘𝑡2𝑘 + (−1)𝑛 𝑡2𝑛
1 + 𝑡2 ∑1 + 𝑡2 ∑1 + 𝑡2
𝑘=0
𝑘=0

なので,

𝑑𝑡 = 𝑛−1 (−1)𝑘 + (−1)𝑛 1 𝑡2𝑛 𝑑𝑡∫0 1 + 𝑡2 ∑∫0 1 + 𝑡2
𝑘=0 2𝑘 + 1
1

(∗)

でかつ

1 2𝑛
1
0 ≦ ∫0 1𝑡 +𝑑𝑡𝑡2 ≦ ∫0 𝑡2𝑛 𝑑𝑡 = 2𝑛 1+ 1 → 0 (𝑛 → ∞)であるから,

を得る.

□

1 𝑡2𝑛 𝑑𝑡
∫0 1 + 𝑡2 → 0 となる. したがって, (∗)で 𝑛 → ∞ とすることによって,
𝜋 = 1 𝑑𝑡 = ∞ (−1)𝑘4 ∫0 1 + 𝑡2 ∑𝑘=0 2𝑘 + 1

注意: 多くの解説で, この例の証明にAbelの連続性定理を使っているようだ. しかし, この場合には以上のように初等的かつ明瞭かつ単純な方法で証明可能である. 特別に簡単な場合について, Abelの連続性定理のような一般的な定理を適用して処理することを機械的に繰り返すと 数学の内容を誤解してしまう危険性があるので注意した方がよい
問題: 以上の例以外の条件収束級数の例について調べ, ノートにまとめよ.

□以下はコンピューターによる計算.
In [18]:

Out[18]:In [19]:

1 n = symbols("n", integer=true)
2 S = sympy.Sum((-1)^(n-1)/(2n-1), (n, 1, oo)).doit()

𝜋
4

1
2
3
4
5
6

N = 10^8
SimpleSum = sum(n->(-1)^(n-1)/(2n-1), 1:N)
TrueValue = π/4@show SimpleSum@show TrueValue@show SimpleSum - TrueValue;

SimpleSum = 0.7853981608974486
TrueValue = 0.7853981633974483
SimpleSum - TrueValue = -2.499999651739415e-9
In [20]:



1
2
3
4
5
6

L = 2^6
EulerTran = sum(k->eulerweight(L,k)*(-1)^k/(2k+1), 0:L-1)
TrueValue = π/4@show EulerTran@show TrueValue@show EulerTran - TrueValue

EulerTran = 0.7853981633974483
TrueValue = 0.7853981633974483
EulerTran - TrueValue = 0.0
Out[20]: 0.0

以下はコンピューターによる

In [21]:

Out[21]:

In [22]:Out[22]:

In [23]:

Out[23]:𝑑𝑥 や 1 𝑑𝑥 などの計算.
∫0 1 + 𝑥3 ∫0 1 + 𝑥4
1

1 x = symbols("x", real=true, positive=true)
2 integrate(1/(1+x^3), (x,0,1))log(2) + √⎯⎯3𝜋
391 x = symbols("x", real=true, positive=true)
2 integrate(x/(1+x^3), (x,0,1))⎯⎯3𝜋√log(2)− 3 + 91 x = symbols("x", real=true, positive=true)
2 integrate(x^2/(1+x^3), (x,0,1))log(2)
3□

In [24]:

Out[24]:

In [25]:

Out[25]:

In [26]:

Out[26]:

In [27]:

Out[27]:

In [28]:

Out[28]:In [29]:Out[29]:1 x = symbols("x", real=true, positive=true)
2 integrate(1/(1+x^4), (x,0,1))⎯⎯2 log (2 − √⎯⎯2) √⎯⎯2 log (√⎯⎯2 + 2) √⎯⎯2𝜋
√
−
+
+ 8
8
8

1 x = symbols("x", real=true, positive=true)
2 integrate(x/(1+x^4), (x,0,1))𝜋8

1 x = symbols("x", real=true, positive=true)
2 integrate(x^2/(1+x^4), (x,0,1))⎯⎯2 log (√⎯⎯2 + 2) √⎯⎯2 log (2 − √⎯⎯2) √⎯⎯2𝜋
√
−
+
+ 8
8
8

1 x = symbols("x", real=true, positive=true)
2 integrate(x^3/(1+x^4), (x,0,1))log(2)
4

1 x = symbols("x", real=true, positive=true)
2 s = symbols("s", real=true, positive=true)
3 J = simplify(integrate(1/(1+x^(1/s)), (x,0,1)))𝑠Φ (𝑒𝑖𝜋 ,1,𝑠)

1 sympy.lerchphi(Sym(:z), Sym(:s), Sym(:a))Φ((𝑧,),(𝑠,),(𝑎,))Lerchの超越函数(レルヒの超越函数)

Φ(𝑧,𝑠,𝑎) は次のように定義される:∞𝑛Φ(𝑧,𝑠,𝑎) = ∑ (𝑛 +𝑧 𝑎)𝑠 .
𝑛=0

Lerchの超越函数についてはノート「12 Fourier解析」のPoissonの和公式の応用の解説を参照せよ.
In [30]:Out[30]:1 x = symbols("x", real=true, positive=true)
2 s = symbols("s", real=true, positive=true)
3 J = simplify(integrate(1/(1+x^(1/s)), (x,0,oo))) sin𝜋𝑠(𝜋𝑠)for 𝑠 < 1∞ ∫ 1 𝑑𝑥 otherwise
 𝑥 1𝑠 +102 複素数の級数
この節では複素数∞

𝑎𝑛 の級数 ∑ 𝑎𝑛 を扱う.
𝑛=1

2.1 複素数の絶対収束級数

∞

∞

∞

𝑎1 , 𝑎2 ,… について, 級数 ∑ |𝑎𝑛 | が有限の値に収束するならば, 級数 ∑ 𝑎𝑛 も収束する. このとき, 級数 ∑ 𝑎𝑛
𝑛=1
𝑛=1
𝑛=1
は絶対収束するという. □定理: 複素数

絶対収束していないが収束する級数は条件収束するという.
上の定理の証明は略す. しかし, 下の方で, 級数
説明する.

∞

∞

𝑛=1

𝑛=1

∑ |𝑎𝑛 | が有限の値に収束するならば, 級数 ∑ 𝑎𝑛 も収束する直観的な理由を例:

In [31]:

Out[31]:∞ 𝑖𝑛𝜃
𝜃 は実数であるとする. このとき, 複素級数 ∑ 𝑒𝑛3/2 は絶対収束する. 以下のセルにおける計算とプロットを参照せよ.
𝑛=1

1
2
3
4
5
6
7
8

θ = 2π/10a(n) = exp(im*n*θ)/n^1.5
sum_a(n) = iszero(n) ? Complex(0.0) : sum(k->a(k), 1:n)
N = 70n = 0:Nz = sum_a.(n)plot(size=(400, 400), xlims=(0,1.0), ylim=(0,1.3))
plot!(real.(z), imag.(z), legend=false)#, line=:arrow)In [32]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

θ = 2π/10a(n) = exp(im*n*θ)/n^1.5
sum_a(n) = iszero(n) ? Complex(0.0) : sum(k->a(k), 1:n)@time anim = @animate for N in 0:70
n = 0:Nz = sum_a.(n)plot(size=(400, 400), xlims=(0,1.0), ylim=(0,1.3))
plot!(real.(z), imag.(z), legend=false, line=:arrow)end​
gifname = "sum_a.gif"@time gif(anim, gifname; fps=10)
sleep(0.1)
showimg("image/gif", gifname)7.799589 seconds (1.48 M allocations: 64.892 MiB, 0.26% gc time, 5.18% compilation time:
3% of which was recompilation)
1.545184 seconds (905.62 k allocations: 61.486 MiB, 1.34% gc time, 34.02% compilation tim
e: 29% of which was recompilation)[ Info: Saved animation to D:\OneDrive\work\Calculus\sum_a.gif

絶対収束の概念の直観的な説明:
各複素数

𝑎𝑛 は平面上の点と同一視できる(複素平面の考え方).

平面上の点と原点からその点への矢線(ベクトル)は同一視できる(ベクトルの考え方).
複素数の和はベクトルの和に対応している.

ベクトルの和は矢線としてのベクトルを連結することを意味する(ベクトルの和の幾何学的意味).
ゆえに,
しい.

𝑁

𝑠𝑁 = ∑ 𝑎𝑛 は各 𝑎1 , 𝑎2 ,…, 𝑎𝑁 の各々に対応する矢線を連結して得られる折れ線の先端の点に対応する複素数に等𝑛=1∞

𝐿 = ∑ |𝑎𝑛 | は各 𝑎𝑛 に対応する矢線の長さの総和を意味する.
𝑛=1

ゆえに,
る.

𝐿 が有限の値になることは, 各 𝑎𝑛 に対応する矢線をすべて連結して得られる折れ線の長さが有限になることを意味す

そのとき,

∞

𝑎𝑛 に対応する矢線をすべて連結して得られる折れ線の「先端」の点に対応する複素数が級数 ∑ 𝑎𝑛 の収束先になる.
𝑛=1

1つ前のセルのアニメーションはそのような様子の一例になっている.

注意: 上の説明を理解できれば, 級数

∞

∞

𝑛=1

𝑛=1

∑ |𝑎𝑛 | が有限の値に収束するならば, 級数 ∑ 𝑎𝑛 も収束することも十分に納得できると思う. その直観は数学的には完備性 (https://www.google.co.jp/search?
q=%E5%AE%8C%E5%82%99%E6%80%A7+%E7%B5%B6%E5%AF%BE%E5%8F%8E%E6%9D%9F)の概念によって正当化される.

□

2.2 条件収束する複素級数の例
問題:
注意:

∞
𝜃 は実数であり, 𝑒𝑖𝜃 ≠ 1 であると仮定する. このとき ∑ 𝑒𝑖𝑛𝜃𝑛 は条件収束することを示せ. □𝑛=1−log(1 − 𝑧) の収束半径 1 のMaclaurin展開は∞−log(1 − 𝑧) = ∑ 𝑧𝑛𝑛の形をしている.

解答例1:∞ 𝑒𝑖𝑛𝜃

𝑛=1

𝜃 ∈ ℝ, 𝑒𝑖𝜃 ≠ 1 のとき, ∑ 𝑛 の収束先は −log(1 − 𝑒𝑖𝜃 ) になる. □
𝑛=1
𝑛 𝑧𝑘

𝑧 = 𝑒𝑖𝜃 , 𝜃 ∈ ℝ とおき, 𝑠𝑛 (𝑧) = ∑ 𝑘 とおく. 𝑧 ≠ 1 のとき, 𝑠𝑛 (𝑧) が 𝑛 → ∞ で収束することを示せばよい.
𝑘=1

𝑛+1
2
3
𝑛
(𝑧 − 1)𝑠𝑛 (𝑧) = ( 𝑧1 + 𝑧2 + ⋯ + 𝑛 𝑧− 1 + 𝑧 𝑛 )23𝑛− ( 𝑧1 + 𝑧2 + 𝑧3 + ⋯ + 𝑧𝑛 )𝑛+1
= 𝑧 𝑛 − 𝑧1 + 𝑆𝑛 (𝑧).

ここで,𝑆𝑛 (𝑧) = ( 11 − 12 ) 𝑧2 + ( 12 − 13 ) 𝑧3 + ⋯ + ( 𝑛 −1 1 − 1𝑛 ) 𝑧𝑛 .
𝑛+1
|𝑧| = 1 なので, 𝑛 → ∞ のとき 𝑧 𝑛 → 0 となるので, (𝑧 − 1)𝑠𝑛 (𝑧) が 𝑛 → ∞ で収束することを示すためには, 𝑆𝑛 (𝑧) が絶対収束することを示せば十分であり, |𝑧| = 1 より,|| 1 − 1 𝑧2 || + || 1 − 1 𝑧3 || + ⋯ + || 1 − 1 𝑧𝑛 ||||( 1 2 ) || ||( 2 3 ) ||||( 𝑛 − 1 𝑛 ) ||= ( 11 − 12 ) + ( 12 − 13 ) + ⋯ + ( 𝑛 −1 1 − 1𝑛 ) = 11 − 1𝑛 → 1 (𝑛 → ∞)なので, 𝑆𝑛 (𝑧) は絶対収束する. これで 𝑛 → ∞ で (𝑧 − 1)𝑠𝑛 (𝑧) が収束することがわかった. 𝑧 ≠ 1 なので, 𝑠𝑛 (𝑧) も 𝑛 → ∞ で収束する. □𝑎𝑛 ≧ 0 であり, 𝑎𝑛 は単調減少しながら 0 に収束していると仮定する.
このとき, 𝜃 は実数であり, 𝑒𝑖𝜃 ≠ 1 な∞
1 の場合にも 𝑎𝑛 𝑒𝑖𝑛𝜃 は収束している.
𝑎𝑛 𝑒𝑖𝑛𝜃 は収束している. 例えば, 𝑎𝑛 = √1⎯𝑛 や 𝑎𝑛 = log𝑛
らば,
∑
∑
𝑛=1
𝑛=1
𝑛
証明: 𝑧 = 𝑒𝑖𝜃 , 𝑠𝑛 (𝑧) =∑ 𝑎𝑘 𝑧𝑘 とおく. 𝑠𝑛 (𝑧) が 𝑛 → ∞ で収束していることを示せばよい. 上の解答例と同様にして,解答例1の一般化:

∞

𝑘=0

𝑛

(𝑧 − 1)𝑠𝑛 (𝑧) = 𝑎𝑛 𝑧𝑛+1 − 𝑎1 𝑧 + 𝑆𝑛 (𝑧), 𝑆𝑛 (𝑧) = ∑(𝑎𝑘−1 − 𝑎𝑘 )𝑧𝑘 .
𝑘=2

そして,

|𝑧| = 1 でかつ 𝑎𝑛 → 0 より, 𝑎𝑛 𝑧𝑛+1 → 0 となる. さらに,
𝑛
𝑛
𝑘
|
|
(
−
)
=
𝑎
𝑎
𝑧
∑ | 𝑘−1 𝑘 | ∑(𝑎𝑘−1 − 𝑎𝑘 ) = 𝑎1 − 𝑎𝑛 → 𝑎1 (𝑛 → ∞)
𝑘=2

𝑘=2

𝑆𝑛 (𝑧) は 𝑛 → ∞ で絶対収束する. 𝑧 ≠ 1 なので 𝑠𝑛 (𝑧) も 𝑛 → ∞ で収束する. □𝑛𝑘
さらなる一般化: 一般に 𝑆𝑛 =
のとき,
=
𝑎
𝑏
𝐴
𝑘 ∑ 𝑎𝑗 , 𝐴0 = 0 とおくと, 𝑎𝑘 = 𝐴𝑘 − 𝐴𝑘−1 なので
∑𝑘𝑘
なので,

𝑘=1

𝑛

𝑗=1

𝑛

𝑛−1

𝑘=1

𝑘=0

𝑆𝑛 = ∑(𝐴𝑘 − 𝐴𝑘−1 )𝑏𝑘 = ∑ 𝐴𝑘 𝑏𝑘 − ∑ 𝐴𝑘 𝑏𝑘+1
𝑘=1

𝑛−1

= 𝐴𝑛 𝑏𝑛 − 𝐴0 𝑏1 + ∑ 𝐴𝑘 (𝑏𝑘 − 𝑏𝑘+1 ).
𝑘=1

この公式は部分積分の公式の和に関するバージョンであることに注意せよ. (「部分積分」のアイデアは普遍的によく現われる.)

𝑏𝑘 は単調減少実数列でかつ 0 に収束すると仮定する.
このとき, 𝑏𝑘 − 𝑏𝑘+1 ≧ 0 でかつ
𝑛−1∑(𝑏𝑘 − 𝑏𝑘+1 ) = 𝑏1 − 𝑏𝑛 → 𝑏1 (𝑛 → ∞).
仮定の追加1: 数列

𝑘=1

仮定の追加2:
仮定する.

𝐴𝑘 は有界数列であると仮定する. すなわちある正の実数で |𝐴𝑘 | ≦ 𝑀 (𝑘 = 1,2,…) を満たすものが存在すると

このとき,

∞

∞

𝑘=1

𝑘=1

∑ |𝐴𝑘 ||𝑏𝑘 − 𝑏𝑘+1 | ≦ 𝑀 ∑(𝑏𝑘 − 𝑏𝑘+1 ) = 𝑀 𝑏1 < ∞なので 級数∞∞∑ 𝐴𝑘 (𝑏𝑘+1 − 𝑏𝑘 ) は絶対収束する. さらに, 𝑛 → ∞ で 𝑏𝑛 → 0 なので 𝐴𝑛 𝑏𝑛 → 0 となる. ゆえに級数 ∑ 𝑎𝑘 𝑏𝑘
𝑘=1

𝑘=1

は収束する. (積分の場合にも, 絶対収束しない積分を部分積分によって絶対収束する積分に変形できる場合がある. 各自自分で研究してみよ.)□𝑎𝑛 = 𝑒𝑖𝑛𝜃 , 𝑏𝑛 = 1/𝑛 の場合を考える. このとき
𝑘𝑖𝜃 𝑖(𝑛+1)𝜃
𝐴𝑘 = ∑ 𝑎𝑗 = 𝑒 1−−𝑒 𝑒𝑖𝜃

解答例2: 以上の一般論を上の問題に適用しよう. すなわち

𝑗=1

|𝐴 | ≦ 2/|1 − 𝑒𝑖𝜃 | なので, 𝐴𝑘 は有界である. 実数列 𝑏𝑘 は単調減少しながら 0 に収束する. したがって上の一般論∞ 𝑘 𝑖𝑛𝜃であるから,

In [33]:

Out[33]:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

f(z) = -log(1-z)
g(z; N=1000) = sum(n->z^n/n, 1:N)​
θ = 0.1:0.01:πv = @.(f(exp(im*θ)))w = @.(g(exp(im*θ)))​P1 = plot(xlims=(0,π), xlabel="t")
plot!(θ, real.(w), label="Re(sum exp(int)/n)", lw=2)
plot!(θ, real.(v), label="Re(-log(1-exp(it)))", lw=2, ls=:dash)​
P2 = plot(xlims=(0,π), xlabel="t")
plot!(θ, imag.(w), label="Im(sum exp(int)/n)", lw=2)
plot!(θ, imag.(v), label="Im(-log(1-exp(it)))", lw=2, ls=:dash)​plot(P1, P2, size=(700,300))

In [34]:Out[34]:

1
2
3
4
5
6
7
8

θ = 2π/10a(n) = exp(im*n*θ)/nsum_a(n) = iszero(n) ? Complex(0.0) : sum(k->a(k), 1:n)
N = 400
n = 0:Nz = sum_a.(n)plot(size=(400, 400), xlims=(0,1.0), ylim=(0,1.6))
plot!(real.(z), imag.(z), legend=false)#, line=:arrow)In [35]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

θ = 2π/10a(n) = exp(im*n*θ)/nsum_a(n) = iszero(n) ? Complex(0.0) : sum(k->a(k), 1:n)@time anim = @animate for N in 0:4:400
n = 0:Nz = sum_a.(n)plot(size=(400, 400), xlims=(0,1.0), ylim=(0,1.6))
plot!(real.(z), imag.(z), legend=false, line=:arrow)end​
gifname = "sum_b.gif"@time gif(anim, gifname; fps=10)
sleep(0.1)
showimg("image/gif", gifname)10.291040 seconds (14.62 M allocations: 456.304 MiB, 0.86% gc time, 0.22% compilation time)
0.447109 seconds (639 allocations: 111.398 KiB)
[ Info: Saved animation to D:\OneDrive\work\Calculus\sum_b.gif

上のセルのアニメーションの折れ線の長さは無限大である. 無限に長くなる折れ線の先端が無限に回転しながら収束している.

2.3 多重対数函数
複素数𝑧 に関するべき級数

𝑟 > 1 |𝑧| ≦ 1∞
𝑟=3

𝑟 = 1 |𝑧| < 1∞ 𝑛
Li𝑟 (𝑧) = ∑ 𝑧𝑛𝑟
𝑛=1

𝑟 = 1 |𝑧| = 1

𝑧≠1

𝑧=1

は
,
および
,
のとき絶対収束する.
,の場合にはなら条件収束し,ならばに発散する. このように定義される函数
を 重の多重対数函数(polylogarithm)と呼ぶ.
の場合はdilogarithmと呼ばれ,の場合にはtrilogarithmと呼ばれる. このとき,

𝑟 > 1 のとき,

Li𝑟 (𝑧) 𝑟

𝑟=2

∞ 𝑛
𝑧
Li1 (𝑧) = ∑ 𝑧𝑛 = −log(1 − 𝑧) = ∫0 1 𝑑𝑡− 𝑡 ,
𝑛=1
∞ 𝑛
𝑧
𝑧
𝑡2
Li2 (𝑧) = ∑ 𝑧𝑛2 = ∫0 Li1𝑡(𝑡) 𝑑𝑡 = ∫0 𝑑𝑡2 ∫0 𝑑𝑡1 (1 −1𝑡1 )𝑡2 ,
𝑛=1
∞ 𝑛
𝑧
𝑧
𝑡3
𝑡2
Li3 (𝑧) = ∑ 𝑧𝑛3 = ∫0 Li2𝑡(𝑡) 𝑑𝑡 = ∫0 𝑑𝑡3 ∫0 𝑑𝑡2 ∫0 𝑑𝑡1 (1 − 𝑡11 )𝑡2 𝑡3 ,
𝑛=1
……………
∞ 𝑛
𝑧
𝑧
𝑡𝑟
𝑡2
Li𝑟 (𝑧) = ∑ 𝑧𝑛𝑟 = ∫0 Li2𝑡(𝑡) 𝑑𝑡 = ∫0 𝑑𝑡𝑟 ∫0 𝑑𝑡𝑟−1 ⋯ ∫0 𝑑𝑡1 (1 − 𝑡11)𝑡2 ⋯ 𝑡𝑟 ,𝑛=1∞
Li𝑟 (1) = ∑ 𝑛1𝑟 = 𝜁(𝑟).
𝑛=1

𝑚 に対して,1𝑡𝑡
𝜁(𝑚) = Li𝑚 (1) = ∫0 𝑑𝑡𝑚 ∫0 𝑚 𝑑𝑡𝑚−1 ⋯ ∫0 2 𝑑𝑡1 (1 − 𝑡1 )1𝑡2 ⋯ 𝑡𝑚 .
𝑡1 = 𝑥1 𝑥2 ⋯ 𝑥𝑚 , 𝑡2 = 𝑥2 ⋯ 𝑥𝑚 , …, 𝑡𝑚 = 𝑥𝑚 と置換すると,
1
1
1
𝜁(𝑚) = Li𝑚 (1) = ∫0 𝑑𝑥𝑚 ∫0 𝑑𝑥𝑚−1 ⋯ ∫0 𝑑𝑥1 1 − 𝑥11⋯ 𝑥𝑚 .
これの右辺が 𝜁(𝑚) に一致することは
1 = ∞ 𝑥𝑛−1
𝑛−1
1 − 𝑥1 ⋯ 𝑥𝑚 ∑ 1 ⋯ 𝑥𝑚 ,したがって, 2以上の整数

𝑛=1

𝑚
1
1
𝑛−1 𝑑𝑥 = 1
𝑛−1
𝑛−1
𝑑
𝑑
⋯
𝑑
⋯
=
𝑥
𝑥
𝑥
𝑥
𝑥
𝑥
𝑚
𝑚−1
𝑚
1
1
∫0 ∫0
∫0
(∫ 0
) 𝑛𝑚
1

1

に注意すれば明らかであろう.

2.4 二重対数函数のζ(2)の近似計算への応用∞
𝜁(2) = ∑ 𝑛12 を計算せよという問題はBasel問題と呼ばれているらしい. Basel問題はEulerによって1743年ころに解かれたら
𝑛=1

しい. Eulerがどのように考えたかについては次の文献を参照せよ.

杉本敏夫, バーゼル問題とオイラー (http://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1583-12.pdf), 2007年8月23日, 数理解析研究所講究録, 第1583巻, 2008年, pp.159-167−log(1 − 𝑥) 𝑑𝑥 を2通りに計算して比較することによって, 𝜁(2) を定義に基いて直接計𝑥
算するよりもずっと少ない項数の和で同精度で 𝜁(2) の計算する方法を発見している.
現代的には二重対数函数(dilogarithm, 以下ダイログと呼ぶ)を用いてその近似計算法を見付けたことになる. ダイログ Li2 (𝑧) のその第6節によれば, Eulerは, 積分

∫

定義は

であった.

となり,

𝑥 = 1 − 𝑦 と置換すると,∞ 𝑛𝑧
Li2 (𝑧) = ∫0 −log(1𝑥 − 𝑥) 𝑑𝑥 = ∑ 𝑧𝑛2
𝑛=1

1−𝑧
Li(𝑧) = ∫1 1log𝑦− 𝑦 𝑑𝑦log𝑦𝑑𝑑𝑦 (− Li2 (𝑦) − log(1 − 𝑦)log𝑦) = 1 − 𝑦なので, Li2 (1) = 𝜁(2) と 𝑦 → 1 で log(1 − 𝑦)log𝑦 → 0 となることより,
Li2 (𝑧) = [− Li2 (𝑦) − log(1 − 𝑦)log𝑦]1−𝑧
1 = − Li2 (1 − 𝑧) + 𝜁(2) − log𝑧 log(1 − 𝑧).
すなわち,

特に

𝜁(2) = Li2 (𝑧) + Li2 (1 − 𝑧) + log𝑧 log(1 − 𝑧).

𝑧 = 1/2 のとき,∞
𝜁(2) = 2 Li2 (1/2) + (log2)2 = ∑ 2𝑛−11 𝑛2 + (log2)2 .

𝜁(2) の定義に基いて最初の10項を足した結果

𝑛=1

10 1
= 1.54976 77311 665⋯∑
𝑛=1 𝑛2

𝜁(2) = 𝜋62 = 1.64493 40668 482⋯ と整数部分しか一致しないが,
10 1+ (log2)2 = 1.64492 00516 736⋯
∑
𝑛−1
2
2
𝑛
𝑛=1
は正確な値に小数点以下第4桁まで一致している. 最初の30項の和では, 前者は 1.61215 01176 015⋯ で正確な値と小数点以下第1桁までしか一致しないが, 後者の 1.64493 40668 463⋯ は小数点以下第11桁まで一致している.
は正確な値

In [36]:



1
2
3
4
5

Q(N) = sum(n->1/n^2, 1:N)
R(N) = sum(n->1/(2.0^(n-1)*n^2), 1:N) + log(2)^2@show Q(10), Q(10)-π^2/6, R(10), R(10)-π^2/6@show Q(30), Q(30)-π^2/6, R(30), R(30)-π^2/6[(N, Q(N), Q(N)-π^2/6, R(N), R(N)-π^2/6) for N in 10:10:50](Q(10), Q(10) - π ^ 2 / 6, R(10), R(10) - π ^ 2 / 6) = (1.5497677311665408, -0.095166335681
68564, 1.6449200516736968, -1.4015174529591334e-5)(Q(30), Q(30) - π ^ 2 / 6, R(30), R(30) - π ^ 2 / 6) = (1.6121501176015975, -0.032783949246
62886, 1.6449340668463974, -1.828981410767483e-12)
Out[36]: 5-element Vector{Tuple{Int64, Vararg{Float64, 4}}}:(10, 1.5497677311665408, -0.09516633568168564, 1.6449200516736968, -1.4015174529591334e-5)(20, 1.5961632439130233, -0.04877082293520307, 1.6449340628651155, -3.983110952177071e-9)(30, 1.6121501176015975, -0.03278394924662886, 1.6449340668463974, -1.828981410767483e-12)(40, 1.6202439630069352, -0.024690103841291222, 1.6449340668482253, -1.1102230246251565e-1
5)(50, 1.6251327336215293, -0.019801333226697082, 1.6449340668482262, -2.220446049250313e-1
6)

2.5 二重対数函数のζ(2)の正確な計算への応用
以下の議論は次のリンク先の方法の引き写しである:
https://www.theoremoftheday.org/Analysis/Basel/TotDBasel.pdf(https://www.theoremoftheday.org/Analysis/Basel/TotDBasel.pdf)

log𝑧 = log|𝑧| + 𝑖arg𝑧, −𝜋 < arg𝑧 < 𝜋 を使う.
|𝑧| < 1, −𝜋 < arg𝑧 < 𝜋 と仮定する. このとき, 1 + 𝑧−1 = 1 +𝑧 𝑧 より, 図を描いて確認すれば
arg(1 + 𝑧−1 ) = arg(1 + 𝑧) − arg𝑧複素函数としてのとなっていることがわかる. ゆえに−1log(1 + 𝑧−1 ) − log(1 + 𝑧) = log||| 11++𝑧𝑧 ||| + 𝑖(arg(1 + 𝑧−1 ) − arg(1 + 𝑧))||= −log|𝑧| − 𝑖arg𝑧 = −log𝑧.

そして,

−1
−1
(Li2 (−𝑧−1 ))′ = −log(1−𝑧−−1(−𝑧 )) 𝑧−2 = log(1 𝑧+ 𝑧 ) ,(Li2 (−𝑧))′ = −log(1−𝑧− (−𝑧)) (−1) = −log(1𝑧 + 𝑧) ,−1
∴ (Li2 (−𝑧−1 ) + Li2 (−𝑧))′ = log(1 + 𝑧 )𝑧− log(1 + 𝑧) = −log𝑧𝑧′ −log𝑧
1(− 2 (log𝑧)2 ) = 𝑧

なので, ある定数

𝐶 が存在して,

Li2 (−𝑧−1 ) + Li2 (−𝑧) = − 12 (log𝑧)2 + 𝐶.
−𝜋 < arg𝑧 < 𝜋 と仮定していたことに注意しながら, 𝑧 → 1 とすると,
2 Li2 (−1) = 𝐶.
−𝜋 < arg𝑧 < 𝜋 と仮定していたことに注意しながら, 𝑧 → −1 とすると,
2
2 Li2 (1) = − 12 (±𝜋𝑖)2 + 𝐶 = 𝜋2 + 2 Li2 (−1).
∞∞∞
Li2 (1) + Li2 (−1) = ∑ 𝑛12 + ∑ (−1𝑛2)𝑛 = ∑ (2𝑘2)2 = 12 Li2 (1) より, 2 Li2 (−1) = −Li(1) なので, 上で示した
𝑛=1
𝑛=1
𝑘=1
2
𝜋
2 Li2 (1) = 2 + 2 Li2 (−1) と合わせて, 𝜁(2) = Li2 (1) = 𝜋62 となることがわかる.
要するに 𝜁(2) は二重対数函数の Li2 (−𝑧−1 ) と Li2 (−𝑧) のあいだの接続公式のモノドロミー(不定性)を注意深く扱えば自然に
2.6 二重対数函数の高木貞治『解析概論』§35の例2(p.113)への応用
問題: 次を示せ:

𝜋/2
𝐼 := ∫0 log(sin𝑥)𝑑𝑥 = − 𝜋2 log2.

𝜋/2sin(𝜋/2 − 𝑥) = cos𝑥 より, 𝐼 = ∫0 log(cos𝑥))𝑑𝑥. sin(𝜋 − 𝑥) = sin𝑥𝜋𝜋より, 𝐼 =
∫𝜋/2 log(sin𝑥)𝑑𝑥 なので ∫0 log(sin𝑥)𝑑𝑥 = 2𝐼 . そこで, 𝑥 = 2𝑡 と置換して, sin(2𝑡) = 2cos𝑡sin𝑡 を使うと,
𝜋𝜋/2
𝐼 = 12 ∫0 log(sin𝑥)𝑑𝑥 = ∫0 log(2cos𝑡sin𝑡)𝑑𝑡 = 𝜋2 log2 + 𝐼 + 𝐼.
𝜋
ゆえに 𝐼 = − log2 . □2解答例(高木貞治『解析概論』§35の例2(p.113)):

注意: 上の問題の定積分は, 高木貞治『解析概論』§35の例2(p.113)だけではなく, 同書§62の例3(p.225)でも扱われている. そこではlog(1 − 𝑧) = −1 − 𝑧 − 𝑧2 − ⋯𝑧
2の原点を中心とする周回積分を用いて,

𝜋∫0 log(1 − 2𝑟cos𝜃 + 𝑟 )𝜃 = 2𝜋log𝑟2(𝑟 > 0)𝑟 = 1 の場合から上の問題の結果を得ている. 二重対数函数の定義は −log(1𝑧 − 𝑧) の不定積分だったので, 上の問題は二重対数函数と関係していることになる. 以下の2つの問題も見よ. □問題(WolframAlpha): 次の 𝐹(𝑥) について 𝐹 ′ (𝑥) = log(sin𝑥) となることを示せ.
𝐹(𝑥) = 2𝑖 𝑥2 + 2𝑖 Li2 (𝑒2𝑖𝑥 ) − 𝑥log(1 − 𝑒2𝑖𝑥 ) + 𝑥log(sin𝑥).
log(1 − 𝑥) , (−log(1 − 𝑥))′ = 1 より,′
解答例: Li2 (𝑥) = −1−𝑥𝑥を得ている. そしてこれの

2𝑖𝑥
2𝑖𝑥
𝐹 ′(𝑥) = 𝑖𝑥 + 2𝑖 2𝑖𝑒2𝑖𝑥 −log(1𝑒2𝑖𝑥− 𝑒 ) − log(1 − 𝑒2𝑖𝑥 ) + 𝑥 12𝑖𝑒− 𝑒2𝑖𝑥 + 𝑥 cos𝑥
sin𝑥 + log(sin𝑥).
第2項と第3項がキャンセルして消える. さらに,

𝑒𝑖𝑥 + 𝑒−𝑖𝑥 = 𝑖𝑥 𝑒2𝑖𝑥 + 1
𝑥 cos𝑥=𝑖𝑥
sin𝑥 𝑒𝑖𝑥 − 𝑒−𝑖𝑥 𝑒2𝑖𝑥 − 1

𝑖𝑥 で割ったものは
2𝑖𝑥 𝑒2𝑖𝑥 + 1
1 + 𝑒−2𝑒2𝑖𝑥 − 1 + 𝑒2𝑖𝑥 − 1 = 0となるので, 𝐹 ′ (𝑥) = log(sin𝑥) となることがわかる. □筆者はこの問題の 𝐹(𝑥) の式はWolframAlphaによる計算 (http://www.wolframalpha.com/input/?i=%5Cint+log(sin+x)+dx)で知っを代入すると, 第1,4,5項の和を問題: すぐ上の問題の結果を用いて, 次を示せ:

𝜋𝜋2∫0 log(sin𝑥)𝑑𝑥 = − 2 log2, 𝜁(2) = Li2 (1) = 6 .
𝜋/2

解答例:

Li2 (1) と Li(−1) は∞∞𝑛
Li2 (1) = ∑ 𝑛12 , Li2 (−1) = ∑ (−1)
2𝑛𝑛=1と表わされるので,

𝑛=1∞
Li2 (1) + Li2 (−1) = ∑ (2𝑘)2 2 = 12 Li2 (1).
𝑘=1

ゆえに

Li2 (−1) = − 12 Li(1).

そして, 上の問題の𝐹(𝑥) について
2
𝐹 ( 𝜋2 ) = 𝜋8 𝑖 + 2𝑖 Li2 (−1) − 𝜋2 log2, 𝐹(0) = 2𝑖 Li2 (1)(1)

なので, 上の問題の結論より,

𝜋/2
2ℝ ∋ ∫0 log(sin𝑥)𝑑𝑥 = [𝐹(𝑥)]𝜋/20 = 𝜋8 𝑖 + 2𝑖 Li2 (−1) − 𝜋2 log2 − 2𝑖 Li2 (1).
𝜋/2𝜋
両辺の実部と虚部(の2倍)を比較して,∫0 log(sin𝑥)𝑑𝑥 = − 2 log2 と20 = 𝜋4 + Li2 (−1) − Li2 (1)𝜋2 が得られる. □を得る. 以上の(1),(2)より, 𝜁(2) = Li2 (1) =6
注意: 以上の計算に関連する話題については, 筆者によるツイッターにおける一連の発言(https://twitter.com/genkuroki/status/830016144933167104)も参照せよ.

□

2.7 二重対数函数の五項関係式

𝐿(𝑧) を次のように定義する:
𝑧1 log𝑧 log(1 − 𝑧).
𝐿(𝑧) = 12 ∫0 ( −log(1𝑥 − 𝑥) + −log𝑥
𝑑𝑥
=
(𝑧)
+
Li
2
)
1−𝑥
2

Rogersの二重対数函数 (https://www.google.co.jp/search?q=Rogers+dilogarithm)

1つ目の等号は𝐿(𝑧) の定義であり, 2つ目の等号は次を使えば得られる:−log𝑥𝑑𝑑𝑥 (Li2 (𝑥) + log𝑥 log(1 − 𝑥)) = 1 − 𝑥 .

(2)𝐿(𝑧) と Li2 (𝑧) の違いは初等函数 12 log𝑧 log(1 − 𝑧) の分だけである.
2
Li2 (0) = 0, Li2 (1) = 𝜁(2) = 𝜋6 より,
2
𝐿(0) = 0, 𝐿(1) = 𝜋6 .
この節では次の五項関係式 (five-term relation)2
𝐿(𝑥) + 𝐿(1 − 𝑥𝑦) + 𝐿(𝑦) + 𝐿 ( 11−−𝑥𝑦𝑦 ) + 𝐿 ( 11−−𝑥𝑦𝑥 ) = 𝜋2 .

(FTR)を示そう. 二重対数函数の五項関係式については19世紀にすでに先行する研究結果があったが, この形式に整理された五項関係
式は
R. Rogers, On Function Sum Theorems Connected with the Series
DOI (https://doi.org/10.1112/plms/s2-4.1.169)
補題: 函数

𝑓𝑖 (𝑥) 達について∞ 𝑧𝑛, Proc. London Math. Soc. 4 (1907), 169-189,∑
𝑛=1 𝑛2𝑁

𝐹(𝑥,𝑋) = ∑ log(𝑓𝑖 (𝑥))log(1 − 𝑓𝑖 (𝑋))𝑖=1

は𝐹(𝑥,𝑋) = 𝐹(𝑋,𝑥) を満たしていると仮定する. このとき,
𝑁𝑓(𝑥) = ∑ 𝐿(𝑓𝑖 (𝑥))𝑖=1は定数函数になる.
証明:

𝑑𝑓 = 0 を示せばよい.
−2𝑑𝐿(𝑥) = log(1 −𝑥 𝑥)𝑑𝑥 + log(𝑥)𝑑𝑥
1 − 𝑥 = 𝑑log(𝑥) log(1 − 𝑥) − log(𝑥)𝑑log(1 − 𝑥)

なので,

𝑁

𝑁

𝑖=1

𝑖=1

−2𝑑𝑓(𝑥) = ∑ 𝑑log(𝑓𝑖 (𝑥)) log(1 − 𝑓𝑖 (𝑥)) − ∑ log(𝑓𝑖 (𝑥))𝑑log(1 − 𝑓𝑖 (𝑥)).

𝐹(𝑥,𝑋) と 𝐹(𝑋,𝑥) の 𝑥 に関する外微分 𝑑 を取ると,𝑁
𝑑𝐹(𝑥,𝑋) = ∑ 𝑑log(𝑓𝑖 (𝑥)) log(1 − 𝑓𝑖 (𝑋)),
𝑖=1
𝑁

𝑑𝐹(𝑋,𝑥) = ∑ log(𝑓𝑖 (𝑋))𝑑log(1 − 𝑓𝑖 (𝑥)).
𝑖=1

𝐹(𝑥,𝑋) = 𝐹(𝑋,𝑥) より, これらは等しい:
𝑁
𝑁
𝑑log(
𝑓
(𝑥))
log(1
−
𝑓
(𝑋))
=
𝑖
𝑖
∑
∑ log(𝑓𝑖 (𝑋))𝑑log(1 − 𝑓𝑖 (𝑥))𝑋 = 𝑥 とおくと,

𝑖=1

𝑖=1

𝑁

𝑁

𝑖=1

𝑖=1

∑ 𝑑log(𝑓𝑖 (𝑥)) log(1 − 𝑓𝑖 (𝑥)) = ∑ log(𝑓𝑖 (𝑥))𝑑log(1 − 𝑓𝑖 (𝑥)).

以上を合わせると,−2𝑑𝑓 = 0 が得られる. □五項関係式の証明:

5𝑓𝑖 (𝑥,𝑦) (𝑖 = 1,2,3,4,5) をそれぞれ 𝑥, 1 − 𝑥𝑦 , 𝑦, 11−−𝑥𝑦𝑦 , 11−−𝑥𝑦𝑥 と定め, 𝑓(𝑥,𝑦) = ∑ 𝐿(𝑓𝑖 (𝑥,𝑦))とおく.

𝑓(𝑥,𝑦) が定数函数になることを示そう. 上の補題より, そのためには

𝑖=1

𝐹(𝑥,𝑦;𝑋,𝑌) = ∑ log(𝑓𝑖 (𝑥,𝑦))log(1 − 𝑓𝑖 (𝑋,𝑌))
𝑖=1

が𝐹(𝑥,𝑦;𝑋,𝑌) = 𝐹(𝑋,𝑌;𝑥,𝑦) を満たしていることを示せば十分である. 具体的に計算すると,− 𝑋) , 1 − 1 − 𝑋 = 𝑋(1 − 𝑌)
1 − (1 − 𝑋𝑌) = 𝑋𝑌, 1 − 11−−𝑋𝑌𝑌 = 𝑌(11 − 𝑋𝑌
1 − 𝑋𝑌 1 − 𝑋𝑌

より𝐹(𝑥,𝑦;𝑋,𝑌) = log(𝑥)log(1 − 𝑋) + log(1 − 𝑥𝑦)log(1 − 𝑋𝑌) + log(𝑦)log(1 − 𝑌)
+ (log(1 − 𝑦) − log(1 − 𝑥𝑦))(log(𝑌) + log(1 − 𝑋) − log(1 − 𝑋𝑌))
+ (log(1 − 𝑥) − log(1 − 𝑥𝑦))(log(𝑋) + log(1 − 𝑌) − log(1 − 𝑋𝑌))
= log(𝑥)log(1 − 𝑋) + log(1 − 𝑥)log(𝑋)+ log(𝑦)log(1 − 𝑌) + log(1 − 𝑦)log(𝑌)+ log(1 − 𝑥)log(1 − 𝑌) + log(1 − 𝑦)log(1 − 𝑋)
− log(1 − 𝑥)log(1 − 𝑋𝑌) − log(1 − 𝑥𝑦)log(1 − 𝑋)
− log(1 − 𝑦)log(1 − 𝑋𝑌) − log(1 − 𝑥𝑦)log(1 − 𝑌)
+ 2log(1 − 𝑥𝑦)log(1 − 𝑋𝑌)+ log(1 − 𝑥𝑦)log(𝑋𝑌) − log(1 − 𝑥𝑦)log(𝑋) − log(1 − 𝑥𝑦)log(𝑌).
最下段の3つの項がキャンセルして消えるので, 𝐹(𝑥,𝑦;𝑋,𝑌) = 𝐹(𝑋,𝑌;𝑥,𝑦) となることがわかる. これで 𝑓(𝑥,𝑦) が定数函数であることがわかった.
そして,𝐿(0) = 0 , 𝐿(1) = 𝜋62 より,

𝑓(0,0) = 𝐿(0) + 𝐿(0) + 𝐿(1) + 𝐿(1) + 𝐿(1) = 𝜋22 .

以上によって𝑓(𝑥,𝑦) = 𝜋22 となることが示された. □注意: 上の補題を使えば,𝐿(𝑥) + 𝐿(1 − 𝑥) も定数函数になることがわかり, 𝐿(0) = 0 , 𝐿(1) = 𝜋62 より,𝐿(𝑥) + 𝐿(1 − 𝑥) = 𝜋62となることも示される. これを使って, 五項関係式は次のように書き直される:− 𝑦)𝑦(1 − 𝑥)𝐿(𝑥) + 𝐿(𝑦) = 𝐿(𝑥𝑦) + 𝐿 ( 𝑥(11 − 𝑥𝑦 ) + 𝐿 ( 1 − 𝑥𝑦 ) .
この形の公式も各種文献でよく見る. □注意: 𝑥1 = 𝑥 , 𝑥2 = 1 − 𝑥𝑦 とおき, 帰納的に 𝑥𝑛 を
𝑥𝑛−1 𝑥𝑛+1 = 1 − 𝑥𝑛という関係式で定めると,

𝑥3 = 𝑦, 𝑥4 = 11−−𝑥𝑦𝑦 , 𝑥5 = 11−−𝑥𝑦𝑥 , 𝑥6 = 𝑥, 𝑥7 = 1 − 𝑥𝑦, ,……
𝑥𝑛+5 = 𝑥𝑛 が成立しており, 出て来た 𝑥,𝑦 の式がちょうど五項関係式の5つの 𝑓𝑖 (𝑥,𝑦) に一致していることがわかる. この事実

はクラスター代数 (https://www.google.co.jp/search?
q=%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%BC%E4%BB%A3%E6%95%B0)と dilogarithm identities(https://www.google.co.jp/search?q=dilogarithm+identities) の理論として大幅に一般化されている. クラスター代数の入門的解説
については
黒木玄, ランク2のクラスター代数 (https://genkuroki.github.io/documents/cluster_algebra_rank2.pdf), 2010年
黒木玄, フリーズパターン ―― 数の繰返し模様の不思議(https://genkuroki.github.io/documents/20120810FriezePattern.pdf), 2013年
黒木玄, フリーズパターンの不思議 (https://genkuroki.github.io/documents/20121115Akita.pdf), 2013年などを見よ. 検索すれば他にもたくさん見付かる.

□

注意: このノートの下の方で二重対数函数の量子版と五項関係式の量子化とみなされる五角形恒等式について説明する.

□

3 無限積多項式の計算で因数分解が極めて有用であるのと同様に, より一般の函数の無限積への因数分解も極めて有用である. そのためには無限積を正しく扱う方法を知っておかなければいけない.

∞𝑛𝑎𝑛 から作られる無限積 ∏ 𝑎𝑛 が収束するとは, 数列 𝑝𝑛 = ∏ 𝑎𝑘 = 𝑎1 𝑎2 ⋯ 𝑎𝑛 が収束することであると定める. そのと
𝑛=1
𝑘=1
き, その無限積の収束先が数列 𝑝𝑛 の収束先で定義される.
数列

無限積については高木貞治『解析概論』の§51(pp.178-181)を参照せよ.
さらに 𝑠 > 1 であると仮定する. このとき,
𝑝𝑖 は 𝑖 番目の素数であるとする.
𝑝1 = 2, 𝑝2 = 3, 𝑝3 = 5, … である.
𝑁 1
∞ 1
素数全体に関する無限積
とおく. このとき,−𝑠 がどうなるかを調べてみよう. 𝑍𝑁 = ∏ 1 − 𝑝−𝑠∏𝑖𝑖=1 1 − 𝑝𝑖𝑖=1
例: 以下では

𝑁

𝑍𝑁 = ∏(1 + 𝑝−𝑠𝑖 + 𝑝−2𝑠
𝑖 + ⋯)𝑖=1

なので,𝑍𝑁 は非負の整数たち 𝑘1 ,…, 𝑘𝑁 に対する
𝑝−1 𝑘1𝑠 ⋯ 𝑝−𝑁𝑘𝑁𝑠 =1(𝑝𝑘11 ⋯ 𝑝𝑘𝑁𝑁 )𝑠

達すべての和に等しい. 正の整数は一意的に素因数分解できるので,等しくなる:

𝑁 → ∞ で 𝑍𝑁 は正の整数 𝑛 に対する 𝑛1𝑠 達全体の和に

1 = ∞ 1 = 𝜁(𝑠).
−𝑠 ∑ 𝑛𝑠∏
𝑖=1 1 − 𝑝𝑛=1∞

左辺をゼータ函数

𝜁(𝑠) のEuler積と呼ぶ. □3.1 無限積の絶対収束

∞

∞

𝑛=1
∞

𝑛=1

定理: 級数∑ 𝑎𝑛 が絶対収束していれば, 無限積 ∏(1 + 𝑎𝑛 ) も収束する. このとき, その無限積は絶対収束するという.

証明: 級数𝑎𝑛 は絶対収束していると仮定し,
∑
𝑛=1
∞

𝑛

𝑛=1

𝑘=1

𝑀 = ∑ |𝑎𝑛 |, 𝑝𝑛 = ∏(1 + 𝑎𝑘 ), 𝑏𝑛 = 𝑝𝑛 − 𝑝𝑛−1 = 𝑝𝑛−1 𝑎𝑛
とおく. このとき,𝑛𝑝𝑛 = ∑ 𝑏𝑘 であり, 𝑥 ≧ 0 のとき 1 + 𝑥 ≦ 𝑒𝑥 であることより,
𝑘=1

𝑛

𝑛

𝑘=1

𝑘=1

|𝑝𝑛 | ≦ ∏(1 + |𝑎𝑘 |) ≦ ∏ 𝑒|𝑎𝑛| = 𝑒𝑀となり,|𝑏𝑘 | = |𝑝𝑘−1 ||𝑎𝑘 | ≦ 𝑒𝑀 |𝑎𝑘 | となるので,∞∞
𝑀 |𝑎𝑛 | = 𝑒𝑀 𝑀 < ∞.
|
|
≦
𝑏
𝑒
𝑛
∑
∑

よって, 級数

例:

∞

𝑛=1
𝑛

𝑛=1

𝑘=1

𝑛=1

∞

lim 𝑝𝑛 が収束することがわかった. □∑ 𝑏𝑛 は絶対収束する. 𝑝𝑛 = ∑ 𝑏𝑘 なので無限積 ∏(1 + 𝑎𝑛 ) = 𝑛→∞𝑛=1𝑛 → ∞ のとき 𝑎𝑛 = 𝑂(1/𝑛2 ) であるとする. このとき, ある定数 𝐶 ≧ 0 が存在して, |𝑎𝑛 | ≦ 𝐶/𝑛2 となる. このとき,
∞
∞ 1
|
|
≦
𝐶
𝑎
𝑛
∑
∑ 𝑛2 = 𝐶𝜁(2) < ∞
𝑛=1

𝑛=1

より

∞

∞

𝑛=1

𝑘=1

∑ 𝑎𝑛 は絶対収束するので, 無限積 ∏(1 + 𝑎𝑛 ) は絶対収束する. 例えば,∞
2𝑓(𝑠) = 𝑠 ∏ (1 − 𝑛𝑠2 )𝑛=1

𝑛 ∈ ℤ について 𝑓(𝑛) = 0 となる. 実はこの 𝑓(𝑠) は
i( )
∞
∞ 1
∞
𝑎𝑛 も絶対収束している. なぜな
(1
+
)
=
1
+
𝑎
注意:
は絶対収束していると仮定する. そのとき,
𝑛
∏
∏
∏
(
1 − 𝑎𝑛 )𝑛=1
𝑛=1 1 − 𝑎𝑛 𝑛=1
1 となる. 絶対収束性を論じる場合にらば, 𝑎𝑛 は 0 に収束しているので, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば |1 − 𝑎𝑛 | ≧2
は 𝑁 = 1 の場合だけを考えれば十分なので, 𝑁 = 1 であると仮定する. そのとき,∞| 𝑎 |∞
𝑛 | ≦ 2 |𝑎𝑛 | < ∞.
|||∑ | 1 − 𝑎𝑛 | ∑の右辺の無限積は絶対収束している. このとき, すべての整数

これで,

例:

𝑛=1

1 も絶対収束していることが示された. □
∏
1
−
𝑎𝑛
𝑛=1
∞

𝑛=1

∞
∞
1 =∞ 1 も|𝑞| < 1 のとき, ∑ 𝑞 𝑛 は絶対収束しているので, 無限積 𝑓(𝑞) = ∏(1 − 𝑞 𝑛 ) も絶対収束しており, 𝑓(𝑞)∏ 1 − 𝑞𝑛𝑛=1

𝑛=1

絶対収束している. そして,

𝑛=1

1 = ∞ ∞ 𝑞 𝑚𝑘 = ∞ 𝑞 𝑘1+2𝑘2+3𝑘3+⋯ = ∞ 𝑝(𝑛)𝑞 𝑛 .
∑𝑓(𝑞) ∏
𝑚=1 ∑
𝑘=0
𝑛=0
𝑘1 ,𝑘∑
2 ,…=0
ただし, 有限個を除いて 0 であるような非負の整数たちの組全体を (𝑘1 , 𝑘2 ,…) は動くとする. その約束のもとで𝑝(𝑛) = ♯{(𝑘1 , 𝑘2 , 𝑘3 ,…) ∣ 𝑘1 + 2𝑘2 + 3𝑘3 + ⋯ = 𝑛}.
ここで ♯𝑋 は集合 𝑋 の元の個数を表わす. すなわち, 𝑝(𝑛) は 𝑛 を正の整数の和に分解する方法の個数に等しい. 𝑝(𝑛) は 𝑛 の分割数と呼ばれている. 例えば, 𝑝(1) = 1 , 𝑝(2) = 2 , 𝑝(3) = 3 , 𝑝(4) = 5 であり,
5=4+1=3+2=3+1+1=2+2+1=2+1+1+1=1+1+1+1+1なので 𝑝(5) = 7 である. 𝜂(𝑞) = 𝑞 1/24 𝑓(𝑞) はDedekindのη函数と呼ばれるモジュラー変換性を持つ重要な特殊函数である. 分
割数のような組み合わせ論的な数とモジュラ₀変換性を持つ特殊函数が関係しており, 豊かな数学の世界を作っている. □In [37]:

1 partition_number(n) = sympy.functions.combinatorial.numbers.nT(n)2 [(n, partition_number(n)) for n in 1:10]

Out[37]: 10-element Vector{Tuple{Int64, Sym}}:(1, 1)(2, 2)(3, 3)(4, 5)(5, 7)(6, 11)(7, 15)(8, 22)(9, 30)(10, 42)
In [38]:

Out[38]:1 q = symbols("q")
2 N = 10
3 series(prod(1/(1-q^n) for n in 1:N), n=N+1)

1 + 𝑞 + 2𝑞 2 + 3𝑞 3 + 5𝑞 4 + 7𝑞 5 + 11𝑞 6 + 15𝑞 7 + 22𝑞 8 + 30𝑞 9 + 42𝑞 10 + 𝑂 (𝑞 11 )注意:∞

(1 − 𝑞 𝑛 ) について
∏
𝑛=1

∞

∞

∞

𝑛=1

𝑛=−∞

𝑛=−∞

2
∏(1 − 𝑞 𝑛 ) = ∑ (−1)𝑛 𝑞 𝑛(3𝑛−1)/2 = ∑ (−1)𝑛 𝑞 ((6𝑛−1) −1)/24となることが知られている. 次のセルを見よ.

□In [39]:

1
2
3
4
5



q, n = symbols("q n")
N = 5
M = N*(3N-1)÷2@time series(sympy.summation((-1)^n*q^(n*(3n-1)÷2), (n, -M, M)), q, n=M+1) |>display@time series(sympy.product(1 - q^n, (n, 1, M)).expand(), q, n=M+1) |> display

1 − 𝑞 − 𝑞 2 + 𝑞 5 + 𝑞 7 − 𝑞 12 − 𝑞 15 + 𝑞 22 + 𝑞 26 − 𝑞 35 + 𝑂 (𝑞 36 )0.356300 seconds (96.89 k allocations: 6.547 MiB, 25.20% compilation time)

1 − 𝑞 − 𝑞 2 + 𝑞 5 + 𝑞 7 − 𝑞 12 − 𝑞 15 + 𝑞 22 + 𝑞 26 − 𝑞 35 + 𝑂 (𝑞 36 )6.017539 seconds (661 allocations: 48.672 KiB)

3.2 絶対収束する無限積の収束先が積の順序によらないこと
定理: 絶対収束する無限積の収束先は積の順序によらない.
証明: 絶対収束する級数の収束先が和の順序によらないことに帰着する. 無限積∞

𝑀 = ∑ |𝑎𝑛 | とおく. その無限積の収束先は
𝑛=1∞(1 + 𝑎𝑛 ) は絶対収束していると仮定し,
∏
𝑛=1

𝑛

𝑝𝑛 = ∏(1 + 𝑎𝑘 ) = ∑ ∏ 𝑎𝑖
𝑘=1
𝐼⊂{1,2,…,𝑛} 𝑖∈𝐼の収束先に等しい. さらに,𝑛|| || 𝑛
=
(1
+
|
|)
≦
𝑎
𝑎
𝑒|𝑎𝑘| ≦ 𝑒𝑀 < ∞.
|
|
𝑖
𝑘
∑ ||∏
∏
𝐼⊂{1,2,…,𝑛}𝑖∈𝐼 || ∏𝑘=1
𝑘=1
ゆえに, 正の整数全体の集合の有限部分集合 𝐼 に対する積∏ 𝑎𝑖 達すべての無限和は絶対収束している. したがって, その無限𝑖∈𝐼和の収束先は和の順序によらない. 無限積の積の順序を変えることは, その無限和の和の順序を変える場合の特別な場合になっているので, 無限積の収束先も積の順序によらない.

□

3.3 量子二重対数函数
以下,|𝑞| < 1 であると仮定する.

このノートでは量子二重対数函数(quantum dilogarithm)∞

𝐸𝑞 (𝑥) = (∏𝑘=0と定める. (注意:

(1 + 𝑞 𝑘+1/2 𝑥)

𝐸𝑞 (𝑥) を

−1

1
=
1/2
1+1/2
) (1 + 𝑞 𝑥)(1 + 𝑞 𝑥)(1 + 𝑞 2+1/2𝑥)⋯ .

𝐸𝑞 (−𝑥) の方を量子二重対数と呼んでいる文献が多い.) この 𝐸𝑞 (𝑥) は𝐸𝑞 (𝑞𝑥) = (1 + 𝑞 1/2𝑥)𝐸𝑞 (𝑥), 𝐸𝑞 (0) = 1という条件で一意に特徴付けられる.
上の𝐸𝑞 (𝑥) が量子二重対数函数と呼ばれる理由はその対数が次の表示を持つからである:∞∞ ∞ (𝑞 𝑘+1/2 𝑥)𝑛𝑘+1/2
log 𝐸𝑞 (−𝑥) = − ∑ log(1 − 𝑞 𝑥) = ∑ ∑ 𝑛
𝑘=0
𝑘=0 𝑛=1∞ ∞∞ 1/2 𝑛= ∑ (∑ 𝑞 𝑛𝑘) (𝑞 1/2𝑥)𝑛 = ∑ 𝑛(1(𝑞 −𝑥𝑞)𝑛 ) .
𝑛=1 𝑘=0

ゆえに,

𝑛=1

∞
(1 − 𝑞)log 𝐸𝑞 (−𝑥) = ∑ (𝑞𝑛(𝑛1/2𝑥)𝑞)𝑛 ,
𝑛=1

ここで,

(𝑛)𝑞 = 11−−𝑞𝑞𝑛 .

(𝑛)𝑞 は q数 (q-number)と呼ばれ, 𝑞 → 1 で 𝑛 に収束する. ゆえに, 𝑞 → 1 のとき,∞
(1 − 𝑞)log 𝐸𝑞 (−𝑥) → ∑ 𝑥𝑛2𝑛 = Li2 (𝑥).
𝑛=1

𝐸𝑞 (𝑥) の 𝑞 → 1 での漸近挙動は(古典)二重対数函数 Li2 (𝑥) を含んでいる.
3.3.1 量子二重対数函数と量子指数函数との関係
量子指数函数𝑒𝑞 (𝑥) を∞ 𝑛
𝑒𝑞 (𝑥) = ∑ (𝑛𝑥)𝑞! ,(𝑛)𝑞! = (1)𝑞(2)𝑞 ⋯(𝑛)𝑞

𝑛=0

と定める.

(𝑛)𝑞! はq階乗 (q-factorial) と呼ばれている. このとき,
𝑒𝑞 (𝑥) − 𝑒𝑞 (𝑞𝑥) = ∞ (𝑛)𝑞𝑥𝑛−1 = ∞ 𝑥𝑚 = 𝑒𝑞 (𝑥).
(1 − 𝑞)𝑥 ∑ (𝑛)𝑞! ∑ (𝑚)𝑞!
𝑛=1

ゆえに,

𝑚=0

𝑛 → ∞ のとき, 𝑒𝑞 (𝑞 𝑛 𝑥) → 𝑒𝑞 (0) = 1 より,
𝑒𝑞 (𝑞 2 𝑥)=
𝑒𝑞 (𝑥) = 1 −𝑒(1𝑞 (𝑞𝑥)
− 𝑞)𝑥 (1 − (13− 𝑞)𝑥)(1 − (1 − 𝑞)𝑥𝑞)𝑥)= (1 − (1 − 𝑞)𝑥)(1 − (1𝑒𝑞 (−𝑞 𝑞)𝑥𝑞)(1− (1 − 𝑞)𝑥𝑞 2 )= ⋯⋯⋯⋯⋯= (1 − (1 − 𝑞)𝑥)(1 − (1 − 1𝑞)𝑥𝑞)(1 − (1 − 𝑞)𝑥𝑞 2 )⋯−1∞𝑘= (∏(1 − (1 − 𝑞)𝑥𝑞 )) .
𝑘=0

これより,

∞
)𝑛
𝐸𝑞 (𝑥) = 𝑒𝑞 (− 1𝑞 1/2− 𝑥𝑞 ) = ∑ (1 − 𝑞)(1𝑞−𝑛/2𝑞(−𝑥2 )⋯(1 − 𝑞 𝑛 ) .
𝑛=0

3.3.2 q二項定理

𝑞q二項係数 ( -binomial coefficients)$ をと定める. このとき,

𝑛 = (𝑛)𝑞! = (𝑛)𝑞(𝑛 − 1)𝑞 ⋯(𝑛 − 𝑘 + 1)𝑞(𝑘)𝑞 (𝑘)𝑞!(𝑛 − 𝑘)𝑞!
(𝑘)𝑞!

(𝑘)𝑞 + 𝑞 𝑘(𝑛 − 𝑘 + 1)𝑞 = 1 − 𝑞 𝑘 + 𝑞1𝑘−(1𝑞− 𝑞 𝑛−𝑘+1) = 1 1−−𝑞 𝑛+1
𝑞 = (𝑛 + 1)𝑞

より,

𝑛 + 𝑞 𝑘 𝑛 = 𝑛 (𝑘)𝑞 + 𝑞 𝑘(𝑛 − 𝑘 + 1)𝑞 = 𝑛 + 1 .
(1)(𝑘 − 1)𝑞 (𝑘)𝑞 (𝑘 − 1)𝑞( 𝑘 )𝑞(𝑘)𝑞
文字 𝑥, 𝑦 は関係式 𝑦𝑥 = 𝑞𝑥𝑦 を満たしていると仮定する. このとき, (1)を使うと, 通常の二項定理の場合と同様に 𝑛 に関して帰納的に次の公式が成立することを示せる(実際に示してみよ):𝑛(𝑥 + 𝑦)𝑛 = ∑ (𝑘𝑛) 𝑥𝑘 𝑦𝑛−𝑘𝑘=0𝑞(𝑦𝑥 = 𝑞𝑥𝑦).

これを q二項定理 と呼ぶ.

3.3.3 q指数函数の加法公式

𝑦𝑥 = 𝑞𝑥𝑦 のとき,となることを示そう.

𝑒𝑞 (𝑥 + 𝑦) = 𝑒𝑞 (𝑥)𝑒𝑞 (𝑦)∞∞𝑛𝑒𝑞 (𝑥 + 𝑦) = ∑ (𝑥(𝑛+)𝑞𝑦)! 𝑛 = ∑ (𝑛1)𝑞! ∑ (𝑘𝑛) 𝑥𝑘 𝑦𝑛−𝑘
𝑛=0
𝑛=0
𝑘=0 𝑞
∞ 𝑛 𝑥𝑘 𝑦𝑛−𝑘∞= ∑ ∑ (𝑘)𝑞! (𝑛 − 𝑘)𝑞! = ∑ (𝑘𝑥)𝑘𝑞! (𝑙𝑦)𝑙𝑞! = 𝑒𝑞 (𝑥)𝑒𝑞 (𝑦).
𝑛=0 𝑘=0𝑘,𝑙=01/2
𝐸𝑞 (𝑥) = 𝑒𝑞 (− 1𝑞 − 𝑥𝑞 ) より,

3.3.4 量子二重対数函数の五角形恒等式

𝑦𝑥 = 𝑞𝑥𝑦 と仮定し,:𝑥𝑦:= 𝑞 1/2𝑥𝑦 = 𝑞 −1/2𝑦𝑥
とおく. そのとき, 𝑦𝐸𝑞 (𝑥) = 𝐸𝑞 (𝑞𝑥)𝑦 = 𝐸𝑞 (𝑥)(1 + 𝑞 1/2 𝑥)𝑦 = 𝐸𝑞 (𝑥)(:𝑥𝑦: +𝑦) より,
𝑦𝑛 𝐸𝑞 (𝑥) = 𝐸𝑞 (𝑥)(:𝑥𝑦: +𝑦)𝑛 .
この等式の両辺に適当な係数をかけて 𝑛 について足し上げると,
𝐸𝑞 (𝑦)𝐸𝑞 (𝑥) = 𝐸𝑞 (𝑥)𝐸𝑞 (:𝑥𝑦: +𝑦).
𝑦 :𝑥𝑦:= 𝑞 :𝑥𝑦: 𝑦 なので, 前節の結果より,
𝐸𝑞 (:𝑥𝑦: +𝑦) = 𝐸𝑞 (:𝑥𝑦:)𝐸𝑞 (𝑦).
したがって,𝐸𝑞 (𝑦)𝐸𝑞 (𝑥) = 𝐸𝑞 (𝑥)𝐸𝑞 (:𝑥𝑦:)𝐸𝑞 (𝑦).

これを量子二重対数函数の五角形恒等式 (pentagon identity)と呼ぶ.

𝐸𝑞 (𝑥) の 0 でない形式べき級数として一意に特徴付ける. なぜならば, 五角形恒等式の 𝑥,𝑦0 を代入すると 𝐸𝑞 (0) = 1 であることがわかり, 五角形恒等式の両辺の 𝑦 に関する1次の項を比較すると,𝐸𝑞 (𝑞𝑥)𝑦 = 𝑦𝐸𝑞 (𝑥) = 𝐸𝑞 (𝑥)(:𝑥𝑦: +𝑦) = 𝐸𝑞 (𝑥)(1 + 𝑞 1/2𝑥)𝑦となるので 𝐸𝑞 (𝑞𝑥) = 𝐸𝑞 (1 + 𝑞 1/2 𝑥) が得られ, 以上で得られた2つの条件で 𝐸𝑞 (𝑥) が一意に特徴付けられるからである.
注意: 量子二重対数函数の五角形恒等式は 𝐴2 型の量子クラスター代数から得られる quantum dilogarithm identity とみなされる.
さらにアフィン型の場合の無限積版の quantum dilogarithm identitities も存在する. それらの恒等式の背景には量子クラスター代数や量子群の普遍 𝑅 行列の理論が隠れている. 有限積の量子二重対数恒等式の作り方については五角形恒等式は量子二重対数函数に

黒木玄, 量子 dilogarithm 恒等式の作り方 (https://genkuroki.github.io/documents/20101228HowToMakeQDIs.pdf), 2010年12月にも解説がある.

□03 π と e とEuler定数 γ
黒木玄2018-04-18～2019-04-03, 2023-06-22
Copyright 2018,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/03%20pi%2C%20e%2C%20and%20Euler's%20γ.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/03%20pi%2C%20e%2C%20and%20Euler's%20%CE%B3.
https://genkuroki.github.io/documents/Calculus/03%20pi%2C%20e%2C%20and%20Euler's%20%CE%B3.pdf(https://genkuroki.github.io/documents/Calculus/03%20pi%2C%20e%2C%20and%20Euler's%20%CE%B3.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
1 準備: 曲線の長さ
 2 円周率2.1 円周率の定義1
2.2 正弦函数の微積分
2.3 円周率の定義2
2.4 正接函数の微積分
2.5 Machinの公式による円周率の計算
 3 Napier数
3.1 対数函数と指数函数
3.2 Napier数の定義
 4 Euler定数
4.1 Euler定数の定義
4.2 条件収束交代級数への応用
4.3 Euler定数がガンマ函数の無限積表示に出て来ること
4.4 Euler定数が高次元単体上の一様分布に関連して自然に出て来ること
4.5 ζ(s) - 1/(s-1) の s→0 での極限がEuler定数に等しいこと

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 準備: 曲線の長さ(𝑥(𝑡),𝑦(𝑡)), 𝑎 < 𝑡 < 𝑏 の長さ ℓ は定積分𝑏
′ (𝑡)2 + 𝑦′ (𝑡)2⎯ 𝑑𝑡ℓ = ∫𝑎 √⎯𝑥⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
で定義される. 被積分函数 √ 𝑥′ (𝑡) 2 + 𝑦′ (𝑡) 2 は点 (𝑥(𝑡),𝑦(𝑡)) の運動の速さを意味する.
高校数学IIIの復習: 曲線の長さは速さの時間積分で定義される. すなわち, 曲線

2 円周率
2.1 円周率の定義1
円周率𝜋 の定義は単位半円周の長さである. 単位半円周 𝐶 は
𝐶 = {(𝑥,𝑦) ∈ ℝ2 ∣ 𝑥2 + 𝑦2 = 1, 𝑥 > 0}と定義される. これは

𝑥(𝑡) = √⎯1⎯⎯⎯⎯⎯⎯⎯− 𝑡2⎯, 𝑦(𝑡) = 𝑡
によって

𝐶 = {(𝑥(𝑡),𝑦(𝑡)) ∣ −1 < 𝑡 < 1}と表わされ, ちょっとした計算で⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ 1√𝑥′ (𝑡)2 + 𝑦′ (𝑡)2 = √⎯1⎯⎯⎯⎯⎯⎯⎯− 𝑡2⎯となることがわかる(自分で計算してみよ). ゆえに, 円周率は

1 𝑑𝑡
𝜋 = ∫−1 ⎯⎯⎯⎯⎯⎯⎯⎯√1 − 𝑡2⎯と表わされる. これを円周率の定義だと思ってもよい.
In [3]:



1
2
3
4
5
6
7

xx(t) = sqrt(1-t^2)
yy(t) = tt = -1:0.01:1
plot(size=(500, 400), aspect_ratio=1, xlim=(-1.1,1.1), ylim=(-1.1,1.1))
plot!(xx.(t), yy.(t), label="C", legend=:topleft)
hline!([0], color="gray", ls=:dot, label="")vline!([0], color="gray", ls=:dot, label="")

1
2
3
4

t = symbols("t", real=true)x = sqrt(1-t^2)
y = t
simplify(diff(x,t)^2+diff(y,t)^2)

Out[3]:

In [4]:

Out[4]:

In [5]:

Out[5]:− 𝑡2 1− 1𝜋

1 integrate(1/sqrt(1-t^2), (t,-1,1))

2.2 正弦函数の微積分
前節の計算より,−1 ≦ 𝑦 ≦ 1 に対して,

𝑦 𝑑𝑡
𝐹(𝑦) = ∫0 √⎯1⎯⎯⎯⎯⎯⎯⎯− 𝑡2⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
は 𝐶 上の点 (1,0) から (√ 1 − 𝑦2 ,𝑦) までの弧の長さの ±1 倍になる. 符号は 𝑦 > 0 なら + になり, 𝑦 < 0 なら − になる. すなわち, 𝜃(𝑦) は弧度法の意味での角度である. 単位円上の 𝑦 座標を角度 𝜃 の函数とみなしたものを 𝑦 = sin𝜃 と定義するのであった. これは, 𝑦 = sin𝜃 は 𝜃 = 𝐹(𝑦) の逆函数であることを意味する. 𝐹(𝑦) は arcsin𝑦 と書かれることが多い.

𝑑𝜃 = 𝐹 ′(𝑦) = 1 なので, その逆函数の導函数は
𝑑𝑦− 𝑦2⎯√⎯1⎯⎯⎯⎯⎯⎯⎯⎯𝑑sin𝜃 = 𝑑𝑦 = √⎯1⎯⎯⎯⎯⎯⎯⎯⎯
2⎯ = √⎯1⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯−− sin2 𝜃⎯.
𝑦𝑑𝜃 𝑑𝜃
これで sin𝜃 の導函数の計算の仕方もわかった.
2.3 円周率の定義2𝑡

傾き の直線

𝑦 = 𝑡𝑥 と単位半円周 𝐶 の交点を (𝑋,𝑌) = (𝑋(𝑡),𝑌(𝑡)) と書くと,
1 ⎯ , 𝑌 = 𝑌(𝑡) = ⎯⎯⎯⎯⎯⎯⎯⎯𝑡 ⎯.
𝑋 = 𝑋(𝑡) = √⎯1⎯⎯⎯⎯⎯⎯⎯
2+𝑡√1 + 𝑡2

このとき,⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯√𝑋 ′(𝑡)2 + 𝑌 ′ (𝑡)2 = 1 +1 𝑡2となる(自分で工夫して楽な計算の仕方を見付けるように努力してみよ). ゆえに円周率は𝜋 = ∫−∞ 1 +𝑑𝑡𝑡2∞と表わされる. これを円周率の定義だと思ってもよい.

問題: 積分∞ 𝑑𝑡
𝑦 と置換すると,∫−∞ 1 + 𝑡2 で 𝑡 = √⎯1⎯⎯⎯⎯⎯⎯⎯⎯
− 𝑦2⎯
∞ 𝑑𝑡
1 𝑑𝑦
=
∫−∞ 1 + 𝑡2 ∫−1 √⎯1⎯⎯⎯⎯⎯⎯⎯⎯− 𝑦2⎯□⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
注意: 𝑥 = 1/√ 1 + 𝑡2 , 𝑦 = 𝑡/√ 1 + 𝑡2 のとき, 𝑥2 + 𝑦2 = 1 より 𝑥 = √ 1 − 𝑦2 となるので, 𝑡 = 𝑦/𝑥 = 𝑦/√ 1 − 𝑦2 . □.
𝑡 とおくと, 𝑑𝑦 = 𝑑𝑡 となることも確認せよ. □問題: 𝑦 =⎯⎯⎯⎯⎯⎯⎯⎯∫ √⎯1⎯⎯⎯⎯⎯⎯⎯⎯− 𝑦2⎯ ∫ 1 + 𝑡2
√1 + 𝑡2⎯
注意: 𝑚 > 0 であるとする. 曲線 𝑥𝑚 + 𝑦𝑚 = 1 と直線 𝑦 = 𝑡𝑥 の 𝑥 > 0 における交点は(𝑥,𝑦) = ( (1 + 1𝑡𝑚 )1/𝑚 , (1 + 𝑡𝑡𝑚 )1/𝑚 ) と表わされる. さらに, 𝑥𝑚 (1 + 𝑡𝑚 ) = 1 より 𝑚𝑥𝑚−1 (1 + 𝑡𝑚 )𝑑𝑥 + 𝑚𝑥𝑚 𝑡𝑚−1 𝑑𝑡 = 0と 𝑦 = 𝑡𝑥 より,
𝑑𝑥 = 𝑑𝑥 = 𝑑𝑥 = − 𝑥𝑚 𝑡𝑚−1 𝑑𝑡 = − 𝑡𝑚−2 𝑑𝑡 .
(1 − 𝑥𝑚 )1/𝑚 𝑦 𝑡𝑥 𝑡𝑥𝑚 (1 + 𝑡𝑚 ) 1 + 𝑡𝑚
上の円の場合は本質的に 𝑚 = 2 の特別な場合である. □が得られることを確認せよ.

In [6]:

Out[6]:

In [7]:

Out[7]:

1
2
3
4

1

t = symbols("t", real=true)
X = 1/sqrt(1+t^2)
Y = t*X
simplify(sqrt(diff(X,t)^2+diff(Y,t)^2))

𝑡2 + 1
1 y = symbols("y", real=true)
2 t = y/sqrt(1-y^2)
3 simplify(diff(t,y)/(1+t^2))

1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯√1 − 𝑦2In [8]:Out[8]:

In [9]:

1 t = symbols("t", positive=true)
2 y = t/√(1+t^2)
3 simplify(diff(y,t)/√(1-y^2))1𝑡2 + 1
1
2
3
4
5



Out[9]:

t = symbols("t", positive=true)m = symbols("m", positive=true)x = 1/(1+t^m)^(1/Sym(m))
y = t*x
simplify(diff(x,t)/y)− 𝑡𝑚𝑡𝑚−2+ 1

以下の問題は https://twitter.com/cc226158/status/1043059177889783810(https://twitter.com/cc226158/status/1043059177889783810) より.
問題:

𝑑𝑥∫1 (9 − 𝑥3 )1/3 を求めよ.
2

1/3
𝑥3 + 𝑦3 = 9 と 𝑦 = 𝑡𝑥 の 𝑥 > 0 における交点の 𝑥 座標は 𝑥 = ( 1 +9 𝑡3 ) になる. これを逆に解くと
3 1/3
𝑡 = (9 −𝑥𝑥 ) なので 𝑥 = 1 のとき 𝑡 = 2 となり, 𝑥 = 2 のとき 𝑡 = 1/2 になる. 上の注意と同様の計算によって𝑑𝑥
𝑑𝑥 𝑡𝑑𝑡(9 − 𝑥3 )1/3 = 𝑦 = − 1 + 𝑡3 .
略解:ゆえに, 置換積分によって𝑑𝑥 = 2 𝑡𝑑𝑡 = 𝜋 ⎯⎯ ≈ 0.6046∫1 (9 − 𝑥3 )1/3 ∫1/2 1 + 𝑡3 3√3となることが若干の計算によって確かめられる. □In [10]:Out[10]:In [11]:Out[11]:

In [12]:

Out[12]:

In [13]:

Out[13]:2

1 x = symbols("x", positive=true)
2 simplify(integrate(1/(9-x^3)^(1/Sym(3)), (x, 1, 2)))

1 1|
1 1|
√3 ⎯⎯3 (2 𝐹1 ( 3 ,4 3 ||| 19 ) − 22 𝐹1 ( 3 ,4 3 ||| 89 ))
3 |
3 |
−
3
1 t = symbols("t", positive=true)
2 x = (9/(1+t^3))^(1/Sym(3))
3 diff(x, t)/(t*x)− 𝑡3 +𝑡 1

1 t = symbols("t", positive=true)
2 simplify(integrate(t/(1+t^3), t))⎯⎯ √3(2𝑡−1)
2 − 𝑡 + 1) √3 atan ( 3 )
log
𝑡
log(𝑡
+
1)
(
− 3 +
+
6
3
1 t = symbols("t", positive=true)
2 simplify(integrate(t/(1+t^3), (t, 1/Sym(2), 2)))

√⎯⎯3𝜋
9

2.4 正接函数の微積分
前節の計算より,𝑎𝜃 = 𝐺(𝑎) = ∫0 1 +𝑑𝑡𝑡2

(1,0)𝑎𝑦 = 𝑎𝑥は単位半円周上の点から傾き の直線と単位半円周等しくなる. すなわち, 弧度法の意味での角度に等しい.

𝐶 の交点までの弧の長さの ±1 倍になり, 符号 𝑎 の符号に

𝑎 = tan𝜃 が 𝜃 = 𝐺(𝑎) の逆函数になっていることを意味して𝐺(𝑎) arctan𝑎𝑑𝜃 = 𝐺′ (𝑎) = 1 なので, 𝑑tan𝜃 = 𝑑𝑎 = 1 + 𝑎2 = 1 + tan2 𝜃.
𝑑𝑎𝑑𝜃 𝑑𝜃
1 + 𝑎2正接函数の定義は傾きを角度の函数とみたものであった. これはいる.
はと書かれることが多い.

以下の公式もよく使われる:In [14]:𝑑𝑡 𝜋∫0 1 + 𝑡2 = 4 ,1

𝑑𝑡 𝜋∫0 1 + 𝑡2 = 2 .
∞1 t = symbols("t", real=true)
2 integrate(1/(1+t^2), (t,0,1)) |> display
3 integrate(1/(1+t^2), (t,0,oo)) |> display

𝜋
4
𝜋
2

2.5 Machinの公式による円周率の計算|𝑥| < 𝑥1 のとき 𝑥 ∞
∞
∞
𝑥
2𝑘+1
arctan𝑥 = ∫0 1 +𝑑𝑡𝑡2 = ∫0 ∑(−1)𝑘𝑡2𝑘 𝑑𝑡 = ∑(−1)𝑘 ∫0 𝑡2𝑘 𝑑𝑡 = ∑(−1)𝑘 2𝑘𝑥 + 1 .
𝑘=0
𝑘=0
𝑘=0
詳しくはノート「06 Taylorの定理」を参照せよ. □arctanのMaclaurin展開:

4arctan 15 − arctan 2391 = 𝜋4 .

Machinの公式:

証明:

tan の加法定理

cos𝛽 + cos𝛼 sin𝛽 tan𝛼 + tan𝛽tan(𝛼 + 𝛽) = sin𝛼
cos𝛼 cos𝛽 − sin𝛼 sin𝛽 = 1 − tan𝛼 tan𝛽より,

− tan𝛽2tan𝛼tan(𝛼 − 𝛽) = 1tan𝛼+ tan𝛼 tan𝛽 , tan(2𝛼) = 1 − tan2 𝛼 .

𝑎 = tan𝛼, 𝑏 = tan𝛽 とおくと, これらは次のように書き直される:
arctan𝑎 − arctan𝑏 = arctan 1𝑎+−𝑎𝑏𝑏 , 2arctan𝑎 = arctan 1 −2𝑎𝑎2 .
特に, 𝑎 = 𝑚/𝑛, 𝑏 = (𝑚 − 𝑛)/(𝑚 + 𝑛) のとき
𝑎 − 𝑏 = 𝑚(𝑚 + 𝑛) − 𝑛(𝑚 − 𝑛) = 𝑚2 + 𝑛2 = 1, 2𝑎 = 2𝑚𝑛
1 + 𝑎𝑏 𝑛(𝑚 + 𝑛) + 𝑚(𝑚 − 𝑛) 𝑚2 + 𝑛2
1 − 𝑎2 𝑛2 − 𝑚2
なので

ゆえに,

問題: 円周率arctan 𝑚𝑛 − arctan 𝑚𝑚 −+ 𝑛𝑛 = arctan1 = 𝜋4 , 2arctan 𝑚𝑛 = arctan 𝑛22𝑚𝑛− 𝑚2
4arctan 15 = 2arctan 125 = arctan 120
119 ,1 = arctan1 = 𝜋 .
4arctan 15 − arctan 2391 = arctan 120−
arctan119
239
4

𝜋 を小数点以下第3桁まで求めよ.

解答例: Machinの公式より,

𝜋 = 16arctan 15 − 4arctan 2391 .

□arctan𝑥 は |𝑥| < 1 で次のようにTaylor展開される:
∞
𝑠
2𝑘+1
3
5
7
arctan𝑥 = ∫0 1 +𝑑𝑡𝑡2 = ∑(−1)𝑘 2𝑘𝑥 + 1 = 𝑥 − 𝑥3 + 𝑥5 − 𝑥7 + ⋯𝑘=0

0 < 𝑥 < 1 のとき, 𝑥, 𝑥3 /3, 𝑥5 /5,… は正の実数の単調減少数列で 0 に収束するものなので,
𝑛
𝑛+1
2𝑘+1
2𝑘+1 𝑛−1
2𝑘+1
𝑛 is odd ⟹ ∑(−1)𝑘 2𝑘𝑥 + 1 < arctan𝑥 < ∑(−1)𝑘 2𝑘𝑥 + 1 < ∑(−1)𝑘 2𝑘𝑥 + 1 ,
𝑘=0
𝑘=0
𝑘=0
𝑛−1
𝑛+1
𝑛
2𝑘+1
2𝑘+1
2𝑘+1
𝑛 is even ⟹ ∑(−1)𝑘 2𝑘𝑥 + 1 < ∑(−1)𝑘 2𝑘𝑥 + 1 < arctan𝑥 < ∑(−1)𝑘 2𝑘𝑥 + 1 .
𝑘=0
𝑘=0
𝑘=0
ゆえに, 0 < 𝑥 < 1 のとき,
𝑛−1
2𝑛+1
2𝑘+1
𝑛 is odd ⟹ − 2𝑛𝑥 + 1 < arctan𝑥 − ∑(−1)𝑘 2𝑘𝑥 + 1 < 0,
𝑘=0
𝑛−1
2𝑘+1
2𝑛+1
𝑛 is even ⟹ 0 < arctan𝑥 − ∑(−1)𝑘 2𝑘𝑥 + 1 < 2𝑛𝑥 + 1 .
𝑘=0
𝑅(𝑥,𝑛) = (−1)𝑛 2𝑛𝑥+𝑛 1 とおくと,
16𝑅(1/2,3) = −0.000029⋯, 4𝑅(1/239,1) = −0.0000000097⋯
これらは小数点以下第2桁まで求めたい場合の誤差として十分に小さい. 𝑎 = 1/5 , 𝑏 = 1/239 のとき
3
5
16 (𝑎 − 𝑎3 + 𝑎5 ) = 3.158357333⋯,
4𝑏 = 0.01673640⋯⋯,3
5
16 (𝑎 − 𝑎3 + 𝑎5 ) − 4𝑏 = 3.14162⋯
したがって, Machinの公式と上の誤差の評価より, 𝜋 = 3.141⋯ であることがわかる. □In [15]:

1 # https://twitter.com/genkuroki/status/1024160463729225733
2 showimg("image/jpg", "machin.jpg")

In [16]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

R(x,n) = (-1)^n*x^(2n+1)/(2n+1)​@show a, b = 1/5, 1/239@show n, m = 3, 1
println()@show 16R(a,n)@show 4R(b,m)@show 16R(a,n)-4R(b,n)
println()@show 16a@show 16(a-a^3/3)@show 16(a-a^3/3+a^5/5)@show 4b@show 16(a-a^3/3+a^5/5)-4b
println()@show π - (16(a-a^3/3+a^5/5)-4b)@show float(π)(a, b) = (1 / 5, 1 / 239) = (0.2, 0.0041841004184100415)(n, m) = (3, 1) = (3, 1)
16 * R(a, n) = -2.925714285714287e-5
4 * R(b, m) = -9.766636714833518e-8
16 * R(a, n) - 4 * R(b, n) = -2.9257142857130044e-5
16a = 3.2
16 * (a - a ^ 3 / 3) = 3.1573333333333333
16 * ((a - a ^ 3 / 3) + a ^ 5 / 5) = 3.1583573333333335
4b = 0.016736401673640166
16 * ((a - a ^ 3 / 3) + a ^ 5 / 5) - 4b = 3.1416209316596935
π - (16 * ((a - a ^ 3 / 3) + a ^ 5 / 5) - 4b) = -2.8278069900355973e-5
float(π) = 3.141592653589793
Out[16]: 3.141592653589793
In [17]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 小数点以下第12桁まで正確に計算​
R(x,n) = (-1)^n*x^(2n+1)/(2n+1)
f(x,n) = sum(k->(-1)^k*x^(2k+1)/(2k+1), 0:n-1)​@show a, b = 1/5, 1/239@show n, m = 8, 2
println()@show 16R(a, n)@show 4R(b, m)@show 16R(a, n) - 4R(b, m)
println()@show 16f(a, n) - 4f(b, m)
println()@show π - (16f(a, n) - 4f(b, m))@show float(π);(a, b) = (1 / 5, 1 / 239) = (0.2, 0.0041841004184100415)(n, m) = (8, 2) = (8, 2)
16 * R(a, n) = 1.2336188235294129e-12
4 * R(b, m) = 1.025889257698589e-12
16 * R(a, n) - 4 * R(b, m) = 2.077295658308238e-13
16 * f(a, n) - 4 * f(b, m) = 3.1415926535896284
π - (16 * f(a, n) - 4 * f(b, m)) = 1.6475709685437323e-13
float(π) = 3.141592653589793
In [18]:

1 BigFloat(π)

Out[18]: 3.141592653589793238462643383279502884197169399375105820974944592307816406286198

3 Napier数
3.1 対数函数と指数函数
このノートでは𝑥 > 0 の(自然)対数函数 𝑦 = log𝑥 を

𝑥
𝑦 = log𝑥 = ∫1 𝑑𝑡𝑡で定義し, これの逆函数で指数函数

𝑥 = exp𝑦 を定義しておく.

log1 = 0, exp0 = 1 となる.
𝑑𝑦 = 𝑑log𝑥 = 1 が成立し, その逆函数については 𝑑𝑥 = 𝑑exp𝑦 = 𝑥 = exp𝑦.
さらに,𝑑𝑥 𝑑𝑥 𝑥𝑑𝑦 𝑑𝑦
これらの条件によって log𝑥 と exp𝑦 は 意的に定まることを示せるが ここではその証明には触れない
問題: 上の対数函数の定義だけを用いて log(𝑥1 𝑥2 ) = log 𝑥1 + log 𝑥2 (𝑥1 , 𝑥2 > 0) となることを示せ.
このとき,

証明:

2つ目の項の積分変数をlog(𝑥1 𝑥2 ) = ∫1𝑥1𝑥2 𝑑𝑡𝑥1𝑥2 𝑑𝑡𝑥2

𝑡 = 𝑥1 𝑠 で置換すると,

𝑑𝑡
𝑡 = ∫1 𝑡 + ∫𝑥𝑥1

𝑥1𝑥2 𝑑𝑡

1

𝑑𝑠
𝑥1 𝑑𝑠
𝑡 = ∫1 𝑥1 𝑠 = ∫1 𝑠 .
𝑥2

𝑡.

∫𝑥 1
𝑠 を改めて 𝑡 とおけば欲しい結果が得られる. □問題: 上の問題の結果を用いて exp(𝑦1 + 𝑦2 ) = exp(𝑦1 )exp(𝑦2 ) となることを示せ.
証明: 𝑥𝑖 = exp 𝑦𝑖 とおくと, 𝑦𝑖 = log 𝑥𝑖 であり, 上の問題の結果より, 𝑦1 + 𝑦2 = log(𝑥1 𝑥2 ) なのでexp(𝑦1 + 𝑦2 ) = explog(𝑥1 𝑥2 ) = 𝑥1 𝑥2 = exp(𝑦1 )exp(𝑦2 ). □𝑎 > 0 に対して, 𝑎𝑦 を
𝑎𝑦 = exp(𝑦log𝑎)によって定義する. このとき, 整数 𝑛 について
𝑎1 = exp(log𝑎)) = 𝑎, 𝑎𝑛 = exp(𝑛log𝑎)) = (𝑛 個の exp(log𝑎)) の積) = (𝑛 個の 𝑎 の積).
後者で上の問題の結果を使った. これより, 整数の 𝑛 について, 上の定義に基いた 𝑎𝑛 と 𝑛 個の 𝑎 の積が一致することがわかった. 上のように定義しても混乱は生じない.

3.2 Napier数の定義
このノートでは Napier数𝑒をによって定義する. すなわち𝑒は𝑒 = exp(1)𝑒 𝑑𝑡∫1 𝑡 = 1という条件で定義されているものとする.
定理:

証明:

lim (1 + 𝑦𝑛 )𝑛 = exp(𝑦).
𝑛→∞

𝑦 𝑛
𝑦
(1 + 𝑛 ) = exp[𝑛log(1 + 𝑛 )]である. 𝑑(log𝑥)/𝑑𝑥 = 1/𝑥 の 𝑥 = 1 の場合より, ℎ → 0 のとき,log(1 + ℎ) = log(1 + ℎ) − log(1) → 1.
ℎℎ
これを ℎ = 𝑦/𝑛 , 𝑛 → ∞ の場合に適用すると,

log(1 + 𝑦/𝑛) = 𝑦 log(1 + 𝑦/𝑛) → 𝑦.
1/𝑛
𝑦/𝑛

exp の連続性を用いると, 𝑛 → ∞ のとき,
𝑦 𝑛𝑦(1 + ) = exp[𝑛log(1 + )] → exp(𝑦).
上の定理の 𝑦 = 1 の特別な場合として次が得られる.
ゆえに,

系:

1 𝑛 = 𝑒.
1+lim𝑛→∞ ( 𝑛 )以上によって, 対数函数と指数函数とNapier数
In [19]:□□𝑒 の理論が微分積分学を用いてすべて再構成された.

1 BigFloat(e)Out[19]: 2.718281828459045235360287471352662497757247093699959574966967627724076630353555

4 Euler定数以上によって, 数学における基本的な定数

𝜋 と 𝑒 の定義が明瞭になった.

しかし, それだけで終わってしまうと, 高校の数学で習うことを単に再構成したに過ぎなくなってしまう.
そこでこのノートではその次に知っておくべきだと思われるEuler定数𝛾 について説明しよう.

Euler定数とその歴史については次の文献が詳しい:
https://arxiv.org/abs/1303.1856 (https://arxiv.org/abs/1303.1856)

4.1 Euler定数の定義
数列

𝑎𝑛 , 𝑏𝑛 を次のように定める:

𝑎𝑛 = 11 + 12 + ⋯ + 1𝑛 − log(𝑛 + 1)
𝑏𝑛 = 11 + 12 + ⋯ + 1𝑛 − log𝑛.

𝑦 = 1/𝑥 は狭義単調減少函数なので
𝑛+1𝑛log(𝑛 + 1) − log𝑛 = ∫𝑛 𝑑𝑥𝑥 < 1𝑛 < ∫𝑛−1 𝑑𝑥𝑥 = log𝑛 − log(𝑛 − 1),𝑛+1
log(𝑛 + 1) = ∫1 𝑑𝑥𝑥 < 11 + 12 + ⋯ + 1𝑛となる(図を描いて確認せよ). 後者より,

0 < 𝑎𝑛 < 𝑏𝑛が成立していることがわかり, 前者より,

𝑎𝑛 − 𝑎𝑛−1 = 1𝑛 + log𝑛 − log(𝑛 + 1) > 0,𝑏𝑛 − 𝑏𝑛−1 = 1𝑛 + log(𝑛 − 1) − log𝑛 < 0.となり, 𝑎𝑛 は単調増加し, 𝑏𝑛 は単調減少することがわかる. (図を描けば, 𝑎𝑛 が単調増加し, 𝑏𝑛 が単調減少することは見た目的に明らかになる.)𝑎𝑛 も 𝑏𝑛 も収束することがわかる.
さらに, 0 < log(𝑛 + 1) − log𝑛 < 1/𝑛 より 𝑎𝑛 と 𝑏𝑛 の収束先が同じであることもわかる.
それらの収束先を 𝛾 と書き, Euler定数と呼ぶ.
𝛾 = 𝑛→∞lim ( 11 + 12 + ⋯ + 1𝑛 − log(𝑛 + 1)) = 𝑛→∞lim ( 11 + 12 + ⋯ + 1𝑛 − log𝑛) .
したがって,

この定義は次のように書き換えられる:1 + 1 + ⋯ + 1 = log𝑛 + 𝛾 + 𝑜(1).
1 2
𝑛

ここで

𝑜(1) は 𝑛 → ∞ で 0 に収束する項を表す.

考え方: 解析学では(調べたい量) = (相対的にわかりやすい量) + (誤差)の形式で考える. Euler定数の定義は, 調べたいもの1 + 1 +⋯+ 1
1 2𝑛を相対的にわかりやすい量𝑛log𝑛 + 𝛾

log𝑛 と比較して第2項の定数項 𝛾 は小さいとみ
1/1 + 1/2 + ⋯ + 1/𝑛 を log𝑛 で大雑把に近似するより, log𝑛 + 𝛾

プラス誤差の形式で認識することであるとみなせる. が大きなとき, 第1項のなせ, 第2項 と比較して誤差項は小さいとみなせる.
で近似する方がより精密な近似になる.

𝛾

𝑜(1)

このように新たに項を付け加えることによって近似の精度を逐次的に高めて行くことは, 解析学における典型的なパターンであり, あらゆる場所で出会うことになる.

□

注意: digamma函数

𝜓(𝑠) (𝑠 > 0) を

𝜓(𝑠) = − 𝑛→∞lim [ 1𝑠 + 𝑠 +1 1 + ⋯ + 𝑠 +1 𝑛 − log𝑛]と定めることができる. これはガンマ函数がと書けることを使えば

𝑛𝑠 𝑛!
Γ(𝑠) = 𝑛→∞lim 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛)𝜓(𝑠) = 𝑑logΓ(𝑠)/𝑑𝑠 とも表わされる. ガンマ函数に関するこの公式についてはガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)

𝜓(1) = −𝛾 であることがわかり, digamma函数の定義より 𝜓(𝑠 + 1) = 1/𝑠 + 𝜓(𝑠)𝑛 について𝜓(𝑛 + 1) = 11 + 12 + ⋯ + 1𝑛 − 𝛾であることがわかる. この公式はdigamma函数 𝜓(𝑠 + 1) は調和級数からEuler定数を引いたものの連続的な補間になっていることを意味している. したがって, 𝜓(𝑠 + 1) の 𝑠 → ∞ での漸近挙動がよくわかれば, 調和級数の漸近挙動もよくわかることになの第8.2節を参照せよ. Euler定数の定義よりであることがわかるので, 帰納的に非負の整数る.

𝑠 → ∞ においてlogΓ(𝑠 + 1) = 𝑠log𝑠 − 𝑠 + 12 log𝑠 + log √⎯2𝜋⎯⎯⎯ + 12𝑠1 + 𝑂 ( 𝑠12 ) .

ガンマ函数については次のStirlingの近似公式がよく知られている:

これを𝑠 で微分することによって,𝜓(𝑠 + 1) = log𝑠 + 2𝑠1 − 12𝑠1 2 + 𝑂 ( 𝑠13 )以上をまとめると次が得られる:(𝑠 → ∞).

1 + 1 + ⋯ + 1 = log𝑛 + 𝛾 + 1 − 1 + 𝑂 1
2𝑛 12𝑛2 ( 𝑛3 ) (𝑠 → ∞).
1 2
𝑛
1 + 1 + ⋯ + 1 の 𝑛 → ∞ における漸近挙動の詳細はガンマ函数に関するStirlingの公式の対数微分にこのように調和級数
1 2𝑛よって得られる. □In [20]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

function plot_eulergamma(N, n)f(x) = 1/xp = plot(xlim=(0,N+2), ylim=(0, 1.2))
x = 1.0:0.05:n
plot!(p, x, f.(x), color=:blue, label="log($n)", fill=(0, 1.0, :pink))
x = n:0.05:n+1
plot!(p, x, f.(x), color=:blue, label="log($(n+1))", fill=(0, 0.5, :pink))
plot!(p, [1,1], [0,1], color=:red, label="1/1+1/2+...+1/$n")
for k in 1:N
x = k:0.05:k+1
g(x) = 1/kc = ifelse(k > n, :pink, :red)
plot!(p, x, g.(x), color=c, label="")plot!(p, [k+1,k+1], [0,1/k], color=c, label="")end
x = 0.1:0.05:N+2
plot!(p, x, f.(x), color=:blue, label="y=1/x")
plot!(title="n = $n", titlefontsize=10)
p
end
​
N = 6
p1 = plot_eulergamma(N, N-1)
p2 = plot_eulergamma(N, N)
plot(p1, p2, size=(700, 300))

Out[20]:In [21]:

1 aa(n) = sum(k->1/k, 1:n) - log(n+1)
2 bb(n) = sum(k->1/k, 1:n) - log(n)3 [(n, aa(n), bb(n)) for n in [1:9; @.(10^(1:7))]]

Out[21]: 16-element Vector{Tuple{Int64, Float64, Float64}}:(1, 0.3068528194400547, 1.0)
(2, 0.4013877113318902, 0.8068528194400547)(3, 0.4470389722134427, 0.7347210446652235)(4, 0.47389542089923276, 0.6970389722134425)(5, 0.49157386410527826, 0.6738954208992329)(6, 0.5040898509446865, 0.6582405307719448)(7, 0.5134156011773068, 0.6469469938018293)(8, 0.520632565520923, 0.6384156011773068)(9, 0.5263831609742078, 0.6317436766320341)(10, 0.5310729811698831, 0.6263831609742079)(100, 0.5722570007983601, 0.5822073316515279)(1000, 0.5767160812351229, 0.5777155815682065)(10000, 0.5771656690678633, 0.5772656640681966)(100000, 0.5772106649431983, 0.5772206648931988)(1000000, 0.5772151649019452, 0.5772161649014453)(10000000, 0.5772156149015366, 0.5772157149015307)
In [22]:

1 eulergamma

Out[22]: γ = 0.5772156649015...

4.2 条件収束交代級数への応用
次の2つの数列を考える:

𝐴𝑛 = 11 + 13 + ⋯ + 2𝑛 1− 1 , 𝐵𝑛 = 12 + 14 + ⋯ + 2𝑛1 .

このとき

2𝑛
𝑛
𝐴𝑛 + 𝐵𝑛 = ∑ 𝑘1 = log(2𝑛) + 𝛾 + 𝑜(1), 2𝐵𝑛 = ∑ 𝑘1 = log𝑛 + 𝛾 + 𝑜(1).
𝑘=1

𝑘=1

𝑜(1) は 𝑛 → ∞ で 0 に収束する項を意味する. ゆえに,
𝐴𝑛 = log2 + 12 log𝑛 + 𝛾2 + 𝑜(1), 𝐵𝑛 = 12 log𝑛 + 𝛾2 + 𝑜(1).
これより, 𝑛 → ∞ で𝐴𝑛 − 𝐵𝑛 → log2.
ここで

すなわち,

1 − 1 + 1 − 1 + ⋯ = log2.
1 2 3 4𝑝,𝑞 について𝐴𝑝𝑛 = log2 + 12 (log𝑝 + log𝑛) + 𝛾2 + 𝑜(1), 𝐵𝑞𝑛 = 12 (log𝑞 + log𝑛) + 𝛾2 + 𝑜(1)より一般に正の整数

なので,

例:

𝑛 → ∞ のとき

𝐴𝑝𝑛 − 𝐵𝑞𝑛 → log2 + 12 log 𝑝𝑞 .

𝑝 = 2, 𝑞 = 1 のとき

1 + 1 − 1 + 1 + 1 − 1 + ⋯ = 3 log2.
1 3 2 5 7 42

𝑝 = 1, 𝑞 = 2 のとき

1 − 1 − 1 + 1 − 1 − 1 + ⋯ = 1 log2.
1 2 4 3 6 8
2

考え方: 以上のような計算が可能になったのは,が大雑把に

1 + 1 +⋯+ 1
1 2
𝑛

log𝑛 で近似できることだけではなく, より精密に
1 + 1 + ⋯ + 1 = log𝑛 + 𝛾 + 𝑜(1)1 2𝑛の形で漸近挙動がわかっているからである.
In [23]:



1
2
3
4
5
6
7

A(n) = sum(k->1/(2k-1), 1:n)
B(n) = sum(k->1/(2k), 1:n)​n = 10^7@show S = A(2n) - B(n)@show T = 3/2*log(2)@show S - T;

S = A(2n) - B(n) = 1.0397207458399187
T = (3 / 2) * log(2) = 1.0397207708399179
S - T = -2.499999918192941e-8
In [24]:

1 sum(k->1/(4k-3)+1/(4k-1)-1/(2k), 1:10^7) - T

Out[24]: -2.500000007010783e-8

4.3 Euler定数がガンマ函数の無限積表示に出て来ること𝑠 > 0 のとき, ガンマ函数 Γ(𝑠) がによって定義され, digamma函数

𝜓(𝑠) が∞Γ(𝑠) = ∫0 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥□′
1 ∞ 𝑒−𝑥 𝑥𝑠−1 log𝑥𝑑𝑥
𝜓(𝑠) = 𝑑𝑠𝑑 logΓ(𝑠) = ΓΓ(𝑠)(𝑠) = Γ(𝑠)∫0によって定義される.
ガンマ函数について次が成立してることが知られている(Weierstrassの公式):

1 = 𝑒𝛾𝑠 𝑠 ∞ 1 + 𝑠 𝑒−𝑠/𝑛 .
[( 𝑛 ) ]
∏
Γ(𝑠)
𝑛=1

この公式の証明についてはガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)の第8.2節を参照せよ.
Weierstrassの公式より∞−𝜓(𝑠) = 𝛾 + 1𝑠 − ∑ [ 1𝑛 − 𝑛 +1 𝑠 ] .
𝑛=1

特に

∞

−𝜓(1) = − ∫0 𝑒−𝑥 log𝑥𝑑𝑥 = 𝛾 = 0.5772156649015⋯.

Euler定数𝛾 は次の積分表示を持つことも示せる:∞
𝛾 = ∫0 ( 1 −𝑒−𝑡𝑒−𝑡 − 𝑒𝑡−𝑡 ) 𝑑𝑡.

この公式の証明については上の文献の第8.7節を参照.
In [25]:

1 -digamma(big(1))

Out[25]: 0.5772156649015328606065120900824024310421593359399235988057672348848677267776685

4.4 Euler定数が高次元単体上の一様分布に関連して自然に出て来ること

𝑟 > 0 に対して, 𝑛 − 1 次元単体 Δ𝑛−1 (𝑟) がΔ𝑛−1 (𝑟) = {(𝑥1 ,…, 𝑥𝑛 ) ∈ ℝ𝑛≧0 ∣ 𝑥1 + ⋯ + 𝑥𝑛 = 𝑟}と定義される. ここで ℝ ≧0 は非負の実数全体の集合を表す. 例えば, 𝑛 = 3 のとき
Δ2 (𝑟) = {(𝑥,𝑦,𝑧) ∈ ℝ3 ∣ 𝑥,𝑦,𝑧 ≧ 0, 𝑥 + 𝑦 + 𝑧 = 𝑟}.
は点 (𝑟,0,0), (0,𝑟,0), (0,0,𝑟) を頂点とする正三角形になる.
Δ𝑛−1 (𝑛) 上の一様分布(例えば 𝑛 = 3 の場合には正三角形上に一様に分布する確率分布)を考える.
そのとき, Δ𝑛−1 (𝑛) の点の第 𝑖 座標 𝑥𝑖 の分布(例えば 𝑥1 の分布)は 𝑛 → ∞ のとき確率密度函数が exp(−𝑥) の指数分布に近付くことを証明できる.

𝑛 → ∞ で log𝑥𝑖 の期待値は ∫0∞ 𝑒−𝑥 log𝑥𝑑𝑥 = 𝜓(1) = −𝛾 = −0.5772⋯ に近付く.
このような形でも自然にEuler定数 𝛾 が自然に出て来る.
ゆえに,

このような現象は「統計力学」ではよく知られている. 詳しくは次のノートを参照せよ:
Kullback-Leibler情報量とSanovの定理 (https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)

問題: 次のセルの rand_Uniform_on_Simplex 函数がどうしてなっているかを説明せよ.

(𝑥1 ,…, 𝑥𝑛 ) (𝑥1 , 𝑥1 + 𝑥𝑛−1
2 ,…, 𝑥1 + ⋯ + 𝑥𝑛−1 )
𝑛−1
[0,1]
(𝑛 − 1)!

Δ𝑛−1 (1) 上の一様分布に従う擬似乱数を発生させる函数に
Δ𝑛−1 (1)
𝑛−1
□

ヒント:
を
に対応させる写像を考えよ. その写像を通して, 単体
上の
一様分布と
次元立方体
上の一様分布をどのように関係付けられるかについて考えよ.
次元立方体はその成分の並び方の順序で分類することによって個の部分集合に分割される(境界の重なりは無視してよい).

In [26]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# r = 1 の場合の n-1 次元単体上の一様分布に従う擬似乱数を発生させる函数
function rand_Uniform_on_Simplex(n)Z = sort(rand(n-1))
return vcat(Z, 1.0) - vcat(0.0, Z)
end​
function rand_Uniform_on_Simplex(n, N)
X = zeros(n, N)
for j in 1:N
X[:,j] = rand_Uniform_on_Simplex(n)endreturn X
end​# x_1 の分布と log x_i 達の平均の分布をプロットする函数
function plot_Uniform_on_Simplex(n; N=10^4)
X = n*rand_Uniform_on_Simplex(n, N)
ElogX = vec(mean(log.(X), dims=1))​
p1 = plot(xlabel="x", xlim=(0, 7.5), title="n = $n")
histogram!(p1, X[1,:], normed=true, alpha=0.5, label="x_1")
plot!(p1, x->exp(-x), 0, 7.5, lw=2, label="exp(-x)")​p2 = plot(xlabel="x", legend=:topleft, legendfontsize=7)
xlims!(-eulergamma-0.3, -eulergamma+0.3)
histogram!(p2, ElogX, normed=true, alpha=0.5, linealpha=0.1, label="mean of log x_i"
vline!([-eulergamma], lw=2, label="x = $(round(Float64(-eulergamma),digits=5))")​plot(p1, p2, size=(700, 300), layout=grid(1,2,widths=[0.35, 0.65]))end

Out[26]: plot_Uniform_on_Simplex (generic function with 1 method)
In [27]:



1 plot_Uniform_on_Simplex(100)Out[27]:

In [28]:

Out[28]:

1 plot_Uniform_on_Simplex(1000)

In [29]:

1 @time plot_Uniform_on_Simplex(10000)
4.683882 seconds (450.77 k allocations: 6.794 GiB, 6.02% gc time)Out[29]:𝑛−1

Δ𝑛−1 (𝑛)

𝑥1

𝑛→∞

問題:
次元単体
上の一様分布に関するの分布がで確率密度函数がとを示せ. 直観的に明瞭な説明をしていれば必ずしも論理的に厳密な議論でなくてもよい.

exp(−𝑥) の指数分布に近付くこ

Δ𝑛−1 (𝑟) を ℝ𝑛−1 = {(𝑥1 ,…, 𝑥𝑛−1 )} への射影の像を 𝐷𝑛−1 (𝑟) と書くことにする:
𝐷𝑛−1 (𝑟) = {(𝑥1 ,…, 𝑥𝑛−1 ) ∈ ℝ𝑛−1≧0 ∣ 𝑥1 + ⋯ + 𝑥𝑛−1 ≦ 𝑟}.
Δ𝑛−1 (𝑟) 上の一様分布を 𝐷𝑛−1 (𝑟) に射影して得られる分布は 𝐷𝑛−1 (𝑟) 上の一様分布になる.
(𝑟) の体積は 𝑟𝑛−1 /(𝑛 − 1)! に等しい. そして,0 ≦ 𝑎 ≦ 𝑟 のとき, 𝐷𝑛−1 (𝑟) を 𝑥1 ≧ 𝑎 に制限して得られる部分集合は
𝐷𝑛−1
𝑛−1
𝑛−1
𝐷 (𝑟 − 𝑎) に合同なのでその体積は (𝑟 − 𝑎) /(𝑛 − 1)! に等しい. ゆえに, 𝑥1 ≧ 𝑎 となる確率は 𝑃(𝑥1 ≧ 𝑎) は/(𝑛 − 1)! = 1 − 𝑎 𝑛−1
𝑃(𝑥1 ≧ 𝑎) = (𝑟 −𝑟𝑛−1𝑎)𝑛−1/(𝑛 − 1)! ( 𝑟 )となるので, 𝑟 = 𝑛 のとき, 𝑛 → ∞ で𝑃(𝑥1 ≧ 𝑎) = (1 − 𝑎𝑛 )𝑛−1 → exp(−𝑎).
一方, 確率密度函数 exp(−𝑥) において 𝑥 ≧ 𝑎 となる確率は∞∫𝑎 exp(−𝑥)𝑑𝑥 = [−exp(−𝑥)]∞𝑎 = exp(−𝑎).
以上を比較することによって, 𝐷𝑛−1 (𝑛) 上の一様分布に関する 𝑥1 の分布は 𝑛 → ∞ で確率密度函数 exp(−𝑥) の指数分布に近付くことがわかる. □注意: 以上の議論において 𝐷𝑛−1 (𝑟) に射影したことは本質的ではなく, Δ𝑛−1 (𝑟) の体積(面積)が 𝑟𝑛−1 に比例することだけを使っても同様の議論を遂行できる. 𝐷𝑛−1 (𝑟) に射影するメリットは比例定数が 1/(𝑛 − 1)! になることが易しく求まることに過ぎない. その比例定数は確率を求めるときに分子分母でキャンセルして消えるので議論の本質には何も影響しない. □問題: 𝐷1 (𝑟), 𝐷2 (𝑟), 𝐷3 (𝑟) を図示し, それぞれの長さ, 面積, 体積がそれぞれ 𝑟 , 𝑟2 /2 , 𝑟3 /6 であることを確認せよ. □解答例: 簡単のため,

In [30]:



1 plot(size=(300,300), aspect_ratio=1)
2 plot!([0,1], [0,0], lw=3, color=:blue, label="D^1(1)")
3 plot!(xlims=(-0.1,1.1), ylims=(-0.5,0.5))

Out[30]:In [31]:

Out[31]:

1
2
3
4
5

plot(size=(300,300), aspect_ratio=1)
plot!([0,1], [1,0], color=:blue, fill=(0, 0.5), label="D^2(1)")
plot!([0,0], [0,1], color=:blue, label="")plot!([0,1], [0,0], color=:blue, label="")plot!(xlims=(-0.1,1.1), ylims=(-0.1,1.1))

In [32]:

1
2
3
4
5
6
7
8
9



x = 0:0.01:1
y = 0:0.01:1
f(x,y) = ifelse(x+y>1, NaN, 1-x-y)​
pyplot()p = plot(size=(350, 300), zlims=(0,1))
surface!(x, y, f, color=:rainbow, camera=(120, 45))
display(p)gr();

sys:1: UserWarning: Z contains NaN values. This may result in rendering artifacts.

4.5 ζ(s) - 1/(s-1) の s→0 での極限がEuler定数に等しいこと
以下ではこの先に進まないと知らないはずのことを勝手に用いる.
問題:ℎ > 0 のときとなることを示せ.

1 − 1 = 1.
∑(𝑛=1 𝑛ℎ (𝑛 + 1)ℎ )
∞

□

解答略.
問題:

ℎ > 0 ならば, 𝑛 → ∞ で

1 1 1
1
1
𝑛1+ℎ − ℎ ( 𝑛ℎ + (𝑛 + 1)ℎ ) = 𝑂 ( 𝑛2+ℎ )となることを示せ.
解答例: 二項展開より

1 −ℎ = 1 − ℎ + ℎ(ℎ + 1) + ⋯ = 1 − ℎ + 𝑂 1
1
+
( 𝑛)
𝑛 2𝑛2
𝑛 ( 𝑛2 )なので−ℎ(左辺) = ℎ𝑛1ℎ ( ℎ𝑛 − 1 + (1 + 1𝑛 ) )1 .
= ℎ𝑛1ℎ ( ℎ𝑛 − 1 + 1 − ℎ𝑛 + 𝑂 ( 𝑛12 )) = 𝑂 ( 𝑛2+ℎ)
定義: 𝑠 > 1 に対して, 𝜁(𝑠) を∞𝜁(𝑠) = ∑ 𝑛1𝑠□𝑛=1と定める. この級数は絶対収束している.
問題:ℎ > 0 ならば∞∞ (log𝑛)𝑘 (log𝑛)𝑘+1 − (log(𝑛 + 1))𝑘+1𝑘𝜁(1 + ℎ) − 1ℎ = ∑ (−ℎ)
𝛾
,
𝛾
=
𝑘
𝑘
∑( 𝑛 +)𝑘!
𝑘+1となることを示せ.

□

𝑘=0

𝑛=1

解答略.

𝑛 に関する総和に等しい.
1/𝑛ℎ = exp(−ℎlog𝑛) と∞ 𝑥𝑘
1/(𝑛 + 1)ℎ = exp(−ℎlog(𝑛 + 1)) に exp(𝑥) = ∑ 𝑘! を適用し, −ℎ に関する同次の項をまとめて整理せよ. そのとき 1/𝑛1+ℎ
𝑘=1
は exp(−ℎlog𝑛)/𝑛 だとみなせ. □問題: 上の問題の 𝛾0 がEulerの定数 𝛾 に等しいことを示せ.
ヒント: この問題の左辺は上の問題の左辺の解答例:∞
𝛾0 = ∑ ( 1𝑛 + log𝑛 − log(𝑛 + 1))
𝑛=1= ( 11 − log2) + ( 12 + log2 − log3) + ( 13 + log3 − log4) + ⋯であり, この級数の 𝑛 = 𝑁 までの和は
1 + 1 + ⋯ + 1 − log(𝑁 + 1)1 2𝑁に等しいので, その級数はEuler定数 𝛾 に収束する. □以上によって𝜁(1 + ℎ) = 1ℎ + 𝛾 + 𝑂(ℎ) (ℎ → 0)であることが示された.
問題:

𝜁(1 + ℎ) = 1ℎ + 𝛾 + 𝑂(ℎ) (ℎ → 0) を以上とは別の方法を使って示してみよ. □例えばEuler-Maclaurinの和公式を使っても証明可能である.
問題:ℎ ↘ 0 のとき, 𝜁(1 + ℎ) − 1ℎ → 𝛾 となることを数値的に確認せよ. □In [33]:



1
2
3
4
5
6
7

N = 25@show h = big"0.1"^N@show c = zeta(1+h)-1/h@show g = big(eulergamma)@show round(c, digits=N)@show round(g, digits=N)@show c - g;

h = big"0.1" ^ N = 1.0000000000000000000000000000000000000000000000000000000000000000000000
00000053e-25
c = zeta(1 + h) - 1 / h = 0.577215664901532860606512097712841345076300974995098998824212132
3324325714408041
g = big(eulergamma) = 0.5772156649015328606065120900824024310421593359399235988057672348848
677267776685
round(c, digits = N) = 0.577215664901532860606512100000000000000000000000000000000000000000
0000000000015
round(g, digits = N) = 0.577215664901532860606512100000000000000000000000000000000000000000
0000000000015
c - g = 7.630438914034141639055175400018444897447564844663135574900855315781988976401014e-2
7
In [34]:



1 BigFloat(eulergamma)

Out[34]: 0.5772156649015328606065120900824024310421593359399235988057672348848677267776685

04 連続函数
黒木玄
2018-04-20～2019-04-03, 2023-06-22
Copyright 2018,2019,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/04%20continous%20functions.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/04%20continous%20functions.ipynb)
https://genkuroki.github.io/documents/Calculus/04%20continous%20functions.pdf(https://genkuroki.github.io/documents/Calculus/04%20continous%20functions.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 連続函数
1.1 連続函数の定義
1.2 中間値の定理
1.3 不動点定理
1.4 閉区間上の実数値連続函数が最大最小を持つこと
 1.5 例
1.5.1 例1: コンパクト台を持つ滑らかな連続函数
1.5.2 例2: 無限に振動する不連続函数
1.5.3 例3: 無限に振動する連続函数
1.5.4 例4: Weierstrass函数
1.5.5 例5: 高木函数
 2 一様連続性
2.1 閉区間上の連続函数が一様連続であること
2.2 連続だが一様連続ではない函数の例
 3 一様収束
3.1 函数列の各点収束の定義
3.2 函数列の一様収束の定義
3.3 連続函数列の一様収束先も連続になること
3.4 Peano曲線

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 連続函数1.1 連続函数の定義
定義: 函数𝑓(𝑥) が 𝑥 = 𝑎 で連続であるとは, 𝑥 → 𝛼 のとき 𝑓(𝑥) → 𝑓(𝑎) が成立することであると定める.

𝜀𝛿函数 𝑓(𝑥) が 𝑥 = 𝑎 で連続であるとは次が成立していることである: 任意の 𝜀 > 0 に対して, ある 𝛿 > 0 が存在して,|𝑥 − 𝑎| < 𝛿 ならば |𝑓(𝑥) − 𝑓(𝑎)| < 𝜀 となる. □これは - のスタイルでは次のように言い直される.

定理: 以下の2つの条件は互いに同値である:

𝑓(𝑥) は 𝑥 = 𝑎 で連続である. (すなわち 𝑥 → 𝑎 のとき 𝑓(𝑥) → 𝑓(𝑎) となる.)(2) 数列 𝑥𝑛 が 𝑎 に収束するならば数列 𝑓(𝑥𝑛 ) は 𝑓(𝑎) に収束する. (すなわち 𝑥𝑛 → 𝑎 のとき 𝑓(𝑥𝑛 ) → 𝑓(𝑎) となる.)
証明: (1)ならば(2)を示そう. (1)を仮定し, 𝑥𝑛 は 𝑎 に収束する任意の数列であるとし, 𝜀 > 0 を任意に取る. (1)より, ある 𝛿 > 0が存在して, |𝑥 − 𝑎| < 𝛿 ならば |𝑓(𝑥) − 𝑓(𝑎)| < 𝜀 となる. 𝑥𝑛 → 𝑎 なのである番号 𝑁 で 𝑛 ≧ 𝑁 ならば |𝑥𝑛 − 𝑎| < 𝛿 とな
り, そのとき 𝑓(𝑥𝑛 ) − 𝑓(𝑎)| < 𝜀 となる. これで(1)から(2)が導かれることがわかった.
(1)

𝜀>0

(2)ならば(1)の対偶を示すために, (1)の否定を仮定する. すなわち, あるで次の条件を満たすものが存在すると仮定する:
任意のに対して, ある でとを満たすものが存在する. そのとき, 任意の正の整数 に対して, あるでとを満たすものが存在する. そのとき,は に収束しているが,

𝛿>0
𝑥 |𝑥 − 𝑎| < 𝛿 𝑓(𝑥) − 𝑓(𝑎)| ≧ 𝜀
𝑥𝑛 |𝑥𝑛 − 𝑎| < 1/𝑛 |𝑓(𝑥𝑛 ) − 𝑓(𝑎)| ≧ 𝜀

𝑥𝑛 𝑎

𝑛

1.2 中間値の定理

𝑓 は閉区間 [𝑎,𝑏] 上の実数値連続函数であるとする. このとき 𝑓(𝑎) と 𝑓(𝑏) のあいだにある任意の実数 𝛼 に対し𝜉 ∈ [𝑎,𝑏] で 𝑓(𝜉) = 𝛼 を満たすものが存在する. □補足: 𝑥 が 𝑎 と 𝑏 のあいだにあるとは 𝑎 ≦ 𝑥 ≦ 𝑏 または 𝑎 ≧ 𝑥 ≧ 𝑏 が成立していることだと定める. □注意: 中間値の定理において, 𝑓(𝑎) < 𝛼 < 𝑓(𝑏) または 𝑓(𝑎) > 𝛼 > 𝑓(𝑏) ならば 𝑓(𝜉) = 𝛼 をみたす 𝜉 ∈ [𝑎,𝑏] は 𝑎 < 𝜉 < 𝑏となるように取れる. □中間値の定理の証明: 𝑓(𝑥) の代わりに 𝑓(𝑥) − 𝛼 を考えることによって, 𝛼 = 0 の場合に証明すれば十分である. 必要なら 𝑓(𝑥)の代わりに −𝑓(𝑥) を考えることによって, 𝑓(𝑎) ≦ 0, 𝑓(𝑏) ≧ 0 の場合に証明すれば十分である. 以下, そのように仮定する.
(𝑎1 , 𝑏1 ) = (𝑎,𝑏) とおく. 𝑛 について帰納的に 𝑓(𝑎𝑛 ) ≦ 0 ≦ 𝑓(𝑏𝑛 ) を満たす (𝑎𝑛 , 𝑏𝑛 ) を次のように定めることができる.
𝑓((𝑎𝑛 + 𝑏𝑛 )/2) ≧ 0 ならば (𝑎𝑛+1 , 𝑏𝑛+1 ) = (𝑎𝑛+1 ,(𝑎𝑛 + 𝑏𝑛 )/2).
𝑓((𝑎𝑛 + 𝑏𝑛 )/2) < 0 ならば, (𝑎𝑛+1 , 𝑏𝑛+1 ) = ((𝑎𝑛 + 𝑏𝑛 )/2, 𝑏𝑛 ).
このとき, 𝑎1 ≦ 𝑎2 ≦ ⋯ , ⋯ ≦ 𝑏2 ≦ 𝑏1 でかつ |𝑎𝑛 − 𝑏𝑛 | = |𝑎 − 𝑏|/2𝑛−1 であることから, 𝑎𝑛 と 𝑏𝑛 は同一の値 𝜉 に収束する.
そのとき, 𝑓(𝑥) の連続性より 𝑓(𝑎𝑛 ) と 𝑓(𝑏𝑛 ) も同一の値 𝑓(𝜉) に収束し, 𝑓(𝑎𝑛 ) ≦ 0 ≦ 𝑓(𝑏𝑛 ) なのでその収束先は 0 でなければいけない. ゆえに 𝑓(𝜉) = 0. □注意: 上の証明法の二分法 (bisection method)と呼ぶことがある. 実際の数値計算でも利用可能な方法である. □中間値の定理:て, あるIn [3]:



1 function bisection(f, a, b; atol=eps(), maxiter=10^3)
2
f(a)*f(b) > 0 && return NaN
3aₙ, bₙ = a, b
4
k = 0
5
while abs(aₙ - bₙ) > atol
6k > maxiter && return NaN7
c = (aₙ+bₙ)/2
8
if f(bₙ)*f(c) ≥ 0
9aₙ, bₙ = aₙ, c
10
else
11
aₙ, bₙ = c, bₙ
12
end
13
k += 114
end
15
return (aₙ+bₙ)/2
16 endOut[3]: bisection (generic function with 1 method)In [4]:



1
2
3
4
5
6
7
8
9
10

f(x) = x^2 - 2@show ξ = bisection(f, 1, 2)@show √2@show round(f(ξ), digits=15)​
x = 1:0.005:2
plot(size=(400,250), legend=:topleft)
plot!(x, f.(x), label="y = x^2 - 2")
hline!([0], label="y = 0")vline!([ξ], label="x = $(round(ξ, digits=5))", ls=:dash)ξ = bisection(f, 1, 2) = 1.414213562373095√2 = 1.4142135623730951
round(f(ξ), digits = 15) = -0.0
Out[4]:

In [5]:



1
2
3
4
5
6
7
8
9

f(x) = cos(x) - x@show ξ = bisection(f, 0, 1)@show round(f(ξ), digits=15)​
x = 0:0.005:1
plot(size=(400,250))
plot!(x, f.(x), label="y = cos x - x")hline!([0], label="y = 0")vline!([ξ], label="x = $(round(ξ, digits=5))", ls=:dash)ξ = bisection(f, 0, 1) = 0.7390851332151606
round(f(ξ), digits = 15) = 0.0
Out[5]:

1.3 不動点定理[𝑎,𝑏]𝑓 に対して, ある 𝜉 ∈ [𝑎,𝑏] で 𝑓(𝜉) = 𝜉 を満たすものが存在する. (その𝜉 𝑓
証明: 𝑔(𝑥) = 𝑓(𝑥) − 𝑥 とおく. このとき 𝑔 は閉区間 [𝑎,𝑏] 上の実数値連続函数であり, 𝑔(𝑎) = 𝑓(𝑎) − 𝑎 ≧ 0 かつ
𝑔(𝑏) = 𝑓(𝑏) − 𝑏 ≦ 0 となり, 0 は 𝑔(𝑎) と 𝑔(𝑏) のあいだにある実数になる. ゆえに中間値の定理より, ある 𝜉 ∈ [𝑎,𝑏] で𝑔(𝜉) = 0 すなわち 𝑓(𝜉) = 𝜉 を満たすものが存在する. □補足: 以下の形の ℝ の部分集合を区間と呼ぶ:[𝑎,𝑏] = {𝑥 ∈ ℝ ∣ 𝑎 ≦ 𝑥 ≦ 𝑏},[𝑎,𝑏) = {𝑥 ∈ ℝ ∣ 𝑎 ≦ 𝑥 < 𝑏},(𝑎,𝑏] = {𝑥 ∈ ℝ ∣ 𝑎 < 𝑥 ≦ 𝑏},(𝑎,𝑏) = {𝑥 ∈ ℝ ∣ 𝑎 < 𝑥 < 𝑏}.
不動点定理: 閉区間
からそれ自身への連続写像
ような を の不動点と呼ぶ.)

[𝑎,𝑏] は閉区間と呼ばれ, (𝑎,𝑏) は開区間と呼ばれる. (−∞,𝑏] のように無限に長い区間を扱うこともある. □補足: 閉区間 [𝑎,𝑏] からそれ自身への写像とは 𝑥 ∈ [𝑎,𝑏] に 𝑓(𝑥) ∈ [𝑎,𝑏] を対応させる函数のことである. そのグラフ
𝐺 = {(𝑥,𝑓(𝑥)) ∣ 𝑎 ≦ 𝑥 ≦ 𝑏} は正方形 [𝑎,𝑏] × [𝑎,𝑏] = {(𝑥,𝑦) ∈ ℝ2 ∣ 𝑎 ≦ 𝑥,𝑦 ≦ 𝑏} に含まれる. □注意: 上の不動点定理は以下のように説明することもできる. 簡単のため [𝑎,𝑏] = [−1,1] の場合を考える. もしも 𝑓 の不動点が存在しなかったならば, すべての 𝑥 ∈ [−1,1] について 𝑓(𝑥) ≠ 𝑥 となる. ゆえに 𝑥 ∈ [−1,1] の連続函数 𝑔(𝑥) を𝑔(𝑥) = |𝑥𝑥 −− 𝑓(𝑥)𝑓(𝑥)|と定めることができる. すべての 𝑥 ∈ [−1,1] について 𝑔(𝑥) は ±1 のどちらかになり, −1 < 𝑓(−1) なので 𝑔(−1) = −1 となり, 1 > 𝑓(1) なので 𝑔(1) = 1 となる. しかし, そのような [−1,1] 上の連続函数は存在するはずがないので, 不動点が存在するはずである. □In [6]:



1
2
3
4
5
6
7
8
9

f(x) = 0.6 + 0.4x - 0.8x^2 + 0.3sin(10x-0.5)
ξ = bisection(x->f(x)-x, 0, 1)
x = 0:0.01:1
plot(size=(400,400), aspect_ration=1, legend=false)plot!(xlim=(0,1), ylim=(0,1))
plot!(x, f.(x), lw=1.5)
plot!([0,1], [0,1], color=:black)hline!([ξ], ls=:dash, color=:red)vline!([ξ], ls=:dash, color=:red)Out[6]:

注意: 上の易しい不動点定理はBrouwerの不動点定理の次元1の特別な場合である.
Brouwerの不動点定理:

𝑛 次元閉円盤□𝐷 = {(𝑥1 ,…, 𝑥𝑛 ) ∈ ℝ𝑛 ∣ 𝑥21 + ⋯ + 𝑥2𝑛 ≦ 1}からそれ自身への連続写像 𝑓 は不動点を持つ. すなわち, ある 𝜉 ∈ 𝐷 で 𝑓(𝜉) = 𝜉 を満たすものが存在する. □このノート群の内容を逸脱する話題なので証明 (https://www.google.co.jp/search?
q=Brouwer%E3%81%AE%E4%B8%8D%E5%8B%95%E7%82%B9%E5%AE%9A%E7%90%86+%E8%A8%BC%E6%98%8E)には触れない. 証明する前に直観的にどこまでこの定理が「明らか」であるかについて考えてみた方がよい.
研究課題:

□

𝑛 = 2 の場合にBrouwerの不動点定理が直観的には当然成立するべき結果であることがわかるような説明を見付けよ.

ヒント: 上にある注意の方法をこの場合に適用してみよ.

□1.4 閉区間上の実数値連続函数が最大最小を持つこと
定理: 実数の閉区間上の実数値連続函数は最大値と最小値を持つ.

𝑓

𝐼 = [𝑎,𝑏] 上の実数値連続函数であると仮定する. 𝑓 を −𝑓 で置き換えることによって, 𝑓 が最大値を持つこ

証明: は閉区間とを示せば十分である.

𝑓𝐼𝑓𝑎𝑛 ∈ 𝐼 𝑓(𝑎𝑛 ) ≧ 𝑛𝛼𝑎𝑛𝑎𝑘𝑎𝑘 ∈ 𝐼𝑎 ≦ 𝑎𝑘 ≦ 𝑏 𝑎 ≦ 𝛼 ≦ 𝑏
𝛼∈𝐼𝑓𝑛 → ∞ 𝑓(𝑎𝑘 ) → 𝑓(𝛼)𝑓(𝑎𝑘 ) → ∞𝑓
𝐼𝑎𝑛
次に, 𝑓 が閉区間 𝐼 上で最大値を持つことを示そう. {𝑓(𝑥) ∣ 𝑥 ∈ 𝐼 } は上に有界なので, 実数の連続性より, それは最小の上界を持つ. その最小上界を 𝑀 と書くことにする. 𝑀 が {𝑓(𝑥) ∣ 𝑥 ∈ 𝐼 } の最小上界であることより, 𝑛 = 1,2,… に対して,
𝑀 − 1𝑛 ≦ 𝑓(𝑥𝑛 ) ≦ 𝑀 を満たす 𝑥𝑛 ∈ 𝐼 が存在する. そのとき, 𝑓(𝑥𝑛 ) は 𝑀 に収束する. Bolzano-Weierstrassの定理より, 𝑥𝑛のある部分列 𝑥𝑙𝑛 である 𝛽 ∈ 𝐼 に収束するものが存在する. このとき,
𝑓(𝛽) = 𝑛→∞lim 𝑓(𝑥𝑙𝑛) = 𝑀.
これで 𝑓 が 𝐼 上で最大値 𝑀 を持つことがわかった □定義(supノルム): 集合 𝑋 上の函数で |𝑓(𝑥)| が上に有界なものに対して,‖𝑓 ‖∞ = 𝑥∈𝑋
sup |𝑓(𝑥)|を 𝑓 のsupノルムと呼ぶ. □閉区間 [𝑎,𝑏] 上の連続函数 𝑓(𝑥) に対して, |𝑓(𝑥)| も閉区間 [𝑎,𝑏] 上の連続函数になるので, |𝑓(𝑥)| は最大値を持つ. ゆえに
𝑓(𝑥) のsupノルムも定義され,‖𝑓 ‖∞ = 𝑎≦𝑥≦𝑏
sup |𝑓(𝑥)| = 𝑎≦𝑥≦𝑏
max |𝑓(𝑥)|まず, が閉区間 上で有界であることを示そう. もしも が有界でないならばあるでを満たすものが存在する. Bolzano-Weierstrassの定理より,の部分列 𝑛 である実数 に収束するものが存在する. 𝑛
すなわち
より
すなわち
であることもわかる.
の連続性より,ででなればいけ𝑛𝑛
ないが,の取り方より,となる.
これは矛盾である.
ゆえに,は閉区間上で有界でなければいけない.
𝑛が成立する.

‖𝑓 − 𝑔‖∞ は函数 𝑓,𝑔 の違いの大きさの指標としてよく使われる.
問題: 適当に 𝜀 > 0 と函数 𝜑 を与え, ‖𝑓 − 𝜑‖∞ < 𝜀 を満たす函数 𝑓 のグラフがどのような領域に含まれるかを図示せよ. □函数の差のsupノルム

次のセルを見よ.
In [7]:



1
2
3
4
5
6
7

φ(x) = sin(x) - 0.5x + 0.1x^2x = -2.5:0.02:3.5
ε = 0.3
plot(size=(500, 350))
plot!(x, φ.(x), label="y = phi(x)", color=:black, lw=2)
plot!(x, φ.(x).+ε, label="phi(x) - eps < y < phi(x)+eps", color=:red, ls=:dash, fill=(:pplot!(x, φ.(x).-ε, label="", color=:red, ls=:dash, fill=(:pink, 0.2, φ.(x)))

Out[7]:

問題: その絶対値が上に有界な集合

𝑋 上の函数達 𝑓,𝑔 について以下が成立することを示せ:‖𝑓 + 𝑔‖∞ ≦ ‖𝑓 ‖∞ + ‖𝑔‖∞ .
(2) 数 𝛼 について ‖𝛼𝑓 ‖∞ = |𝛼|‖𝑓 ‖∞ .
(3) ‖𝑓 ‖∞ = 0 ならば 𝑓 は恒等的に 0.
証明: (1) 𝐴,𝐵 をそれぞれ |𝑓(𝑥)| , |𝑔(𝑥)| の上界だとすると, |𝑓(𝑥) + 𝑔(𝑥)| ≦ |𝑓(𝑥)| + |𝑔(𝑥)| ≦ 𝐴 + 𝐵 . そして上限は上界の最小値だったので, ‖𝑓 + 𝑔‖∞ ≦ sup𝑥∈𝑋 |𝑓(𝑥)| + sup𝑥∈𝑋 |𝑔(𝑥)| = ‖𝑓 ‖∞ + ‖𝑔‖∞ .
(2) |𝛼𝑓(𝑥)| = |𝛼||𝑓(𝑥)| より, それらの上限は等しい. すなわち, ‖𝛼𝑓 ‖∞ = |𝛼|‖𝑓 ‖∞ .
(1)

(3)
て

‖𝑓 ‖∞ = sup𝑥∈𝑋 |𝑓(𝑥)| = 0 であると仮定する. このとき, |𝑓(𝑥)| の上界の最小値は 0 である. これは任意の 𝑥 ∈ 𝑋 につい|𝑓(𝑥)| ≦ 0 が成立することを意味する. ゆえに 𝑓 は恒等的に 0 になる. □参考(

𝐿1 ノルム): 閉区間 [𝑎,𝑏] 上の 𝐿1 ノルム ‖𝑓‖1 は次のように定義される:𝑏‖𝑓 ‖1 = ∫𝑎 |𝑓(𝑥)|𝑑𝑥.

これも函数の違いを測るためによく使われる. 次のセルを見よ. 塗りつぶされている部分の面積がIn [8]:



1
2
3
4
5
6
7
8
9
10

‖𝑓 − 𝑔‖1 に等しい. □f(x) = sin(x) - 0.5x + 0.1x^2g(x) = cos(x) - 0.5 + 0.1x^3
plot(size=(450, 280), legend=:top)
x = -2.5:0.02:3.5
plot!(x, f.(x), color=:blue, label="f(x)")
plot!(x, g.(x), color=:red, label="g(x)")
x = -2.0:0.02:3.0
plot!(x, g.(x), color=:red, fill=(0.1, f.(x)), label="")vline!([minimum(x)], color=:black, ls=:dash,label="x=a")vline!([maximum(x)], color=:black, ls=:dashdot, label="x=b")Out[8]:[𝑎,𝑏] 上の連続函数 𝑓,𝑔 について以下が成立することを示せ:(1) ‖𝑓 + 𝑔‖∞ ≦ ‖𝑓 ‖1 + ‖𝑔‖∞ .
(2) 数 𝛼 について ‖𝛼𝑓 ‖1 = |𝛼|‖𝑓 ‖1 .
(3) ‖𝑓 ‖1 = 0 ならば 𝑓 は恒等的に 0.
解答例: (1) |𝑓(𝑥) + 𝑔(𝑥)| ≦ |𝑓(𝑥)| + |𝑔(𝑥)| なので両辺を積分することによって ‖𝑓 + 𝑔‖1 ≦ ‖𝑓 ‖1 + ‖𝑔‖1 を得る.
(2) |𝛼𝑓(𝑥)| = |𝛼||𝑓(𝑥)| の両辺を積分することによって ‖𝛼𝑓 ‖1 = |𝛼|‖𝑓 ‖1 を得る.
(3) 対偶を示すために, ある 𝑥0 ∈ [𝑎,𝑏] で 𝑓(𝑥0 ) ≠ 0 を満たすものが存在すると仮定する. 𝑓(𝑥) は連続なので, ある 𝛿 > 0 が存在して, 𝑥 ∈ [𝑎,𝑏] かつ |𝑥 − 𝑥0 | ≦ 𝛿 ならば ≦ |𝑓(𝑥) − 𝑓(𝑥0 )| ≦ |𝑓(𝑥0 )|/2 となり,|𝑓(𝑥)| = |𝑓(𝑥0 ) − (𝑓(𝑥0 ) − 𝑓(𝑥))| ≧ |𝑓(𝑥0 )| − |𝑓(𝑥0 ) − 𝑓(𝑥)| ≧ |𝑓(𝑥0 )| − |𝑓(𝑥0 )|/2 = |𝑓(𝑥0 )|/2 となる. ゆえに,𝐴 = max{𝑎, 𝑥0 − 𝛿}, 𝐵 = min{𝑎, 𝑥0 + 𝛿} とおくと,𝑏
𝐵𝐵− 𝐴) > 0.
‖𝑓 ‖1 = ∫𝑎 |𝑓(𝑥)|𝑑𝑥 = ∫𝐴 |𝑓(𝑥)|𝑑𝑥 ≧ ∫𝐴 |𝑓(2𝑥0 )| 𝑑𝑥 ≧ |𝑓(𝑥0 )|(𝐵2
これで(3)の対偶が証明された. □注意: 上の解答例の(3)の証明は, 単に 𝑓(𝑥0 ) ≠ 0 ならば 𝑥0 の近くの 𝑥 について |𝑓(𝑥)| > 0 となるので, |𝑓(𝑥)| を積分すると
0 より大きくなることを示しているに過ぎない. 実際に書かれた証明はややこしいが, やっていることはシンプルである. 数学的問題: 閉区間に詳しく書かれた証明はこういうことになっている場合が実に多い. 直観レベルでは非常にシンプルなことしかやっていなくても, 順番に丁寧に書いたせいで複雑に見えてしまうことがよくある. そのような証明を読むときには, 「シンプルだが雑な直観をもとにして, どのようにして隙の無い証明を書きあげればよいか」という発想で証明を自力で再構成してみるのがよい. 結局のところ他人が書いた証明は他人にとってわかりやすいだけで, 自分にとってはわかりにくい. 自分にとってわかり易い証明は自分で書くしかない.

□
まとめ: 閉区間 [𝑎,𝑏] 上の連続函数 𝑓,𝑔 に対して, 差のsupノルム ‖𝑓 − 𝑔‖ は 𝑓,𝑔 の同一の 𝑥 における値の差の最大値に等しく, 差の𝐿1 ノルム ‖𝑓 − 𝑔‖1 は 𝑓,𝑔 のグラフに挟まれている部分の面積に等しい. このように函数の違いの大きさを測る方法
は複数存在する. □1.5 例
1.5.1 例1: コンパクト台を持つ滑らかな連続函数函数

𝑓(𝑥) = { 0𝑒−1/𝑥 (𝑥(𝑥 ≦> 0)0)は 𝑥 ↘ 0 のとき 𝑒−1/𝑥 → 0 なので連続函数である. ここで 𝑥 ↘ 0 は 𝑥 が上から(正の値のまま) 0 に近付くことを意味している(𝑥 → +0 と書くこともある). 𝑓(𝑥) は任意有限回微分可能である(そのとき 𝐶 ∞ 函数であるという).
𝑒−1/𝑥 → 0 となることを示せ. □問題: 𝑛 が非負の整数のとき, 𝑥 ↘ 0 のとき
𝑥𝑛
𝑡𝑛 → 0 となることと同値である. しかし, それは指数函数が多項式函証明: 𝑡 = 1/𝑥 とおくと, 示すべきことは, 𝑡 → ∞ のとき
𝑒𝑡
数より速く増加することを意味しているので, 成立することがすでにわかっている. □𝑒−1/𝑥 に 𝑥 の多項式をかけた形になる. そのことより, 𝑥 ↘ 0 のとき 𝑒−1/𝑥 の 𝑛 階の導函数も 0
注意: 𝑒−1/𝑥 の 𝑛 階の導函数は𝑥𝑛に収束することがわかる. □In [9]:

Out[9]:

In [10]:1 x = symbols("x")
2 diffexpneginvx(n) = diff(exp(-1/x), x, n)
3 [diffexpneginvx(n) for n in 0:3]
− 1𝑥 𝑒
− 1𝑥 𝑒
𝑥21 
 (−2 + 1𝑥 ) 𝑒− 𝑥 
𝑥3 1 
 (6 − 6𝑥 + 𝑥12 ) 𝑒− 𝑥 
𝑥4
1
2
3
4
5
6
7
8
9
10

f(x) = x > 0 ? exp(-1/x) : zero(x)g(x) = x > 0 ? exp(-1/x)/x^2 : zero(x)​p1 = plot(ylims=(-0.1, 1.0), legend=:topleft)
plot!(f, -10, 20, label="f(x)")​
p2 = plot(ylims=(-0.1, 0.6), legend=:topright)
plot!(g, -10, 20, label="df(x)/dx")​
plot(p1, p2, size=(700,200))

Out[10]:問題:

𝑥 ≦ 0 のとき最小値 0 になり, 𝑥 ≧ 1 のとき最大値 1 になる函数で任意有限回微分可能なものが存在することを示せ.

解答例: 函数𝑓(𝑥) = { 0exp(− 1 + 1 ) (𝑥(0 <≦ 𝑥0 or< 1)1 ≧ 𝑥)
𝑥 𝑥−1
1
1
は任意有限回微分可能である. 𝑍 = ∫0 𝑓(𝑥)𝑑𝑥 とおき, 𝑔(𝑥) = 𝑓(𝑥)/𝑍 とおくと, ∫0 𝑔(𝑥)𝑑𝑥 = 1 となる. このとき, 函数

𝑥ℎ(𝑥) = ∫−∞ 𝑔(𝑡)𝑑𝑡
In [11]:



1
2
3
4
5
6
7
8
9
10
11
12

f(x) = 0 < x < 1 ? exp(-1/x+1/(x-1)) : zero(x)@show Z, err = quadgk(f, 0, 1) # = ∫_0^1 f(x) dx, errorg(x) = f(x)/Zh(x) = quadgk(g, -1, x)[1] # = ∫_{-1}^x g(t) dt​
p1 = plot(legend=:topleft, ylims=(-0.1,2.7))
plot!(g, -1, 2, label="g(x)")​
p2 = plot(legend=:topleft, ylims=(-0.1, 1.1))
plot!(h, -1, 2, label="h(x)")​
plot(p1, p2, size=(700,200))(Z, err) = quadgk(f, 0, 1) = (0.007029858406609659, 3.235782792341532e-11)
Out[11]:

𝑥≦0

問題:
または
することを示せ.

4 ≦ 𝑥 のとき最小値 0 になり, 1 ≦ 𝑥 ≦ 3 のとき最大値 1 になる函数で任意有限回微分可能なものが存在ℎ(𝑥) を用いて, 函数 𝜙(𝑥) を𝜙(𝑥) = ℎ(𝑥)ℎ(4 − 𝑥)と定めると条件を満たしている. □解答例: 上の問題の函数

In [12]:



1
2
3
4

φ(x) = h(x)*h(4-x)​
plot(size=(400, 200), ylims=(-0.1, 1.1))
plot!(φ, -1, 5, label="phi(x)")

Out[12]:

1.5.2 例2: 無限に振動する不連続函数
函数(𝑥 ≠ 0)𝑓(𝑥) = { sin(1/𝑥)0(𝑥 = 0)は 𝑥 = 0 で不連続である. なぜならば 𝑥 → 0 のとき 𝑓(𝑥) は振幅を保ったまま無限に振動するからである.

In [13]:

1
2
3
4
5
6
7
8
9



f(x) = x == 0 ? 0 : sin(1/x)​
p1 = plot(size=(400, 250), xlabel="x", ylabel="y")plot!(f, -1.0, 1.0, ylims=(-1.2, 2.0), label="y = sin(1/x)")​p2 = plot(size=(400, 250), xlabel="x", ylabel="y")plot!(f, -0.1, 0.1, ylims=(-1.2, 2.0), label="y = sin(1/x)")​plot(p1, p2, size=(700, 250))

Out[13]:

1.5.3 例3: 無限に振動する連続函数
函数

は
In [14]:(𝑥 ≠ 0)𝑔(𝑥) = { 𝑥sin(1/𝑥)0(𝑥 = 0)𝑥 → 0 のとき無限に振動しながら 0 に収束するので連続である.
1
2
3
4
5
6
7
8
9

f(x) = x == 0 ? 0 : x*sin(1/x)​
p1 = plot(size=(400, 250), xlabel="x", ylabel="y")plot!(f, -3, 3, ylims=(-0.4, 1.5), label="y = x sin(1/x)")​p2 = plot(size=(400, 250), xlabel="x", ylabel="y")plot!(f, -0.3, 0.3, ylims=(-0.25, 0.3), label="y = x sin(1/x)")​plot(p1, p2, size=(700, 250))

Out[14]:

1.5.4 例4: Weierstrass函数

0 < 𝑎 < 1 について, 函数∞

𝐹(𝑥) = ∑ 𝑎𝑛 cos(𝑏𝑛 𝜋𝑥)𝑛=0は連続函数であり, Weierstrass 函数と呼ばれる.
られている.

𝑏 が正の奇数であり, 𝑎𝑏 > 1 + 3𝜋/2 のとき至るところ微分不可能なことが知ワイエルシュトラス関数 - Wikipedia(https://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%82%A8%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%8

注意: 一般に, 区間

𝐼 上の連続函数列 𝑓𝑛 (𝑥) について, 𝑥 によらない非負実数列 𝑀𝑛 で∞
|𝑓𝑛 (𝑥)| ≦ 𝑀𝑛 (𝑥 ∈ 𝐼), ∑ 𝑀𝑛 < ∞𝑛=1

を満たしているならば,∞

𝐹(𝑥) = ∑ 𝑓𝑛 (𝑥) (𝑥 ∈ 𝐼)
𝑛=1

で定義される函数

𝐹(𝑥) は 𝐼 上の連続函数になる. このノートの一様種速の節を参照せよ. □In [15]:

1 struct WeierstrassFunction{R<:Real, S<:Integer, T<:Integer} <: Function
2
a::R; b::S; N::T
3 end
4 (F::WeierstrassFunction)(x) = sum(n->F.a^n*cos(F.b^n*π*x), 0:F.N)

In [16]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

F = WeierstrassFunction(0.6, 13, 100)@show F.a*F.b, 1+3π/2​
p1 = plot(legend=false, titlefontsize=11)
plot!(title="Weierstrass function: a = $(F.a), b = $(F.b)")
plot!(size=(600, 420), xlabel="x", ylabel="y")plot!(F, -2, 2)​
p2 = plot(legend=false, titlefontsize=11)
plot!(title="Weierstrass function: a = $(F.a), b = $(F.b)")
plot!(size=(600, 420), xlabel="x", ylabel="y")plot!(F, -2/F.b, 2/F.b)​plot(p1, p2, size=(700, 250))(F.a * F.b, 1 + (3π) / 2) = (7.8, 5.71238898038469)
Out[16]:

In [17]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

F = WeierstrassFunction(0.85, 7, 100)@show F.a*F.b, 1+3π/2​
p1 = plot(legend=false, titlefontsize=11)
plot!(title="Weierstrass function: a = $(F.a), b = $(F.b)")
plot!(size=(600, 420), xlabel="x", ylabel="y")plot!(F, -2, 2)​
p2 = plot(legend=false, titlefontsize=11)
plot!(title="Weierstrass function: a = $(F.a), b = $(F.b)")
plot!(size=(600, 420), xlabel="x", ylabel="y")plot!(F, -2/F.b, 2/F.b)​plot(p1, p2, size=(700, 250))(F.a * F.b, 1 + (3π) / 2) = (5.95, 5.71238898038469)
Out[17]:

In [18]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

F = WeierstrassFunction(1/4, 3, 100)@show F.a*F.b, 1+3π/2​
p1 = plot(legend=false, titlefontsize=11)
plot!(title="Weierstrass function: a = $(F.a), b = $(F.b)")
plot!(size=(600, 420), xlabel="x", ylabel="y")plot!(F, -2, 2)​
p2 = plot(legend=false, titlefontsize=11)
plot!(title="Weierstrass function: a = $(F.a), b = $(F.b)")
plot!(size=(600, 420), xlabel="x", ylabel="y")plot!(F, -2/F.b, 2/F.b)​plot(p1, p2, size=(700, 250))(F.a * F.b, 1 + (3π) / 2) = (0.75, 5.71238898038469)
Out[18]:1.5.5 例5: 高木函数

0 < 𝑤 < 1 について∞

𝐹(𝑥) = ∑ 𝑤𝑛 𝑠(2𝑛 𝑥), 𝑠(𝑥) = min𝑘∈ℤ |𝑥 − 𝑘|𝑛=0で定義される函数

𝐹(𝑥) は連続函数である. 𝑤 = 1/2 のとき 𝐹(𝑥) は高木函数と呼ばれる.

In [19]:

1 seesaw(x) = abs(x - round(x))
2 plot(seesaw, size=(400, 250), ylims=(-0.1, 0.7), label="seesaw(x)")

Out[19]:In [20]:

1 struct TakagiFunction{R<:Real, T<:Integer} <: Function2
w::R; N::T
3 end
4 (F::TakagiFunction)(x) = sum(n->F.w^n*seesaw(2^n*x), 0:F.N)

In [21]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Out[21]:

F = TakagiFunction(0.5, 100)​
p1 = plot(legend=false, titlefontsize=11)
plot!(title="Takagi function: w = $(F.w)")
plot!(size=(600, 420), xlabel="x", ylabel="y")x = 0:0.001:1
plot!(x, F.(x))​
p2 = plot(legend=false, titlefontsize=11)
plot!(title="Takagi function: w = $(F.w)")
plot!(size=(600, 420), xlabel="x", ylabel="y")x = 0.25:0.00025:0.50
plot!(x, F.(x))​
plot(p1, p2, size=(700, 250))

In [22]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

F = TakagiFunction(0.7, 100)​
p1 = plot(legend=false, titlefontsize=11)
plot!(title="Takagi function: w = $(F.w)")
plot!(size=(600, 420), xlabel="x", ylabel="y")x = 0:0.001:1
plot!(x, F.(x))​
p2 = plot(legend=false, titlefontsize=11)
plot!(title="Takagi function: w = $(F.w)")
plot!(size=(600, 420), xlabel="x", ylabel="y")x = 0.250:0.00025:0.50
plot!(x, F.(x))​
plot(p1, p2, size=(700, 250))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

F = TakagiFunction(1/4, 100)​
p1 = plot(legend=false, titlefontsize=11)
plot!(title="Takagi function: w = $(F.w)")
plot!(size=(600, 420), xlabel="x", ylabel="y")x = 0:0.001:1
plot!(x, F.(x))​
p2 = plot(legend=false, titlefontsize=11)
plot!(title="y = x(1-x)")
plot!(size=(600, 420), xlabel="x", ylabel="y")x = 0:0.001:1
plot!(x, @.(x*(1-x)))​plot(p1, p2, size=(700, 250))

Out[22]:

In [23]:

Out[23]:2 一様連続性

𝑓(𝑥) が 𝑥 = 𝑎 で連続であるとは, 𝑥 → 𝑎 のとき 𝑓(𝑥) → 𝑓(𝑎) となることであった. 区間 𝐼 上で定義された函数 𝑓(𝑥) が連続であるとはすべての 𝑥 = 𝑎 ∈ 𝐼 で 𝑓(𝑥) が連続なことであると定める.
しかし, 一般に, 連続な 𝑓(𝑥) について, 各 𝑎 ∈ 𝐼 ごとに 𝑥 → 𝑎 のときの 𝑓(𝑥) → 𝑓(𝑎) の「収束の速さ」は一般に異なる.
𝑥 → 𝑎 のときの 𝑓(𝑥) → 𝑓(𝑎) の「収束の速さ」がすべての 𝑎 ∈ 𝐼 について同時に上からおさえられるとき, 𝑓(𝑥) は 𝐼 上で一様連続であるという.

正確には一様連続性は次のように定義される.

𝐼 上の函数 𝑓 は 𝐼 上で一様連続であるとは, 任意に 𝜀 > 0 を与えたとき, ある 𝛿 > 0 が存在して, 任意の 𝑎,𝑥 ∈ 𝐼 につい|𝑥 − 𝑎| < 𝛿 ならば |𝑓(𝑥) − 𝑓(𝑎)| < 𝜀 が成立することである. □𝑥 → 𝑎 のとき 𝑓(𝑥) → 𝑓(𝑎) が成立するということは, 𝑥 を 𝑎 に近付けることによって 𝑓(𝑎) を 𝑓(𝑥) でいくらでも近似できるということである. 𝑥 → 𝑎 のとき 𝑓(𝑥) → 𝑓(𝑎) であるということは, 許される誤差 𝜀 > 0 を与えたとき, ある 𝛿 > 0 が存在して, 𝑓(𝑥) と 𝑓(𝑎) の違いを 𝜀 未満におさえるためには 𝑥 と 𝑎 の違いを 𝛿 未満におさえればよいということである.
単なる連続性の定義では 𝛿 の取り方は各 𝑎 ごとに違っていてもよい. 𝛿 を小さく取らなければいけない 𝑎 においては 𝑥 → 𝑎 のときの 𝑓(𝑥) → 𝑓(𝑎) の「収束の速さ」は「遅い」ということである.
一様連続の定義は, すべての 𝑎 について共通の 𝛿 > 0 を選べることを意味している(すなわち 𝛿 > 0 は 𝜀 > 0 に依存するが,定義:て2.1 閉区間上の連続函数が一様連続であること□
証明: 𝑓 は閉区間 𝐼 上の連続函数であるとし, 𝜀 > 0 であるとする. このとき, 任意の 𝑥 ∈ 𝐼 に対して, ある 𝛿𝑥 > 0 が存在して,𝑦 ∈ 𝐼 かつ |𝑦 − 𝑥| < 𝛿𝑥 ならば |𝑓(𝑦) − 𝑓(𝑥)| < 𝜀2 となる. 𝑈𝑥 = (𝑥 − 𝛿2𝑥 ,𝑥 + 𝛿2𝑥 ) とおくと, 𝑈𝑥 達は 𝐼 を覆う. ゆえ
定理: 閉区間上の連続函数は一様連続である.

に, 閉区間に関するHeine-Borelの定理(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/01%20convergence.ipynb#閉区間に関するHeine-Borelの定理)

𝑥1 ,…, 𝑥𝑟 ∈ 𝐼 で 𝑈𝑥1,…, 𝑈𝑥𝑟 で 𝐼 を覆うものが存在する. 𝛿 = min{ 𝛿21 ,…, 𝛿2𝑟 } とおき, 𝑎,𝑥 ∈ 𝐼 かつ
|𝑥 − 𝑎| < 𝛿 と仮定する. 𝑎 はある 𝑈𝑥𝑖 に含まれるので, |𝑎 − 𝑥𝑖 | < 𝛿2𝑥𝑖 < 𝛿𝑥𝑖 となり,|𝑥 − 𝑥𝑖 | ≦ |𝑥 − 𝑎| + |𝑎 − 𝑥𝑖 | < 𝛿 + 𝛿2𝑥𝑖 ≦ 𝛿2𝑥𝑖 + 𝛿2𝑥𝑖 = 𝛿𝑥𝑖
より, 有限個のとなるので,|𝑓(𝑥) − 𝑓(𝑎)| ≦ |𝑓(𝑥) − 𝑓(𝑥𝑖 )| + |𝑓(𝑥𝑖 ) − 𝑓(𝑎)| < 𝜀2 + 𝜀2 = 𝜀.
これで 𝑓 が一様連続であることが示された. □注意: 閉区間上の函数については, 連続函数と一様連続函数を区別しなくてもよい. □問題: ℝ 上の連続函数 𝑓(𝑥) で |𝑥| → ∞ のとき 𝑓(𝑥) → 0 となるものが一様連続になることを示せ.
𝜀と
解答例: 𝜀 > 0 を任意に取る. |𝑥| → ∞ のとき 𝑓(𝑥) → 0 となるで, ある 𝑅 > 0 が存在して, |𝑥| ≧ 𝑅 ならば |𝑓(𝑥)| <2
なる. 閉区間 [−3𝑅,3𝑅] 上で連続函数 𝑓(𝑥) は一様連続になるので, ある 𝛿 > 0 が存在して, |𝑥|,|𝑦| ≦ 3𝑅 かつ |𝑥 − 𝑦| < 𝛿
ならば |𝑓(𝑥) − 𝑓(𝑦)| < 𝜀 となる. このとき, 実数 𝑥,𝑦 が |𝑥 − 𝑦| < min{𝛿,𝑅} を満たしているならば, |𝑥| ≦ 2𝑅 のとき,
|𝑦| ≦ 𝑅, |𝑥 − 𝑦| < 𝛿 となるので, |𝑓(𝑥) − 𝑓(𝑦)| < 𝜀 となり, |𝑥| > 2𝑅 のとき, |𝑦| ≧ 𝑅 となるので,|𝑓(𝑥) − 𝑓(𝑦)| ≦ |𝑓(𝑥)| + |𝑓(𝑦)| < 𝜀2 + 𝜀2 = 𝜀となる. これで, 𝑓(𝑥) が ℝ 全体で一様連続であることがわかった. □2.2 連続だが一様連続ではない函数の例

𝑥 > 0 の連続函数 𝑓(𝑥) = 1/𝑥 は区間 (0,1] 上では一様連続ではないことを示せ.
解答例: 図を描けば, 𝜀 > 0 と 𝑎 > 0 について,𝑥 > 0, |𝑥 − 𝑎| < 𝛿 ⟹ |𝑓(𝑥) − 𝑓(𝑎)| < 𝜀
問題:

すなわち

かつ

𝛿 > 0 となるためには,(∗)

𝑥 > 0, 𝑎 − 𝛿 < 𝑥 < 𝑎 + 𝛿 ⟹ 1𝑎 − 𝜀 < 𝑥1 < 1𝑎 + 𝜀2𝛿 ≦ 𝑎 − 1/𝑎1+ 𝜀 = 1 𝑎+ 𝜀𝑎𝜀 < 𝑎2 𝜀でなければいけないことがわかる. したがって 𝑎 > 0 を小さくすれば 𝛿 > 0 はいくらでも小さくなる. ゆえに 𝑎 と無関係に(∗ )を満たす 𝛿 > 0 を取ることは不可能である. つまり 𝑓(𝑥) は (0,1] 上で一様連続ではない. □問題: 任意に与えられた 𝑟 > 0 について, 𝑓(𝑥) = 1/𝑥 は区間 [𝑟,∞) 上で一様連続であることを示せ.

𝜀 > 0 であるとする. 𝑎2 𝜀/(1 + 𝑎𝜀) は 𝑎 について単調増加函数なので, 𝑎 が [𝑟,∞) 内を動くとき, その最小値は2𝑟 𝜀/(1 + 𝑟𝜀) になる. それを 𝛿 とおけばすべての 𝑎 ∈ [𝑟,∞) について同時に (∗) が成立する. これで 𝑓(𝑥) = 1/𝑥 が [𝑟,∞) 上
解答例:

一様連続であることがわかった.

□𝐼

注意: 微分可能函数については, 区間 上でのグラフの傾きが幾らでも大きくなる函数は上でのグラフの傾きに上限がある場合には一様連続になる.

𝐼
In [24]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

□

𝐼 上で一様連続ではなくなるが, 区間

f(x) = 1/xx = 0.1:0.001:1​
ε = 0.7​
plot(xlims=(0,1), ylims=(0,10), size=(500, 350))
plot!(x, f.(x), label="y = 1/x", lw=2)​
a = 0.15
δ₀ = a - 1/(1/a+ε)δ₁ = 1/(1/a-ε) - a
c = :redplot!([a-δ₀,a-δ₀], [0,f(a-δ₀)], color=c, label="")plot!([a,a], [0,f(a)], color=c, lw=2, label="x = $a")plot!([a+δ₁,a+δ₁], [0,f(a+δ₁)], color=c, label="")plot!([0,a-δ₀], [f(a-δ₀),f(a-δ₀)], ls=:dash, color=c, label="y = 1/$a+$ε")
plot!([0,a], [f(a),f(a)], color=c, ls=:dash, lw=2, label="y = 1/$a")plot!([0,a+δ₁], [f(a+δ₁),f(a+δ₁)], ls=:dashdot, color=c, label="y = 1/$a-$ε")​a = 0.5
δ₀ = a - 1/(1/a+ε)δ₁ = 1/(1/a-ε) - a
c = :orange
plot!([a-δ₀,a-δ₀], [0,f(a-δ₀)], color=c, label="")plot!([a,a], [0,f(a)], color=c, lw=2, label="x = $a")plot!([a+δ₁,a+δ₁], [0,f(a+δ₁)], color=c, label="")plot!([0,a-δ₀], [f(a-δ₀),f(a-δ₀)], ls=:dash, color=c, label="y = 1/$a+$ε")
plot!([0,a], [f(a),f(a)], color=c, ls=:dash, lw=2, label="y = 1/$a")plot!([0,a+δ₁], [f(a+δ₁),f(a+δ₁)], ls=:dashdot, color=c, label="y = 1/$a-$ε")

Out[24]:

3 一様収束3.1 函数列の各点収束の定義

𝐼

𝑓1 (𝑥), 𝑓2 (𝑥), 𝑓3 (𝑥),… が函数 𝜑(𝑥) に各点収束するとは, 各 𝑥 ∈ 𝐼 ごとに, 任意の各点収束の定義: 区間 上の函数の列に対して, ある番号が存在して,

𝜀>0𝑁が成立することだと定める.

|𝑓𝑛 (𝑥) − 𝑓(𝑥)| < 𝜀 (𝑛 ≧ 𝑁)

|𝑓𝑛 (𝑥) − 𝜑(𝑥)| < 𝜀 (𝑛 ≧ 𝑁, 𝑥 ∈ 𝐼)が成立することだと定める. すなわち, 各 𝑥 ∈ 𝐼 ごとに,

𝑓𝑛 (𝑥) 𝐼

𝑓𝑛 (𝑥) → 𝜑(𝑥) (𝑛 → ∞)𝜑(𝑥) に各点収束するという. 各点収束においては, 各点 𝑥 ∈ 𝐼 ごとに 𝑓𝑛 (𝑥) の 𝜑(𝑥)□問題: 閉区間 𝐼 = [0,1] 上で函数列 𝑓𝑛 (𝑥) = 𝑥𝑛 は函数
𝜑(𝑥) = { 01 (0(𝑥 ≦= 𝑥1)< 1)に各点収束することを示せ. 0 ≦ 𝑥 < 1 が 1 に近ければ近いほど, 𝑓𝑛 (𝑥) = 𝑥𝑛 の 0 に収束する速さは遅くなることに注意せよ.
□
が成立するとき, 函数列は 上でへの収束の速さは全く違っていてもよい.

In [25]:



1
2
3
4
5
6
7
8
9

f(n,x) = x^n​x = 0:0.005:1
p1 = plot(xlims=(0,1), legend=:topleft)
cycls = [:solid, :dash, :dashdot, :dashdotdot]
for n in 1:12
plot!(x, f.(n,x), label="n = $n", ls=cycls[mod1(n, lastindex(cycls))])endplot(p1, size=(360,370), aspect_ratio=1, title="y = x^n", lw=1.5)

Out[25]:

3.2 函数列の一様収束の定義

𝐼 上の函数の列 𝑓1 (𝑥), 𝑓2 (𝑥), 𝑓3 (𝑥),… が函数 𝜑(𝑥) に一様収束するとは, 任意の 𝜀 > 0 に対して, ある𝑥 ≧ 𝑁 ならば, すべての 𝑥 ∈ 𝐼 について一様に|𝑓𝑛 (𝑥) − 𝜑(𝑥)| < 𝜀が成立することだと定める. □注意: 函数列 𝑓𝑛 (𝑥) の数値計算では, 区間 𝐼 内の無限個の点から有限個の点 𝑥1 < ⋯ < 𝑥𝐿 (𝑥𝑖 ∈ 𝐼 )を選んで, 函数 𝑓𝑛 (𝑥) の代
わりに配列 [𝑓𝑛 (𝑥1 ),…, 𝑓𝑛 (𝑥𝐿 )] を扱うことが普通である. そのとき収束するかどうかの判定を 𝑓𝑛 (𝑥𝑖 ) と 𝑓𝑛+1 (𝑥𝑖 ) の違いの大きさがすべての 𝑖 = 1,…,𝐿 について一斉に最初に決めておいた「許される誤差」 𝜀 > 0 より小さくなったかどうかで判定することは, 一様収束に近い考え方で収束を判定していることになる. □問題: 区間 𝐼 上の函数 𝜑(𝑥) と函数の列 𝑓𝑛 (𝑥) について以下の条件が互いに同値であることを示せ:(1) 𝑓𝑛 は 𝜑 に 𝐼 上一様収束する.
(2) 𝐼 上の函数のsupノルム ‖ ‖∞ について, 𝑛 → ∞ のとき ‖𝑓𝑛 − 𝜑‖∞ → 0 が成立する.
(3) 0 に収束する非負実数の列 𝑐𝑛 で 𝑛 → ∞ のとき |𝑓𝑛 (𝑥) − 𝜑(𝑥)| ≦ 𝑐𝑛 (𝑥 ∈ 𝐼 )を満たすものが存在する.
解答例: (1)ならば(2)を示そう. 条件(1)を仮定し, 𝜀 > 0 とする. (1)より, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならばすべての 𝑥 ∈ 𝐼について |𝑓𝑛 (𝑥) − 𝜑(𝑥)| < 𝜀/2 となる. そのとき, 𝑛 ≧ 𝑁 ならば
𝜀‖𝑓𝑛 − 𝜑‖∞ = sup|𝑓𝑛 (𝑥) − 𝜑(𝑥)| ≦ 2 < 𝜀.
𝑥∈𝐼
一様収束の定理: 区間
番号が存在して,

𝑁‖𝑓𝑛 − 𝜑‖∞ → 0 となることが示された. (1)ならば(2)であることがわかった.
(2)ならば(1)を示そう. (2)を仮定し, 𝜀 > 0 とする. (2)より, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 ならば ‖𝑓𝑛 − 𝜑‖∞ < 𝜀 となる. そのとき, 𝑛 ≧ 𝑁 かつ 𝑥 ∈ 𝐼 ならば|𝑓𝑛 (𝑥) − 𝜑(𝑥)| ≦ sup|𝑓𝑛 (𝑥) − 𝜑(𝑥)| = ‖𝑓𝑛 − 𝜑‖∞ < 𝜀.
𝑥∈𝐼
これで, 𝑓𝑛 が 𝜑 に 𝐼 上一様収束することが示された. (2)ならば(1)であることがわかった.
(2)ならば(3)を示そう. (2)の仮定のもとで, 𝑐𝑛 = ‖𝑓𝑛 − 𝜑‖∞ とおくと, 𝑐𝑛 は 0 に収束する非負実数列であり, 𝑥 ∈ 𝐼 のとき|𝑓𝑛 (𝑥) − 𝜑(𝑥)| ≦ sup|𝑓𝑛 (𝑥) − 𝜑(𝑥)| = ‖𝑓𝑛 − 𝜑‖∞ = 𝑐𝑛 .
𝑥∈𝐼
これで,

これで(2)ならば(3)であることがわかった.

𝑛 → ∞ のとき
‖𝑓𝑛 − 𝜑‖∞ = sup|𝑓𝑛 (𝑥) − 𝜑(𝑥)| ≦ 𝑐𝑛 → 0.
𝑥∈𝐼
これで(3)ならば(2)であることがわかった. □(3)ならば(2)を示そう. (3)の仮定のもとで,

注意: 特に, supノルムに関する収束と一様収束は同じ意味であることがわかった. 一様収束を扱うときにはsupノルムを使うと議論がシンプルになりやすい.

□

問題: 閉区間𝐼 = [0,1] 上で函数列 𝑓𝑛 (𝑥) = 𝑥𝑛 は函数
𝜑(𝑥) = { 01 (0(𝑥 ≦= 𝑥1)< 1)に一様収束しないことを示せ.

0 < 𝑥 < 1 のとき |𝑥| ≧ 1/21/𝑛 とすると, 𝑓𝑛 (𝑥) ≧ 1/2 となる. これで, 𝑓𝑛 (𝑥) と 𝜑(𝑥) の差の絶対値の大きさをすべて
𝑥 ∈ 𝐼 について一斉に 1/2 より小さくできないことがわかった. □解答例:のIn [26]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

f(n,x) = x^n​x = 0:0.005:1​
n = 3
p1 = plot(xlims=(-0.01,1.01), legend=:topleft, aspect_ratio=1)
plot!(x, f.(n,x), label="y = x^$n")plot!(x[1:end-1], 1/2*fill(1, size(x[1:end-1])), label="", color=:red, ls=:dash, fill=(0plot!([1,1], [1/2,1], label="", color=:red, alpha=0.1, lw=3)
plot!([1/2^(1/n), 1/2^(1/n)], [0, 1/2], label="x = 1/2^{1/$n}", color=:black, ls=:dash)​n = 9
p2 = plot(xlims=(-0.01,1.01), legend=:topleft, aspect_ratio=1)
plot!(x, f.(n,x), label="y = x^$n")plot!(x[1:end-1], 1/2*fill(1, size(x[1:end-1])), label="", color=:red, ls=:dash, fill=(0plot!([1,1], [1/2,1], label="", color=:red, alpha=0.1, lw=3)
plot!([1/2^(1/n), 1/2^(1/n)], [0, 1/2], label="x = 1/2^{1/$n}", color=:black, ls=:dash)​plot(p1, p2, size=(600, 250))

Out[26]:

3.3 連続函数列の一様収束先も連続になること
定理: 区間𝐼 上の連続な函数の列 𝑓𝑛 が函数 𝜑 に一様収束するとき, 収束先の 𝜑(𝑥) も 𝐼 上の連続函数になる.

𝐼 上の連続な函数の列 𝑓𝑛 が函数 𝜑 に一様収束すると仮定し, 𝜀 >𝜀 0 であるとする. 𝑓𝑛 が 𝜑 に一様収束することより, ある番号 𝑁 が存在して, 𝑛 ≧ 𝑁 かつ 𝑥 ∈ 𝐼 ならば |𝑓𝑛 (𝑥) − 𝜑(𝑥)| <函数 𝑓𝑁 の 𝑥0 に3 となる. 𝑥0 ∈ 𝐼 を任意に取る.
𝜀
おける連続性より, ある 𝛿 > 0 が存在して, 𝑥 ∈ 𝐼 かつ |𝑥 − 𝑥0 | < 𝛿 ならば |𝑓𝑁 (𝑥) − 𝑓𝑁 (𝑥0 )| <となる. ゆえに, 𝑥 ∈ 𝐼
3
かつ |𝑥 − 𝑥0 | < 𝛿 ならば|𝜑(𝑥) − 𝜑(𝑥0 )| ≦ |𝜑(𝑥) − 𝑓𝑛 (𝑥)| + |𝑓𝑁 (𝑥) − 𝑓𝑁 (𝑥0 )| + |𝑓𝑁 (𝑥0 ) − 𝜑(𝑥0 )| < 𝜀3 + 𝜀3 + 𝜀3 = 𝜀.
これで, 𝜑(𝑥) が任意の 𝑥0 ∈ 𝐼 で連続なこと, すなわち, 𝜑 が 𝐼 上の連続函数であることが示された. □定理: 区間 𝐼 上の函数の列 𝑓𝑛 (𝑥) について, 函数列𝑛𝐹𝑛 (𝑥) = ∑ |𝑓𝑘 (𝑥)|証明: 区間𝑘=1∞
𝑓𝑛 (𝑥) も一様収束する. このとき, その函数項級数は一様絶対収が有限の値を持つ函数に 𝐼 上一様収束するとき, 函数項級数∑𝑛=1
束するという.

□𝑛𝐹𝑛 (𝑥) = ∑ |𝑓𝑘 (𝑥)| は有限の値を持つ函数 Φ(𝑥) に一様収束すると仮定する. 𝐹𝑛 は Φ に一様収束しているので,
𝑘=1∞‖𝐹𝑛 − Φ‖∞ → 0 かつ Φ(𝑥) = ∑ |𝑓𝑘 (𝑥)| (𝑥 ∈ 𝐼 ) となる. このとき, 𝑥 ∈ 𝐼 かつ 𝑚 ≧ 𝑛 とすると,
𝑘=1
𝑚
|| 𝑛
| | 𝑚
|
||∑ 𝑓𝑘 (𝑥) − ∑ 𝑓𝑘 (𝑥)||| = |||− ∑ 𝑓𝑘 (𝑥)|||𝑘=1|𝑘=1| | 𝑚𝑘=𝑛+1 | 𝑚𝑛≦ ∑ |𝑓𝑘 (𝑥)| = ∑ |𝑓𝑘 (𝑥)| − ∑ |𝑓𝑘 (𝑥)|
𝑘=𝑛+1
𝑘=1
𝑘=1
∞
𝑚
≦ ∑ |𝑓𝑘 (𝑥)| − ∑ |𝑓𝑘 (𝑥)| = Φ(𝑥) − 𝐹𝑛 (𝑥) = |𝐹𝑛 (𝑥) − Φ(𝑥)|
𝑘=1
𝑘=𝑛+1
≦ sup
|
𝐹
(𝑥)
−
Φ(𝑥)|
≦ ‖𝐹𝑛 − Φ‖∞ .
𝑛
𝑥∈𝐼
証明:

𝑛

𝑛

𝑥 ∈ 𝐼 ごとに 𝐹𝑛 (𝑥) = ∑ |𝑓𝑘 (𝑥)| が有限の値に収束することから, ∑ 𝑓𝑘 (𝑥) も収束するので(絶対収束), その収束先を
𝑘=1
𝑘=1
𝜑(𝑥) と書く. すぐ上で示した不等式で 𝑚 → ∞ とすると, 任意の番号 𝑛 と 𝑥 ∈ 𝐼 について,|| 𝑛|||∑ 𝑓𝑘 (𝑥) − 𝜑(𝑥)||| ≦ ‖𝐹𝑛 − Φ‖∞|𝑘=1|𝑛が得られる. 右辺は 𝑥 に依存しない数列であり 0 に収束するので,∑ 𝑓𝑘 (𝑥) が 𝜑(𝑥) に一様収束していることがわかる. □各𝑘=1

次の定理は以上の2つの定理からただちに得られる.
定理: すべての□定理: 区間∞𝑓𝑛 (𝑥) が区間 𝐼 上の連続函数であり, ∑ 𝑓𝑛 (𝑥) が 𝐼 上一様絶対収束するならば, その収束先も連続函数になる.
𝑛=1

𝐼 上の函数の列 𝑓𝑛 (𝑥) に対して, 非負実数列 𝑐𝑛 で
|𝑓𝑛 (𝑥)| ≦ 𝑐𝑛 (𝑥 ∈ 𝐼),

を満たすものが存在するならば, 函数列
証明: 非負実数列

𝑐𝑛 で

∞

∞

𝑐𝑛 < ∞∑
𝑛=1

𝑓𝑛 (𝑥) は 𝐼 上一様絶対収束する.
∑
𝑛=1|𝑓𝑛 (𝑥)| ≦ 𝑐𝑛 (𝑥 ∈ 𝐼),
を満たすものが存在すると仮定する. そのとき,∞𝐶 = ∑ 𝑐𝑛 < ∞
𝑛=1

∞

∞

𝑛=1

𝑛=1

∑ |𝑓𝑛 (𝑥)| ≦ ∑ 𝑐𝑛 < ∞となるので,∞(𝑥 ∈ 𝐼)|𝑓𝑛 (𝑥)| は有限の値に収束する. その値を Φ(𝑥) と書く. このとき, 𝑥 ∈ 𝐼 ならば
∑
𝑛=1
𝑛

∞

∞

𝑛

𝑘=1

𝑘=𝑛+1
𝑛

𝑘=𝑛+1

𝑘=1

0 ≦ Φ(𝑥) − ∑ |𝑓𝑘 (𝑥)| = ∑ |𝑓𝑘 (𝑥)| ≦ ∑ 𝑐𝑘 = 𝐶 − ∑ 𝑐𝑘 .
𝑛

𝐶 − ∑ 𝑐𝑘 は 𝑛 → ∞ で 0 に収束し, 𝑥 に依存しないので, ∑ |𝑓𝑘 (𝑥)| が Φ(𝑥) に一様収束することもわかった. これで, 函数
𝑘=1
∞𝑘=1
列
∑ 𝑓𝑛 (𝑥) は 𝐼 上一様絶対収束することがわかった. □𝑛=1

注意: 上の定理を使えば, 収束先の函数が不明であっても収束することがわかる場合がある.
問題:□𝑠 > 1 の函数 𝑓𝑛 (𝑠) を

𝑓𝑛 (𝑠) = 𝑛1𝑠と定める. 1 より真に大きい実数 𝑎 を任意に取る. このとき 𝑠 ≧ 𝑎 において, 函数項級数
∞
∞ 1
𝑓
(𝑠)
=
𝑛
∑
∑ 𝑛𝑠
𝑛=1

𝑛=1

が一様絶対収束することを示せ.

𝑛 ≧ 1 ごとに 𝑓𝑛 (𝑠) = 1/𝑛𝑠 は 𝑠 に関する単調減少函数である. ゆえに|𝑓𝑛 (𝑠)| = 𝑛1𝑠 ≦ 𝑛1𝑎 (𝑠 ≧ 𝑎).
∞ 1
∞
∞ 1
そして, 𝑎 > 1 よりは有限の値に収束する. 以上によって,
𝑓
(𝑠)
=
𝑛
𝑎
𝑠 は 𝑠 ≧ 𝑎 で絶対収束する. □
∑
∑
∑
𝑛=1 𝑛
𝑛=1
𝑛=1 𝑛
解答例: 各

注意: 上の問題の

𝑎 > 1 はいくらでも 1 に近付けることができるので,∞
𝜁(𝑠) = ∑ 𝑛1𝑠 (𝑠 > 1)
𝑛=1

𝑠 > 1 における連続函数になることがわかる. □注意: 実際にはもっとよいことが言える. 𝜁(𝑠) は 𝑠 > 1 でいくらでも項別微分可能であり, 𝑠 = 1 を除いた複素平面全体に解析接続される. □はIn [27]:



1
2
3
4
5
6
7
8
9
10

g(N, s) = sum(n->1/n^s, 1:N)
s = 1.01:0.01:5.00​
p1 = plot(title="sum of 1/n^s for n=1,...,N")
plot!(ylims=(0.8, 5), xlabel="s")plot!(s, zeta.(s), label="zeta(s)", lw=2)
for (ls, N) in [(:dot,3), (:dash, 10), (:dashdot, 30), (:dashdotdot, 100), (:dashdotdot,
plot!(s, g.(N,s), label="N = $N", ls=ls, lw=1.5)
endplot(p1, size=(500, 350))

Out[27]:𝑓(𝑥) は ℝ 上の連続函数であり, |𝑥| → ∞ のとき 𝑓(𝑥) → 0 となっていると仮定する. このとき, 函数列
𝑓𝑛 (𝑥) = 𝑓 (𝑥 + 1𝑛 ) が 𝑓(𝑥) に ℝ 上一様収束することを示せ.
解答例: 任意に 𝜀 > 0 を取る. 上の方の問題の解答例で示したように, 𝑓(𝑥) は ℝ 上一様連続になる. ゆえに, ある 𝛿 > 0 が存在
1 とすると,して, 𝑥,𝑦 ∈ ℝ かつ |𝑦 − 𝑥| < 𝛿 ならば |𝑓(𝑦) − 𝑓(𝑥)| < 𝜀 となる. そのとき 𝑛 >𝛿|𝑓𝑛 (𝑥) − 𝑓(𝑥)| = ||||𝑓 (𝑥 + 1𝑛 ) − 𝑓(𝑥)|||| < 𝜀となる. これで, 𝑓𝑛 が 𝑓 に ℝ 上一様収束することがわかった. □問題:

3.4 Peano曲線𝑛𝑦𝑛 (𝑡) = Peano_𝑦(𝑛,𝑡) 𝑛 → ∞≦𝑡≦1𝑥(𝑡) 𝑦(𝑡)[0,1] × [0,1]𝑥𝑛 (𝑡) = Peano_𝑥(𝑛,𝑡) と(𝑥(𝑡),𝑦(𝑡)) (0 ≦ 𝑡 ≦ 1) を定める.

以下のプログラムのように について帰納的に定義されたの連続函数はで一様収束し, その収束先,は平面上の連続曲線
その曲線はPeano曲線と呼ばれており, 正方形の内側を埋め尽くす.

𝑥𝑛 (𝑡), 𝑦𝑛 (𝑡) がともに閉区間 [0,1] 上で一様収束することを示せ.
解答例: 𝑓𝑛 (𝑡) は 𝑥𝑛 (𝑡) または 𝑦𝑛 (𝑡) であるとする. そのとき
|𝑓𝑛 (𝑡) − 𝑓𝑛−1 (𝑡)| ≦ 21𝑛 (0 ≦ 𝑡 ≦ 1)となっているので(下の方のプロットを参照せよ), 0 ≦ 𝑡 ≦ 1 のとき
∞
∞ 1
|
𝑓
(𝑡)
−
𝑓
(𝑡)|
≦
𝑛−1
𝑛
∑
∑ 2𝑛 = 1 < ∞
問題:

𝑛=1

となる. ゆえに函数項級数

𝑛=1

𝑓0 (𝑡) + (𝑓1 (𝑡) − 𝑓0 (𝑡)) + (𝑓2 (𝑡) − 𝑓1 (𝑡)) + (𝑓3 (𝑡) − 𝑓2 (𝑡)) + ⋯は閉区間 [0,1] 上で一様絶対収束する. これは 𝑓𝑛 (𝑡) が一様収束することを意味する. □注意: 0 ≦ 𝑡 ≦ 1 のとき

∞
∞
∞ 1
𝑓(𝑡) = 𝑓𝑛 (𝑡) + ∑(𝑓𝑘+1 (𝑡) − 𝑓𝑘 (𝑡)), ∑ |𝑓𝑘+1 (𝑡) − 𝑓𝑘 (𝑡)| ≦ ∑ 2𝑘+1
= 21𝑛
𝑘=𝑛

なので,

𝑘=𝑛

|𝑓𝑛 (𝑡) − 𝑓(𝑡)| ≦ 21𝑛 (0 ≦ 𝑡 ≦ 1)

𝑘=𝑛

𝑥𝑛 (𝑡), 𝑦𝑛 (𝑡) の極限をそれぞれ 𝑥(𝑡), 𝑦(𝑡) と書く. そのとき, 任意の正方形上の点 (𝑎,𝑏) ∈ [0,1] × [0,1] に対して, ある実𝑡 ∈ [0,1] で (𝑥(𝑡),𝑦(𝑡)) = (𝑎,𝑏) を満たすものが存在することを示せ.
解答例: 𝑥𝑛 (𝑡), 𝑦𝑛 (𝑡) の作り方より(下の方のプロットを参照せよ), 任意の正の整数 𝑛 に対して, ある 𝑡𝑛 ∈ [0,1] で|𝑥𝑛 (𝑡𝑛 ) − 𝑎| ≦ 21𝑛 , |𝑦𝑛 (𝑡𝑛 ) − 𝑏| ≦ 21𝑛を満たすものが存在する. 数列 𝑡𝑛 は閉区間 [0,1] 上の数列なので, そのある部分列 𝑡𝑛𝑘 (1 ≦ 𝑛1 < 𝑛2 < ⋯ ) で収束するものが存在する. その収束先を 𝑡 ∈ [0,1] と書く. 任意に 𝜀 > 0 を取る. 𝑥(𝑡) , 𝑦(𝑡) の連続性より, 十分に 𝑘 を大きくすると|𝑥(𝑡) − 𝑥(𝑡𝑛𝑘 )| ≦ 𝜀, |𝑦(𝑡) − 𝑦(𝑡𝑛𝑘 )| ≦ 𝜀.
ゆえに, 以上と上の注意の内容を合わせると, 𝑘 → ∞ で,|𝑥(𝑡) − 𝑎| ≦ |𝑥(𝑡) − 𝑥(𝑡𝑛𝑘 )| + |𝑥(𝑡𝑛𝑘 ) − 𝑥𝑛𝑘 (𝑡𝑛𝑘 )| + |𝑥𝑛𝑘 (𝑡𝑛𝑘 ) − 𝑎| ≦ 𝜀 + 21𝑛𝑘 + 21𝑛𝑘 → 𝜀,|𝑦(𝑡) − 𝑏| ≦ |𝑦(𝑡) − 𝑦(𝑡𝑛𝑘 )| + |𝑦(𝑡𝑛𝑘 ) − 𝑦𝑛𝑘 (𝑡𝑛𝑘 )| + |𝑦𝑛𝑘 (𝑡𝑛𝑘 ) − 𝑏| ≦ 𝜀 + 21𝑛𝑘 + 21𝑛𝑘 → 𝜀.
𝜀 > 0 はいくらでも小さくできるので, (𝑥(𝑡),𝑦(𝑡)) = (𝑎,𝑏). □問題:
数In [28]:

Out[28]:

1
2
3
4
5
6
7
8
9
10
11
12

peano_x₀(t) = t < 1/2 ? 1/2 : tpeano_y₀(t) = t < 1/2 ? t : 1/2​
n = 0
t = 0:1/(2*4^n):1
x = peano_x₀.(t)y = peano_y₀.(t)plot(size=(200,200))
plot!(title="Peano($n)", titlefontsize=10)
plot!(xlims=(0,1), ylims=(0,1))
plot!(aspect_ratio=1, legend=:false)plot!(x, y)In [29]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

function peano_x(n, t)
if n == 0
peano_x₀(t)else
if t < 1/(2*4^n)
1/(2*2^n)elseif t < 1/4
peano_y(n-1, 4t)/2
elseif t < 2/4
peano_x(n-1, 4t-1)/2
elseif t < 3/4(1-peano_x(n-1, 3-4t))/2 + 1/2
else(1-peano_y(n-1, 4-4t))/2 + 1/2
end
end
end
​
function peano_y(n, t)
if n == 0
peano_y₀(t)else
if t < 1/(2*4^n)2^n*telseif t < 1/4
peano_x(n-1, 4t)/2
elseif t < 2/4
peano_y(n-1, 4t-1)/2 + 1/2
elseif t < 3/4
peano_y(n-1, 3-4t)/2 + 1/2
else
peano_x(n-1, 4-4t)/2
end
end
end
​
P = Plots.Plot[]
for n in 0:8
t = 0:1/(2*4^n):1
x = peano_x.(n,t)
y = peano_y.(n,t)
p = plot()plot!(title="Peano($n)", titlefontsize=10)
plot!(xlims=(0,1), ylims=(0,1))
plot!(aspect_ratio=1, legend=:false)plot!(x, y)
push!(P, p)endplot(P..., size=(800,800), layout=@layout(grid(3,3)))
pngplot()

In [30]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

P = Plots.Plot[]
for n in 0:8
t = 0:1/(2*4^n):1
x = peano_x.(n,t)
y = peano_y.(n,t)
p = plot()plot!(title="Peano($n)", titlefontsize=10)
plot!(xlims=(0,1), ylims=(0,1))
plot!(aspect_ratio=1, legend=:false)plot!(t, x)
plot!(t, y)
push!(P, p)endplot(P..., size=(800,800), layout=@layout(grid(3,3)))
pngplot()

In [31]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

n = 8
px = plot()
py = plot()t = 0:1/(2*4^n):1
x = peano_x.(n,t)
y = peano_y.(n,t)
plot!(px, title="Peano_x($n)", titlefontsize=10)
plot!(py, title="Peano_y($n)", titlefontsize=10)
plot!(px, xlims=(0,1), ylims=(0,1))
plot!(py, xlims=(0,1), ylims=(0,1))
plot!(px, legend=:topleft)
plot!(py, legend=:topleft)
plot!(px, t, x, label="$n", lw=0.3)
plot!(py, t, y, label="$n", lw=0.3)
plot(px, py, size=(600,500), layout=@layout(grid(2,1)), legend=false)
pngplot()

In [32]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

P = Plots.Plot[]
for n in 1:9
t = 0:1/(2*4^n):1
dx = peano_x.(n,t) - peano_x.(n-1,t)dy = peano_y.(n,t) - peano_y.(n-1,t)p = plot()plot!(title="Peano($n) - Peano($(n-1))", titlefontsize=10)
plot!(xlims=(0,1), ylims=(-1/2,1/2))
plot!(legend=:false)plot!(t, dx, lw=0.7)
plot!(t, dy, lw=0.7)
push!(P, p)endplot(P..., size=(800,600))
pngplot()

05 微分可能函数
黒木玄
2018-04-20～2018-04-03, 2023-06-22
Copyright 2018,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/05%20differentiable%20functions.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/05%20differentiable%20functions.ipynb)
https://genkuroki.github.io/documents/Calculus/05%20differentiable%20functions.pdf(https://genkuroki.github.io/documents/Calculus/05%20differentiable%20functions.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 Landau記号
1.1 数列版
1.2 連続版
 2 Laudau記号を使った微分可能性の定義
2.1 連続函数
2.2 微分可能函数
2.3級函数
 3 微分商の記号法について
3.1 微分商は真の分数商ではないという誤解について
3.2 微分商の正当化
 4 微分の基本性質
4.1 Leibnitz則
4.2 合成函数の微分則 5 平均値の定理
5.1 Rolleの定理
5.2 微分可能函数の平均値の定理
5.3級函数の積分版平均値の定理
5.4 Cauchyの平均値の定理
 6 極限の微分・積分の順序交換
6.1 極限と積分の順序交換
6.2 極限と微分の順序交換

𝐶𝑛𝐶1

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGK
using PyPlot: PyPlot, plt

In [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 Landau記号
1.1 数列版
数列

𝑎𝑛 , 𝑏𝑛 についてが成立するとき, 量

例えば

𝑎𝑛 を 𝑜(𝑏𝑛 ) と書くことがある:

𝑎𝑛 → 0 (𝑛 → ∞)𝑏𝑛

𝑛100= 𝑜(𝑛2 ).𝑛𝑛 = 𝑜(𝑒 ).
log𝑛 = 𝑜(𝑛).
ある非負の定数 𝑀 が存在して, 十分大きな 𝑛 について

𝑎𝑛 = 𝑜(𝑏𝑛 ).

が成立するとき, 量𝑎𝑛 を 𝑂(𝑏𝑛 ) と書くことがある:|𝑎𝑛 | ≦ 𝑀|𝑏𝑛 |𝑎𝑛 = 𝑂(𝑏𝑛 ).

例えば

3𝑛2 + 100𝑛 + 26 = 𝑂(𝑛2 ).
𝑛log𝑛 − 𝑛 + 12 log(2𝜋𝑛) = 𝑂(𝑛log𝑛).
以上で定義した 𝑜(𝑏𝑛 ) と 𝑂(𝑏𝑛 ) をLandau記号と呼ぶ.
違うものを同じLandau記号の 𝑜(𝑏𝑛 ) や 𝑂(𝑏𝑛 ) で表すことのがあるので注意しなければいけない. 例えば 𝑂(𝑛) − 𝑂(𝑛) = 0 とはならず, 𝑂(𝑛) − 𝑂(𝑛) = 𝑂(𝑛) となる.
𝑜(𝑏𝑛 ) の量は 𝑂(𝑏𝑛 ) の量にもなる.
問題: 𝑛 → ∞ のとき 𝑎𝑛 /𝑏𝑛 が収束するならば 𝑎𝑛 = 𝑂(𝑏𝑛 ) であることを示せ.
解答例: 𝑎𝑛 /𝑏𝑛 が 𝐶 に収束しているなら, |𝑎𝑛 /𝑏𝑛 | は |𝐶| に収束するので, 𝑀 = |𝐶| + 1 とおくと, 十分大きな 𝑛 について
|𝑎𝑛 /𝑏𝑛 | ≦ |𝐶| + 1 = 𝑀 すなわち |𝑎𝑛 | ≦ 𝑀|𝑏𝑛 | が成立する. □1.2 連続版

𝑥 → ∞ におけるLandau記号 𝑜(𝑔(𝑥)), 𝑂(𝑔(𝑥)) は上の数列の場合と同様に定義される.
有限の 𝑎 に関する 𝑥 → 𝑎 におけるLandau記号 𝑜(𝑔(𝑥)) , 𝑂(𝑔(𝑥)) も同様に定義される.
𝑓(𝑥) → 0 (𝑥 → 𝑎)𝑔(𝑥)が成立するとき, 𝑓(𝑥) = 𝑜(𝑔(𝑥)) と書き, ある非負の定数 𝑀 とある 𝛿 > 0 が存在して|𝑓(𝑥)| ≦ 𝑀|𝑔(𝑥)| (|𝑥 − 𝑎| ≦ 𝛿)が成立するとき, 𝑓(𝑥) = 𝑂(𝑔(𝑥)) と書く.
例えば,𝑥 → 0 において 𝑥log𝑥 → 0 なので
𝑥 = 𝑜(1/log𝑥), log𝑥 = 𝑜(1/𝑥) (𝑥 → 0).
𝑥 → 𝑎 において,(𝑥 − 𝑎)2 + (𝑥 − 𝑎)3 + (𝑥 − 𝑎)4 + ⋯ = 𝑂 ((𝑥 − 𝑎)2 ) = 𝑜(𝑥 − 𝑎) (𝑥 → 𝑎).
どんなに大きな 𝑛 についても, 𝑥 ↘ 0 において 𝑒−1/𝑥 /𝑥𝑛 → 0 なのでexp(− 𝑥1 ) = 𝑜(𝑥𝑛 ) (𝑥 ↘ 0).

問題: 以上に出て来た例を確認(証明)せよ. さらに以上に出て来ていない例で面白そうなものを自分で作れ.

□

2 Laudau記号を使った微分可能性の定義
2.1 連続函数

𝑓(𝑥) が 𝑥 において連続であることの定義は, Landau記号を使うと𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑜(1) (ℎ → 0)と書ける. 𝑜(1) は ℎ → 0 で 0 に収束する項を意味する. 定義域に含まれるすべての 𝑥 において函数 𝑓(𝑥) が連続であるとき, 函数 𝑓(𝑥) は連続函数であるという.
函数

2.2 微分可能函数函数

𝑓(𝑥) が 𝑥 において微分可能であることの定義は, ある数 𝑓 ′ (𝑥) が存在して,𝑓(𝑥 + ℎ) − 𝑓(𝑥) → 𝑓 ′ (𝑥) (ℎ → 0)ℎが成立することである. この条件はLandau記号を使うと,

𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑓 ′ (𝑥)ℎ + 𝑜(ℎ)
と書き直される. ここで 𝑜(ℎ) は ℎ → 0 のとき 𝑜(ℎ)/ℎ → 0 となるような量を意味する. 𝑜(ℎ) を ℎ より高次の微小量と呼ぶことがある.

定義域に含まれるすべてのに対応させる函数を

𝑓 ′ (𝑥)𝑥 において函数 𝑓(𝑥) が微分可能であるとき, 函数 𝑓(𝑥) は微分可能函数であるという. 𝑥 を微係数
𝑓(𝑥) の導函数(derivative)と呼ぶ.

以上をまとめると,𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑜(1) (ℎ → 0).
微分可能性:
𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑓 ′ (𝑥)ℎ + 𝑜(ℎ) (ℎ → 0).
連続性:

このように書けばこれらは

𝑓(𝑥 + ℎ) = 𝑎0 + 𝑎1 ℎ + 𝑎2 ℎ + ⋯ + 𝑎𝑘 ℎ𝑘 + 𝑜(ℎ𝑘)の形に一般化可能であることが明瞭になる. 後で実際にこの一般化を実行する(Taylorの定理).
注意: 解析学では知りたい量 = 相対的によくわかる量 + 誤差というような理解の仕方が重要になる場合が多い. 函数の連続性の定義の

𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑜(1) (ℎ → 0)𝑓(𝑥 + ℎ), 𝑓(𝑥), 𝑜(1) のそれぞれ「知りたい量」「想定的によくわかる量」「誤差」とも解釈できる. 函数の微分においては,
可能性の定義𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑓 ′ (𝑥)ℎ + 𝑜(ℎ) (ℎ → 0)
においては, 𝑓(𝑥 + ℎ), 𝑓(𝑥) + 𝑓 ′ (𝑥)ℎ , 𝑜(ℎ) のそれぞれ「知りたい量」「想定的によくわかる量」「誤差」とも解釈できる.
𝑓(𝑥) + 𝑓 ′ (𝑥)ℎ の中には ℎ と同オーダーの微小量 𝑓 ′ (𝑥)ℎ を含んでいるので, 誤差の部分は ℎ より微小なオーダーになっていなければいけない. 実際, 微分可能性の定義において, 誤差の部分は 𝑜(ℎ) のオーダーになっていなければいけないとしている.
𝑜(ℎ) は ℎ で割って, ℎ → 0 としたときに 0 に収束する量なので, ℎ よりも微小なオーダーになっていると思える. □2.3

𝐶 𝑛 級函数

連続函数を

𝐶 0 級函数と呼ぶ.

𝑓 が微分可能でかつ導函数が連続なとき 𝑓 は 𝐶 1 級であるという. そのとき 𝑓 は連続微分可能であると言うこともある.
より一般に, 𝑓 が 𝑛 回微分可能でかつその 𝑛 階の導函数 𝑓 (𝑛) が連続なとき, 𝑓 は 𝐶 𝑛 級であるという.
任意有限回微分可能な函数を 𝐶 ∞ 級函数と呼ぶ.
𝐶 𝑛 級函数(class-𝐶 𝑛 function)を 𝐶 𝑛 函数 (𝐶 𝑛 -function) と呼ぶことも多い.
問題: 微分可能だが 𝐶 1 級でない函数の例を挙げよ.
解答例: 函数 𝑓 を
𝑓(𝑥) = { 𝑥02 sin(1/𝑥) (𝑥(𝑥 ≠= 0)0)と定める. このとき, 𝑥 ≠ 0 ならば 𝑓 ′ (𝑥) = 2𝑥sin(1/𝑥) − cos(1/𝑥) である. そして, 𝑥 → 0 のとき
𝑓(𝑥) − 𝑓(0) = 𝑥2 sin(1/𝑥) = 𝑥sin(1/𝑥) → 0𝑥−0𝑥′なので, 𝑓 は 𝑥 = 0 でも微分可能であり, 𝑓 (0) = 0 である. これで 𝑓 が微分可能であることがわかった. しかし, 𝑥 → 0 で
𝑓 ′ (𝑥) の中の cos(1/𝑥) が無限に振動して収束しないので, 𝑓 ′ は 𝑥 = 0 で不連続である. これで 𝑓 は 𝐶 1 級ではないことがわか
った. □
函数

𝑥2 sin(1/𝑥)𝑛𝑥𝑛 sin(1/𝑥)

問題: 上の問題のを非負の整数 に対するで置き換えた場合について考えてみよ. その場合に得らえる函数は何回微分可能であるか? 最大回数の微分の結果得られる導函数は連続であるか? まず,の場合について考えてみよ.

□

𝑛 = 0,1,3,4

解答例略.
In [3]:



1
2
3
4
5
6
7
8
9
10

f(x) = x == 0 ? 0 : x^2*sin(1/x)g(x) = x == 0 ? 0 : 2x*sin(1/x) - cos(1/x)​
p1 = plot(size=(400, 250), xlabel="x", ylabel="y", legend=:topleft)
plot!(f, -0.2, 0.2, ylims=(-0.05, 0.05), label="y = x^2 sin(1/x)")​p2 = plot(size=(400, 250), xlabel="x", ylabel="y", legend=:topleft)
plot!(g, -0.2, 0.2, ylims=(-1.1, 2.0), label="y = 2x sin(1/x) - cos(1/x)")​plot(p1, p2, size=(700, 250))

Out[3]:

3 微分商の記号法について
3.1 微分商は真の分数商ではないという誤解について微分可能函数𝑦 = 𝑓(𝑥) の導函数を𝑑𝑦 = 𝑑𝑓(𝑥) = 𝑓 ′ (𝑥)𝑑𝑥 𝑑𝑥など色々な記号で書くことがある. そのときに,

𝑑𝑦 は分数ではない.
𝑑𝑥
𝑑𝑦 は正確には 𝑑𝑦 ÷ 𝑑𝑥 を意味しない.
𝑑𝑥などと困ったことをいう人達が存在する.
実際には適切に𝑑𝑓(𝑥) を一切の誤差がない正確な分数を意味する
𝑑𝑦, 𝑑𝑓(𝑥), 𝑑𝑥 などの記号を定義することによって, 𝑑𝑦=
𝑑𝑥 𝑑𝑥とみなすこともできる. そのスタイルは現代的な微分形式の定義にも繋がる話でもあるので, 「分数ではない」などと誤解したままにしておくことはもったいないことである.
例えば, 高木貞治著『解析概論』の第13節の最後(p.37)には次のように書いてある:

𝑑𝑦 において 𝑑𝑥 および 𝑑𝑦 が各々独立の意味を有するから, 𝑑𝑦 は商としての意味を有する. すなわ𝑑𝑥𝑑𝑥
ち‘微分商’というものである.
～, 記号

このように, 現代的の精密論法によって, Leibnizの漠然たる‘微分商’が合理化される. ～もちろん, 高木貞治が正しい.

3.2 微分商の正当化

𝑦 = 𝑓(𝑥) は微分可能であるとし, 𝑥 を任意に固定しておく.
𝑦 = 𝑓(𝑥) は 𝑥 で微分可能なので, ある数 𝑓 ′ (𝑥) が存在して,𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑓 ′ (𝑥)ℎ + 𝑜(ℎ)
が成立している. ℎ をℎ = 𝑑𝑥 = 𝛥𝑥と書くことにし,𝛥𝑦 = 𝛥𝑓(𝑥) = 𝑓(𝑥 + 𝛥𝑥) − 𝑓(𝑥), 𝑑𝑦 = 𝑑𝑓(𝑥) = 𝑓 ′ (𝑥)𝑑𝑥

とおく. このとき,

𝛥𝑦 = 𝑑𝑦 + 𝑜(𝛥𝑥), 𝛥𝑓(𝑥) = 𝑓(𝑥 + 𝑑𝑥) − 𝑓(𝑥) = 𝑑𝑓(𝑥) + 𝑜(𝑑𝑥).
𝛥𝑦 = 𝛥𝑓(𝑥) と 𝑑𝑦 = 𝑑𝑓(𝑥) の定義の違いに注意せよ. それらは 𝛥𝑥 = 𝑑𝑥 よりも高次の微小量 𝑜(𝛥) = 𝑜(𝑑𝑥) の分だけ違う.
このように定義しておけば, 自明に真の分数商として,

𝑑𝑦 = 𝑑𝑓(𝑥) = 𝑓 ′ (𝑥)𝑑𝑥 𝑑𝑥が成立している. このような「みもふたもない方法」によって 𝑑𝑦 や 𝑑𝑓(𝑥) のような量を定義することは現代数学の特徴の一つでもある. 𝑑𝑥 や 𝑑𝑦 = 𝑑𝑓(𝑥) は「微小」である必要はまったくない. 例えば 𝑑𝑥 = 100 であっても構わない.

In [4]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

f(x) = x^2
df(x,dx) = 2x*dx
g(x,ξ) = f(x) + df(x, ξ-x)x = 3
dx = 2
ξ = 2:0.01:6.5​
P = plt.figure(figsize=(6.4,6))
plt.ylim(minimum(g.(x, ξ)), 40)
plt.xlabel("ξ")
plt.ylabel("y")
plt.plot(ξ, f.(ξ), label="y = f(ξ)", color="black")
plt.plot(ξ, g.(x, ξ), label="y = f(x) + f'(x)(ξ-x)", color="blue")plt.plot([x, x], [minimum(g.(x, ξ)), f(x)], label="ξ = x", color="gray", ls="dashed")
plt.plot([x+dx, x+dx], [minimum(g.(x, ξ)), f(x+dx)], color="lightgrey", ls="dotted")
plt.plot([x+dx, x+dx], [f(x), g(x,x+dx)], label="ξ = x + dx", color="orange", ls="dotted
plt.plot([minimum(ξ), maximum(ξ)], [f(x), f(x)], color="gray", ls="dotted")
plt.plot([x, x+dx], [f(x), f(x)], label="y = f(x)", color="red", ls="dotted")
plt.plot([minimum(ξ), maximum(ξ)], [f(x+dx), f(x+dx)], label="y = f(x+dx)", color="black
plt.plot([minimum(ξ), maximum(ξ)], [g(x,x+dx), g(x,x+dx)], label="y = f(x) + df(x)dx", c
plt.text(2.8, 5, "x")plt.text(5.1, 5, "x + dx")
plt.text(2.5, 10, "y")plt.text(3.8, 22, "y + dy", color="blue")
plt.text(3.8, 26, "y + Δy", color="black")
plt.text(5, 33, "y = f(ξ)", color="black")
plt.text(5.8, 30.5, "tangent line", color="blue")plt.annotate("dx", xy=(3.01, 8), xytext=(3.9, 7.5), arrowprops=Dict("arrowstyle" => "->"
plt.annotate("", xy=(4.99, 8), xytext=(4.1, 8), arrowprops=Dict("arrowstyle" => "->"))
plt.annotate("dy", xy=(5.1, 9.01), xytext=(5.01, 15), arrowprops=Dict("arrowstyle" => "->plt.annotate("", xy=(5.1, 21), xytext=(5.1, 16), arrowprops=Dict("arrowstyle" => "->"))
plt.annotate("Δy", xy=(5.4, 9.01), xytext=(5.31, 15), arrowprops=Dict("arrowstyle" => "->plt.annotate("", xy=(5.4, 25), xytext=(5.4, 16), arrowprops=Dict("arrowstyle" => "->"))
plt.text(2, 38, "Δy = f(x+Δx) - f(x), Δx = dx")
plt.text(2, 34, "tangent line: y = f(x) + f'(x)(ξ - x)", color="blue")
plt.text(2, 32, "dy = f'(x)dx,
dy/dx = f'(x)", color="blue")#plt.legend()#display(P);4 微分の基本性質
4.1 Leibnitz則
微分可能な函数

証明:

𝑓(𝑥), 𝑔(𝑥) の積 ℎ(𝑥) = 𝑓(𝑥)𝑔(𝑥) も微分可能であり,ℎ′(𝑥) = 𝑓 ′ (𝑥)𝑔(𝑥) + 𝑓(𝑥)𝑔′ (𝑥).

𝑓,𝑔 は微分可能なので,

𝑓(𝑥 + ℎ) = 𝑓(𝑥) + 𝑓′ ′ (𝑥)ℎ + 𝜀(ℎ)ℎ, 𝜀(ℎ) → 0 (ℎ → 0),𝑔(𝑥 + ℎ) = 𝑔(𝑥) + 𝑔 (𝑥)ℎ + 𝛿(ℎ)ℎ, 𝛿(ℎ) → 0 (ℎ → 0)と書ける. ゆえにℎ(𝑥 + ℎ) ′= 𝑓(𝑥′ + ℎ)𝑔(𝑥 + ℎ) = ′𝑓(𝑥)𝑔(𝑥) + (𝑓 ′ (𝑥)𝑔(𝑥)′ + 𝑓(𝑥)𝑔′ (𝑥))ℎ + 𝜂(ℎ)ℎ,
𝜂(ℎ) = 𝑓 (𝑥)𝑔 (𝑥)ℎ + (𝑓(𝑥) + 𝑓 (𝑥)ℎ)𝛿(ℎ) + (𝑔(𝑥) + 𝑔 (𝑥)ℎ)𝜀(ℎ) + 𝜀(ℎ)𝛿(ℎ)ℎとなることを確認できる. そして, ℎ → 0 のとき 𝜂(ℎ) → 0 なので, ℎ も微分可能で ℎ ′ (𝑥) = 𝑓 ′ (𝑥)𝑔(𝑥) + 𝑓(𝑥)𝑔′ (𝑥) となることがわかる. □問題: 部分可能な函数 𝑓,𝑔 について
𝑑 𝑛 (𝑓(𝑥)𝑔(𝑥)) = 𝑛 𝑛 𝑓 (𝑛−𝑘) (𝑥)𝑔(𝑘) (𝑥)∑ (𝑘)( 𝑑𝑥 )
𝑘=0となることを示せ.
解法1:𝑛 に関する帰納法. 𝑛 = 0 のとき

𝑛 = 1 のとき
𝑛 = 2 のとき

𝑛 = 3 のとき

𝑛 = 4 のとき

0(𝑓𝑔)(0) = 𝑓𝑔 = ∑ (𝑘0)𝑓 (0−𝑘) 𝑔(𝑘) .
𝑘=0

1(𝑓𝑔)′ = 𝑓 ′ 𝑔 + 𝑓 𝑔′ = ∑ (𝑘1)𝑓 (1−𝑘) 𝑔(𝑘) .
𝑘=0(𝑓𝑔)″ = (𝑓″′ 𝑔 + 𝑓′𝑔′′)′ ′ ′ ″= 𝑓 𝑔 + 𝑓 𝑔 + 𝑓 𝑔 + 𝑓𝑔
2
= 𝑓 ″ 𝑔 + 2𝑓 ′ 𝑔′ + 𝑓 𝑔″ = ∑ (𝑘2)𝑓 (2−𝑘) 𝑔(𝑘) .
𝑘=0(𝑓𝑔)‴ = (𝑓‴″ 𝑔 + 2𝑓″ ′ 𝑔′ ′ + 𝑓 𝑔″″ )′′ ′ ″ ′ ″ ‴= 𝑓 𝑔 + 𝑓 𝑔 + 2𝑓 𝑔 + 2𝑓 𝑔 + 𝑓 𝑔 + 𝑓 𝑔
3= 𝑓 ‴ 𝑔 + 3𝑓 ″ 𝑔′ + 3𝑓 ′ 𝑔″ + 𝑓 𝑔‴ = ∑ (𝑘3)𝑓 (3−𝑘) 𝑔(𝑘) .
𝑘=0(𝑓𝑔)‴ = (𝑓⁗‴ 𝑔 + 3𝑓‴″ 𝑔′ ′ + 3𝑓‴′ 𝑔′″ + 𝑓 𝑔″‴ )″′ ″ ″ ′ ‴ ′ ‴ ⁗= 𝑓 𝑔 + 𝑓 𝑔 + 3𝑓 𝑔 + 3𝑓 𝑔 + 3𝑓 𝑔 + 3𝑓 𝑔 + 𝑓 𝑔 + 𝑓 𝑔
4= 𝑓 ⁗ 𝑔 + 4𝑓 ‴ 𝑔′ + 6𝑓 ″ 𝑔″ + 4𝑓 ′ 𝑔‴ + 𝑓 𝑔⁗ = ∑ (𝑘4)𝑓 (4−𝑘) 𝑔(𝑘) .
𝑘=0𝑛 の場合に成立しているならば, (𝑘 −𝑛 1) + (𝑘𝑛) = (𝑛 +𝑘 1) より,

𝑛 𝑓 (𝑛−𝑘) 𝑔(𝑘) ′(∑)
𝑘=0 (𝑘)𝑛 𝑛𝑛= ∑ (𝑘)𝑓 (𝑛−𝑘+1) 𝑔(𝑘) + ∑ (𝑘𝑛)𝑓 (𝑛−𝑘) 𝑔(𝑘+1)
𝑘=0
𝑘=0
𝑛 𝑛
𝑛+1
= ∑ (𝑘)𝑓 (𝑛−𝑘+1) 𝑔(𝑘) + ∑ (𝑘 −𝑛 1)𝑓 (𝑛+1−𝑘) 𝑔(𝑘)𝑘=0
𝑘=1
𝑛+1 𝑛 + 1
= ∑ ( 𝑘 )𝑓 (𝑛+1−𝑘) 𝑔(𝑘) .
𝑛(𝑓𝑔)(𝑛+1) =と𝑛 + 1 の場合も成立している. □解法2: 二項定理より,なので, これを

𝑘=0∂ + ∂ 𝑛 = 𝑛 𝑛 ∂ 𝑛−𝑘 ∂ 𝑘( ∂𝑥 ∂𝑦 ) ∑𝑘=0 (𝑘)( ∂𝑥 ) ( ∂𝑦 )𝑓(𝑥)𝑔(𝑦) に作用させると,4.2 合成函数の微分則微分可能な函数

証明:

𝑓(𝑦), 𝑔(𝑥) の合成 ℎ(𝑥) = 𝑓(𝑔(𝑥)) も微分可能であり,ℎ′(𝑥) = 𝑓 ′ (𝑔(𝑥))𝑔′ (𝑥).

𝑓,𝑔 は微分可能なので,

𝑓(𝑦 + 𝑘) = 𝑓(𝑦) + 𝑓′ ′ (𝑦)𝑘 + 𝜀(𝑘)𝑘, 𝜀(𝑘) → 0 (𝑘 → 0),𝑔(𝑥 + ℎ) = 𝑔(𝑥) + 𝑔 (𝑥)ℎ + 𝛿(ℎ)ℎ, 𝛿(ℎ) → 0 (ℎ → 0)と書ける. ゆえに 𝑦 = 𝑔(𝑥) , 𝑘 = 𝑔′ (𝑥)ℎ + 𝛿(ℎ)ℎ とおくと, ℎ → 0 のとき 𝑘 → 0 であり,ℎ(𝑥 + ℎ) ′= 𝑓(𝑔(𝑥 + ℎ)) = 𝑓(𝑦′ + 𝑘) = 𝑓(𝑔(𝑥)) + 𝑓 ′ (𝑔(𝑥))𝑔′ (𝑥)ℎ + 𝜂(ℎ)ℎ,
𝜂(ℎ) = 𝑓 (𝑔(𝑥))𝛿(ℎ) + 𝜀(𝑘)(𝑔 (𝑥) + 𝛿(ℎ))
であり, ℎ → 0 のとき 𝜂(ℎ) → 0 となるので, ℎ も微分可能でかつ ℎ ′ (𝑥) = 𝑓 ′ (𝑔(𝑥))𝑔′ (𝑥) となることがわかる. □5 平均値の定理
5.1 Rolleの定理

𝑎 < 𝑏 であるとし, 𝑓 は閉区間 [𝑎,𝑏] 上の実数値連続函数であり, 開区間 (𝑎,𝑏) 上で微分可能であると仮定する. も𝑓(𝑎) = 𝑓(𝑏) ならばある 𝜉 ∈ (𝑎,𝑏) で 𝑓 ′ (𝜉) = 0 を満たすものが存在する.
証明: 閉区間 [𝑎,𝑏] 上の実数値連続函数 𝑓 は最大値 𝑓(𝜉), 𝜉 ∈ [𝑎,𝑏] と最小値 𝑓(𝜂), 𝜂 ∈ [𝑎,𝑏] を持つ. もしも 𝑓 が [𝑎,𝑏] 上の定数函数ならば任意の 𝑥 ∈ (𝑎,𝑏) で 𝑓 ′ (𝑥) = 0 となる. 𝑓 は [𝑎,𝑏] 上の定数函数ではないと仮定する. そのとき, 𝑓 の最大値
𝑓(𝜉) または最小値 𝑓(𝜂) は 𝑓(𝑎) = 𝑓(𝑏) と一致しない. 最大値 𝑓(𝜉) が 𝑓(𝑎) = 𝑓(𝑏) と一致しないと仮定しよう. (最小値の側が一致しない場合も以下の議論は同様である. もしくは 𝑓 の代わりに −𝑓 を考えればよい.) そのとき 𝜉 ≠ 𝑎,𝑏 となるので
𝜉 ∈ (𝑎,𝑏) である. 𝑓(𝜉) は 𝑓 の 𝐼 上での最大値なので, 0 < ℎ < min{𝜉 − 𝑎,𝑏 − 𝜉} のとき, 𝑓(𝜉 − ℎ)−ℎ− 𝑓(𝜉) ≧ 0 なのでℎ ↘ 0 として 𝑓 ′ (𝜉) ≧ 0 となり, 𝑓(𝜉 + ℎ)ℎ − 𝑓(𝜉) ≦ 0 なので ℎ ↘ 0 として 𝑓 ′ (𝜉) ≦ 0 となることがわかる. ゆえに
𝑓 ′ (𝜉) = 0 . □注意: Rolleの定理の証明は 𝑓(𝑎) = 𝑓(𝑏) のとき, 𝑎 と 𝑏 のあいだで 𝑓(𝑥) が極値を取り, そこで微係数が 0 になることを意味している. グラフを描いてみれば当然成立して欲しい結果であることがわかる. □Rolleの定理:
しも5.2 微分可能函数の平均値の定理
平均値の定理:𝑎 < 𝑏 であるとし, 𝑓 が閉区間 [𝑎,𝑏] 上の連続函数であり, 開区間 (𝑎,𝑏) 上で微分可能函数ならば, ある実数 𝜉 で𝑓(𝑏) − 𝑓(𝑎) = 𝑓 ′ (𝜉), 𝑎 < 𝜉 < 𝑏𝑏−𝑎を満たすものが存在する.

𝑔(𝑥) = 𝑓(𝑥) − 𝑓(𝑏)𝑏 −− 𝑎𝑓(𝑎) 𝑥 とおくと, 𝑔(𝑎) = 𝑔(𝑏) = 𝑏𝑓(𝑎)𝑏 −− 𝑎𝑓(𝑏)なので, Rolleの定理より, ある 𝜉 ∈ (𝑎,𝑏) で𝑎𝑔′ (𝜉) = 0 を満たすものが存在する. 0 = 𝑔′ (𝜉) = 𝑓 ′ (𝜉) − 𝑓(𝑏)𝑏 −− 𝑎𝑓(𝑎) なので欲しい結果が得られた. □𝑓(𝑏) − 𝑓(𝑎) (𝑥 − 𝑎) + 𝑓(𝑎) を平行移動して 𝑦 = 𝑓(𝑥) のグラフ
注意: 平均値の定理は (𝑎,𝑓(𝑎)) と (𝑏,𝑓(𝑏)) を通る直線 𝑦 =𝑏−𝑎に接するようにできるという意味を持っている. 次のセルの図も見よ. □証明:

In [5]:



1
2
3
4
5
6
7
8
9

f(x) = 2 - 3x + x^2g(x) = x - 2
x = 0.9:0.05:3.1
plot(size=(500,350))
plot!(legend=:topleft)
plot!(x, f.(x), label="y = f(x)")
plot!([1,3], [f(1), f(3)], label="straight line from (a,f(a)) to (b,f(b))")plot!([1,3], [g(1), g(3)], ls=:dash, label="parallel tangent line")plot!([2,2], [-1,0], ls=:dash, label="x = xi")

Out[5]:

𝑓 は微分可能函数であるとし, 𝑎 < 𝑏 であるとする. 𝑎 < 𝑡 < 𝑏 で |𝑓 ′ (𝑡)| ≦ 𝑀 となっているならば|𝑓(𝑏) − 𝑓(𝑎)| ≦ 𝑀|𝑏 − 𝑎| となる.
証明: 平均値の定理より, ある実数 𝑐 で 𝑓(𝑏) − 𝑓(𝑎) = 𝑓 ′ (𝑐)(𝑏 − 𝑎), 𝑎 < 𝑐 < 𝑏 を満たすものが存在する. そのとき
|𝑓(𝑏) − 𝑓(𝑎)| = |𝑓 ′ (𝑐)||𝑏 − 𝑎| ≦ 𝑀|𝑏 − 𝑎|. □平均値の定理の不等式版:

平均値の定理はこの不等式版の形式で使われることが多い.

𝑓 は微分可能函数であるとし, 𝑎 < 𝑏 であるとする. 𝑎 < 𝑡 < 𝑏 で 𝑓 ′ (𝑡) = 0 ならば 𝑓(𝑏) = 𝑓(𝑎) でなることを示せ.
解答例1: 平均値の定理より, ある実数 𝑐 で 𝑎 < 𝑐 < 𝑏 , 𝑓(𝑏) − 𝑓(𝑎) ≦ 𝑓 ′ (𝑐)(𝑏 − 𝑎) を満たすものが存在する. 𝑎 < 𝑡 < 𝑏 で
𝑓 ′ (𝑡) = 0 なので 𝑓 ′ (𝑐) = 0 となるので, 𝑓(𝑏) − 𝑓(𝑏) = 𝑓 ′ (𝑐)(𝑏 − 𝑎) = 0 である. ゆえに 𝑓(𝑏) = 𝑓(𝑎) となる. □解答例2: 𝑎 < 𝑡 < 𝑏 で |𝑓 ′ (𝑡)| = 0 なので, 平均値の定理(の不等式版)より, |𝑓(𝑏) − 𝑓(𝑎)| ≦ 0|𝑏 − 𝑎| = 0 . ゆえに𝑓(𝑏) = 𝑓(𝑎) となる. □上の問題の結果は, 導函数が恒等的に 0 になる微分可能函数は定数函数になることを意味している.
問題: 𝑓 , 𝑔 は区間 𝐼 上の微分可能函数であるとする. 区間 𝐼 上で恒等的に 𝑓 ′ = 𝑔′ ならば 𝑓 − 𝑔 は区間 𝐼 上の定数函数になる.
解答例: ℎ = 𝑓 − 𝑔 とおくと, 区間 𝐼 上で恒等的に 𝑓 ′ = 𝑔′ ならば区間 𝐼 上で恒等的に ℎ ′ = 0 となるので, 上の問題の結果より, ℎ は区間 𝐼 上の定数函数になる. □
問題:

5.3

𝐶 1 級函数の積分版平均値の定理

平均値の定理の積分版:

𝑎 < 𝑏 であるとする. 閉区間 [𝑎,𝑏] 上の 𝐶 1 級函数 𝑓 について𝑏𝑓(𝑏) − 𝑓(𝑎) = ∫𝑎 𝑓 ′ (𝑡)𝑑𝑡. □証明についてはノート「積分 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/09%20integration.ipynb)」の対応する節 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/09%20integration.ipynb#性質(G)-微分積分学の基本
定理2)を参照せよ.

𝐶1

注意: 解析学ユーザー的には級まで条件を強めても困ることはない. 多くの議論を微分可能性の仮定だけで実行可能なのだが, 導函数が連続函数になるとは限らないので, 議論が技巧的になってしまう傾向がある. そうなることを避けたければ級まで仮定を強めた方がよい その場合に利用できる平均値の定理の積分版の式は積分について知っている人ならばみんな知ってい𝐶1

𝑓 は 𝐶 1 級函数であるとし, 𝑎 < 𝑏 であるとする. 𝑎 < 𝑡 < 𝑏 で |𝑓 ′ (𝑡)| ≦ 𝑀 となっているならば|𝑓(𝑏) − 𝑓(𝑎)| ≦ 𝑀|𝑏 − 𝑎| となる.
平均値の定理の不等式版:𝑏𝑏𝑏|𝑓(𝑏) − 𝑓(𝑎)| = ||||∫𝑎 𝑓 ′ (𝑡)𝑑𝑡|||| ≦ ∫𝑎 |𝑓 ′ (𝑡)|𝑑𝑡 ≦ ∫𝑎 𝑀 𝑑𝑡 = 𝑀|𝑏 − 𝑎|. □||中間値の定理から導かれる補題: 𝑎 < 𝑏 であるとする. 閉区間 [𝑎,𝑏] 上の実数値連続函数 𝑔(𝑡) に対して, ある実数 𝑐 ∈ [𝑎,𝑏] で𝑏∫𝑎 𝑔(𝑡)𝑑𝑡 = 𝑔(𝑐)(𝑏 − 𝑎)証明:

を満たすものが存在する. (数値例が下の方で計算されている.)
証明:[𝑎,𝑏] 上での 𝑔(𝑡) の最小値と最大値をそれぞれ 𝑔(𝛼), 𝑔(𝛽) (𝛼,𝛽 ∈ [𝑎,𝑏]) と書くと,
𝑏𝑏𝑏𝑏𝑔(𝑡)𝑑𝑡≧𝑔(𝛼)𝑑𝑡=𝑔(𝛼)(𝑏−𝑎),𝑔(𝑡)𝑑𝑡≦∫𝑎∫𝑎∫𝑎∫𝑎 𝑔(𝛽)𝑑𝑡 = 𝑔(𝛽)(𝑏 − 𝑎)より

𝑏𝑔(𝛼) ≦ 𝑏 −1 𝑎 ∫𝑎 𝑔(𝑡)𝑑𝑡 ≦ 𝑔(𝛽).
ゆえに, 中間値の定理より, ある実数 𝑐 ∈ [𝑎,𝑏] で𝑏𝑏𝑔(𝑐) = 𝑏 −1 𝑎 ∫𝑎 𝑔(𝑡)𝑑𝑡, すなわち ∫𝑎 𝑔(𝑡)𝑑𝑡 = 𝑔(𝑐)(𝑏 − 𝑎)を満たすものが存在する. □上の中間値の定理から導かれる補題を平均値の定理の積分版に適用すると次が得られる.
平均値の定理の積分版2:

𝑎 < 𝑏 であるとする. 𝑓 が [𝑎,𝑏] 上の実数値 𝐶 1 級函数ならば, ある実数 𝑐 ∈ [𝑎,𝑏] が存在して,𝑏𝑓(𝑏) − 𝑓(𝑎) = ∫𝑎 𝑓 ′ (𝑡)𝑑𝑡 = 𝑓(𝑐)(𝑏 − 𝑎). □In [6]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

# 中間値の定理の証明に使われる二分法の函数としての実装
function bisection(f, a, b; atol=eps(), maxiter=10^3)
f(a)*f(b) > 0 && return NaN
aₙ, bₙ = a, b
k = 0
while abs(aₙ - bₙ) > atolk > maxiter && return NaN
c = (aₙ+bₙ)/2
if f(bₙ)*f(c) ≥ 0
aₙ, bₙ = aₙ, c
else
aₙ, bₙ = c, bₙend
k += 1end
return (aₙ+bₙ)/2
end​# 中間値の定理から導かれる補題を次の g(x) と a,b に適用してみる.
g(x) = 5 + x + 2sin(x)a, b = -3, 5
x = a:0.05:b​
t = symbols("t", real=true)@show g(t)@show S = integrate(g(t), (t,a,b))@show S = N(S)​h(x) = g(x) - S/(b-a)@show h(t)@show c = bisection(h, a, b)​
plot(size=(400,250), legend=:topleft)
plot!(xlims=(a-0.5, b+0.5), lims=(0,9))
plot!(x, g.(x), label="int_a^b g(t) dt", fill=(0, 0.2))
plot!([c,c], [0,g(c)], ls=:dash, label="x = c")plot!(x, fill(g(c), length(x)), fill=(g, 0.5), color=:pink, label="")g(t) = t + 2*sin(t) + 5
S = integrate(g(t), (t, a, b)) = 2*cos(3) - 2*cos(5) + 48
S = N(S) = 45.45269063587265655652357606751036277854379662226439145251111000097103869143915
h(t) = t + 2*sin(t) - 0.6815863294840820695654470084387953473179745777830489315638887501213
798364299
c = bisection(h, a, b) = 0.2285179081631924
Out[6]:

5.4 Cauchyの平均値の定理
Cauchyの平均値の定理:
ある実数 で𝑐𝑓(𝑡), 𝑔(𝑡) は微分可能函数であるとし, 𝑎 < 𝑏 であるとし, 𝑓(𝑏) ≠ 𝑓(𝑎) であると仮定する. このとき,を満たすものが存在する.

□

𝑔(𝑏) − 𝑔(𝑎) = 𝑔′ (𝑐) , 𝑎 < 𝑐 < 𝑏𝑓(𝑏) − 𝑓(𝑎) 𝑓 ′ (𝑐)(∗)

この定理はこのノート群では使用しない. Cauchyの平均値の定理については高木貞治『解析概論』の第18節の定理21とその証明を参照せよ.

(𝑓(𝑡),𝑔(𝑡)) の描く軌跡は平面上の曲線になる. (∗) の最初の式の左辺は, 曲線上の点 (𝑓(𝑎),𝑔(𝑎)), (𝑓(𝑏),𝑔(𝑏))を通る直線の傾きになる. その直線を平行移動して曲線に接するようにできる. 接点 (𝑓(𝑐),𝑔(𝑐)) における測度ベクトル (𝑓 ′ (𝑐), 𝑔′ (𝑐)) の傾きが(∗ ) の最初の式の右辺になる.

問題: 図を描いてみよ.
In [7]:



1
2
3
4
5
6
7
8
9
10
11
12
13

□

f(t) = t/2
g(t) = 2 - 3t/2 + t^2/4h(x) = x - 2
t = 1.8:0.05:6.2
plot(size=(500,350))
plot!(legend=:topleft)
scatter!([f(2)], [g(2)], markersize=3, label="(f(a),g(a))")scatter!([f(6)], [g(6)], markersize=3, label="(f(b),g(b))")plot!(f.(t), g.(t), label="(f(t),g(t))")plot!([f(2),f(6)], [g(2), g(6)], label="")plot!([1,3], [h(1), h(3)], ls=:dash, label="")scatter!([f(4)], [g(4)], markersize=3, label="(f(c),g(c))")plot!([2,2.5], [h(2), h(2.5)], line=:arrow, lw=2, label="velocity vector (f'(c),g'(c))")Out[7]:

6 極限の微分・積分の順序交換
一様収束極限と積分の順序交換が可能であることの証明は易しい. その易しい積分の場合の結果を使って, ある適切な条件を満たす極限と微分の交換可能性を証明しよう.
注意: 計算するときに極限の交換の条件を気にし過ぎて, 必要な計算をできなくなったりしないように注意して欲しい. 極限の順序交換の議論に慣れてくれば, ノータイムで極限の順序交換を論理的に正当化できる場合が増える. そういうやり方に慣れていない段階で「極限の順序交換をしてよいのかどうか気になって計算を先に進められない」ということになるのは非常にまずい.
極限の順序交換を気にせずに, 非常に複雑な微積分の計算をスムーズに行う能力も重要である. 複雑な計算を最後までやり遂げて, 論理的に厳密な正当化を行う価値があることが判明してから, 極限の順序交換に関する細かい議論を行っても遅くない.

□

余談: 筆者は学生時代に複数の解析学が専門の数学者達から「計算するときには極限の順序交換の正当化については気にするべきではない」と教わった.

□

6.1 極限と積分の順序交換

𝑎<𝑏

定理:
であるとし,
も連続函数になり,

𝑓𝑛 は閉区間 𝐼 = [𝑎,𝑏] 上の連続函数の列であり, 𝐼 上で一様収束しているならば, その収束先の函数𝑏𝑏lim ∫𝑎 𝑓𝑛 (𝑥)𝑑𝑥 = ∫𝑎 𝑛→∞
lim 𝑓𝑛 (𝑥)𝑑𝑥𝑛→∞が成立している.

𝑓𝑛

𝑓

証明:
の収束先の函数を と書く. ノート「連続函数(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/04%20continous%20functions.ipynb)」でことはすでに示してある. そして, 閉区間
上のsupノルム
について

[𝑎,𝑏]
‖𝑔‖∞ = 𝑥∈[𝑎,𝑏]sup |𝑔(𝑥)|‖𝑓𝑛 (𝑥) − 𝑓(𝑥)‖∞ ≦ ‖𝑓𝑛 − 𝑓 ‖∞ (𝑥 ∈ [𝑎,𝑏])であり, 𝑓𝑛 が 𝑓 に一様収束することと ‖𝑓𝑛 (𝑥) − 𝑓(𝑥)‖∞ → 0 は同値なので,
|

| |

|

𝑓 も連続函数になる

|| 𝑏 (𝑥)𝑑𝑥 − 𝑏 𝑓(𝑥)𝑑𝑥|| = || 𝑏 ( (𝑥) − 𝑓(𝑥))𝑑𝑥|| ≦ 𝑏 | (𝑥) − 𝑓(𝑥)|𝑑𝑥||∫𝑎 𝑓𝑛|| ||∫𝑎 𝑓𝑛|| ∫𝑎 𝑓𝑛∫𝑎|| ||≦ (𝑏 − 𝑎)‖𝑓𝑛 (𝑥) − 𝑓(𝑥)‖∞ → 0 (𝑛 → ∞).
6.2 極限と微分の順序交換

𝑎<𝑏

𝑓𝑛

(𝑎,𝑏)

𝐶′ 1
𝑓𝑛 𝑓𝑛

(𝑎,𝑏)

定理(極限と微分の順序交換):
であるし,
は開区間
上の
級函数の列であり, 開区間に含まれる任意の閉区間 上でとは一様収束していると仮定する(このとき ,は局所一様収束しているという). このとき,は開区間全体で各点収束しており, その収束先の函数も級になり, 任意の
において,

𝐼
(𝑎,𝑏)

𝑓𝑛 𝑓𝑛′

𝐶1𝑥 ∈ (𝑎,𝑏)
lim 𝑑𝑥𝑑 𝑓𝑛 (𝑥) = 𝑑𝑥𝑑 𝑛→∞
lim 𝑓𝑛 (𝑥)𝑛→∞𝑓𝑛が成立している.

𝑥 ∈ (𝑎,𝑏) を任意に取り, 𝑎 < 𝑎′ < 𝑥 < 𝑏′ < 𝑏 を満たす 𝑎′ , 𝑏′ を任意に選んで, 𝐼 = [𝑎′ , 𝑏′] とおく.
𝑓𝑛 , 𝑓𝑛′ は 𝐼 上で一様収束しているので,特に数列 𝑓𝑛 (𝑥), 𝑓𝑛′ (𝑥) も収束している. これで 𝑓𝑛 , 𝑓𝑛′ が開区間 (𝑎,𝑏) 全体で各点収束していることがわかった. 𝑓𝑛 , 𝑓𝑛′ それぞれの各点収束先の函数を 𝑓 , 𝑔 と書くことにする.
𝑓𝑛 , 𝑓𝑛′ は閉区間 𝐼 上でそれぞれ 𝑓, 𝑔 に一様収束するので, 𝑓, 𝑔 も閉区間 𝐼 上の連続函数になる. 閉区間 𝐼 の両端は 𝑎,𝑏 に幾らでも近付けることができるので, 𝑓 , 𝑔 は開区間 (𝑎,𝑏) 全体で連続函数になる.
𝑥0 ,𝑥 ∈ (𝑎,𝑏) であるとし, 𝑥0 ,𝑥 ∈ (𝑎′ , 𝑏′), 𝑎 < 𝑎′ < 𝑏′ < 𝑎 を満たす 𝑎′ , 𝑏′ を任意に選んで, 𝐼 = [𝑎′ , 𝑏′] とおく. 𝑓𝑛 は 𝐶 1
証明:

級なので,

𝑥

𝑓𝑛 (𝑥) = 𝑓𝑛 (𝑥0 ) + ∫𝑥 𝑓𝑛′ (𝜉)𝑑𝜉.
0
𝐼 上で 𝑓𝑛 は 𝑓 に各点収束し, 𝑓𝑛′ は 𝑔 に一様収束するので, 𝑛 → ∞ のとき, 極限と積分を交換できて,
𝑥
𝑓(𝑥) = 𝑓(𝑥0 ) + ∫𝑥 𝑔(𝜉)𝑑𝜉.
0′を得る. これより, 𝑓 (𝑥) = 𝑔(𝑥) となることがわかる. □別証明: 𝑓𝑛 , 𝑓𝑛′ の収束先の函数をそれぞれ 𝑓,𝑔 と書いて, 𝑓,𝑔 が連続函数であることを示すところまでは同様.
𝑥 ∈ (𝑎,𝑏) であるとし, 𝑎 < 𝑎′ < 𝑥 < 𝑏′ < 𝑎 を満たす 𝑎′ , 𝑏′ を任意に選んで, 𝐼 = [𝑎′ , 𝑏′] とおく. 以下, 実数 ℎ は 𝑥 + ℎ ∈ 𝐼
を満たしていると仮定する. 𝜀 > 0 を任意に取る.
𝑓𝑛′ は 𝐼 上で 𝑔 に一様収束するので, ある番号 𝑁 が存在して, 𝑚,𝑛 ≧ 𝑁 ならば任意の 𝜉 ∈ 𝐼 について
|𝑓𝑛′ (𝜉) − 𝑔(𝜉)| < 𝜀4 , |𝑓𝑚′ (𝜉) − 𝑓𝑛′ (𝜉)| ≦ |𝑓𝑚′ (𝜉) − 𝑔(𝜉)| + |𝑔(𝜉) − 𝑓𝑛′ (𝜉)| < 𝜀2 .
𝑓𝑛 は 𝐶 1 級なので
𝑥+ℎ1
𝑓𝑛 (𝑥 + ℎ) − 𝑓𝑛 (𝑥) = ∫𝑥 𝑓𝑛′ (𝜉)𝜉 = ∫0 𝑓𝑛′ (𝑥 + ℎ𝑡)𝑑𝑡となるので, 𝑚,𝑛 ≧ 𝑁 のとき,
1
|𝑓𝑚 (𝑥 + ℎ) − 𝑓𝑚 (𝑥) − (𝑓𝑛 (𝑥 + ℎ) − 𝑓𝑛 (𝑥))| = ||||∫0 (𝑓𝑚′ (𝑥 + ℎ𝑡) − 𝑓𝑛′ (𝑥 + ℎ𝑡))𝑑𝑡||||
|
| 𝜀
′
′
≦ |ℎ| 0≦𝑡≦1
sup |𝑓𝑚 (𝑥 + ℎ𝑡) − 𝑓𝑛 (𝑥 + ℎ𝑡)| ≦ |ℎ| 2 .
𝑚 → ∞ とすると, 𝑛 ≧ 𝑁 のとき,
|𝑓(𝑥 + ℎ) − 𝑓(𝑥) − (𝑓𝑛 (𝑥 + ℎ) − 𝑓𝑛 (𝑥))| ≦ |ℎ| 𝜀2 .
以下, 𝑛 ≧ 𝑁 と仮定する. 𝑓𝑛 は 𝐶 1 級函数なので, ある 𝛿 > 0 が存在して, |ℎ| < 𝛿 ならば|𝑓𝑛′ (𝑥 + ℎ𝑡) − 𝑓𝑛′ (𝑥)| < 𝜀4 (0 ≦ 𝑡 ≦ 1)となり,

1
|𝑓𝑛 (𝑥 + ℎ) − 𝑓𝑛 (𝑥) − 𝑓𝑛′ (𝑥)ℎ| = ||||ℎ ∫0 (𝑓𝑛′ (𝑥 + ℎ𝑡) − 𝑓𝑛′ (𝑥))𝑑𝑡||||
|
| 𝜀
′
′
≦ |ℎ| 0≦𝑡≦1
sup |𝑓𝑛 (𝑥 + ℎ𝑡) − 𝑓𝑛 (𝑥)| ≦ |ℎ| 4 .

したがって,|ℎ| < 𝛿 のとき,
|𝑓(𝑥 + ℎ) − 𝑓(𝑥) − 𝑔(𝑥)ℎ|≦ |𝑓(𝑥 + ℎ) − 𝑓(𝑥) − (𝑓𝑛 (𝑥 + ℎ) − 𝑓𝑛 (𝑥))| + |𝑓𝑛 (𝑥 + ℎ) − 𝑓𝑛 (𝑥) − 𝑓𝑛′ (𝑥)ℎ| + |𝑓𝑛′ (𝑥) − 𝑔(𝑥)||ℎ|≦ |ℎ| 𝜀2 + |ℎ| 𝜀4 + |ℎ| 𝜀4 = |ℎ|𝜀.

06 Taylorの定理
黒木玄2018-04-20～2019-04-03, 2020-08-18, 2023-06-02～2023-09-15
Copyright 2018, 2019, 2020, 2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/06%20Taylor%27s%20theorems.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/06%20Taylor%27s%20theorems.ipynb)
https://genkuroki.github.io/documents/Calculus/06%20Taylor%27s%20theorems.pdf(https://genkuroki.github.io/documents/Calculus/06%20Taylor%27s%20theorems.pdf)
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 Taylorの定理
 1.1 積分型剰余項版Taylorの定理
1.1.1 積分型剰余項の絶対値の上からの評価
1.1.2 積分型剰余項の書き直し: 1重積分表示
1.1.3 積分型剰余項の書き直し: Lagrangeの剰余項
1.1.4 積分型剰余項の書き直し: Cauchyの剰余項
1.1.5 Landau記号を用いたTaylorの定理
1.2 回微分可能性だけを仮定した場合のTaylorの定理について
 2 Taylor展開
2.1 基本的なTaylor展開の例
2.2 コンピューターを用いた計算例
 3 Bernoulli数とEuler数を用いたTaylor展開
3.1 Bernoulli数とEuler数の定義
3.2 tan, cot, sec, cosec の展開
 4 べき級数の収束
4.1 べき級数の定義
 4.2 べき級数の収束半径
4.2.1 d'Alembert の判定法
4.2.2 Cauchy-Hadamard定理
 4.3 収束円盤の境界上でのべき級数の収束
4.3.1 準備: Cesàro総和可能性
4.3.2 Abel総和可能性
4.3.3 準備: Vitaliの定理
4.3.4 M. Riesz の補題とその応用
5 超幾何級数𝑛In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plotsdefault(fmt = :png)#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_f
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:s"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]
end
print(io, as_markdown(toeqnarray(x)))
end

1 Taylorの定理

𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ″ (𝑎)(𝑥 − 𝑎)2 + ⋯ + 𝑘!1 𝑓 (𝑘) (𝑎)(𝑥 − 𝑎)𝑘 + ⋯の最後の +⋯ の部分を 𝑓 の 𝑘 + 1 階の導函数の式で書いた結果をTaylorの定理と呼ぶことにする. その表示の仕方には様々な形がある.

1.1 積分型剰余項版Taylorの定理

𝑓 は 𝐶 𝑛 級函数であると仮定する.
まず, 𝑛 = 4 の場合を例として扱う. そのとき
𝑥𝑓 ‴ (𝑥) = 𝑓 ‴ (𝑎) + ∫𝑎 𝑓 (4) (𝑥4 )𝑑𝑥4 .
ゆえに

𝑥

𝑥

𝑓 ″ (𝑥) = 𝑓 ″ (𝑎) + ∫𝑎 𝑓 ‴ (𝑥3 )𝑑𝑥3
𝑥 𝑥
= 𝑓 ″ (𝑎) + 𝑓 ‴ (𝑎)(𝑥 − 𝑎) + ∫𝑎 [∫𝑎 3 𝑓 (4) (𝑥4 )𝑑𝑥4 ] 𝑑𝑥3 .
括弧が増えると書くのが面倒になるので

𝑥

𝑥3

𝑥

𝑥3

(4)
(4)
∫𝑎 𝑑𝑥3 ∫𝑎 𝑑𝑥4 𝑓 (𝑥4 ) := ∫𝑎 [∫𝑎 𝑓 (𝑥4 )𝑑𝑥4 ] 𝑑𝑥3と書くことにする. 積分が3重以上でも同様に書くことにする. そのように書くと,

𝑥𝑥3𝑓 ″ (𝑥) = 𝑓 ″ (𝑎) + 𝑓 ‴ (𝑎)(𝑥 − 𝑎) + ∫𝑎 𝑑𝑥3 ∫𝑎 𝑑𝑥4 𝑓 (4) (𝑥4 ).
ゆえに𝑥𝑓 ′ (𝑥) = 𝑓 ′ (𝑎) + ∫𝑎 𝑑𝑥2 𝑓 ″ (𝑥2 )𝑥𝑥2𝑥3= 𝑓 ′ (𝑎) + 𝑓 ″ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ‴ (𝑎)(𝑥 − 𝑎)2 + ∫𝑎 𝑑𝑥2 ∫𝑎 𝑑𝑥3 ∫𝑎 𝑑𝑥4 𝑓 (4) (𝑥4 ).
さらに,𝑥𝑓(𝑥) = 𝑓(𝑎) + ∫𝑎 𝑑𝑥1 𝑓 ′ (𝑥1 )
𝑥
𝑥1
𝑥2
𝑥3
= 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ″ (𝑎)(𝑥 − 𝑎)2 + 3!1 𝑓 ‴ (𝑎)(𝑥 − 𝑎)3 + ∫𝑎 𝑑𝑥1 ∫𝑎 𝑑𝑥2 ∫𝑎 𝑑𝑥3 ∫𝑎 𝑑𝑥4 𝑓 (4) (𝑥4 ).
以上をまとめると,

𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ″ (𝑎)(𝑥 − 𝑎)2 + 3!1 𝑓 ‴ (𝑎)(𝑥 − 𝑎)3 + 𝑅4 ,上と同様にして次が成立することを示せる.

𝑓 は 𝐶 𝑛 級函数であると仮定する. そのとき,
𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ″ (𝑎)(𝑥 − 𝑎)2 + ⋯ + (𝑛 −1 1)! 𝑓 (𝑛−1) (𝑎)(𝑥 − 𝑎)𝑛−1 + 𝑅𝑛 ,
𝑥
𝑥1
𝑥𝑛−1
𝑅𝑛 = ∫𝑎 𝑑𝑥1 ∫𝑎 𝑑𝑥2 ⋯ ∫𝑎 𝑑𝑥𝑛 𝑓 (𝑛) (𝑥𝑛 ).
𝑅𝑛 を剰余項と呼ぶ. □この形のTaylorの定理は 𝑓 (𝑛) (𝑥) を何度も積分するだけで得られ, 技巧的な証明の工夫をする必要が一切ない.
問題: 上の形のTaylorの定理の証明を完成せよ. □Taylorの定理:

1.1.1 積分型剰余項の絶対値の上からの評価
以下,

𝑎 と 𝑥 のあいだの 𝑡 について |𝑓 (𝑛) (𝑡)| ≦ 𝑀 が成立しているとき,
𝑥
𝑥1
𝑥𝑛−1
|𝑅𝑛 | ≦ ||||∫𝑎 𝑑𝑥1 ∫𝑎 𝑑𝑥2 ⋯ ∫𝑎 𝑑𝑥𝑛 𝑀 |||| = 𝑛!1 𝑀|𝑥 − 𝑎|𝑛 .

ここで,

𝑥1
𝑥𝑛−1
1 (𝑥 − 𝑎)𝑛
𝑑
𝑑
⋯
𝑑
1
=
𝑥
𝑥
𝑥
1
2
𝑛
∫𝑎 ∫𝑎
∫𝑎
𝑛!
となることを使った. 1 を 𝑎 から 𝑥 まで積分する操作を 𝑛 回繰り返すとそうなることは容易に確かめられる.
𝑛|𝑅𝑛 | ≦ 𝑀|𝑥𝑛!− 𝑎|𝑥の形の不等式はよく使われる.

1.1.2 積分型剰余項の書き直し: 1重積分表示
定理:

もしくは

𝑥𝑛 を 𝑡 と書き直すことによって,

𝑥𝑛−1
𝑅𝑛 = ∫𝑎 𝑓 (𝑛) (𝑥𝑛 ) (𝑥(𝑛−−𝑥𝑛1)!) 𝑑𝑥𝑛 .
𝑥𝑛−1
𝑅𝑛 = ∫𝑎 𝑓 (𝑛) (𝑡) (𝑥(𝑛−−𝑡)1)! 𝑑𝑡.

𝑎 < 𝑥 と仮定する(𝑎 > 𝑥 の場合も同様である). そのとき, 積分𝑥𝑥1𝑥𝑅𝑛 = ∫𝑎 𝑑𝑥1 ∫𝑎 𝑑𝑥2 ⋯ ∫𝑎 𝑛−1 𝑑𝑥𝑛 𝑓 (𝑛) (𝑥𝑛 )の中の 𝑥𝑖 たちは 𝑎 ≦ 𝑥𝑛 ≦ 𝑥𝑛−1 ≦ ⋯ 𝑥2 ≦ 𝑥1 ≦ 𝑥 を動く. ゆえに, この積分は
𝑥𝑥𝑥𝑥𝑅𝑛 = ∫𝑎 [ 𝑓 (𝑛) (𝑥𝑛 ) ∫𝑥 𝑑𝑥1 ∫𝑥 1 𝑑𝑥2 ⋯ ∫𝑥 𝑛−2 𝑑𝑥𝑛−1 1] 𝑑𝑥𝑛
証明: 簡単のため

𝑛と書き直される. そして,

𝑛

𝑛

𝑥1
𝑥𝑛−2
(𝑥 − 𝑥𝑛 )𝑛−1
𝑑
𝑑
⋯
𝑑
1
=
𝑥
𝑥
𝑥
𝑛−1
1
2
∫𝑥 ∫𝑥
∫𝑥
(𝑛 − 1)!
𝑥

𝑛

𝑛

𝑛

系:

1
𝑛−1
𝑅𝑛 = (𝑥 − 𝑎)𝑛 ∫0 𝑓 (𝑛) (𝑎 + (𝑥 − 𝑎)𝑡) (1(𝑛−−𝑡)1)! 𝑑𝑡.
証明: 上の定理で得た公式中の積分変数 𝑥𝑛 を 𝑥𝑛 = 𝑎 + (𝑥 − 𝑎)𝑡 = (1 − 𝑡)𝑎 + 𝑡𝑥 によって 𝑡 に変換すると, 𝑥𝑛 を 𝑎 から 𝑥まで動かすことは 𝑡 を 0 から 1 まで動かすことに対応し, 𝑑𝑥𝑛 = (𝑥 − 𝑎)𝑑𝑡, 𝑥 − 𝑥𝑛 = (1 − 𝑡)(𝑥 − 𝑎) なので,
1
𝑛−1
𝑛−1
𝑅𝑛 = ∫0 𝑓 (𝑛) (𝑎 + (𝑥 − 𝑎)𝑡) (1 − 𝑡)(𝑛 −(𝑥1)!− 𝑎) (𝑥 − 𝑎)𝑑𝑡1
𝑛−1
= (𝑥 − 𝑎)𝑛 ∫0 𝑓 (𝑛) (𝑎 + (𝑥 − 𝑎)𝑡) (1(𝑛−−𝑡)1)! 𝑑𝑡. □𝑓 が 𝐶 𝑛+1 級函数ならば, 上の定理の 𝑛 の場合の結果から, 部分積分によって𝑛
𝑅𝑛 = 𝑓 (𝑛) (𝑎) (𝑥 −𝑛!𝑎) + 𝑅𝑛+1が得られる(問題: 示してみよ). ゆえに, 部分積分を用いた 𝑛 に関する帰納法によっても上の定理を示せる. 部分積分を用いる計算法はよく使われる. □注意: 𝑓 は 𝐶 𝑛 級であるとする. 剰余項 𝑅𝑛 の1重積分を以下のようにしてシンプルに求めることもできる. 𝑥, 𝑎 を固定し, 函数
𝑅𝑛 (𝑡) を次のように定める:
𝑛−1𝑘
𝑅𝑛 (𝑡) = 𝑓(𝑥) − ∑ 𝑓 (𝑘) (𝑡) (𝑥 −𝑘!𝑡) .
注意:

𝑘=0

このとき,

𝑅′𝑛 (𝑡) = − ∑ 𝑓 (𝑘+1) (𝑡) (𝑥 −𝑘!𝑡) + ∑ 𝑓 (𝑘) (𝑡) (𝑥(𝑘−−𝑡)1)!
𝑘=0
𝑘=1
𝑛
𝑛−1
𝑘−1
𝑘−1
= − ∑ 𝑓 (𝑘) (𝑡) (𝑥(𝑘−−𝑡)1)! + ∑ 𝑓 (𝑘) (𝑡) (𝑥(𝑘−−𝑡)1)!
𝑘=1
𝑘=1
𝑛−1
(𝑥
−
𝑡)
= −𝑓 (𝑛) (𝑡) (𝑛 − 1)! ,𝑅𝑛 (𝑥) = 0,
𝑅𝑛 (𝑎) = 𝑅𝑛
𝑛−1

なので

𝑘

𝑛−1

𝑘−1

𝑎
𝑥
𝑛−1
𝑛−1
𝑅𝑛 = 𝑅𝑛 (𝑎) = ∫𝑥 (−𝑓 (𝑛) (𝑡) (𝑥(𝑘−−𝑡)1)! ) 𝑑𝑡 = ∫𝑎 𝑓 (𝑛) (𝑡) (𝑥(𝑘−−𝑡)1)! 𝑑𝑡.
おそらく, Taylorの定理を証明する最も簡単な方法は 𝑅𝑛 (𝑡) を上のように定義して, 𝑡 で微分することである. この方法の欠点は𝑅𝑛 (𝑡) の定義を天下り的に与えなければいけないことである. □1.1.3 積分型剰余項の書き直し: Lagrangeの剰余項

𝑎 < 𝑥 であると仮定する.
𝑓 (𝑛)は 𝐶 𝑛 級函数であるとする.
そのとき 𝑓 (𝑛) は連続函数になる. 𝑓 (𝑛) (𝑡) の 𝑎 ≦ 𝑡 ≦ 𝑥 における最小値と最大値はそれぞれ(𝑛)𝑓 (𝛼), 𝑓 (𝛽) であるとする. そのとき,
𝑛𝑛𝑓 (𝑛) (𝛼) (𝑥 −𝑛!𝑎) ≦ 𝑅𝑛 ≦ 𝑓 (𝑛) (𝛽) (𝑥 −𝑛!𝑎)(∗)
が成立する. なぜならば 𝑅𝑛 の1重積分表示
𝑥𝑛−1
𝑅𝑛 = ∫𝑎 𝑓 (𝑛) (𝑡) (𝑥(𝑛−−𝑡)1)! 𝑑𝑡の中の 𝑓 (𝑛) (𝑡) を定数 𝐶 = 𝑓(𝛼),𝑓(𝛽) で置き換えて得られる積分は𝑥 (𝑥 − 𝑡)𝑛−1(𝑥 − 𝑎)𝑛 .
𝐶𝑑𝑡=𝐶∫𝑎 (𝑛 − 1)!
𝑛!
となるからである. 中間値の定理より, ある実数 𝜉 で𝑛
𝑅𝑛 = 𝑓 (𝑛) (𝜉) (𝑥 −𝑛!𝑎) , 𝑎 < 𝜉 < 𝑥
一時的に簡単のためを満たすものが存在する.

𝑎 < 𝑥 の仮定を 𝑎 > 𝑥 で置き換えると, 𝑎 < 𝜉 < 𝑥 は 𝑎 > 𝜉 > 𝑥 に変わる.
以上で導出した剰余項の𝑛𝑅𝑛 = 𝑓 (𝑛) (𝜉) (𝑥 −𝑛!𝑎) , 𝑎 <> 𝜉 <> 𝑥の形もよく使われる. この形の剰余項をLagrangeの剰余項と呼ぶらしい.

𝑓(𝑥) = √⎯⎯𝑥, 𝑥 = 10, 𝑎 = 9, 𝑛 = 2 の場合. 𝑛 = 2 の場合のTaylorの公式は
𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 𝑅2 .
そして, 上の(∗ )より, 𝑓 ″ (𝑡) の 𝑎 ≦ 𝑡 ≦ 𝑥 での最小値と最大値をそれぞれ 𝑓 ″ (𝛼), 𝑓 ″ (𝛽) と書くと,
22𝑓 ″ (𝛼) (𝑥 −2 𝑎) ≦ 𝑅2 ≦ 𝑓 ″ (𝛽) (𝑥 −2 𝑎) .
𝑓(𝑥) = √⎯⎯𝑥, 0 < 𝑎 < 𝑥 のとき,
𝑓 ′ (𝑡) = 2√1 𝑡 , 𝑓 ″ (𝑡) = − 4𝑡1√𝑡
例:

𝑓 ″ (𝑡) は単調増加函数になり, 𝛼 = 𝑎, 𝛽 = 𝑥 となるので,
22− (𝑥8𝑎−√𝑎)⎯⎯𝑎 ≦ 𝑅2 ≦ − (𝑥8𝑥−√𝑎)⎯⎯𝑥 .
⎯⎯ 𝑥 − ⎯⎯𝑎 を足すと,これの全体に 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) = √ 𝑎 +2√ 𝑎2
2√⎯⎯𝑎 + 𝑥2√− ⎯⎯𝑎𝑎 − (𝑥8𝑎−√𝑎)⎯⎯𝑎 ≦ √⎯⎯𝑥 ≦ √⎯⎯𝑎 + 𝑥2√− ⎯⎯𝑎𝑎 − (𝑥8𝑥−√𝑎)⎯⎯𝑥 .
𝑎 = 9, 𝑥 = 10 のとき, √⎯⎯9 = 3, √⎯10⎯⎯⎯ < √⎯16⎯⎯⎯ = 4 なので,
3 + 2 1⋅ 3 − 8 ⋅ 91 ⋅ 3 ≦ √⎯10⎯⎯⎯ < 3 + 2 1⋅ 3 − 8 ⋅ 101 ⋅ 4 .
なので, 特にゆえに,このようにして

3.162 < √⎯10⎯⎯⎯ < 3.164.

√⎯10⎯⎯⎯ ≈ 3.1622776601683795 の値を小数点以下第2桁まで求めることができる. □In [3]:



1
2
3
4

@show 3 + 1/(2*3)@show 3 + 1/(2*3) - 1/(8*9*3)@show 3 + 1/(2*3) - 1/(8*10*4)@show √10;

3 + 1 / (2 * 3) = 3.1666666666666665(3 + 1 / (2 * 3)) - 1 / (8 * 9 * 3) = 3.1620370370370368(3 + 1 / (2 * 3)) - 1 / (8 * 10 * 4) = 3.1635416666666667√10 = 3.1622776601683795

1.1.4 積分型剰余項の書き直し: Cauchyの剰余項

𝑎 < 𝑥 であると仮定する.
そのとき 𝑓 (𝑛) は連続函数になる. 𝑓 (𝑛) (𝑡)(𝑥 − 𝑡) 𝑛−1 /(𝑛 − 1)! の 𝑎 ≦ 𝑡 ≦ 𝑥 における最小値と最𝑓 は 𝐶 𝑛 級函数であるとする.
(𝑛)
大値はそれぞれ 𝑓 (𝛼)(𝑥 − 𝛼) 𝑛−1 /(𝑛 − 1)!, 𝑓 (𝑛) (𝛽)(𝑥 − 𝛽) 𝑛−1 /(𝑛 − 1)! であるとする. そのとき,
𝑛−1
𝑛−1
𝑓 (𝑛) (𝛼) (𝑥 − (𝑛𝛼) − 1)!(𝑥 − 𝑎) ≦ 𝑅𝑛 ≦ 𝑓 (𝑛) (𝛽) (𝑥 − (𝑛𝛽) − 1)!(𝑥 − 𝑎)が成立する. なぜならば 𝑅𝑛 の1重積分表示
𝑥𝑛−1
𝑅𝑛 = ∫𝑎 𝑓 (𝑛) (𝑡) (𝑥(𝑛−−𝑡)1)! 𝑑𝑡の中の 𝑓 (𝑛) (𝑡)(𝑥 − 𝑡) 𝑛−1 /(𝑛 − 1)! を定数 𝐶 = 𝑓 (𝑛) (𝛼)(𝑥 − 𝛼) 𝑛−1 /(𝑛 − 1)!, 𝑓 (𝑛) (𝛽)(𝑥 − 𝛽) 𝑛−1 /(𝑛 − 1)! で置き換えて得られ一時的に簡単のため

る積分は

𝑥∫𝑎 𝐶 𝑑𝑡 = 𝐶(𝑥 − 𝑎)

𝜉で𝑛−1
𝑅𝑛 = 𝑓 (𝑛) (𝜉) (𝑥 − (𝑛𝜉) − 1)!(𝑥 − 𝑎) , 𝑎 < 𝜉 < 𝑥となるからである. 中間値の定理より, ある実数を満たすものが存在する.

𝑎 < 𝑥 の仮定を 𝑎 > 𝑥 で置き換えると, 𝑎 < 𝜉 < 𝑥 は 𝑎 > 𝜉 > 𝑥 に変わる.
以上で導出した剰余項の

𝑛−1
𝑅𝑛 = 𝑓 (𝑛) (𝜉) (𝑥 − (𝑛𝜉) − 1)!(𝑥 − 𝑎) , 𝑎 <> 𝜉 <> 𝑥の形もよく使われる. この形の剰余項をCauchyの剰余項と呼ぶらしい.

1.1.5 Landau記号を用いたTaylorの定理

𝐶 𝑛 級函数 𝑓 について 𝑎 と 𝑥 のあいだのある実数 𝜉 で𝑛
𝑅𝑛 = 𝑓 (𝑛) (𝜉) (𝑥 −𝑛!𝑎)を満たすものが存在することを上で示した. 𝑓 (𝑛) は連続なので 𝑥 → 𝑎 のとき 𝑓 (𝑛) (𝜉) → 𝑓 (𝑛) (𝑎) となる. ゆえに𝑛𝑛𝑅𝑛 − 𝑓 (𝑛) (𝑎) (𝑥 −𝑛!𝑎) = (𝑓 (𝑛) (𝜉) − 𝑓 (𝑛) (𝑎)) (𝑥 −𝑛!𝑎) = 𝑜((𝑥 − 𝑎)𝑛 ) (𝑥 → 𝑎).
これで次が成立することがわかった:

𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ″ (𝑎)(𝑥 − 𝑎)2 + ⋯ + 𝑛!1 𝑓 (𝑛) (𝑎)(𝑥 − 𝑎)𝑛 + 𝑜((𝑥 − 𝑎)𝑛 ) (𝑥 → 𝑎).

Taylorの定理はこの形でもよく使われる.
さらに

𝑓 が 𝐶 𝑛+1 級ならば, 𝑛 + 1 次の剰余項は𝑅𝑛+1 = (𝑛 +1 1)! 𝑓 (𝑛+1) (𝜉)(𝑥 − 𝑎)𝑛+1 = 𝑂((𝑥 − 𝑎)𝑛+1 ), (𝜉 は 𝑎 と 𝑥 のあいだにある)の形をしているので,

𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 12 𝑓 ″ (𝑎)(𝑥 − 𝑎)2 + ⋯ + 𝑛!1 𝑓 (𝑛) (𝑎)(𝑥 − 𝑎)𝑛 + 𝑂((𝑥 − 𝑎)𝑛+1 ) (𝑥 → 𝑎).

も成立していることがわかる.

1.2

𝑛 回微分可能性だけを仮定した場合のTaylorの定理について

以上では
例えば,

𝐶 𝑛 級の仮定のもとでTaylorの定理を証明したが, 𝑛 回微分可能の仮定のもとでもTaylorの定理を導くことができる.

高木貞治『解析概論』改定第三版の第25節のpp.61-63に詳しい説明がある.
以下ではその議論をさらに整理したものを簡単に解説する.

𝑓 は 𝑛 回微分可能な函数であると仮定し, 𝑥 ≠ 𝑎 を固定し, 𝑡 の函数 𝑅𝑛 (𝑡) と剰余項 𝑅𝑛 を𝑛−1𝑘
𝑅𝑛 (𝑡) = 𝑓(𝑥) − ∑ 𝑓 (𝑘) (𝑡) (𝑥 −𝑘!𝑡) , 𝑅𝑛 = 𝑅𝑛 (𝑎)𝑘=0と定める. 𝑓 が 𝑛 回微分可能であることより, 𝑅𝑛 (𝑡) は微分可能になり,
𝑛−1
𝑘−1
𝑘 𝑛−1
𝑅′𝑛 (𝑡) = − ∑ 𝑓 (𝑘+1) (𝑡) (𝑥 −𝑘!𝑡) + ∑ 𝑓 (𝑘) (𝑡) (𝑥(𝑘−−𝑡)1)!
𝑘=0
𝑘=1
𝑛
𝑛−1
𝑘−1
𝑘−1
= − ∑ 𝑓 (𝑘) (𝑡) (𝑥(𝑘−−𝑡)1)! + ∑ 𝑓 (𝑘) (𝑡) (𝑥(𝑘−−𝑡)1)!
𝑘=1
𝑘=1
𝑛−1
= −𝑓 (𝑛) (𝑡) (𝑥(𝑛−−𝑡)1)! ,𝑅𝑛 (𝑥) = 0,
𝑅𝑛 (𝑎) = 𝑅𝑛
が成立している. ゆえに 𝑅𝑛 (𝑡) と 𝐺(𝑡) = (𝑥 − 𝑡) 𝑝 (𝑝 = 1,…,𝑛 ) にCauchyの平均値の定理を適用すると, 𝑎 と 𝑥 のあいだにある実数 𝜉 で次を満たすものが存在することがわかる:
𝑅𝑛 = 𝑅𝑛 (𝑎) − 𝑅𝑛 (𝑥) = 𝑅′𝑛 (𝜉) = 𝑓 (𝑛) (𝜉) (𝑥 − 𝜉)𝑛−𝑝 .
(𝑥 − 𝑎)𝑝 𝐺(𝑎) − 𝐺(𝑥) 𝐺′ (𝜉)𝑝(𝑛 − 1)!
このとき

𝜉)𝑛−𝑝 (𝑥 − 𝑎)𝑝 .
𝑅𝑛 = 𝑓 (𝑛) (𝜉) (𝑥 −𝑝(𝑛− 1)!
これの 𝑝 = 1 の場合がCauchyの剰余項で, 𝑝 = 𝑛 の場合がLagrangeの剰余項である.
以上は議論は, 𝑓 (𝑛−1) が 𝐶 1 級の場合の積分を使った議論を, 𝑓 (𝑛−1) が微分可能なだけで使えるCauchyの平均値の定理に置き換えただけであるとも言える.

2 Taylor展開

𝐶 ∞ 函数 𝑓 について, ある 𝑟 > 0 が存在して,|𝑥 − 𝑎| < 𝑟

𝑓 𝑥=𝑎

∞
𝑓(𝑥) = ∑ 𝑘!1 𝑓 (𝑘) (𝑎)(𝑥 − 𝑎)𝑘𝑘=0がで収束するとき はでTaylor展開可能であるという. そのような呼ぶ. Taylor展開はべき級数展開と呼ばれることも多い.

𝑥 = 0 におけるTaylor展開はMaclaurin展開と呼ばれることがある.
2.1 基本的なTaylor展開の例
以下のTaylor展開はよく使われる.

𝑟 の最大値をTaylor展開の収束半径と∞− 𝑘 + 1) .
(1 + 𝑥)𝑎 = ∑ (𝑘𝑎)𝑥𝑘 (|𝑥| < 1), (𝑘𝑎) = 𝑎(𝑎 − 1)⋯(𝑎𝑘!
𝑘=0∞(1 − 𝑥)−𝑎 = ∑ (𝑎)𝑘!𝑘 𝑥𝑘 (|𝑥| < 1), (𝑎)𝑘 = 𝑎(𝑎 + 1)⋯(𝑎 + 𝑘 − 1).
𝑘=0
∞ 𝑥𝑘
𝑥
𝑒 = ∑ 𝑘! (|𝑥| < ∞).
𝑘=0
∞
𝑘𝑥2𝑘
cos𝑥 = ∑ (−1)(|𝑥| < ∞).
𝑘=0 (2𝑘)!
∞
𝑘𝑥2𝑘+1
sin𝑥 = ∑ (−1)(|𝑥| < ∞).
𝑘=0 (2𝑘 + 1)!
∞ 𝑥2𝑘
cosh𝑥 = 𝑒𝑥 +2 𝑒−𝑥 = ∑ (2𝑘)!
(|𝑥| < ∞).
𝑘=0∞
sinh𝑥 = 𝑒𝑥 −2 𝑒−𝑥 = ∑ (2𝑘𝑥2𝑘+1(|𝑥| < ∞).
𝑘=0 + 1)!
∞log(1 + 𝑥) = ∑ (−1)𝑘𝑘−1𝑥𝑘 , (|𝑥| < 1).
𝑘=1∞− log(1 − 𝑥) = ∑ 𝑥𝑘𝑘 (|𝑥| < 1).
𝑘=1∞
𝑥2𝑘+1 = ∞ 1 (2𝑘)! 𝑥2𝑘+1 (|𝑥| < 1).
arcsin𝑥 = ∑(−1)𝑘(−1/2𝑘 ) 2𝑘 + 1 ∑𝑘=0
𝑘=0 22𝑘 (𝑘!)2 2𝑘 + 1∞
arctan𝑥 = ∑(−1)𝑘 2𝑘𝑥2𝑘+1+ 1 (|𝑥| < 1).
𝑘=0
問題: 以上の公式をすべて示せ. □解答は略す. まずは自分で 𝑓(0), 𝑓 ′ (0) , 𝑓 ″ (0), 𝑓 ‴ (0) を計算してみよう. そして, 個人的には最初の段階ではTaylor展開が収束するか否かにはあまり神経を使わなくてもよいと思う
復習:𝑎(𝑘) は二項係数を表すのであった:

𝑎 𝑎(𝑎 − 1)⋯(𝑎 − 𝑘 + 1) .
(𝑘) =
𝑘!

例えば

𝑎
𝑎
𝑎 𝑎(𝑎 − 1) 𝑎 𝑎(𝑎 − 1)(𝑎 − 2) .
(0) = 1, (1) = 𝑎, (2) = 2 , (3) =6(𝑎)𝑘 = 𝑎(𝑎 + 1)⋯(𝑎 + 𝑘 − 1) もよく使われる記号法である. 例えば(𝑎)0 = 1, (𝑎)1 = 𝑎, (𝑎)2 = 𝑎(𝑎 + 1), (𝑎)3 = 𝑎(𝑎 + 1)(𝑎 + 2).
参考: 収束半径については複素解析によって以下が知られている. 𝑥 = 𝑎 でTaylor展開可能な函数 𝑓(𝑥) を |𝑧 − 𝑎| < 𝑟 を満たす複素数 𝑧 の正則函数に拡張できるとき, そのTaylor展開の収束半径は 𝑟 以上になる. だから, 𝑓(𝑥) を可能な限り解析接続したものを 𝑓(𝑧) と書くとき, 𝑓 の 𝑥 = 𝑎 でのTaylor展開の収束半径は 𝑎 から 𝑓(𝑧) の正則ではない点までの最短距離に等しい.
例えば, 𝑎 が非負の整数以外であるとき, 𝑓(𝑥) = (1 + 𝑥) 𝑎 = exp(𝑎log(1 + 𝑥)) を複素平面に解析接続によって拡張すると,
𝑥 = 0 に最も近い 𝑓 の正則ではない点は 𝑥 = −1 なので収束半径は 1 になる. 例えば 𝑎 = −1 のとき(1 + 𝑥)−1 = 1 +1 𝑥 = 1 − 𝑥 + 𝑥2 − 𝑥3 + ⋯と公比 −𝑥 の等比級数が出て来るが, これが成立するのは |𝑥| < 1 においてである. 𝑥 = 0 から最も近い函数
𝑓(𝑥) = 1/(1 + 𝑥) の特異点は 𝑥 = −1 である.
同様の理由で 𝑓(𝑥) = log(1 + 𝑥) や 𝑓(𝑥) = −log(1 − 𝑥) の場合も 𝑥 = 0 でのTaylor展開の収束半径は 1 になる.
例えば, exp𝑥 , sin𝑥 , cos𝑥 は複素平面全体上の正則函数に拡張できることと, それらのTaylor展開の収束半径が ∞ になることは同値になり, 実際にどちらも成立している.
逆三角函数に関するヒント:

arcsin𝑥 と arctan𝑥 については
𝑥

𝑥

𝑥 𝑑𝑡
𝑥 𝑑𝑡
arcsin𝑥 = ∫0 √⎯1⎯⎯⎯⎯⎯⎯⎯,
arctan𝑥=∫0 1 + 𝑡2− 𝑡2⎯

を用いてよい. さらに|𝑡| < 1 で
1 = (1 − 𝑡2 )−1/2 = ∞ (−1)𝑘 −1/2 𝑡2𝑘 ,⎯⎯⎯⎯⎯⎯⎯⎯∑(𝑘)√1 − 𝑡2⎯
𝑘=0

1 = ∞ (−1)𝑘𝑡2𝑘 .
1 + 𝑡2 ∑𝑘=0

これを項別に積分すれば欲しい結果が得られる.

−1/2( 𝑘 ) の部分は以下のように処理できる:1 1
1
𝑘 − 2 (− 2 − 1 ) ⋯ (− 2 − 𝑘 + 1 )(−1)𝑘(−1/2
=
(−1)
𝑘!
𝑘)
1 ( 1 + 1) ⋯ ( 1 + 𝑘 − 1) 1 ⋅ 3⋯(2𝑘 − 1)2
=2 2
= 2𝑘 𝑘!
𝑘!
− 1) 2 ⋅ 4⋯(2𝑘) = 1 (2𝑘)! . □= 1 ⋅ 3⋯(2𝑘𝑘
2 𝑘!
2𝑘 𝑘! 22𝑘 (𝑘!)2
問題: 𝑒𝑥 と cos𝑥 と sin𝑥 の 𝑥 = 0 におけるTaylor展開が 𝑥 が複素数である場合にも成立していると仮定して,
𝑒𝑖𝑥 = cos𝑥 + 𝑖sin𝑥が成立していることを示せ. □
二項係数

解答例:

∞ 𝑛 𝑛 ∞ 2𝑘 𝑥2𝑘 ∞ 𝑖2𝑘+1 𝑥2𝑘+1+ ∑ (2𝑘 + 1)!
𝑒𝑖𝑥 = ∑ 𝑖 𝑛!𝑥 = ∑ 𝑖(2𝑘)!
𝑛=0
𝑘=0
𝑘=0
∞ (−1)𝑘𝑥2𝑘∞ (−1)𝑘𝑥2𝑘+1= ∑ (2𝑘)! + 𝑖 ∑ (2𝑘 + 1)! = cos𝑥 + 𝑖sin𝑥.
𝑘=0
𝑘=0
1つ目の等号で 𝑒𝑧 の 𝑧 = 0 におけるTaylor展開を 𝑧 = 𝑖𝑥 に適用した. 2つ目の等号では和を 𝑛 が偶数の場合と奇数の場合に分けた. 3つ目の等号では 𝑖2𝑘 = (−1) 𝑘 を使った. 4つ目の等号では cos𝑧, sin𝑧 の 𝑧 = 0 におけるTaylor展開を 𝑧 = 𝑥 に適用し
た. □
⎯⎯⎯⎯
問題: √ 10 を∞
8
3
(1 + 𝑥)1/2 = ∑ (1/2𝑘 )𝑥𝑘 = 1 + 𝑥2 − 𝑥8 + 𝑥16 + 𝑂(𝑥4 ) (|𝑥| < 1)𝑘=0を用いて小数点以下第2桁まで求めよ.
解答例:

そして,

√⎯10⎯⎯⎯ = (9 + 1)1/2 = 3(1 + 1/9)1/2 = 3 + 3 12 19 − 3 18 912 + 3 161 913 + ⋯.
3 12 19 = 16 = 0.166666⋯, −3 18 912 = − 2161 = −0.004629⋯, 3 161 913 = 0.000257⋯,より√⎯10⎯⎯⎯ = 3.16⋯ である. □3 + 3 12 19 − 3 18 912 = 3.162⋯

注意: 上では誤差項をきちんと評価せずに計算したがきちんと評価するには次のようにすればよい. 剰余項付きのTaylorの定理
より,のとき ある実数 が存在して,

0<𝑥<1

𝜉
3
(1 + 𝑥)1/2 = 1 + 𝑥2 − 𝑥8 + 16(1 𝑥+ 𝜉)5/2 , 0 < 𝜉 < 𝑥,
3
3
0 < 16(1 𝑥+ 𝜉)5/2 < 𝑥16 .
⎯⎯⎯⎯ゆえに, 𝑥 = 1/9 のとき, √ 10 と 3 + 1/6 − 1/216 = 3.162⋯ の差は

3 161 913 = 0.000257⋯
より小さい. このことに注意すれば本当に小数点以下第2桁まで正確に計算できているという数学的な証明が得られる.

In [4]:

Out[4]:

In [5]:

1 x = symbols("x")
2 series((1+x)^(Sym(1)/2), n=5)2
3 5𝑥4
1 + 𝑥2 − 𝑥8 + 𝑥16 − 128+ 𝑂 (𝑥5 )

1 3/2/9, -3/8/9^2, 3/16/9^3

Out[5]: (0.16666666666666666, -0.004629629629629629, 0.000257201646090535)
In [6]:



1 3 + 3/2/9 -3/8/9^2, 3/16/9^3

Out[6]: (3.1620370370370368, 0.000257201646090535)√ は \sqrt TAB で入力できる.
https://docs.julialang.org/en/stable/manual/unicode-input/ (https://docs.julialang.org/en/stable/manual/unicode-input/)
In [7]:

1 √(10)Out[7]: 3.1622776601683795
In [8]:



1 factorial(10)Out[8]: 3628800

tan𝑥 の 𝑥 = 0 でのTaylor展開 5 次の項まで求めよ.
解答例: 𝑓(𝑥) = tan𝑥 とおくと 𝑓 ′ = 1 + tan2 𝑥 = 1 + 𝑓 2 となので,
𝑓 ″ = 2𝑓 𝑓 ′ = 2𝑓 + 2𝑓 3 ,𝑓 ‴ = 2𝑓 ′ + 6𝑓 2 𝑓 ′ = 2 + 8𝑓 2 + 6𝑓 4 ,𝑓 (4) = 16𝑓 𝑓 ′ + 24𝑓 3 𝑓 ′ = 16𝑓 + 40𝑓 3 + 24𝑓 5 ,𝑓 (5) = 16𝑓 ′ + 120𝑓 2 𝑓 ′ + 120𝑓 4 𝑓 ′ = 16 + 136𝑓 2 + 240𝑓 4 + 120𝑓 6 .
問題:

ゆえに

したがって,

𝑓(0) = 𝑓 ″ (0) = 𝑓 (4) (0) = 0, 𝑓 ′ (0) = 1, 𝑓 ‴ (0) = 2, 𝑓 (5) (0) = 16.

tan𝑥 = 𝑓(𝑥) = 𝑥 + 3!2 𝑥3 + 165! 𝑥5 + ⋯ = 𝑥 + 13 𝑥3 + 152 𝑥5 + ⋯. □別の解答例: sin𝑥 と cos𝑥 のMaclaurin展開から tan𝑥 のMaclaurin展開を求めよう:
sin𝑥 = sin𝑥
tan𝑥 = cos𝑥
1 − (1 − cos(𝑥))= sin𝑥 (1 + (1 − cos𝑥) + (1 − cos𝑥)2 + ⋯)
2
3 𝑥5
2
4
= (𝑥 − 𝑥6 + 120+ 𝑂(𝑥7 )) (1 + ( 𝑥2 − 𝑥24 ) + ( 𝑥22 − 𝑥244 ) + 𝑂(𝑥6 ))3 𝑥5
2= (𝑥 − 𝑥6 + 120+ 𝑂(𝑥7 ))(1 + 𝑥2 + (− 241 + 14 ) 𝑥4 + 𝑂(𝑥6 ))3 𝑥5
2= (𝑥 − 𝑥6 + 120+ 𝑂(𝑥7 ))(1 + 𝑥2 + 245 𝑥4 + 𝑂(𝑥6 ))= 𝑥 + ( 12 − 16 ) 𝑥3 + ( 245 − 121 + 1201 ) 𝑥5 + 𝑂(𝑥7 )= 𝑥 + 13 𝑥3 + 152 𝑥5 + 𝑂(𝑥7 ). □□

In [9]:



1
2
3
4
5
6
7
8
9

x = symbols("x")
sympy.init_printing(order="rev-lex")
for k in 0:5
expand(diff(tan(x), x, k)) |> display
end
sympy.init_printing(order="lex") # default​
x = symbols("x")
series(tan(x), n=10)

1
2
3
4
5

s = series(sin(x), n=7)
cinv = series(1/cos(x), n=6)
display(s)display(cinv)
expand(s * cinv)

tan(𝑥)
1 + tan2 (𝑥)2tan(𝑥) + 2 tan3 (𝑥)2 + 8 tan2 (𝑥) + 6 tan4 (𝑥)16tan(𝑥) + 40 tan3 (𝑥) + 24 tan5 (𝑥)16 + 136 tan2 (𝑥) + 240 tan4 (𝑥) + 120 tan6 (𝑥)35
7 62𝑥9Out[9]:
10𝑥 + 𝑥3 + 2𝑥15 + 17𝑥
315 + 2835 + 𝑂 (𝑥 )In [10]:3 𝑥5𝑥 − 𝑥6 + 120+ 𝑂 (𝑥7 )1 + 𝑥22 + 5𝑥244 + 𝑂 (𝑥6 )35Out[10]:𝑥 + 𝑥3 + 2𝑥15 + 𝑂 (𝑥7 )問題: tanh𝑥 = (sinh𝑥)/(cosh𝑥) の 𝑥 = 0 でのTaylor展開 5 次の項まで求めよ.
2
解答例: 𝑓(𝑥) = tanh𝑥 とおくと 𝑓 ′ = 1 − tanh 𝑥 = 1 − 𝑓 2 となので,+ 2𝑓 3 ,𝑓 ″‴ = −2𝑓 𝑓′ ′ = −2𝑓
𝑓 = −2𝑓 + 6𝑓 2 𝑓 ′ = −2 + 8𝑓 2 − 6𝑓 4 ,𝑓 (4) = 16𝑓 𝑓′ ′ − 24𝑓23 𝑓′′ = 16𝑓 −4 40′ 𝑓 3 + 24𝑓 5 , 2
𝑓 (5) = 16𝑓 − 120𝑓 𝑓 + 120𝑓 𝑓 = 16 − 136𝑓 + 240𝑓 4 − 120𝑓 6 .
ゆえにしたがって,

𝑓(0) = 𝑓 ″ (0) = 𝑓 (4) (0) = 0, 𝑓 ′ (0) = 1, 𝑓 ‴ (0) = −2, 𝑓 (5) (0) = 16.
tanh𝑥 = 𝑓(𝑥) = 𝑥 − 3!2 𝑥3 + 165! 𝑥5 + ⋯ = 𝑥 − 13 𝑥3 + 152 𝑥5 + ⋯.

□

In [11]:



1
2
3
4
5
6
7
8
9

x = symbols("x")
sympy.init_printing(order="rev-lex")
for k in 0:5
expand(diff(tanh(x), x, k)) |> display
end
sympy.init_printing(order="lex") # default​
x = symbols("x")
series(tanh(x), n=10)

1
2
3
4
5

s = series(sinh(x), n=7)
cinv = series(1/cosh(x), n=6)
display(s)display(cinv)
expand(s * cinv)

tanh(𝑥)
1 − tanh2 (𝑥)−2tanh(𝑥) + 2 tanh3 (𝑥)−2 + 8 tanh2 (𝑥) − 6 tanh4 (𝑥)16tanh(𝑥) − 40 tanh3 (𝑥) + 24 tanh5 (𝑥)16 − 136 tanh2 (𝑥) + 240 tanh4 (𝑥) − 120 tanh6 (𝑥)35
7 62𝑥9Out[11]:10𝑥 − 𝑥3 + 2𝑥15 − 17𝑥
315 + 2835 + 𝑂 (𝑥 )In [12]:



3 𝑥5
𝑥 + 𝑥6 + 120+ 𝑂 (𝑥7 )1 − 𝑥22 + 5𝑥244 + 𝑂 (𝑥6 )35Out[12]:𝑥 − 𝑥3 + 2𝑥15 + 𝑂 (𝑥7 )9𝑒 = 𝑒1 の値を 𝑒𝑥 のMaclaurin展開を用いて誤差100万の1以下で正確に計算するためには ∑ 𝑘!1 を計算すれば十分であ𝑘=0ることを示せ. 𝑒 < 3 と 10! = 3628800 を認めて使ってよい.
解答例: Taylorの定理より, 0 と 1 のあいだにある実数 𝜉 で次を満たすものが存在する.
9𝑒𝜉 , 𝑒𝜉 < 𝑒 < 3 = 1 .
𝑒1 = ∑ 𝑘!1 + 10!
10! 10! 3000000 106
問題:

𝑘=0

不等式は

𝜉 < 1 と 𝑒 < 3, 10! > 3000000 より得られる. これで示すべきことが示された. □Taylorの定理を使えば誤差項の大きさを上から評価できる.
In [13]:

1 sum(1/factorial(k) for k in 0:9), exp(1)Out[13]: (2.7182815255731922, 2.718281828459045)
次の問題の解答例のように, Taylorの定理の剰余項を用いるのではなく, Taylor展開の残りの部分の総和を上から評価することによって誤差項を評価することもできる.

log2 を小数点以下第2桁まで求めよ.
解答例: |𝑥| < 1 とし,
3
5
𝑓(𝑥) = log 11 +− 𝑥𝑥 = log(1 + 𝑥) − log(1 − 𝑥) = 2 (𝑥 + 𝑥3 + 𝑥5 + ⋯)とおくと, 0 ≦ 𝑥 < 1 のとき
問題:

𝑛−1
𝑓(𝑥) = 2 ∑ 2𝑘𝑥2𝑘+1+ 𝑅2𝑛+1 ,𝑘=0 + 1∞
2𝑥2𝑛+1 ∞ 2𝑛 + 1 𝑥2𝑘+1−(2𝑛+1)
0 ≦ 𝑅2𝑛+1 = 2 ∑ 2𝑘𝑥2𝑘+1=
𝑘=𝑛 + 1 2𝑛 + 1 ∑𝑘=𝑛 2𝑘 + 1∞
2𝑛+1
2𝑗 = 2𝑥2𝑛+1 1 .
≦ 2𝑥𝑥∑
2𝑛 + 12𝑛 + 1 1 − 𝑥2

ゆえに,𝑛 = 2, 𝑥 = 13 のとき,

𝑗=0log2 = 𝑓 ( 13 ) = 𝑓(𝑥) = 𝛼 + 𝑅5 ,3
𝛼 = 2 ( 13 + (1/3)3 ) = 0.69135802⋯,50 ≦ 𝑅5 ≦ 94 (1/3)5 = 5401 = 0.00185185⋯
これより, log2 = 0.69⋯ であることがわかる. □1 + 𝑥 は 𝑥 = 𝑒𝑦 − 1 = 𝑒𝑦/2 − 𝑒−𝑦/2 = tanh 𝑦 の逆函数である. すなわち
注意: 𝑦 = 𝑓(𝑥) = log
1−𝑥2𝑒𝑦 + 1 𝑒𝑦/2 + 𝑒−𝑦/2∞
arctanh𝑥 = 12 log 11 +− 𝑥𝑥 = ∑ 2𝑘𝑥2𝑘+1. □𝑘=0 + 1
注意(70％ルール): log2 = 0.69314718⋯ が 0.7 に近いことはよく以下のように使われる. 年利 𝑟 パーセントの金利で資産を運用するとき, 約 70/𝑟 年後に資産は倍になる:
𝑟 70/𝑟(1 + 100 ) ≈ 2.
例えば 𝑟 が 5 パーセントのとき 1.0570/5 = 1.97993⋯ . 𝑟 が 7 パーセントのとき 1.0770/7 = 1.96715⋯ . 確かにほぼ 2 にな
In [14]:



1
2
3
4
5
6
7
8
9
10
11
12
13

f(x) = log((1+x)/(1-x))g(n,x) = 2*sum(k->x^(2k+1)/(2k+1), 0:n-1)
R(n,x) = 2*x^(2n+1)/(2n+1)/(1-x^2)​
sympy.init_printing(order="rev-lex")
x = symbols("x", positive=true)g(2, x) |> display
sympy.init_printing(order="lex") # default
​
n = 2
y = 2
x = (y-1)/(y+1)
log(y), f(x), g(n,x), f(x) - g(n,x), R(n,x)

2𝑥 + 2𝑥3

3Out[14]: (0.6931471805599453, 0.6931471805599452, 0.691358024691358, 0.0017891558685871889, 0.00185
18518518518515)
In [15]:



1
2
3
4
5
6
7
8

f(x) = log((1+x)/(1-x))g(n,x) = 2*sum(k->x^(2k+1)/(2k+1), 0:n-1)
R(n,x) = 2*x^(2n+1)/(2n+1)/(1-x^2)
​
n = 3
y = 2
x = (y-1)/(y+1)
log(y), f(x), g(n,x), f(x) - g(n,x), R(n,x)

Out[15]: (0.6931471805599453, 0.6931471805599452, 0.6930041152263374, 0.0001430653336077503, 0.0001
4697236919459136)
問題: 少し上の方でやった計算と同様の方法でlog1.5 を小数点以下第3桁まで計算せよ. □In [16]:



1
2
3
4
5
6
7
8

f(x) = log((1+x)/(1-x))g(n,x) = 2*sum(k->x^(2k+1)/(2k+1), 0:n-1)
R(n,x) = 2*x^(2n+1)/(2n+1)/(1-x^2)​
n = 2
y = 1.5x = (y-1)/(y+1)
log(y), f(x), g(n,x), f(x) - g(n,x), R(n,x)

Out[16]: (0.4054651081081644, 0.4054651081081642, 0.4053333333333334, 0.00013177477483083955, 0.000
1333333333333334)
In [17]:



1
2
3
4
5
6
7
8

f(x) = log((1+x)/(1-x))g(n,x) = 2*sum(k->x^(2k+1)/(2k+1), 0:n-1)
R(n,x) = 2*x^(2n+1)/(2n+1)/(1-x^2)​
n = 3
y = 1.5x = (y-1)/(y+1)
log(y), f(x), g(n,x), f(x) - g(n,x), R(n,x)

Out[17]: (0.4054651081081644, 0.4054651081081642, 0.4054613333333334, 3.774774830822558e-6, 3.80952
38095238115e-6)問題:

arcsin𝑥, arctan𝑥 の 𝑥 = 0 でのTaylor展開の 𝑥 → 1 の極限を取ることによって
𝜋 = ∞ 1 (2𝑘)! 1 , 𝜋 = ∞ (−1)𝑘2 ∑ 22𝑘 (𝑘!)2 2𝑘 + 1 4 ∑ 2𝑘 + 1が得られることを確認せよ.

□

𝑘=0

𝑘=0

解答略. 次の節におけるコンピューターによる計算例も参照せよ.

∞ℝ 上の 𝐶 ∞ 函数 𝑓(𝑥) で, 任意の実数 𝑥 について ∑ 𝑛!1 𝑓 (𝑛) (0)𝑥𝑛 が収束しているのに, その収束先が 𝑥 ≠ 0 のとき
𝑛=0
𝑓(𝑥) と一致しないものが存在する. そのような 𝑓(𝑥) の例を1つ挙げよ.
解答例: 𝑓(𝑥) を(𝑥 ≠ 0)𝑓(𝑥) = { exp(−1/|𝑥|)0(𝑥 = 0)と定めると, 𝑓 は 𝐶 ∞ 函数でかつ 𝑓 (𝑛) (0) = 0 (𝑛 = 0,1,2,… ) となることを示せる(自分で示してみよ). ゆえにそのとき,∞ 1
𝑓 (𝑛) (0)𝑥𝑛 は常に 0 に収束する. しかし, 𝑥 ≠ 0 のとき 𝑓(𝑥) > 0 なので収束先の 0 は 𝑓(𝑥) に一致しない. □
∑
𝑛!
𝑛=0
問題:

In [18]:

1 f(x) = x == 0 ? zero(x) : exp(-1/abs(x))
2 x = -2:0.001:2
3 plot(x, f.(x), label="y = f(x)", size=(400,250), legend=:top)Out[18]:2.2 コンピューターを用いた計算例
私が個人的に知る限りの範囲内では, 手計算もきちんとできる人の方がコンピューターを上手に使っている場合が多い. おそら
く, その人自身がコンピューターを頼らなくてもある程度の計算ができるおかげで, コンピューターを使った人間には不可能な計算の価値をよく理解できるからなのだろう.

In [19]:

Out[19]:In [20]:Out[20]:In [21]:

Out[21]:

In [22]:Out[22]:

In [23]:

Out[23]:

In [24]:

Out[24]:

In [25]:

Out[25]:

In [26]:

Out[26]:

In [27]:

Out[27]:

In [28]:

Out[28]:In [29]:Out[29]:In [30]:Out[30]:In [31]:

Out[31]:

1 x = symbols("x")
2 series(e^x, n=10)

2
3
4 𝑥5
𝑥6 + 𝑥7 + 𝑥8 + 𝑥9 + 𝑂 (𝑥10 )1 + 𝑥 + 𝑥2 + 𝑥6 + 𝑥24 + 120+ 720
5040 40320 362880
1 series(cos(x), n=10)

𝑥6 + 𝑥8 + 𝑂 (𝑥10 )1 − 𝑥22 + 𝑥244 − 720
40320
1 series(sin(x), n=10)

3 𝑥5𝑥7 + 𝑥9 + 𝑂 (𝑥10 )𝑥 − 𝑥6 + 120− 5040362880
1 series(cosh(x), n=10)

2
4 𝑥6𝑥8 + 𝑂 (𝑥10 )1 + 𝑥2 + 𝑥24 + 720+ 40320
1 series(sinh(x), n=10)

3 𝑥5𝑥7 + 𝑥9 + 𝑂 (𝑥10 )𝑥 + 𝑥6 + 120+ 5040362880
1 series(log(1+x), n=10)

2
3
4
5
6
7
8
9
𝑥 − 𝑥2 + 𝑥3 − 𝑥4 + 𝑥5 − 𝑥6 + 𝑥7 − 𝑥8 + 𝑥9 + 𝑂 (𝑥10 )1 series(-log(1-x), n=10)

𝑥 + 𝑥22 + 𝑥33 + 𝑥44 + 𝑥55 + 𝑥66 + 𝑥77 + 𝑥88 + 𝑥99 + 𝑂 (𝑥10 )1 series(asin(x), n=10)

3
5 5𝑥7 35𝑥9
𝑥 + 𝑥6 + 3𝑥40 + 112+ 1152 + 𝑂 (𝑥10 )1 k = symbols("k", integer=true)
2 doit(sympy.Sum(1/2^(2k)*factorial(2k)/(factorial(k)^2)*x^(2k+1)/(2k+1), (k,0,4)))35𝑥9 + 5𝑥7 + 3𝑥5 + 𝑥3 + 𝑥
1152 112 40 6
1 series(atan(x), n=10)3579𝑥 − 𝑥3 + 𝑥5 − 𝑥7 + 𝑥9 + 𝑂 (𝑥10 )1 series(atanh(x), n=10)

357
9𝑥 + 𝑥3 + 𝑥5 + 𝑥7 + 𝑥9 + 𝑂 (𝑥10 )1 sympy.Sum((-1)^k/(2k+1), (k,0,oo))∞ (−1)𝑘∑
𝑘=0 2𝑘 + 1
1 doit(sympy.Sum((-1)^k/(2k+1), (k,0,oo)))𝜋4

次のセルの f(n,k) は𝑓(𝑛,𝑘) = 21𝑛 (𝑘𝑛) = 21𝑛 𝑘!(𝑛𝑛!− 𝑘)!

を意味している. これは

𝑝 = 1/2 に対する二項分布における確率である.
lgamma(𝑛 + 1) = logΓ(𝑛 + 1) = log𝑛!

であることに注意せよ.
次のセルで一度全体の対数を取った式を計算してから exponential を取っている理由は階乗を単体で計算すると簡単にオーバ
ーフローしてしまうからである. 階乗の対数ならばオーバーフローしない. さらに,𝑛𝑛(𝑘) と 1/2 を別々に計算した後で掛け合わせる計算の仕方もよくない. 巨大な数を巨大な数で割る数値計算はオーバーフローやアンダーフローを起こしやすい. 対数を取って適度な大きさの数値にして差を取ってから, まとめて exponential するのがよい.
しかし, そのように注意深く書いたコードであっても, もとの級数の収束は極めて遅いので, 1億項を足し合わせても小数点以下第4桁までしか正確に計算できていない.
このようなことは頻繁に起こるので, 数値計算により適した公式を見付けたり, 遅い収束を加速する方法(加速法)を開発することは大事な仕事である
In [32]:

1 f(n,k) = exp(lgamma(n+1)-lgamma(k+1)-lgamma(n-k+1)-n*log(2))
2 @time sum(k->f(2k,k)/(2k+1), 0:10^8-1), π/2
13.929964 seconds (156.03 k allocations: 10.648 MiB, 1.54% compilation time)Out[32]: (1.5707399078367754, 1.5707963267948966)

3 Bernoulli数とEuler数を用いたTaylor展開
3.1 Bernoulli数とEuler数の定義
Bernoulli数

𝐵𝑛 とEuler数 𝐸𝑛 を次のように定める:
𝑧 = ∞ 𝐵𝑛 𝑧𝑛 , 2 = ∞ 𝐸𝑛 𝑧𝑛 .
𝑧 −𝑧 ∑ 𝑛!
𝑒𝑧 − 1 ∑𝑛=0 𝑛! 𝑒 + 𝑒
𝑛=0

注意: これらの母函数はある確率分布のモーメント母函数分の1になっている:𝑒 −1𝑧𝑥𝑧𝑥 𝛿(𝑥 − 1) + 𝛿(𝑥 + 1) 𝑑𝑥 = 𝑒 + 𝑒 .
∫0 𝑒 𝑑𝑥 = 𝑧 , ∫ℝ 𝑒221

𝛿(𝑥 − 𝑎)

𝑧

𝑧

−𝑧

ここで
はデルタ(超)函数 (https://www.google.co.jp/search?
q=%E3%83%87%E3%83%AB%E3%82%BF%E5%87%BD%E6%95%B0)である:∫ℝ 𝜑(𝑥)𝛿(𝑥 − 𝑎)𝑑𝑥 = 𝜑(𝑎).

𝑒𝑥𝑧

モーメント母函数は統計力学における分配函数に対応しており, モーメント母函数分のはカノニカル分布の確率密度函数に対応している. このような視点からのBernoulli数およびBernoulli多項式の一般化については
黒木玄, Euler-Maclaurinの和公式の一般化 (https://genkuroki.github.io/documents/20170724EulerMaclaurin.pdf)□
問題: 𝐵0 = 1, 𝐵1 = −1/2 であることを示せ.
を参照せよ.

解答例: 以下の計算から得られる:

この問題の結果と,𝑧1
𝑧 2
𝑒𝑧 − 1 = 1 + 𝑧/2 + 𝑂(𝑧2 ) = 1 − 2 + 𝑂(𝑧 ).

𝑧 + 𝑧 = 𝑧 𝑒𝑧 + 1 = 𝑧 𝑒𝑧/2 + 𝑒−𝑧/2
𝑒𝑧 − 1 2 2 𝑒𝑧 − 1 2 𝑒𝑧/2 − 𝑒−𝑧/2が偶函数になることより, 𝐵𝑛 は 𝑛 が3以上の奇数のとき 0 になることがわかる.
2 が偶函数であることより, 𝑛 が奇数のとき 𝐸𝑛 = 0 となることがわかる.
𝑧𝑒 + 𝑒−𝑧
後で次の公式を用いる:□

𝑧 𝑒𝑧/2 + 𝑒−𝑧/2 = ∞ 𝐵2𝑘 𝑧2𝑘 , 2 = ∞ 𝐸2𝑘 𝑧2𝑘 .
∑ (2𝑘)!
2 /2 /2 ∑ (2𝑘)!
問題: Bernoulli数 𝐵𝑛 とEuler数 𝐸2𝑛 が次の漸化式を満たすことを示せ: 𝑛 = 1,2,3,… に対して,
𝑛−1
𝑛−1
𝐵𝑛 = − 𝑛 +1 1 ∑ (𝑛 +𝑘 1)𝐵𝑘, 𝐸2𝑛 = − ∑ (2𝑘2𝑛)𝐸2𝑘 .
𝑘=0

𝑘=0
注意: これらの漸化式と 𝐵0 = 𝐸0 = 1 を用いて, Bernoulli数 𝐵𝑛 とEuler数 𝐸2𝑛 を順次求めることができる. □𝑧 𝑒𝑧 − 1 = 1 から得られる.
解答例: 𝐵𝑛 の漸化式は𝑒𝑧 − 1 𝑧∞∞ 𝑛𝑧𝑛
1 = 𝑒𝑧 𝑧− 1 𝑒 𝑧− 1 = ∑ 𝑘!(𝑙𝐵+𝑘 1)! 𝑧𝑘+𝑙 = ∑ (∑ 𝑘!(𝑛 −𝑛!𝑘 + 1)! 𝐵𝑘) 𝑧𝑛! .
𝑘,𝑙=0
𝑛=0 𝑘=0
すなわち

𝑛−1
𝑛
𝑛
𝛿𝑛,0 = ∑ 𝑘!(𝑛 −𝑛!𝑘 + 1)! 𝐵𝑘 = 𝑛 +1 1 ∑ (𝑛 +𝑘 1)𝐵𝑘 = 𝑛 +1 1 ∑ (𝑛 +𝑘 1)𝐵𝑘 + 𝐵𝑛 .
𝑘=0

𝑘=0

𝑘=0

𝐵𝑛 の漸化式が得られる.
𝑧 −𝑧
𝐸2𝑛 の漸化式は 𝑒𝑧 −2 𝑒−𝑧 𝑒 −2 𝑒 = 1 から得られる.
𝑧 −𝑧 ∞ 𝐸2𝑘 2𝑘+2𝑙 ∞ 𝑛 2𝑛𝑧2𝑛 .
1 = 𝑒𝑧 +2 𝑒−𝑧 𝑒 +2 𝑒 = ∑ (2𝑘)!(2𝑙)!
𝑧 = ∑ (∑ (2𝑘)𝐸2𝑘 ) (2𝑛)!
これより

𝑘,𝑙=0

𝑛=0 𝑘=0

すなわち

これより
In [33]:Out[33]:12
3
4

𝐸2𝑛 の漸化式が得られる. □𝑛−1𝑛𝛿𝑛,0 = ∑ (2𝑘2𝑛)𝐸2𝑘 = ∑ (2𝑘2𝑛)𝐸2𝑘 + 𝐸2𝑛 .
𝑘=0# Bernoulli数 B_{2k} の例​
BernoulliNumber(n) = sympy.bernoulli(n)B = [BernoulliNumber(2k) for k in 0:8]

 1 
 16 1
 − 30  1 
 421  − 305  66  − 691 
 27307 
 36176 
 − 510 

𝑘=0

(∗)

In [34]:Out[34]:1
2
3
4# Euler数 E_{2k} の例​
EulerNumber(n) = sympy.euler(n)E = [EulerNumber(2k) for k in 0:8]


1 
−1 

5 

−61 

1385
 −50521  2702765  −199360981 
19391512145

3.2 tan, cot, sec, cosec の展開

𝐵2𝑘, 𝐸2𝑘 に関する公式(∗)を使うと,𝑧 cot 𝑧 = 𝑧 cos(𝑧/2) = 𝑖𝑧 𝑒𝑖𝑧/2 + 𝑒−𝑖𝑧/2 = ∞ 𝐵2𝑘 (𝑖𝑧)2𝑘 = ∞ (−1)𝑘 𝐵2𝑘 𝑧2𝑘 ,∑(2𝑘)!
2 2 2 sin(𝑧/2) 2 𝑒𝑖𝑧/2 − 𝑒−𝑖𝑧/2 ∑𝑘=0 (2𝑘)!
𝑘=0∞
𝑘 22𝑘 𝐵2𝑘 𝑧2𝑘−1 ,cot𝑧 = cos𝑧=(−1)
sin𝑧 ∑(2𝑘)!
𝑘=0
sin𝑧 = cot𝑧 − 2cot(2𝑧) = ∞ (−1)𝑘 22𝑘 (1 − 22𝑘 )𝐵2𝑘 𝑧2𝑘−1 ,tan𝑧 = cos𝑧
∑
(2𝑘)!
𝑘=1
1 = cot 𝑧 − cot𝑧 = ∞ (−1)𝑘 22𝑘 (2−(2𝑘−1) − 1)𝐵2𝑘 𝑧2𝑘−1
cosec𝑧 = sin𝑧
∑
(2𝑘)!
2
𝑘=0
∞
22𝑘−1 )𝐵2𝑘 𝑧2𝑘−1 ,= ∑(−1)𝑘 2(1 −(2𝑘)!
𝑘=0
1 = 2 = ∞ 𝐸2𝑘 (𝑖𝑧)2𝑘 = ∞ (−1)𝑘 𝐸2𝑘 𝑧2𝑘 ,sec𝑧 = cos𝑧∑
(2𝑘)!
𝑒𝑖𝑧 − 𝑒−𝑖𝑧 ∑𝑘=0 (2𝑘)!
𝑘=0𝑧 −𝑧 ∞ 2𝑘 𝐵2𝑘 2𝑘−1
coth𝑧 = 𝑒𝑒𝑧 +− 𝑒𝑒−𝑧 = ∑ 2(2𝑘)!
𝑧𝑘=0∞ 2𝑘 2𝑘 − 1)𝐵
2𝑘 𝑧2𝑘−1 .
tanh𝑧 = 2coth(2𝑧) − coth𝑧 = ∑ 2 (2(2𝑘)!
𝑘=0𝑧𝑧
注意: 𝐵2𝑘 は本質的に cot
2 2 のMaclaurin展開の係数であり, 𝐸2𝑘 は sec𝑧 のMaclaurin展開の係数である.
注意: tan𝑧 = cot𝑧 − 2cot(2𝑧) は次のように示される:
2(cos2 𝑧 − sin2 𝑧) = cot𝑧 − tan𝑧.
2cot(2𝑧) = 2cos2𝑧=
sin2𝑧
2cos𝑧sin𝑧
ゆえに tan𝑧 = cot𝑧 − 2cot(2𝑧). tanh𝑧 = 2coth(2𝑧) − coth𝑧 は次のように示される(わざと少し計算の仕方を tan の場合から変える):

2𝑧 −2𝑧𝑧 𝑧 2 𝑧 −𝑧 22coth(2𝑧) = 2(𝑒𝑒2𝑧 −+𝑒𝑒−2𝑧 ) = (𝑒(𝑒+𝑧 +𝑒 𝑒)−𝑧+)(𝑒(𝑒𝑧 −−𝑒𝑒−𝑧 )) = coth𝑧 + tanh𝑧.
ゆえに, tanh𝑧 = 2coth(2𝑧) − coth𝑧.
In [35]:

Out[35]:

In [36]:

Out[36]:1 z = symbols("z")
2 series((z/2)*cot(z/2), z, n=10)

2 𝑧4
𝑧6 − 𝑧8 + 𝑂 (𝑧10 )1 − 𝑧12 − 720− 302401209600
1 z = symbols("z")
2 series(cot(z), z, n=10)

1 − 𝑧 − 𝑧3 − 2𝑧5 − 𝑧7 − 2𝑧9 + 𝑂 (𝑧10 )𝑧 3 45 945 4725 93555

In [37]:

1 z = symbols("z")
2 series(tan(z), z, n=10)

3
5
7 62𝑧910𝑧 + 𝑧3 + 2𝑧15 + 17𝑧
315 + 2835 + 𝑂 (𝑧 )Out[37]:

In [38]:1 z = symbols("z")
2 series(csc(z), z, n=10)



1 + 𝑧 + 7𝑧3 + 31𝑧5 + 127𝑧7 + 73𝑧9 + 𝑂 (𝑧10 )𝑧 6 360 15120 604800 3421440

Out[38]:In [39]:1 z = symbols("z")
2 series(sec(z), z, n=10)

2
4
6 277𝑧8
10
1 + 𝑧2 + 5𝑧24 + 61𝑧
720 + 8064 + 𝑂 (𝑧 )Out[39]:4 べき級数の収束
4.1 べき級数の定義∞

𝑎𝑘 𝑥𝑘 の形式の級数をべき級数と呼ぶ.
∑
𝑘=0
∞

∞

𝑘=0

𝑘=0

𝑘
∑ |𝑎𝑘 𝑥𝑘 | が収束するとき, べき級数 ∑ 𝑎𝑘 𝑥 は絶対収束するという.
4.2 べき級数の収束半径

𝛼𝑛 𝑛 → ∞ のとき 𝛼𝑛 → ∞ となることを, 任意の実数 𝑀 に対して(どんなに大きな実数 𝑀 に対しても), あ𝑛 ≧ 𝑁 ならば 𝛼𝑛 ≧ 𝑀 となること(すなわち, どんなに大きな 𝑀 に対しても, ある番号以降のすべて
𝛼𝑛 ≧ 𝑀 成立すること)であると定める. □準備: 実数列がる番号が存在しての について𝑛𝑁

4.2.1 d'Alembert の判定法

𝑘 → ∞ のとき |𝑎|𝑎𝑘+1𝑘 | | → 𝜌 > 0 が成立していると仮定する(上の準備のもとで 𝜌 = ∞ であっ∞てもよいとする). このとき, べき級数
∑ 𝑎𝑘 𝑥𝑘 は |𝑥| < 𝜌 で絶対収束し, |𝑥| > 𝜌 で収束しない.
定理( d'Alembert の判定法):

𝑘=0

注意: 実際には∞

0 < 𝑟 < 𝜌 のとき |𝑥| ≦ 𝑟 でべき級数 ∑ 𝑎𝑘 𝑥𝑘 が一様絶対収束することも示される.

注意: このような∞

𝑘=0

𝜌 をべき級数 ∑ 𝑎𝑘 𝑥𝑘 の収束半径と呼ぶ.
𝑘=00 ≦ 𝑟 < 𝜌 と仮定する. 𝑟 は幾らでも 𝜌 に近付き得るので, |𝑥| < 𝜌 のときべき級数が絶対収束することを示すためには,|𝑥| ≦ 𝑟 のときべき級数が絶対収束することを示せば十分である. 𝑟 < 𝑅 < 𝜌 を満たす実数 𝑅 が存在する. |𝑥| ≦ 𝑟 と仮定す
る. |𝑎𝑘 |/|𝑎𝑘+1 | → 𝜌 > 𝑅 > 0 より, ある番号 𝑁 が存在して, 𝑘 ≧ 𝑁 のとき,
|𝑎𝑘 ||𝑎𝑘+1 | 1
|𝑎𝑘+1 | ≧ 𝑅, i.e. |𝑎𝑘 | ≦ 𝑅 .
ゆえに, 𝑛 = 0,1,2,… に対して,
𝑁+𝑛 | ⋯ |𝑎𝑁+2 | |𝑎𝑁+1 | |𝑎𝑁 ||𝑥|𝑁+𝑛 ≦ 1 |𝑎𝑁 |𝑟𝑁+𝑛 = |𝑎𝑁 |𝑟𝑁 𝑟 𝑛 .
|𝑎𝑁+𝑛 𝑥𝑁+𝑛 | = |𝑎|𝑎𝑁+𝑛−1(𝑅)| |𝑎𝑁+1 | |𝑎𝑁 |𝑅𝑛𝑟 < 𝑅 という仮定より, 𝑟/𝑅 < 1 なので,∞右辺の 𝑛 =𝑁−10,1,2,… に関する和は有限の値に収束する.
ゆえに左辺の同様の和も∞
𝑎𝑘 𝑥𝑘 = ∑ 𝑎𝑘 𝑥𝑘 + ∑ 𝑎𝑁+𝑛 𝑥𝑁+𝑛 が絶対収束することが示された. (注意: 以上
有限の値に収束する. これで, べき級数
∑
𝑘=0
𝑘=0
𝑛=0
の議論によって |𝑥| ≦ 𝑟 で一様絶対収束することも示されている.)
証明:∞|𝑥| > 𝜌 であると仮定する. ∑ 𝑎𝑘 𝑥𝑘 が収束しないことを示したい. |𝑥| > 𝜌 と |𝑎𝑘 |/|𝑎𝑘+1 | → 𝜌 < |𝑥| より, ある番号 𝑁 が
𝑘=0存在して, 𝑘 ≧ 𝑁 ならば, |𝑎𝑘 | > 0 かつ|𝑎𝑘 ||𝑎𝑘+1 | 1
|𝑎𝑘+1 | ≦ |𝑥|, i.e. |𝑎𝑘 | ≧ |𝑥| .
ゆえに, 𝑛 = 0,1,2,… に対して,
𝑁+𝑛 | ⋯ |𝑎𝑁+2 | |𝑎𝑁+1 | |𝑎𝑁 ||𝑥|𝑁+𝑛 ≧ 1 |𝑎𝑁 ||𝑥|𝑁+𝑛 = |𝑎𝑁 ||𝑥|𝑁 > 0.
|𝑎𝑁+𝑛 𝑥𝑁+𝑛 | = |𝑎|𝑎𝑁+𝑛−1| |𝑎𝑁+1 | |𝑎𝑁 ||𝑥|𝑛∞𝑎 𝑥𝑛 は 0 に収束しない これより ∑ 𝑎𝑘 𝑥𝑘 が収束しないことがわかる □∞ 1
𝑥𝑘 について, 𝑘 → ∞ のとき,
例: べき級数∑𝑘!
𝑘=0
1/𝑘! = 𝑘 + 1 → ∞1/(𝑘 + 1)!
なので, そのべき級数は |𝑥| < ∞ で絶対収束する. □∞ (−1)𝑘𝑥2𝑘
例: べき級数を 𝑥2 のべき級数とみなす.
∑
(2𝑘)!
𝑘=0
1/(2𝑘)!
1/(2(𝑘 + 1))! = (2𝑘 + 1)(2𝑘 + 2) → ∞ (𝑘 → ∞)なので, そのべき級数は |𝑥| < ∞ で絶対収束する.
∞ (−1)𝑘𝑥2𝑘+1
問題: べき級数が |𝑥| < ∞ で絶対収束することを示せ.
∑
𝑘=0 (2𝑘 + 1)!
ヒント: このべき級数を 𝑥2 のべき級数と 𝑥 の積とみなしてから, d'Alembertの判定法を適用せよ. □ゆえに

d'Alembertの判定法だけで十分な場合が多いが, より精密なCauchy-Hadamard定理の定理もよく使われる.

4.2.2 Cauchy-Hadamard定理

𝜌 ≧ 0 を 1𝜌 = lim𝑛→∞sup |𝑎𝑛 |1/𝑛 によって定める(右辺が 0 のとき 𝜌 = ∞ と定め, 右辺が ∞ のとき∞𝜌 = 0 と定める.). このとき, べき級数 ∑ 𝑎𝑘 𝑥𝑘 は |𝑥| < 𝜌 で絶対収束し, |𝑥| > 𝜌 で収束しない.
Cauchy-Hadamard定理:

𝑘=0

注意: 実際には∞

0 < 𝑟 < 𝜌 のとき |𝑥| ≦ 𝑟 でべき級数 ∑ 𝑎𝑘 𝑥𝑘 が一様絶対収束することも示される.
𝑘=0

𝑎𝑘 𝑥𝑘 の収束半径 𝜌 が 1𝜌 = lim𝑛→∞sup |𝑎𝑛 |1/𝑛 で得られることを意味している.
∑
𝑘=0
1 < 1 より, ある番号 𝑁 が存在
証明: 0 < 𝑟 < 𝜌 と仮定する. 𝑟 < 𝑅 < 𝜌 を満たす実数 𝑅 が存在する. lim sup |𝑎𝑛 |1/𝑛 =
𝜌 𝑅
𝑛→∞
1
1
1/𝑘
1/𝑘
し, 𝑛 ≧ 𝑁 ならば sup |𝑎𝑘 |≦ 𝑅 となる. 特に 𝑘 ≧ 𝑁 ならば |𝑎𝑘 | ≦ 𝑅 となる. したがって, |𝑥| ≦ 𝑟 のとき, 𝑘 ≧ 𝑁
𝑘≧𝑛
注意: Cauchy-Hadamardの定理はべき級数

ならば

となる.

∞

∞

|𝑎𝑘 𝑥𝑘 | = (|𝑎𝑘 |1/𝑘 |𝑥|)𝑘 ≦ ( 𝑅𝑟 )𝑘|𝑟/𝑅| < 1 なので, |𝑥| ≦ 𝑟 で ∑ 𝑎𝑘 𝑥𝑘 が一様絶対収束することがわかった.

|𝑥| > 𝜌 と仮定する. このとき,

𝑘=0

1 = lim sup |𝑎𝑛 |1/𝑛 = inf sup |𝑎𝑘 |1/𝑘𝑛≧0 𝑘≧𝑛
𝜌 𝑛→∞

より,

1
1 1
1
𝑛 = 0,1,2,… に対して sup|𝑎𝑘 |1/𝑘 ≧ 𝜌 なので, 𝜌 > |𝑥| より, 各 𝑛 ごとにある 𝑘 ≧ 𝑛 で |𝑎𝑘 |1/𝑘 ≧ |𝑥| を満たすも𝑘≧𝑛のが存在し,となっている. 数列𝑘|𝑎𝑘 𝑥𝑘 | = (|𝑎𝑘 |1/𝑘 |𝑥|)𝑘 ≧ ( |𝑥|1 |𝑥|) = 1∞

𝑎𝑘 𝑥𝑘 は 0 に収束しないことがわかった. ゆえに級数 ∑ 𝑎𝑘 𝑥𝑘 も収束しない. □𝑘=0

注意: Cauchy-Hadamardの定理の証明はシンプルなので上極限の使い方を学ぶために適切な題材になっている.

□

注意: d'Alembertの判定法もCauchy-Hadamardの定理も一般のべき級数を等比級数と比較することによって収束を判定している. 大雑把に言えば, d'Alembertの判定法はの𝑘|𝑎𝑘 𝑥𝑘 | = |𝑎0 | ∏ ||𝑎𝑎𝑗𝑗−1||𝑥||𝑗=1

𝑘 |𝑎𝑗 ||𝑥|の部分が 1 未満のある 𝑟 ≧ 0 に対する 𝑟𝑘 以下であれば収束すると考える判定法であり, Cauchy-Hadamardの
∏
|
|
𝑎
𝑗−1
𝑗=1

定理は

|𝑎𝑘 𝑥𝑘 | = (|𝑎𝑘 |1/𝑘 |𝑥|)𝑘が1 未満のある 𝑟 ≧ 0 に対する 𝑟𝑘 以下であれば収束すると考える判定法である. □例: べき級数

1 − 𝑥 + 𝑥2 − 𝑥3 + 𝑥4 − 𝑥5 + ⋯
1/1 = 1, |1|1/2 = 1 , | − 1|1/3 = 1, |1|1/4 = 1 , … の上極限の 1 であり, |𝑥| < 1 で 1 に収束すの収束半径は数列 | − 1|1+𝑥るので, このべき級数は 𝑥 ↗ 1 で 1 に収束する.
それではべき級数∞

𝐹(𝑥) = ∑(−1)𝑛 𝑥2𝑛 = 𝑥 − 𝑥2 + 𝑥4 − 𝑥8 + 𝑥16 − 𝑥32 + ⋯𝑛=0についてはどうなるだろうか? これの収束半径も数列になる.

|1|1/1 = 1, | − 1|1/2 = 1, |1|1/4 = 1, | − 1|1/8 = 1, … の上極限の 1

𝑥 ↗ 1 で 𝑓(𝑥) が 𝛼 に収束するならば, 𝐹(𝑥2 ) = 𝑥 − 𝐹(𝑥) なので, 𝑥 ↗ 1 の極限を取って 𝛼 = 1 − 𝛼 すなわち

𝛼 = 12 となる.
そこで実際に 𝑥 ↗ 1 のとき 𝐹(𝑥) → 1/2 となるかどうかを確認するために1000項足した結果を計算してみると, 例えば
もしもF(0.9) = 0.4677755990574414
F(0.99) = 0.49409849522830906
F(0.999) = 0.5001242215513184
F(0.9999) = 0.5020251448564931
F(0.99999) = 0.4973598550256996
F(0.999999) = 0.5007394876031053

1 = 0.5 にかなり近いように見える.
2
しかし, べき級数の 𝐹(𝑥) の値は 𝑥 ↗ 1 で収束しない!!! この事実のTauber型定理を使った証明についてはを得る. これらは確かに

黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)の第10.4節を見よ. 数値計算結果を用いた初等的な証明を下の方で紹介する.

□

In [40]:



1
2
3
4
5
6
7
8
9

# 上のセルのべき級数の数値計算例​
F(x; N=10^3) = sum(n->(-1)^n*x^(2.0^n), 0:N)
@show F(0.9)@show F(0.99)@show F(0.999)@show F(0.9999)@show F(0.99999)@show F(0.999999);

F(0.9) = 0.4677755990574413
F(0.99) = 0.4940984952283092
F(0.999) = 0.5001242215513184
F(0.9999) = 0.502025144856493
F(0.99999) = 0.49735985502569974
F(0.999999) = 0.5007394876031052
In [41]:



1
2
3
4
5
6
7
8

# 上の f(x) が x→1 で収束しないことの数値的確認​
F(x; N=10^3) = sum(n->(-1)^n*x^(2.0^n), 0:N)
x = 0:0.001:0.999
P1 = plot(x, F.(x), label="F(x)", ylims=(0,0.5), xlims=(0,1))
x = 0.999:0.000001:0.999999
P2 = plot(x, F.(x), label="F(x)", ylims=(0.497, 0.503), xlims=(0.999,1))
plot(P1, P2, size=(600, 240), legend=:topleft)

Out[41]:

4.3 収束円盤の境界上でのべき級数の収束
4.3.1 準備: Cesàro総和可能性
Cesàro総和可能性から収束円盤の境界上での収束性(後で説明するところのAbel総和可能性)が導かれるので, Cesàro総和可能性について準備しておこう.

∞𝑛𝑎𝑘 がCesàro総和可能(Cesàro summable)であるとは, その部分和 𝑠𝑛 = ∑ 𝑎𝑘 の加法平均
∑
𝑘=0
𝑘=0
𝑠0 + 𝑠1 + ⋯ + 𝑠𝑛
𝑛+1
が 𝑛 → ∞ で収束することであると定める. その収束先をCesàro和(Cesàro sum)と呼ぶ. □
𝑛
𝑛
∞
𝑎
𝑠
問題: 𝑠𝑛 =, 𝑡𝑛 =
とおく. 級数𝑘𝑘∑∑∑ 𝑎𝑘 がCesàro総和可能ならば 𝑎𝑛 = 𝑂(𝑛), 𝑠𝑛 = 𝑂(𝑛), 𝑡𝑛 = 𝑂(𝑛) となること
定義: 級数

を示せ.

𝑘=0

𝑘=0

𝑘=0

𝑎𝑘 のCesàro総和可能性は 𝑛 𝑡+𝑛 1 の収束性と同値である. ゆえに, 収束数列が有界であることより, ある 𝑀 > 0∑
𝑘=0が存在して, すべての番号 𝑛 について
|𝑡𝑛 | ≦ 𝑀(𝑛 + 1)
解答例:∞となることが導かれる. そのとき,|𝑠𝑛 | = |𝑡𝑛 − 𝑡𝑛−1 | ≦ |𝑡𝑛 | + |𝑡𝑛−1 | ≦ 𝑀(𝑛 + 1) + 𝑀𝑛 = 𝑀(2𝑛 + 1),|𝑎𝑛 | = |𝑠𝑛 − 𝑠𝑛−1 | ≦ |𝑠𝑛 | + |𝑠𝑛−1 | ≦ 𝑀(2𝑛 + 1) + 𝑀(2𝑛 − 1) = 4𝑀𝑛.
これで 𝑎𝑛 = 𝑂(𝑛), 𝑠𝑛 = 𝑂(𝑛) , 𝑡𝑛 = 𝑂(𝑛) であることがわかった. □注意: 特に級数

∞

∞

∞

∞

∞

0

0

0

∑ 𝑎𝑘 がCesàro総和可能ならばべき級数 ∑ 𝑎𝑘 𝑧𝑘 , ∑ 𝑠𝑘 𝑧𝑘 , ∑ 𝑡𝑘 𝑧𝑘 の収束半径は 1 以上になる. □0∞𝑎𝑛 が 𝛼 に収束するとき, 級数 ∑ 𝑎𝑛 はCesàro総和可能でかつそのCesàro和は 𝛼 に一致することを示せ.
∑
𝑛=0
𝑛=0
𝑛
𝑎𝑘 とおく. 𝑠𝑛 → 𝛼 ならば 𝑠0 + 𝑠𝑛1 ++ 1⋯ + 𝑠𝑛 → 𝛼 となることを示せばよい. しかし, その事実はノート
解答例: 𝑠𝑛 =∑𝑘=0「01 収束」ですでに示している. 𝜀-𝑁 論法の応用の典型例であり, 𝜀-𝑁 論法が使える人にとって証明は容易である. □∞1
問題: 級数∑(−1)𝑘 は発散するが, Cesàro総和可能であり, そのCesàro和は 2 になることを示せ.
問題: 級数𝑘=0∞∞

𝑎𝑘 が収束していれば 𝑎𝑛 → 0 となるが, (−1)𝑛 は収束しないので ∑(−1)𝑘 は収束していない(すなわ
∑
𝑘=0 𝑛
𝑘=0
𝑎𝑘 とおくと, 𝑛 が偶数ならば 𝑠𝑛 = 1 となり, 奇数ならば 𝑠𝑛 = 0 となる. このことから,
ち発散している). 𝑠𝑛 =∑𝑘=0
1 𝑛 𝑠𝑘 は 𝑛 以下の偶数の割合に一致するので, 𝑛 → ∞ で 1 に収束する. □𝑛+1 ∑2
解答例: 一般に級数

𝑘=0𝑛(−1)𝑗−1 𝑗2 = (−1)𝑛−1 𝑛(𝑛 2+ 1) を示せ.
∑
𝑗=1
解答例: 数学的帰納法. 𝑛 = 0 のとき両辺は 0 になり等しい. 𝑛 ≧ 0 でその等式が成立していると仮定すると,
𝑛+1(−1)𝑗−1 𝑗2 = (−1)𝑛−1 𝑛(𝑛 2+ 1) + (−1)𝑛 (𝑛 + 1)2∑
𝑗=1+ 2) .
= (−1)𝑛 𝑛 +2 1 (−𝑛 + 2(𝑛 + 1)) = (−1)𝑛 (𝑛 + 1)(𝑛2
ゆえに数学的帰納法より任意の 𝑛 ≧ 0 について示したい等式は成立している. □問題:

In [42]:

Out[42]:

1 j, n = symbols("j n", integer=true)
2 doit(sympy.Sum((-1)^(j-1)*j^2, (j,1,n)))𝑛 + 1)− (−1) 𝑛(𝑛2∞𝑛 が平方数ならば 𝑎𝑛 = 1 でそれ以外ならば 𝑎𝑛 = 0 であるとする. このとき, 級数 ∑(−1)𝑘𝑎𝑘 は発散するが, Cesàro総
𝑘=0
1
和可能であり, そのCesàro和は2 になることを示せ.
𝑛(−1)𝑘𝑎𝑘 とおく. 整数 𝑗 について (−1)𝑗2 = (−1)𝑗 なので 𝑠𝑛 = ∑ (−1)𝑗 となる. これより, 𝑠𝑛 は √⎯𝑛 以
解答例: 𝑠𝑛 =∑𝑘=00≦𝑗≦√𝑛⎯下の最大の整数が偶数であれば 1 になり, 奇数ならば 0 になる. ゆえに 𝑠𝑛 自身は収束しない. √ 𝑛 以下の最大の整数が 𝑚 にな
1 𝑛 𝑠𝑘 とおく. 𝜎𝑛 → 1 を示せばよい. 偶数 𝑚 に対するることと 𝑚2 ≦ 𝑛 < (𝑚 + 1) 2 は同値である. 𝜎𝑛 =
𝑛+1 ∑
2
𝑘=0
𝑚2 ≦ 𝑛 < (𝑚 + 1)2 で2 𝜎𝑛−1 < 𝜎𝑛 となり, 奇数 𝑚 に対する 𝑚2 ≦ 𝑛 < (𝑚 + 1)2 で 𝜎𝑛−1 < 𝜎𝑛 となる. ゆえに, 𝜎𝑛 は偶数 𝑚に対する 𝑛 = (𝑚 + 1) − 1 で極大値
𝑚+1
𝜎𝑛 = (𝑚 +1 1)2 ∑ (−1)𝑗−1 𝑗2 = 12 𝑚𝑚 ++ 21
問題:

𝑗=1

𝑚 に対する 𝑛 = (𝑚 + 1)2 − 1 で極小値𝑚𝜎𝑛 = (𝑚 +1 1)2 ∑(−1)𝑗−1 𝑗2 = 12 𝑚 𝑚+ 1
𝑗=1
1 であることがわかる. □になることがわかる. これより, 𝜎𝑛 →2になり, 奇数In [43]:

1
2
3
4
5
6
7
8
9



aa(n) = n == floor(typeof(n), √n)^2 ? one(n) : zero(n)ss(n) = sum(k->(-1)^k*aa(k), 0:n)tt(n) = sum(k->ss(k), 0:n)sigma(n) = tt(n)/(n+1)
N = 1000n = 0:Nplot(size=(640, 180), xlim=(-0.005*N, 1.005*N))@time plot!(n, sigma.(n), label="sigma_n")hline!([1/2], label="1/2", ls=:dash)2.622538 seconds (274.52 k allocations: 18.491 MiB, 9.35% compilation time: 2% of which
was recompilation)
Out[43]:問題:

𝑛 が 2 のべきで表わされる整数ならば 𝑎𝑛 = 1 でそれ以外ならば 𝑎𝑛 = 0 であるとする. このとき, 級数∞∑(−1)log2 𝑘𝑎𝑘 = 0 + 1 − 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 − 1 + ⋯𝑘=0

はCesàro総和不可能であることを示せ.

𝑛𝑛𝑠𝑛 = ∑(−1)log2 𝑘𝑎𝑘 , 𝜎𝑛 = 𝑛 +1 1 ∑ 𝑠𝑘 とおく. 𝑠𝑛 は 2𝑚 ≦ 𝑛 < 2𝑚+1 − 1 のとき 𝑚 が偶数なら 1 になり, 奇数な
𝑘=0
𝑘=0 𝑚+1− 1 で極大値
ら 0 になる. ゆえに 𝜎𝑛 は偶数 𝑚 に対する 𝑛 = 2
1 𝑚+1(−1)𝑘−12𝑘 = 2𝑚+2 − 1𝜎𝑛 = 2𝑚+1∑
3 ⋅ 2𝑚+1
解答例:

𝑚+1 − 1 で極小値になり, 奇数 𝑚 に対する 𝑛 = 2

𝑘=0

1 𝑚 (−1)𝑘−12𝑘 = 2𝑚−2 − 1𝜎𝑛 = 2𝑚+1∑
3 ⋅ 2𝑚+1
𝑘=0
2 となり, 𝑚 を奇数のまま 𝑚 → ∞ とすると 𝜎2𝑚+1−1 → 1になる. これより, 𝑚 を偶数のまま 𝑚 → ∞ とすると 𝜎2𝑚+1−1 →3∞3となる. これより, 𝜎𝑛 が収束しないことがわかる. これで級数 ∑𝑘=0 (−1) log2 𝑘 𝑎𝑘 はCesàro総和不可能であることが分かった.
□
4.3.2 Abel総和可能性
定義: 級数∞𝑎𝑘 がAbel総和可能(Abel summable)であるとは
∑
𝑘=0

∞

𝑓(𝑥) = ∑ 𝑎𝑘 𝑥𝑘
𝑘=0

1 以上でかつ 𝑥 ↗ 0 のとき 𝑓(𝑥) が収束することであると定める. 𝑓(𝑥) の 𝑥 ↗ 1 での収束
□
∞
∞
𝛼
𝑎
問題: 級数がに収束するとき,
級数∑𝑛∑ 𝑎𝑛 はAbel総和可能でかつそのAbel和は 𝛼 に一致することを示せ.
の右辺のべき級数の収束半径が先をAbel和(Abel sum)と呼ぶ.

∞

𝑛=0

𝑛=0

∞

𝑎𝑛 が収束することより, 特に 𝑎𝑛 → 0 なので, べき級数 ∑ 𝑎𝑘 𝑥𝑘 の収束半径は 1 以上であることがわかる.
∑
𝑛=0
𝑘=0𝑛
∞
𝑘
|𝑥| < 1 を満たす複素数 𝑧 に対して 𝑓(𝑧) = ∑ 𝑎𝑘 𝑧 とおく. 𝑠𝑛 = ∑ 𝑎𝑘 , 𝑠−1 = 0 とおく. 𝑠𝑛 は収束するので特に有界であ𝑘=0
𝑘=0る. このとき, 𝑎𝑘 = 𝑠𝑘 − 𝑠𝑘−1 を代入すると,
解答例:

𝑛

𝑛−1

𝑘=0

𝑘=0

∑ 𝑎𝑘 𝑧𝑘 = 𝑠𝑛 𝑧𝑛 + (1 − 𝑧) ∑ 𝑠𝑘 𝑧𝑘 .

|𝑧| < 1 のとき 𝑠𝑛 の有界性より, 𝑠𝑛 𝑧𝑛 → 0 となるので∞
𝑓(𝑧) = (1 − 𝑧) ∑ 𝑠𝑘 𝑧𝑘 .
𝑘=0

これと

∞
𝛼 = (1 − 𝑧) 1 −𝛼 𝑧 = (1 − 𝑧) ∑ 𝛼𝑧𝑘
𝑘=0

𝑁 について𝑁−1∞∞
𝑓(𝑧) − 𝛼 = (1 − 𝑧) ∑(𝑠𝑘 − 𝛼)𝑧𝑘 = (1 − 𝑧) ∑ (𝑠𝑘 − 𝛼)𝑧𝑘 + (1 − 𝑧) ∑ (𝑠𝑘 − 𝛼)𝑧𝑘
𝑘=0
𝑘=0
𝑘=𝑁
|1 − 𝑧| ≦ 𝑅 と仮定する. 任意に 𝜀 > 0 を取る. 𝑠𝑘 → 𝛼 なのである番号 𝑁 が存在して 𝑘 ≧ 𝑁 ならばとなる. 𝑅 ≧ 1,
1 − |𝑧|𝜀|𝑠𝑘 − 𝛼| ≦ 2𝑅 となる. ゆえにそのとき
∞
∞
||
||
𝑘
(1
−
𝑧)
(
−
𝛼)
≦
|1
−
𝑧|
𝜀|𝑧|𝑘 ≦ 2𝑅𝜀 |11 −−|𝑧|𝑧| ≦ 𝜀2 .
𝑠
𝑧
||
||
𝑘
∑
∑
𝑘=𝑁
| 𝑘=𝑁
|
𝜀 とすると,𝑠𝑘 − 𝛼 は有界なので 𝑘 によらない定数 𝑀 > 0 が存在して |𝑠𝑘 − 𝛼| ≦ 𝑀 となるので, 1| − 𝑧| ≦ 2𝑀𝑁|| 𝑁−1|||(1 − 𝑧) ∑ (𝑠𝑘 − 𝛼)𝑧𝑘 ||| = |1 − 𝑧|𝑀𝑁 ≦ 𝜀2 .
𝑘=0||の差は任意の番号

このとき,|𝑓(𝑧) − 𝛼| ≦ 𝜀2 + 𝜀2 = 𝜀.
|1 − 𝑧| ≦ 𝑅 を満たしながら 1 に近付くとき, 𝑓(𝑧) が 𝛼 に収束することがこれで, ある 𝑅 ≧ 1 について, 𝑧 が |𝑧| < 1 かつ
1 − |𝑧|示された. 特に 𝑥 が区間 [0,1) の上を動きながら 1 に近付くならば 𝑓(𝑥) は 𝛼 に収束する. これで, Abel総和可能性とAbel和が𝛼 に等しくなることが示された. □|1 − 𝑧| ≦ 𝑅 を満たす 𝑧 達の領域はStolz領
注意: 上の問題の結果はAbelの連続性定理と呼ばれることがある. |𝑧| < 1 かつ
1 − |𝑧|域のように呼ばれることがあるらしい. □∞∞問題: 級数がCesàro総和可能でかつそのCesàro和がになるとき,
級数
𝛼𝑎∑𝑛∑ 𝑎𝑛 はAbel総和可能でかつそのAbel和は 𝛼𝑛=0に一致することを示せ.

𝑛

𝑛=0

𝑛

∞

𝑠𝑛 = ∑ 𝑎𝑘 , 𝑠−1 = 0, 𝑡𝑛 = ∑ 𝑠𝑘 , 𝑡−1 = 0 とおく. ∑ 𝑎𝑛 がCesàro総和可能であるとき, 𝑎𝑛 = 𝑂(𝑛), 𝑠𝑛 = 𝑂(𝑛),
𝑘=0
𝑘=0
𝑛=0
∞
∞
∞
𝑡𝑛 = 𝑂(𝑛) となることは上の方ですでに示した. そのことより, べき級数 ∑ 𝑎𝑘 𝑧𝑘 , ∑ 𝑠𝑘 𝑧𝑘 , ∑ 𝑡𝑘 𝑧𝑘 の収束半径が 1 以上に
𝑘=0
𝑘=0
𝑘=0
∞
なることがわかる. |𝑧| < 1 を満たす複素数 𝑧 に対して 𝑓(𝑧) =∑ 𝑎𝑘 𝑧𝑘 とおく. このとき, |𝑧| < 1 ならば
証明:

𝑘=0

∞
𝑓(𝑧) = (1 − 𝑧) ∑ 𝑠𝑘 𝑧𝑘 = (1 − 𝑧)2 ∑ 𝑡𝑘 𝑧𝑘 = (1 − 𝑧)2 ∑ 𝑘 𝑡+𝑘 1 (𝑘 + 1)𝑧𝑘 .
これとの差は任意の番号

𝑁 について

∞

∞

𝑘=0

𝑘=0

𝑘=0

∞
𝛼 = (1 − 𝑧)2 (1 −𝛼 𝑧)2 = (1 − 𝑧)2 ∑ 𝛼(𝑘 + 1)𝑧𝑘
𝑘=0

𝑁−1
∞
𝑓(𝑧) − 𝛼 = (1 − 𝑧)2 ∑ ( 𝑘 𝑡+𝑘 1 − 𝛼) (𝑘 + 1)𝑧𝑘 + (1 − 𝑧)2 ∑ ( 𝑘 𝑡+𝑘 1 − 𝛼) (𝑘 + 1)𝑧𝑘
𝑘=0

𝑘=𝑁

∞
𝑅 ≧ 1, |11 −−|𝑧|𝑧| ≦ 𝑅 と仮定する. 任意に 𝜀 > 0 を取る. 級数 ∑ 𝑎𝑛 のCesàro総和可能性は 𝑘 𝑡+𝑘 1 → 𝛼 を意味する
𝑛=0
𝑡
𝜀
|
|
𝑘
ので, ある番号 𝑁 が存在して 𝑘 ≧ 𝑁 ならば || 𝑘 + 1 − 𝛼|| ≦ 2𝑅2 となる. そのとき,∞|| 2 ∞ 𝑡𝑘|
2||(1 − 𝑧) ∑ ( 𝑘 + 1 − 𝛼) (𝑘 + 1)𝑧𝑘 ||| ≦ |1 − 𝑧|2 𝜀 ∑ (𝑘 + 1)|𝑧|𝑘 ≦ 2𝑅𝜀 2 (1|1−−|𝑧|𝑧|)2 ≦ 𝜀2 .
𝑘=𝑁
𝑘=𝑁
|
|
𝑡𝑘
𝑘 によらない定数 𝑀 > 0 が存在して, ||| 𝑘 𝑡+𝑘 1 − 𝛼||| ≦ 𝑀 となるので,
𝑘 + 1 − 𝛼 は有界なので⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯𝜀 ⎯ ならば|1 − 𝑧| ≦ √⎯𝑀𝑁(𝑁+ 1)|| 2 𝑁−1 𝑡𝑘|||(1 − 𝑧) ∑ ( 𝑘 + 1 − 𝛼) (𝑘 + 1)𝑧𝑘 ||| ≦ |1 − 𝑧|2 𝑀 𝑁(𝑁2+ 1) ≦ 𝑀𝑁(𝑁𝜀 + 1) 𝑀𝑁(𝑁2 + 1) = 𝜀2 .
𝑘=0
|
|
となる.

このとき,

|𝑓(𝑧) − 𝛼| ≦ 𝜀2 + 𝜀2 = 𝜀.
|1 − 𝑧| ≦ 𝑅 を満たしながら 1 に近付くとき, 𝑓(𝑧) が 𝛼 に収束することがこれで, ある 𝑅 ≧ 1 について, 𝑧 が |𝑧| < 1 かつ
1 − |𝑧|示された. 特に 𝑥 が区間 [0,1) の上を動きながら 1 に近付くならば 𝑓(𝑥) は 𝛼 に収束する. これで, Abel総和可能性とAbel和が𝛼 に等しくなることが示された. □∞2
1
問題: 収束半径が 1 のべき級数 𝑓(𝑥) =∑(−1)𝑘𝑥𝑘 について, 𝑥 ↗ 1 のとき 𝑓(𝑥) → 2 となることを示せ.
𝑘=0∞

𝑛 が平方数のとき 𝑎𝑛 = 1 でそれ以外のとき 𝑎𝑛 = 0 とおくと, 𝑓(𝑥) = ∑(−1)𝑗𝑎𝑗 𝑥𝑗 となる. 上の方で級数
𝑗=0∞1(−1)𝑗𝑎𝑗 がCesàro総和可能でかつそのCesàro和が 2 になることを示した. ゆえに, その級数はAbel総和可能でかつその∑𝑗=01 になる. すなわち, 𝑥 ↗ 1 のとき 𝑓(𝑥) → 1 となる. □Abel和も2
2
解答例:

問題: Cesàro総和不可能だが, Abel総和可能な級数の例を挙げよ.
解答例:

𝑛𝑎𝑘 = (−1)𝑘(𝑘 + 1), 𝑠𝑛 = ∑ 𝑎𝑘 = 1 − 2 + 3 − 4 + ⋯ + (−1)𝑛 (𝑛 + 1), 𝑡𝑛 = ∑𝑛𝑘=0 𝑠𝑘 とおくと,

𝑘=0
𝑠0 = 1, 𝑠1 = −1, 𝑠2 = 2, 𝑠3 = −2, 𝑠4 = 3, 𝑠5 = −3, …,
𝑡0 = 1, 𝑡1 = 0, 𝑡2 = 2, 𝑡3 = 0, 𝑡4 = 3, 𝑡5 = 0, …
𝑡2𝑘 = 1 , lim 𝑠2𝑘+1 = 0 となるので, 𝑡𝑛 は収束しない. すなわち,
すなわち, 𝑡2𝑘 = 𝑘 + 1 , 𝑠2𝑘+1 = 0 なので lim𝑘→∞2𝑘 + 1 2 𝑘→∞ 2𝑘 + 2
𝑛+1∞
𝑎𝑘 = 1 − 2 + 3 − 4 + ⋯ はCesàro総和不可能である. しかし,
級数
∑
𝑘=0
∞
∞
∞
𝑓(𝑥) = ∑ 𝑎𝑘 𝑥𝑘 = ∑(−1)𝑘(𝑘 + 1)𝑥𝑘 = ∑ (−2𝑘 )(−𝑥)𝑘 = (1 +1 𝑥)2
𝑘=0
𝑘=0
𝑘=0
は

∞
𝑥 ↗ 1 で 14 に収束する. すなわち, 級数 ∑ 𝑎𝑘 = 1 − 2 + 3 − 4 + ⋯ はAbel総和可能であり, そのAbel和は 14 になる. □𝑘=0

次の問題とその解答例は次のスライドのp.25にある.
Peter Duren, Sums for Divergent Series: A Tauberian Adventure(http://matematicas.uam.es/~dragan.vukotic/respub/Duren_Tauberian_Talk_2013-10_UAM.pdf), Slide 2013-10
問題:

𝑛 が 2 のべきで表わされる整数ならば 𝑎𝑛 = 1 でそれ以外ならば 𝑎𝑛 = 0 であるとする. このとき, 級数∞∑(−1)log2 𝑘𝑎𝑘 = 0 + 1 − 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 − 1 + ⋯𝑘=0

|𝑥| < 1 のとき∞∞
𝑓(𝑥) = ∑(−1)log2 𝑘𝑎𝑘 𝑥𝑘 = ∑(−1)𝑗𝑥2𝑗 = 𝑥 − 𝑥2 + 𝑥4 − 𝑥8 + 𝑥16 − 𝑥32 + ⋯はAbel総和不可能であることを示せ. ただし,

𝑘=0

𝑗=0

𝑓(0.995) = 0.50088⋯ が正しいことを認めて使ってよいものとする.
解答例: 0 < 𝑥 < 1 であると仮定する. もしも 𝑥 ↗ 1 で 𝑓(𝑥) が 𝛼 に収束するならば, 𝑓(𝑥) = 𝑥 − 𝑓(𝑥2 ) より 𝛼 = 1 − 𝛼 と
1
1/4
1/ 2
2
4
4
とおくと, 数値計算の結果

In [44]:

1 f(x; N=2^5) = sum(j->(-1)^j*x^(typeof(x)(2)^j), 0:N)
2 @time [f(big"0.995"; N=2^m) for m in 0:5]



0.073335 seconds (82.74 k allocations: 5.668 MiB, 93.16% compilation time)Out[44]: 6-element Vector{BigFloat}:
0.00497500000000000000000000000000000000000000000000000000000000000000000000000275
0.9851245006249999999999999999999999999999999999999999999999999999999999999999928
0.9473625810237993796873652874030756837463378906249999999999999999999999999999727
0.5718265527518791413369599184207730651863317022847063397385549887356997426795488
0.5008815862056572522950678763359730015035702048673540602989286876366169520887714
0.5008815862056572522950678763359730015035702048673540602989286876366169520887714

𝑅 ≧ 1 に対して, Stolz領域 𝐾𝑅 を
𝐾𝑅 = { 𝑧 ∈ ℂ |||| |𝑧| < 1, |11 −−|𝑧|𝑧| ≦ 𝑅}と定める. 𝐾𝑅 の形については次のセルのプロットを見よ. □Stolz領域の形:

In [45]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

x = -1:0.005:1
y = -1:0.005:1
z = x' .+ im.*yf(z, R) = (abs2(z)<1 && abs(1-z) ≤ R*(1-abs(z))) ? 0.0 : 1.0
t = 0:0.01:2π​
PP = []
for RR in [1.0, 2.0, 5.0, 10.0]
P = plot(aspectratio=1)
plot!(xlim=(-1,1), ylim=(-1,1))
plot!(title="R = $RR", titlefontsize=10)
heatmap!(x, y, f.(z, RR), colorbar=false, color=:plasma)
plot!(cos.(t), sin.(t), label="")push!(PP, P)
end​plot(PP..., size=(750, 170), layout=@layout([a b c d]))Out[45]:

問題:

∞

∞

𝑘=0
∞

𝑘=1

𝑎𝑘 ≧ 0 かつ ∑ 𝑎𝑘 = ∞ ならば, 𝑥 ↗ 1 のとき ∑ 𝑎𝑘 𝑥𝑘 → ∞ となることを示せ.
𝑛𝑎𝑘 ≧ 0 かつ ∑ 𝑎𝑘 = ∞ と仮定し, 𝑀 > 0 であるとする. ある番号 𝑁 が存在して 𝑛 ≧ 𝑁 ならば ∑ 𝑎𝑘 ≧ 2𝑀 と𝑘=0
1 ≦𝑘=0𝑥 < 1 とすると,なる. ゆえに21/𝑁∞𝑁𝑁𝑘 ≧ 𝑎𝑘 𝑥𝑘 ≧ 𝑥𝑁 𝑎𝑘 ≧ 1 2𝑀 = 𝑀.
𝑎
𝑥
𝑘
∑
∑
∑
2
𝑘=0
𝑘=0
𝑘=0
解答例:

これで

∞

𝑥 ↗ 1 のとき ∑ 𝑎𝑘 𝑥𝑘 → ∞ となることが示された. □𝑘=1

∞ 𝑧2⋅3𝑘 − 𝑧3𝑘

1 であり, 𝑧 = 1 でも収束しており, 𝑓(1) = 0 となってい|1 − 𝑧| ≦ 𝑅 を満たしながら 1 に近付くと(特に 𝑧 ↗ 1 のとる. ゆえに, Abelの連続性定理より, ある 𝑅 ≧ 1 について, 𝑧 が
1 − |𝑧|き) 𝑓(𝑧) は 𝑓(0) = 0 に近付く.
𝜋𝑖/3𝑚 とおくと, 𝑚 → ∞ で 𝑧𝑚 → 1 であり, さらに 𝑘 ≧ 𝑚 , 0 ≦ 𝑟 ≦ 1, 𝑧 = 𝑟𝑧𝑚 ならば
しかし, 𝑧𝑚 = 𝑒∞ 𝑟2⋅3𝑘 + 𝑟3𝑘
𝑘
𝑘
𝑘
𝑘
2⋅3
2⋅3
3
3
𝑧 − 𝑧 = 𝑟 + 𝑟 となり, 𝑟 のべき級数 ∑ 𝑘 は 𝑟 = 1 のとき ∞ になるので, 上の問題の結果より, 𝑟 ↗ 1
𝑘=𝑚∞ 𝑟2⋅3𝑘 + 𝑟3𝑘
で∑ 𝑘 → ∞ となる. このことから, |𝑧| < 1 を満たす 𝑧 を 1 に自由に近付けてよいことにすると, 𝑓(𝑧) は 0 に収
𝑘=𝑚例:

In [46]:𝑓(𝑧) = ∑

𝑘

𝑘=0

1
2
3
4
5
6
7

とおく. 右辺のべき級数の収束半径は

f(z; N=39) = sum(k->(z^(2*3^k)-z^(3^k))/k, 1:N)
@show f(1)@show f(0.9*e^(π*im/3^1))@show f(0.9999*e^(π*im/3^2))@show f(0.9999999*e^(π*im/3^3))@show f(0.9999999999*e^(π*im/3^4))@show f(0.9999999999999*e^(π*im/3^5));f(1) = 0.0f(0.9 * e ^ ((π * im) / 3 ^ 1)) = 1.5497581048837092 - 1.447746731035876e-15imf(0.9999 * e ^ ((π * im) / 3 ^ 2)) = 2.1652569095059886 - 0.00025970371463305745im
f(0.9999999 * e ^ ((π * im) / 3 ^ 3)) = 2.7262170557818766 + 0.3007667935718108im
f(0.9999999999 * e ^ ((π * im) / 3 ^ 4)) = 3.046854906145112 + 0.2649066855815363im
f(0.9999999999999 * e ^ ((π * im) / 3 ^ 5)) = 3.2124675281844013 + 0.1962355974206421im

4.3.3 準備: Vitaliの定理
複素函数論を使うことができれば, べき級数の収束円盤の境界の一部分までべき級数で定義された函数が解析接続されているというAbelの連続性定理の仮定も強い仮定のもとで, Abelの定理よりも強い結論を得ることができる. そういう結果を示すための準備として, 次のVitaliの定理を引用しておく.

𝐷 ℂ
𝑓𝑛 𝐷
𝑓𝑛 が 𝐷 上で広義一様有界でかつ複𝑓𝑛 (𝑧)𝑧∈𝐷
𝑓𝑛 𝐷 上で広義一様収束する. □ここで, 𝑓𝑛 が広義一様有界であるとは, 𝐷 の任意のコンパクト部分集合 𝐾 に対してある定数 𝑀 > 0 が存在して, 𝐾 上ですべての番号 𝑛 について |𝑓𝑛 | ≦ 𝑀 となることであり, 𝑓𝑛 が 𝐷 上で広義一様収束するとは, 𝐷 の任意のコンパクト部分集合 𝐾
上で 𝑓𝑛 が一様収束することである. 正則函数列の広義一様収束先の函数も正則函数になる.
Vitaliの定理の証明はこのノートで扱わないが, その定理は極めて有用である. Vitaliの定理を使えば, 領域 𝐷 内のほんの一部分
での収束さえ証明すれば, 領域 𝐷 全体での収束が証明できてしまうことがある. 実際に次の節でVitaliの定理がそのような使わ
Vitaliの定理:
は の連結開集合であり,は上の正則函数列であるとする. もしも
素数列が収束するようなの全体が集積点を持つならば, 正則函数列
はれ方をする.

Vitaliの証明については以下の文献を参照せよ:
大島利雄, 関数論 (https://web.archive.org/web/20180202163724/http://akagi.ms.u-tokyo.ac.jp/CAMPUS/ca.pdf), 2003年
斎藤恭司述, 松本佳彦記, 複素解析学特論 (http://www.ms.u-tokyo.ac.jp/publication/documents/saito-lectures.pdf) (archive(https://web.archive.org/web/20130626083906/http://www.ms.u-tokyo.ac.jp/publication/documents/saito-lectures.pdf)),
1978年, 2009年

4.3.4 M. Riesz の補題とその応用
この節の内容についてはRemmert, Reinhold. Classical topics in complex function theory. Graduate Texts in Mathematics 172, Springer, 1998の第11章 "Boundary Behavior of Power Series" の§1 "Convergent on the Boundary" (pp.244-249)を参照した. この文献のこの章は収束円盤の境界上でのべき級数の振る舞いに関する結果やアイデアに関する歴史的覚え書きについても非常に詳しい.

𝑔𝑛 の定義の仕方が絶妙で本質を突いている.
∞
M. Rieszの補題:∑ 𝑎𝑘 𝑧𝑘 は収束半径が1の複素べき級数であるとし, 複素数列 𝑎𝑛 は有界であると仮定する.
基本は次の補題である.

𝑘=0

𝑎 < 𝑏 ≦ 𝑎 + 2𝜋, 𝑐 > 1, 𝐾 = 𝐾𝑎,𝑏,𝑐 = {𝑧 ∈ ℂ ∣ 𝑎 ≦ arg(𝑧) ≦ 𝑏, |𝑧| ≦ 𝑐}∞
𝑎𝑘 𝑧𝑘 は 𝐾 を含む ℂ の開集合上の正則函数 𝑓 に拡張されると仮定する. 𝐾 上の函であるとし, |𝑧| < 1 における正則函数∑
𝑘=0
数列 𝑔𝑛 を次のように定める:

𝑔𝑛 (𝑧) = 𝑓(𝑧)𝑧−𝑛+1𝑠𝑛 (𝑧) (𝑧 − 𝛼)(𝑧 − 𝛽), 𝑠𝑛 (𝑧) = ∑ 𝑎𝑘 𝑧𝑘 , 𝛼 = 𝑒𝑖𝑎 , 𝛽 = 𝑒𝑖𝑏 .
𝑛𝑘=0

𝑔𝑛 は 𝐾 上で一様有界である. □証明: 𝜅 = 𝑐𝑒𝑖𝑎 , 𝜆 = 𝑐𝑒𝑖𝑏 とおく. 最大値の原理より, 𝐾 の境界上で, すなわち, 線分 [0,𝜅] , [0,𝜆] および円弧
𝐿 = {𝑐𝑒𝑖𝜃 ∣ 𝑎 ≦ 𝜃 ≦ 𝑏} の上で函数列 𝑔𝑛 が一様有界であることを示せば十分である. 線分 [0,𝜅] を 0, 𝛼, (0,𝛼), (𝛼,𝜆] に分
このとき, 函数列

割して考える.

|𝑎𝑘 | の上界の一つを 𝐴 > 0 と書き, |𝑓| の 𝐾 上での上界の一つを 𝑀 > 0 と書く.
𝑧 = 0 において, |𝑔𝑛 (0)| = |𝑎𝑛+1 ||0 − 𝛼||0 − 𝛽| = |𝑎𝑛+1 | ≦ 𝐴.
𝑧 = 𝛼 において, |𝑔𝑛 (𝛼)| = 0.
𝑧 ∈ (0,𝛼) は 𝑧 = 𝑟𝑒𝑖𝑎 , 0 < 𝑟 < 1 と表わされる. そのとき,|∞ | ∞
𝑛+1|𝑓(𝑧) − 𝑠𝑛 (𝑧)| = ||| ∑ 𝑎𝑘 𝑧𝑘 ||| ≦ 𝐴 ∑ 𝑟𝑘 = 𝐴𝑟1 − 𝑟 ,|𝑘=𝑛+1 | 𝑘=𝑛+1|𝑧 − 𝛼| = 1 − 𝑟, |𝑧 − 𝛽| ≦ 2
複素数列

なので,

𝑛+1 1
|𝑔𝑛 (𝑧)| ≦ 𝐴𝑟1 − 𝑟 𝑟𝑛+1
(1 − 𝑟)2 = 2𝐴.

𝑧 ∈ (𝛼,𝜅] は 𝑧 = 𝑟𝑒𝑖𝑎 , 1 < 𝑟 ≦ 𝑐 と表わされる. そのとき,
𝑛
𝑛+1
𝑛+1
|𝑓(𝑧) − 𝑠𝑛 (𝑧)| ≦ |𝑓(𝑧)| + 𝐴 ∑ 𝑟𝑘 ≦ 𝑀 + 𝐴(𝑟𝑟 − 1− 1) ≦ 𝑀 + 𝐴 𝑟𝑟 − 1 ,𝑘=0|𝑧 − 𝛼| = 𝑟 − 1, |𝑧 − 𝛽| ≦ 𝑐 + 1,
𝑟𝑛+1 ≧ 𝑟 ≧ 𝑟 − 1
なでの,

𝑛+1
1 (𝑟 − 1)(𝑐 + 1) ≦ (𝑀 + 𝐴)(𝑐 + 1).
|𝑔𝑛 (𝑧)| ≦ (𝑀 + 𝐴 𝑟𝑟 − 1 ) 𝑟𝑛+1
𝑧 ∈ [0,𝜆] 上での |𝑔𝑛 | の上からの評価は以上における 𝑧 ∈ [0,𝜆] の場合と同様である.
𝑧 ∈ 𝐿 は 𝑧 = 𝑐𝑒𝑖𝜃 , 𝑎 ≦ 𝜃 ≦ 𝑏 と表わされる. そのとき, |𝑧| = 𝑐 > 1 なので,
𝑛
𝑛+1
𝑛+1
|𝑓(𝑧) − 𝑠𝑛 (𝑧)| ≦ |𝑓(𝑧)| + 𝐴 ∑ 𝑐𝑘 ≦ 𝑀 + 𝐴(𝑐𝑐 − 1− 1) ≦ 𝑀 + 𝐴 𝑐𝑐 − 1 ,𝑘=0|𝑧 − 𝛼| ≦ 𝑐 + 1, |𝑧 − 𝛽| ≦ 𝑐 + 1,
なので,

𝑛+1
1 (𝑐 + 1)(𝑐 + 1) ≦ 𝑀 + 𝐴 (𝑐 + 1)2 .
|𝑔𝑛 (𝑧)| ≦ (𝑀 + 𝐴 𝑐𝑐 − 1 ) 𝑐𝑛+1
( 𝑐 − 1)
以上によって, |𝑔𝑛 | が 𝐾 の境界上で一様有界であることが示されたので, 最大値の原理から 𝐾 全体で一様有界であることも導かれる. □.
∞
M. Rieszの有界性定理:∑ 𝑎𝑘 𝑧𝑘 は収束半径が1の複素べき級数であるとし, 複素数列 𝑎𝑛 は有界であると仮定する.
𝑘=0

𝑆 = {𝑧 ∈ ℂ ∣ 𝐴 < arg(𝑧) < 𝐵, |𝑧| < 𝐶 }, 𝐴 < 𝐵 ≦ 𝐴 + 2𝜋, 𝐶 > 1∞
𝑎𝑘 𝑧𝑘 は 𝑆 上の正則函数 𝑓 に拡張されると仮定する. このとき, 部分和の函数列であるとし, |𝑧| < 1 における正則函数
∑
𝑘=0
𝑛
𝑘
𝑠𝑛 (𝑧) = ∑ 𝑎𝑘 𝑧 は
𝑘=0

上で広義一様有界である.

□

𝑆|𝑧|≦1 = {𝑧 ∈ ℂ ∣ 𝐴 < arg(𝑧) < 𝐵, |𝑧| ≦ 1}

𝑆|𝑧|≦1𝑑>0𝑧∈𝑍𝑍

𝐾 = 𝐾𝑎,𝑏,𝑐 𝐴 < 𝑎 < 𝑏 < 𝐵, 1 < 𝑐 < 𝐶 を𝑍 から 𝐾 の境界への最短𝑛
𝐾 上で |𝑔𝑛 | ≦ 𝐺 となる.

証明:の任意のコンパクト部分集合
は M. Rieszの補題におけるあるで満たすものの内部に含まれる. 以下では M. Rieszの補題とその証明における記号をそのまま用いる.
距離をと書く. M. Rieszの補題より, ある定数が存在して, すべての番号 について
ゆえに,
のとき,
でもあるので,𝐺>0|𝑧| ≦ 1𝑧𝑛+1 || ≦ |𝑓(𝑧)| + |𝑔𝑛 (𝑧)||𝑧𝑛+1 | ≦ 𝑀 + 𝐺 .
|𝑠𝑛 (𝑧)| = |||𝑓(𝑧) − (𝑧 𝑔−𝑛 (𝑧)𝛼)(𝑧 − 𝛽) |||𝑧 − 𝛼||𝑧 − 𝛽|𝑑2|FatouとM. Rieszの収束定理: M. Rieszの有界性定理の状況において, さらに複素数列 𝑎𝑛 が 0 に収束していると仮定すると, べ∞𝑎𝑘 𝑧𝑘 は 𝑆|𝑧|≦1 上で 𝑓 に広義一様収束する. □
き級数
∑
𝑘=0
証明: 𝑆|𝑧|≦1 の任意のコンパクト部分集合 𝑍 は M. Rieszの補題におけるある 𝐾 = 𝐾𝑎,𝑏,𝑐 で 𝐴 < 𝑎 < 𝑏 < 𝐵, 1 < 𝑐 < 𝐶 を満たすものの内部に含まれる. 以下では M. Rieszの補題とその証明における記号をそのまま用いる. 𝑍 から 𝐾 の境界への最短距離を 𝑑 > 0 と書く. このとき, 𝑧 ∈ 𝑍 ならば, |𝑧| ≦ 1 でもあるので,𝑧𝑛+1 | ≦ |𝑔𝑛 (𝑧)| .
|𝑓(𝑧) − 𝑠𝑛 (𝑧)| = |𝑧|𝑔−𝑛 (𝑧)||𝛼||𝑧 − 𝛽| 𝑑2
したがって, 𝑠𝑛 (𝑧) が 𝑓(𝑧) に一様収束することを示すためには, 𝑔𝑛 (𝑧) が 𝑍 上で 0 に一様収束することを示せば十分である.
さらに, そのためには, Vitaliも定理より, 0 < 𝑟 < 1 を満たす 𝑟 を任意に固定して, 𝑧 ∈ 𝐾 , |𝑧| = 𝑟 のときに, lim 𝑔𝑛 (𝑧) = 0𝑛→∞となることを示せば十分である.

0 < 𝑟 < 1, 𝑧 ∈ 𝐾 , |𝑧| = 𝑟 と仮定し, 任意に 𝜀 > 0 を取る. この場合には, 𝑎𝑛 が 0 に収束すると仮定してあったので, ある番
1 − 𝑟 となる. 以下, 𝑛 ≧ 𝑁 と仮定する. このとき, |𝑧 − 𝛼| ≦ 𝑟 + 1,
号 𝑁 が存在して, 𝑘 ≧ 𝑁 ならば |𝑎𝑘 | ≦ 𝜀(𝑟 + 1)2|𝑧 − 𝛽| ≦ 𝑟 + 1,∞
𝑛+1|𝑓(𝑧) − 𝑠𝑛 (𝑧)| ≦ ∑ |𝑎𝑘 |𝑞 𝑘 ≦ 𝜀 (𝑟1+−1)𝑟 2 1𝑟 − 𝑟
𝑘=𝑛+1

なので,

これで

lim 𝑔𝑛 (𝑧) = 0 が示された. □
𝑛→∞

𝑛+1 1
|𝑔𝑛 (𝑧)| ≦ 𝜀 (𝑟1+−1)𝑟 2 1𝑟 − 𝑟 𝑟𝑛+1
(𝑟 + 1)2 = 𝜀.
∞1 のべき級数で定義された |𝑧| < 1 における正則函数 𝑓(𝑧) = ∑ 𝑎𝑘 𝑧𝑘 が
𝑘=0∞𝑛
𝑧 = 1 まで解析接続されているとき, 複素数列 𝑎𝑛 が 0 に収束することと ∑ 𝑎𝑘 = 𝑛→∞lim ∑ 𝑎𝑘 が収束することが同値である
注意: FatouとM. Rieszの収束定理より, 収束半径

𝑘=0

𝑘=0

ことがわかる. 後者ならば前者は自明であるが, その逆向きはFatouとM. Rieszの収束定理の証明を読めばかなり非自明である.

□

0 に収束する(もしくは有界である)
1という仮定を除くことはできないことは次の例を見ればわかる. 有理函数 𝑓(𝑧) =(1 + 𝑧)2 は 𝑧 ≠ −1 以外で正則であり, そ
例: FatouとM. Rieszの収束定理(もしくはRieszの有界性定理)において, べき級数の係数がのべき級数展開∞𝑓(𝑧) = ∑(−1)𝑛−1 𝑛𝑧𝑛
𝑛=1

1 であり, 𝑓(1) = 14 である. しかし, 右辺のべき級数の係数 (−1)𝑛−1 𝑛 は 0 に収束していないし(有界でさえな
い), そのべき級数は 𝑧 = 1 のとき
𝑁
𝑠𝑁 = ∑(−1)𝑛−1 𝑛 = 1 − 2 + 3 − 4 + ⋯ + (−1)𝑁−1 𝑁 = (−1)𝑁−1 ⌊ 𝑁 2+ 1 ⌋ ,𝑛=1
𝑠1 = 1, 𝑠2 = −1, 𝑠3 = 2, 𝑠4 = −2, 𝑠5 = 3, 𝑠6 = −3, …
となって収束しない(有界でさえない). □𝑧 𝑑𝑡
例: log(1 + 𝑧) =∫0 1 + 𝑡 は 𝑧 ≠ −1 以外では多価正則であり, そのべき級数展開の収束半径は

log(1 + 𝑧) = ∑(−1)𝑛−1 𝑧𝑛
∞

𝑛

𝑛=1

1 であり, その係数 (−1)𝑛 /𝑛 は 0 に収束している. ゆえに, FatouとM. Rieszの収束定理より, このべき級数は|𝑧| ≦ 1, −𝜋 < arg(𝑧) < 𝜋
において log(1 + 𝑧) に広義一様収束している. □𝑧 −log(1 − 𝑡)
例: Li2 (𝑧) =∫0𝑡 𝑑𝑡 は 𝑧 = 1 以外では多価正則であり, そのべき級数展開∞ 𝑛
Li2 (𝑧) = ∑ 𝑧𝑛2
𝑛=1∞ 1
𝜋2 なので, Abelの定理より, 𝑧 ↗ 1 のとき, ∞ 𝑧𝑛 → 𝜁(2)=
𝜁(2)=は |𝑧| ≦ 1 において一様絶対収束している.
∑ 𝑛2
∑ 𝑛2
6
の収束半径は

5 超幾何級数
次のべき級数をGaussの超幾何級数 (Gauss's hypergeometric series)と呼ぶ:∞ (𝑎) (𝑏)2 𝐹1 (𝑎,𝑏;𝑐;𝑥) = ∑ (𝑐)𝑘 𝑘!𝑘 𝑥𝑘 .
𝑘=0 𝑘

ここで

(𝛼)𝑘 = 𝛼(𝛼 + 1)⋯(𝛼 + 𝑘 − 1).

より一般に∞ (𝑎 ) ⋯(𝑎 )𝑘 𝑥𝑘
𝑟 𝐹𝑠 (𝑎1 ,…, 𝑎𝑟 ; 𝑏1 ,…, 𝑏𝑠 ;𝑥) = ∑ (𝑏 1) 𝑘⋯(𝑏 )𝑟 𝑘!
𝑠𝑘
𝑘=0 1 𝑘と定める.
問題: Gaussの超幾何級数

2 𝐹1 が |𝑥| < 1 で絶対収束することを示せ.

解答例: d'Alembertの判定法を使おう.

(𝑎)𝑘(𝑏)𝑘/((𝑐)𝑘𝑘!)(𝑐 + 𝑘)(𝑘 + 1)(𝑎)𝑘+1(𝑏)𝑘+1/((𝑐)𝑘+1(𝑘 + 1)!) = (𝑎 + 𝑘)(𝑏 + 𝑘) → 1
より, Gaussの超幾何級数は |𝑥| < 1 で絶対収束する. □問題: 以下を示せ:(𝑘 → ∞)(1)𝑘 = 𝑘!, (2)𝑘 = (𝑘 + 1)!, (1/2)𝑘𝑘! = (2𝑘)!
4𝑘 , (2𝑘 + 1)(1/2)𝑘 = (3/2)𝑘.

ヒント: 3つ目の公式を除けば易しい. 3つ目の公式は以下のようにして示される:− 1) 2 ⋅ 4⋯(2𝑘) = (2𝑘)! . □(1/2)𝑘𝑘! = 12 32 ⋯ 2𝑘 2− 1 𝑘! = 1 ⋅ 3⋯(2𝑘
𝑘
2
2𝑘
4𝑘

例: 初等函数を以下のように表すことができる:

∞ 1
𝐹
(;;𝑥)
=
𝑥𝑘 = 𝑒𝑥 .
0 0
∑
𝑘!
𝑘=0
∞ (−𝑥2 /4)𝑘 ∞ (−𝑥2 )𝑘2
𝐹(;1/2;−/4)== (2𝑘)! = cos𝑥.
𝑥0 1∑
𝑘=0 (1/2)𝑘𝑘! ∑
𝑘=0
∞ (𝑎)
1 𝐹0 (𝑎;;𝑥) = ∑ 𝑘!𝑘 𝑥𝑘 = (1 − 𝑥)−𝑎 .
𝑘=0∞ 𝑘!𝑘!
∞ 𝑥𝑘
log(1 − 𝑥) .
𝑘𝐹(1,1;2;𝑥)
=
=
=
−
𝑥
2 1
∑
∑
𝑥
𝑘=0 (𝑘 + 1)!𝑘!
𝑘=0 𝑘 + 1
∞ (1/2) 𝑘!
∞ (−𝑥2 )𝑘𝑥 2 𝐹1 (1/2,1;3/2;−𝑥2 ) = 𝑥 ∑ (3/2)𝑘𝑘𝑘! (−𝑥2 )𝑘 = 𝑥 ∑ 2𝑘 + 1 = arctan𝑥.
𝑘=0

𝑘=0

□
問題: sin𝑥 を 0 𝐹1 を使って表せ. □問題: arcsin𝑥 を 2 𝐹1 を使って表せ. □問題: 上の例の結果を確認せよ.

ヒント: 「超幾何 初等函数」を検索 (https://www.google.co.jp/search?
q=%E8%B6%85%E5%B9%BE%E4%BD%95+%E5%88%9D%E7%AD%89%E5%87%BD%E6%95%B0).
問題: ガンマ函数とベータ函数を∞

1

Γ(𝑠) = ∫0 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥, 𝐵(𝑝,𝑞) = ∫0 𝑡𝑝−1 (1 − 𝑡)𝑞−1 𝑑𝑡 (𝑠,𝑝,𝑞 > 0)と定めると,

が成立することを認めて,(𝑥)𝑘 = Γ(𝑥Γ(𝑥)+ 𝑘) , 𝐵(𝑝,𝑞) = Γ(𝑝)Γ(𝑞)Γ(𝑝 + 𝑞)𝑐 > 𝑏 > 0 のとき
1
1
𝑏−1
𝑐−𝑏−1
−𝑎
𝐹
(𝑎,𝑏;𝑐;𝑥)=2 1
𝐵(𝑏,𝑐 − 𝑏) ∫0 𝑡 (1 − 𝑡) (1 − 𝑥𝑡) 𝑑𝑡が成立することを示せ. これをGaussの超幾何函数の積分表示と呼ぶ.
解答例:(𝑎)𝑘(𝑏)𝑘 𝑥𝑘 = Γ(𝑏 + 𝑘)Γ(𝑐) (𝑎)𝑘 𝑥𝑘 = 𝐵(𝑏 + 𝑘,𝑐 − 𝑏) (𝑎)𝑘 𝑥𝑘(𝑐)𝑘𝑘!
Γ(𝑏)Γ(𝑥 + 𝑘) 1𝑘!
𝐵(𝑏,𝑐 − 𝑏) 𝑘!
= 𝐵(𝑏,𝑐1 − 𝑏) ∫0 𝑡𝑏−1 (1 − 𝑡)𝑐−𝑏−1 (𝑎)𝑘!𝑘 (𝑥𝑡)𝑘 𝑑𝑡.
ゆえに, これを 𝑘 = 0,1,2,… について足し上げて目的の公式を得る. □注意: 高校数学における積分の取り扱いにおいて𝛽𝐼 = ∫𝛼 (𝑥 − 𝛼)𝐴(𝛽 − 𝑥)𝐵(𝛾 − 𝑥)𝐶 𝑑𝑥の形の積分に出会っている人はその時点でGaussの超幾何函数にすでに出会っていると言える. この形の積分は,とおくと

𝑥 = (1 − 𝑡)𝛼 + 𝑡𝛽 𝑧 = (𝛽 − 𝛼)/(𝛾 − 𝛼)1
𝐼 = (𝛽 − 𝛼)𝐴+𝐵+1(𝛾 − 𝛼)𝐶 ∫0 𝑡𝐴 (1 − 𝑡)𝐵(1 − 𝑧𝑡)𝐶 𝑑𝑡と変形される. □問題: 以下の公式を示せ: 𝑐 > 𝑏 > 0 のとき,
1
1
1 𝐹1 (𝑏;𝑐;𝑥) = 𝐵(𝑏,𝑐 − 𝑏) ∫ 𝑡𝑏−1 (1 − 𝑡)𝑐−𝑏−1 𝑒𝑥𝑡 𝑑𝑡0となることを示せ. これをKummerの合流型超幾何函数の積分表示と呼ぶ.
解答例:(𝑏)𝑘 𝑥𝑘 = Γ(𝑏 + 𝑘)Γ(𝑐) 𝑥𝑘 = 𝐵(𝑏 + 𝑘,𝑐 − 𝑏) 𝑥𝑘(𝑐)𝑘𝑘! Γ(𝑏)Γ(𝑥 + 𝑘) 𝑘!1 𝐵(𝑏,𝑐 − 𝑏) 𝑘!
𝑘= 𝐵(𝑏,𝑐1 − 𝑏) ∫0 𝑡𝑏−1 (1 − 𝑡)𝑐−𝑏−1 (𝑥𝑡)𝑘! 𝑑𝑡.
ゆえに, これを 𝑘 = 0,1,2,… について足し上げて目的の公式を得る. □問題(Gaussの超幾何微分方程式): 𝑦 = 2 𝐹1 (𝑎,𝑏;𝑐;𝑥) が𝑥(1 − 𝑥)𝑦″ + (𝑐 − (𝑎 + 𝑏 + 1)𝑥)𝑦′ − 𝑎𝑏𝑦 = 0
を満たしていることを示せ. これをGaussの超幾何微分方程式と呼ぶ.
解答例:∞∂ = 𝑑𝑥𝑑 とおく. 𝑥∂𝑥𝑘 = 𝑘𝑥𝑘 となる. ゆえに, 2 𝐹1 (𝑎,𝑏;𝑐;𝑥) = ∑ (𝑎(𝑐))𝑘𝑘(𝑏𝑘!)𝑘 𝑥𝑘 より,
𝑘=0

∞
∞
(𝑥∂ + 𝑎)𝑦 = ∑ (𝑎(𝑐))𝑘𝑘(𝑏𝑘!)𝑘 (𝑎 + 𝑘)𝑥𝑘 = ∑ 𝑎(𝑎 (𝑐+)1𝑘)𝑘!𝑘(𝑏)𝑘 𝑥𝑘 = 𝑎 2 𝐹1 (𝑎 + 1,𝑏;𝑐;𝑥),𝑘=0
𝑘=0∴ (𝑥∂ + 𝑎)(𝑥∂ +∞ 𝑏)𝑦 = 𝑎𝑏 2 𝐹1 (𝑎 + 1,𝑏 + 1;𝑐;𝑥).
∂(𝑥∂ + 𝑐 − 1)𝑦 = ∑ (𝑎(𝑐))𝑘𝑘(𝑏𝑘!)𝑘 (𝑐 + 𝑘 − 1)𝑘𝑥𝑘−1
𝑘=1∞ 𝑎(𝑎 + 1) 𝑏(𝑏 + 1)
= ∑ (𝑐)𝑘−1𝑘−1(𝑘 − 1)! 𝑘−1 𝑥𝑘−1 = 𝑎𝑏 2 𝐹1 (𝑎 + 1,𝑏 + 1;𝑐;𝑥),𝑘=1∴ [∂(𝑥∂ + 𝑐 − 1) − (𝑥∂ + 𝑎)(𝑥∂ + 𝑏)]𝑦 = 0.
そして,∂(𝑥∂ + 𝑐 − 1) − (𝑥∂ + 𝑎)(𝑥∂ + 𝑏) = 𝑥∂2 + 𝑐∂ − (𝑥2 ∂2 + (𝑎 + 𝑏 + 1)𝑥∂ + 𝑎𝑏)= 𝑥(1 − 𝑥)∂2 + (𝑐 − (𝑎 + 𝑏 + 1)𝑥)∂ − 𝑎𝑏.
これで示したい公式が示された. □注意: Gaussの超幾何函数に関する詳しい結果を用いて, Virasoro代数の対称性を持つBelavin-Polyakov-Zamolodchikovの共形場理論のの場合を詳しく分析すると, Painlevé VI 方程式の 函数を構成できるという面白い結果については, 次の集中講義のノートを参照せよ.

𝑐=1

𝜏

名古屋創, 共形場理論とPainlevé方程式 (https://genkuroki.github.io/documents/201805NagoyaHajime/), 東北大学数学教室
における集中講義, 2018年5月7日～10日
この集中講義の第2回目 (https://genkuroki.github.io/documents/201805NagoyaHajime/2018-0509%20%E5%90%8D%E5%8F%A4%E5%B1%8B%E5%89%B5%20%E5%85%B1%E5%BD%A2%E5%A0%B4%E7%90%86%E
はGaussの超幾何微分方程式の易しい入門的解説になっている.

□問題(Kummerの合流型超幾何微分方程式):𝑦 = 1 𝐹1 (𝑏;𝑐;𝑥) が𝑥𝑦″ + (𝑐 − 𝑥)𝑦′ − 𝑏𝑦 = 0

を満たしていることを示せ. これをKummerの合流型超幾何微分方程式と呼ぶ.
解答例:∞∂ = 𝑑𝑥𝑑 とおく. 𝑥∂𝑥𝑘 = 𝑘𝑥𝑘 となる. ゆえに, 1 𝐹1 (𝑏;𝑐;𝑥) = ∑ (𝑐(𝑏))𝑘𝑘!𝑘 𝑥𝑘 より,
𝑘=0∞∞(𝑥∂ + 𝑏)𝑦 = ∑ (𝑐(𝑏))𝑘𝑘!𝑘 (𝑏 + 𝑘)𝑥𝑘 = ∑ 𝑏(𝑏(𝑐)+𝑘𝑘!1)𝑘 𝑥𝑘 = 𝑏 2 𝐹1 (𝑏 + 1;𝑐;𝑥),
𝑘=0
𝑘=0
∞ (𝑏)
∂(𝑥∂ + 𝑐 − 1)𝑦 = ∑ (𝑐)𝑘𝑘!𝑘 (𝑐 + 𝑘 − 1)𝑘𝑥𝑘−1
𝑘=1∞ 𝑏(𝑏 + 1)
= ∑ (𝑐)𝑘−1(𝑘 −𝑘−11)! 𝑥𝑘−1 = 𝑏 1 𝐹1 (𝑏 + 1;𝑐;𝑥),𝑘=1∴ [∂(𝑥∂ + 𝑐 − 1) − (𝑥∂ + 𝑏)]𝑦 = 0.

そして,∂(𝑥∂ + 𝑐 − 1) − (𝑥∂ + 𝑏) = 𝑥∂2 + 𝑐∂ − (𝑥∂ + 𝑏)
= 𝑥(1 − 𝑥)∂2 + (𝑐 − 𝑥)∂ − 𝑏.
これで示したい公式が示された. □07 漸近展開の有名な例
黒木玄
2018-05-20～2019-04-03, 2023-06-22
Copyright 2018,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/07%20example%20of%20asymptotic%20expansion.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/07%20example%20of%20asymptotic%20expansion.ipynb)
https://genkuroki.github.io/documents/Calculus/07%20example%20of%20asymptotic%20expansion.pdf(https://genkuroki.github.io/documents/Calculus/07%20example%20of%20asymptotic%20expansion.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 漸近展開の有名な例
1.1
の定義
1.2
1.3
の漸近展開
1.4
の漸近展開の別の導出の仕方
1.5 以上のまとめ
1.6の漸近展開を用いた数値計算
1.7 漸近展開の入門書
1.8 指数積分函数
1.9 連分数展開による数値計算

𝐹𝑛 (𝑥) 𝑛+1
𝐹𝑛 (𝑥) = 𝑂(𝑥 )𝐹0 (𝑥)𝐹0 (𝑥)
𝐹0 (1/10)

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 漸近展開の有名な例
1.1

𝐹𝑛 (𝑥) の定義

1.2

𝐹𝑛 (𝑥) = 𝑂(𝑥𝑛+1 )

𝑛 は非負の整数であるとする. 𝑥 > 0 の函数 𝐹𝑛 (𝑥) を∞𝐹𝑛 (𝑥) = 𝑛! 𝑒1/𝑥 ∫1/𝑥 𝑒−𝑡 𝑡−𝑛−1 𝑑𝑡と定める. 𝐹𝑛 (𝑥) の 𝑥 > 0 が 0 に近いときの様子を調べたい.
𝑥 > 0 のとき 𝑡 ≧ 1/𝑥 ならば 𝑡−𝑛−1 ≦ 𝑥𝑛+1 なので∞
0 < 𝐹𝑛 (𝑥) ≦ 𝑛! 𝑒1/𝑥 ∫1/𝑥 𝑒−𝑡 𝑥𝑛+1 𝑑𝑡 = 𝑛! 𝑥𝑛+1 .
ゆえに,𝐹𝑛 (𝑥) = 𝑂(𝑥𝑛+1 ) (𝑥 ↘ 0).
1.3

𝐹0 (𝑥) の漸近展開

1.4

𝐹0 (𝑥) の漸近展開の別の導出の仕方(−𝑒−𝑡 )′ = 𝑒−𝑡 を用いた部分積分によって∞𝐹𝑛 (𝑥) = 𝑛! 𝑒1/𝑥 ([−𝑒−𝑡 𝑡−𝑛−1 ]∞1/𝑥 + ∫1/𝑥 𝑒−𝑡 (−(𝑛 + 1)𝑡−𝑛−2 )𝑑𝑡)
= 𝑛! 𝑥𝑛+1 − 𝐹𝑛+1 (𝑥).
ゆえに 𝑥 > 0 において,
𝐹0 (𝑥) = 0!𝑥 − 𝐹1 (𝑥) = 0!𝑥 − 1! 𝑥2 + 𝐹2 (𝑥) = ⋯2 + ⋯ + (−1)𝑛 𝑛!𝑥𝑛+1 + (−1)𝑛+1 𝐹𝑛+1 (𝑥)
= 0!𝑥
−
1!
𝑥
𝑛
= ∑(−1)𝑘𝑘! 𝑥𝑘+1 + (−1)𝑛+1 𝐹𝑛+1 (𝑥).
𝑘=0
𝑥 > 0 であるとする. 𝐹0 (𝑥) は 𝑡 = 1/𝑥 + 𝑢 という置換によって次のように書き直される:
∞ −𝑡
∞ −𝑢
𝐹0 (𝑥) = 𝑒1/𝑥 ∫1/𝑥 𝑒𝑡 𝑑𝑡 = 𝑥 ∫0 1 𝑒+ 𝑥𝑢 𝑑𝑢.
ゆえに

1 = 𝑛−1 (−1)𝑘𝑧𝑘 + (−1)𝑛 𝑧𝑛
1+𝑧 ∑
1+𝑧
𝑘=0

を

𝑧 = 𝑥𝑢 に適用した結果を使うと,
𝑛−1∞∞ −𝑢 𝑛𝐹0 (𝑥) = ∑(−1)𝑘𝑥𝑘+1 ∫0 𝑒−𝑢 𝑢𝑘 𝑑𝑢 + (−1)𝑛 𝑥𝑛+1 ∫0 1𝑒+ 𝑢𝑥𝑢 𝑑𝑢
𝑘=0
𝑛−1∞ −𝑢 𝑛= ∑(−1)𝑘𝑘!𝑥𝑘+1 + (−1)𝑛 𝑥𝑛+1 ∫0 1𝑒+ 𝑢𝑥𝑢 𝑑𝑢.
𝑘=0

さらに

∞ −𝑢 𝑛∞0 < 𝑥𝑛+1 ∫0 1𝑒+ 𝑢𝑥𝑢 𝑑𝑢 ≦ 𝑥𝑛+1 ∫0 𝑒−𝑢 𝑢𝑛 𝑑𝑢 = 𝑛! 𝑥𝑛+1

なので∞ −𝑢 𝑛𝑥𝑛+1 ∫0 1𝑒+ 𝑢𝑥𝑢 𝑑𝑢 = 𝑂(𝑥𝑛+1 )(𝑥 ↘ 0).

1.5 以上のまとめ
以上をまとめると

𝑛−1

𝑛−1

𝑘=0

𝑘=0

𝐹0 (𝑥) = ∑(−1)𝑘𝑘! 𝑥𝑘+1 + (−1)𝑛 𝐹𝑛 (𝑥) = ∑(−1)𝑘𝑘! 𝑥𝑘+1 + 𝑂(𝑥𝑛+1 ) (𝑥 ↘ 0).
ここで

しかし,

𝑥 > 0で∞∞ −𝑢 𝑛𝐹𝑛 (𝑥) = 𝑛!𝑒1/𝑥 ∫1/𝑥 𝑒−𝑡 𝑡−𝑛−1 𝑑𝑡 = 𝑥𝑛+1 ∫0 1𝑒+ 𝑢𝑥𝑢 𝑑𝑢 = 𝑂(𝑥𝑛+1 ) (𝑥 ↘ 0).
∞(−1)𝑘𝑘! 𝑥𝑘+1 = 0!𝑥 − 1! 𝑥2 + 2! 𝑥3 − 3! 𝑥4 + ⋯∑𝑘=0
は決して収束しない.

このように全てを足し上げると発散する場合であっても, 有限項と剰余項の和の形式で表わせば, すべてがwell-definedな量だけ

1.6

𝐹0 (1/10) の漸近展開を用いた数値計算

𝑥 > 0 のとき 0 < 𝐹𝑛 (𝑥) ≦ 𝑛! 𝑥𝑛+1 となるのであった. 𝑥 = 1/10 のとき 𝑛!𝑥𝑛+1 が最小になる
𝑛 は 𝑛 = 9,10 であることを確
𝑛−1−5
認できる. そのとき 𝑛! 𝑥𝑛+1 = 3.6288 × 10 である. したがって, 𝑛 = 9,10 のときの∑(−1)𝑘𝑘! 𝑥𝑘+1 による 𝐹0 (𝑥) の近似は最良になると予想される.
In [3]:



𝑘=0

1 [(n, factorial(n)*(1/10)^(n+1)) for n in 7:13]

Out[3]: 7-element Vector{Tuple{Int64, Float64}}:(7, 5.0400000000000026e-5)(8, 4.032000000000002e-5)(9, 3.628800000000002e-5)(10, 3.628800000000002e-5)(11, 3.991680000000003e-5)(12, 4.790016000000003e-5)(13, 6.227020800000005e-5)
In [4]:



1
2
3
4
5
6
7
8
9
10
11
12

F₀(x) = exp(1/x)*quadgk(u->exp(-1/(x*u))/u, 0, 1)[1]F₀_ae(x, n=10) = sum(k->(-1)^k*factorial(k)*x^(k+1), 0:n-1)​@show Y = F₀(1/10)@show Y_ae9 = F₀_ae(1/10, 9)@show Y_ae10 = F₀_ae(1/10, 10)​
n = 1:20
plot(size=(500,350))
plot!(ylims=(-0.0001,0.0001))
plot!(legend=:top)
plot!(n, F₀_ae.(1/10, n) .- Y, label="error")

Y = F₀(1 / 10) = 0.09156333393978829
Y_ae9 = F₀_ae(1 / 10, 9) = 0.09158192
Y_ae10 = F₀_ae(1 / 10, 10) = 0.091545632
Out[4]:

1.7 漸近展開の入門書

𝑥>0

このように
で決して収束しないべき級数であっても, 適切な解釈のもとで数学的に十分な意味を持つことがある. このような理由で数学では発散級数に関するたくさんの深い研究がある.
その方面の入門書としては次の文献がある. 非常に面白い本なのでおすすめできる.
大久保謙二郎・河野實彦共著『漸近展開』, 新しい応用の数学12, 教育出版, 1976, 1996(https://www.amazon.co.jp/dp/4316376306).

1.8 指数積分函数

𝐹0 (𝑥) は実用的にも重要な函数である. それと本質的に同じ

∞ −𝑡
1 −𝑧/𝑢𝐸1 (𝑧) = 𝑒−𝑧 𝐹0 (1/𝑧) = ∫𝑧 𝑒𝑡 𝑑𝑡 = ∫0 𝑒 𝑢 𝑑𝑢は指数積分函数と呼ばれる特殊函数の1つである(𝑡 = 𝑧/𝑢 ). この函数の数値計算については
http://nbviewer.jupyter.org/github/stevengj/18S096/blob/iap2017/pset3/pset3-solutions.ipynb(http://nbviewer.jupyter.org/github/stevengj/18S096/blob/iap2017/pset3/pset3-solutions.ipynb)が非常に面白い解説になっている 特殊函数の数値計算の最適化に興味がある人は是非とも閲覧して欲しい

1.9 連分数展開による数値計算
以下は

𝑥 = 1/𝑧 のときの𝐺(𝑧) = 𝐹0 (1/𝑧) = 𝑒𝑧 𝐸1 (𝑧) = 𝑒𝑧 ∫0 𝑒−𝑧/𝑢𝑢 𝑑𝑢
1の連分数展開による数値計算である. この函数の連分数展開については
一松信著『特殊関数入門』数学選書, 森北出版, 1999 (https://www.amazon.co.jp/dp/4627038216)の第3章の最後のp.74にある例3.10および第6章のpp.132-133にある例6.4を参照せよ. この本も非常に面白い本なのでおすすめできる.
In [5]:



1
2
3
4
5
6
7
8
9
10

function G_cf(z; n::Int=2)
cf = 1 + (n+1)/z
for i = n:-1:1
cf = z + (1+i)/cf
cf = 1 + i/cf
end
return 1 / (z + 1/cf)
end​
G(z) = exp(z)*quadgk(u->exp(-z/u)/u, 0, 1)[1]Out[5]: G (generic function with 1 method)
In [6]:



1
2
3
4
5
6

sympy.init_printing(order="lex")z = symbols("z")
for n in 1:3
cf = G_cf(z, n=n)display(cf)end1

𝑧 + 1+ 1 1 2

𝑧+ 2
1+ 𝑧

𝑧 + 1+
𝑧 + 1+

1

𝑧+

11

2
1+ 2 3
𝑧+ 3
1+ 𝑧

1

𝑧+

1+

11

𝑧+

2

2

3
1+ 3 4𝑧+ 4
1+ 𝑧In [7]:



1
2
3
4
5

sympy.init_printing(order="rev-lex")
display(series(sum((-1)^n*factorial(n)*z^(n+1) for n in 0:9), n=11))
for n in 1:3
display(series(G_cf(1/z, n=n), n=11))
end𝑧 − 𝑧2 + 2𝑧3 − 6𝑧4 + 24𝑧5 − 120𝑧6 + 720𝑧7 − 5040𝑧8 + 40320𝑧9 − 362880𝑧10𝑧 − 𝑧2 + 2𝑧3 − 6𝑧4 + 24𝑧5 − 108𝑧6 + 504𝑧7 − 2376𝑧8 + 11232𝑧9 − 53136𝑧10 + 𝑂 (𝑧11 )𝑧 − 𝑧2 + 2𝑧3 − 6𝑧4 + 24𝑧5 − 120𝑧6 + 720𝑧7 − 4896𝑧8 + 35712𝑧9 − 269568𝑧10 + 𝑂 (𝑧11 )𝑧 − 𝑧2 + 2𝑧3 − 6𝑧4 + 24𝑧5 − 120𝑧6 + 720𝑧7 − 5040𝑧8 + 40320𝑧9 − 360000𝑧10 + 𝑂 (𝑧11 )𝑛 = 1,2,3 の連分数近似であっても, 大きめの 𝑧 における近似が相当にうまく行っていることを以下で確認する.
In [8]:



1 G_cf(4), G(4)Out[8]: (0.20636792452830188, 0.20634564990105575)
In [9]:



1
2
3
4
5
6
7
8
9
10
11
12

x = 0.05:0.05:4@time y = G.(x)@time y_cf1 = G_cf.(x, n=1)
@time y_cf2 = G_cf.(x, n=2)
@time y_cf3 = G_cf.(x, n=3)
plot(size=(500,350))
plot!(title="y = G(x) = e^x E_1(x)", titlefontsize=11)
plot!(xlims=(0,maximum(x)), ylims=(0,2.3))
plot!(x, y, label="numetical integration")plot!(x, y_cf1, label="continued fractional approximation n=1", ls=:dash)plot!(x, y_cf2, label="continued fractional approximation n=2", ls=:dash)plot!(x, y_cf3, label="continued fractional approximation n=3", ls=:dash)0.124564 seconds (148.57 k allocations: 10.049 MiB, 99.61% compilation time)
0.049663 seconds (98.27 k allocations: 6.637 MiB, 99.27% compilation time)
0.000048 seconds (6 allocations: 1008 bytes)
0.000023 seconds (6 allocations: 1008 bytes)
Out[9]:

08 函数の凸性と不等式への応用
黒木玄2018-06-11～2019-04-03, 2023-06-22
Copyright 2018,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/08%20convexity.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/08%20convexity.ipynb)
https://genkuroki.github.io/documents/Calculus/08%20convexity.pdf(https://genkuroki.github.io/documents/Calculus/08%20convexity.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
1 凸函数の定義
 2 2階の導函数の符号と函数の凸性
2.1 2階の導函数の符号と接線の関係
2.2 2階の導函数の符号と函数の凸性の関係
 2.3 指数・対数函数への応用
2.3.1 指数函数の上からと下からの評価
2.3.2 対数函数の上からと下からの評価
2.3.3 対数函数の上からと下からの評価のプロット
2.3.4 log(1+x) の -1/2 ≦ x ≦ 0 における下からの評価
2.3.5 指数函数の上からと下からの評価による指数函数の挟み撃ち
 3 Jensenの不等式
 3.1 期待値汎函数
3.1.1 例: 有限和で書ける加重平均
3.1.2 例: 区間上の一様分布による平均
3.1.3 例: 確率密度函数による平均
 3.2 Jensenの不等式とその証明
3.2.1 期待値汎函数に関する一般的なJensenの不等式の証明
3.2.2 有限和で書ける荷重平均に関するJensenの不等式の帰納法による証明
3.3 相加相乗平均の不等式
3.4 Youngの不等式
 3.5 Hölderの不等式
3.5.1
ノルム
3.5.2 一般化されたHölderの不等式
3.5.3 一般化されていないHölderの不等式
3.5.4 Cauchy-Schwarzの不等式
3.5.5 分配函数の対数凸性のHölderの不等式を用いた証明
3.5.6 ガンマ函数の対数凸性
3.5.7 分配函数の対数凸性の微分を用いた証明法
3.6 Minkowskiの不等式

𝐿𝑝In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 凸函数の定義

𝐼 上の実数値函数 𝑓 が下に凸な函数であるとは, 任意の 𝑎,𝑏 ∈ 𝐼 と実数 𝑡 について,0 ≦ 𝑡 ≦ 1 ⟹ 𝑓((1 − 𝑡)𝑎 + 𝑡𝑏) ≦ (1 − 𝑡)𝑓(𝑎) + 𝑡𝑓(𝑏)を満たしていることである. 逆向きの不等式で上に凸な函数を定義する. すなわち, 区間 𝐼 上の実数値函数 𝑓 が上に凸な函数であるとは, 任意の 𝑎,𝑏 ∈ 𝐼 と実数 𝑡 について,0 ≦ 𝑡 ≦ 1 ⟹ 𝑓((1 − 𝑡)𝑎 + 𝑡𝑏) ≧ (1 − 𝑡)𝑓(𝑎) + 𝑡𝑓(𝑏)定義: 区間を満たしていることである.

In [3]:



1
2
3
4
5
6
7
8
9
10
11
12
13

# log x は上に凸な函数​
x = 0:0.01:2.0
a, b = 0.3, 1.5
f(x) = log(x)t = 0:0.01:1.0
g(a,b,t) = (1-t)*f(a) + t*f(b)X(a,b,t) = (1-t)*a + t*b
plot(size=(400,250), legend=:topleft, xlims=(0,2.0), ylims=(-2.0, 0.8))
plot!(x, f.(x), label="y = log x")
plot!(X.(a,b,t), g.(a,b,t), label="")plot!([a,a], [-10.0, f(a)], label="x = a", ls=:dash)plot!([b,b], [-10.0, f(b)], label="x = b", ls=:dash)

1
2
3
4
5
6
7
8
9
10
11
12
13

# e^x は下に凸な函数​
x = -1:0.01:2
a, b = -0.3, 1.5
f(x) = e^xt = 0:0.01:1.0
g(a,b,t) = (1-t)*f(a) + t*f(b)X(a,b,t) = (1-t)*a + t*b
plot(size=(400,250), legend=:topleft, xlims=(-1,2), ylims=(0,8))
plot!(x, f.(x), label="y = e^x")
plot!(X.(a,b,t), g.(a,b,t), label="")plot!([a,a], [-0.0, f(a)], label="x = a", ls=:dash)plot!([b,b], [-0.0, f(b)], label="x = b", ls=:dash)Out[3]:

In [4]:

Out[4]:

2 2階の導函数の符号と函数の凸性
2.1 2階の導函数の符号と接線の関係

𝐼 上の実数値函数 𝑓 が 𝐶 2 級でかつ 𝐼 上で 𝑓 ″ ≧ 0 ならば, 𝑎 ∈ 𝐼 における
𝑦 = 𝑓(𝑥) のグラフは接線′
𝑦 = 𝑓 (𝑎)(𝑥 − 𝑎) + 𝑓(𝑎) の上側にある.
同様に区間 𝐼 上の実数値函数 𝑓 が 𝐶 2 級でかつ 𝐼 上で 𝑓 ″ ≦ 0 ならば 𝑎 ∈ 𝐼 における 𝑦 = 𝑓(𝑥) のグラフは接線 𝑦 = 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 𝑓(𝑎) の下側にある.
証明: 前半のみを証明する. 区間 𝐼 上の実数値函数 𝑓 が 𝐶 2 級でかつ 𝐼 上で 𝑓 ″ ≧ 0 であると仮定し, 𝑎 ∈ 𝐼 とする. 𝑓 は 𝐶 2
定理: 区間級なのでTaylorの公式より,

𝑥 ∈ 𝐼 について,
𝑓(𝑥) = 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 𝑅,

𝑅 = 𝑓 ″ (𝜉) (𝑥 −2 𝑎) .
2𝜉 は 𝑎 と 𝑥 のあいだのある実数である.
𝑓 ″ ≧ 0 より, 𝑅 ≧ 0 となる. ゆえに, 𝑓(𝑥) ≧ 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) となる. こ′
𝑦 = 𝑓(𝑥) のグラフは接線 𝑦 = 𝑓 (𝑎)(𝑥 − 𝑎) + 𝑓(𝑎) の上側にあることがわかった. □注意: 上の定理の 𝐶 2 級の仮定は2回微分可能性の仮定に弱めることができる. □ここでれで,

注意: 上の定理の証明中の剰余項は

𝑥𝑥1

𝑅 = ∫𝑎 𝑑𝑥1 ∫𝑎 𝑑𝑥2 𝑓 ″ (𝑥2 )とも書ける. 𝑓 ″ ≧ 0 のとき, 𝑥 > 𝑎 ならば 𝑥1 , 𝑥2 は 𝑎 < 𝑥1 < 𝑥2 < 𝑥 の範囲を動くので積分の結果は 0 以上になり, 𝑥 < 𝑎ならば 𝑥1 , 𝑥2 は 𝑥 < 𝑥1 < 𝑥2 < 𝑎 の範囲を動き, 𝑥2 のみに関する積分の結果は 0 以下になり, さらに 𝑥1 についても積分する
𝑎𝑏∫∫2.2 2階の導函数の符号と函数の凸性の関係

𝐼

2 級でかつ 𝐼 上で 𝑓 ″ ≧ 0 ならば 𝑓 は下に凸である. 同様に区間 𝐼 上の実数値函数 𝑓 が𝑓𝐶
𝐼 𝑓 ″ ≦ 0 𝑓 は上に凸である.
𝐶2
証明: 前半のみを証明する. 区間 𝐼 上の実数値函数 𝑓 が 𝐶 2 級でかつ 𝐼 上で 𝑓 ″ ≧ 0 であると仮定する. 𝑎,𝑏 ∈ 𝐼 と仮定し,
𝑐 = (1 − 𝑡)𝑎 + 𝑡𝑏 とおく. 0 ≦ 𝑡 ≦ 1 であると仮定する. (1 − 𝑡)𝑓(𝑎) + 𝑡𝑓(𝑏) ≧ 𝑓(𝑐) を示せばよい. 𝑓 は 𝐶 2 級なので Taylor
定理: 区間 上の実数値函数 が級でかつ 上でならばの公式より,

𝑓(𝑎) = 𝑓(𝑐) + 𝑓 ′′ (𝑐)(𝑎 − 𝑐) + 𝑅(𝑎),𝑓(𝑏) = 𝑓(𝑐) + 𝑓 (𝑐)(𝑏 − 𝑐) + 𝑅(𝑏),2
𝑅(𝑥) = 𝑓 ″ (𝜉𝑥 ) (𝑥 −2 𝑐) .
ここで, 𝜉𝑥 は 𝑐 と 𝑥 のあいだのある実数である. 𝑓 ″ ≧ 0 という仮定より, 𝑅(𝑥) ≧ 0 となることがわかる. ゆえに𝑓(𝑎) ≧ 𝑓(𝑐) + 𝑓 ′′ (𝑐)(𝑎 − 𝑐),𝑓(𝑏) ≧ 𝑓(𝑐) + 𝑓 (𝑐)(𝑏 − 𝑐).
1つ目の不等式の両辺に (1 − 𝑡) をかけ, 2つめの不等式の両辺に 𝑡 をかけると(1 − 𝑡)𝑓(𝑎) ≧ (1 − 𝑡)𝑓(𝑐)′ + 𝑓 ′ (𝑐)((1 − 𝑡)𝑎 − (1 − 𝑡)𝑐),𝑡 𝑓(𝑏) ≧ 𝑡𝑓(𝑐) + 𝑓 (𝑐)(𝑡𝑏 − 𝑡𝑐).
これらをたすと, 𝑐 = (1 − 𝑡)𝑎 + 𝑡𝑏 とおいたことより,(1 − 𝑡)𝑓(𝑎) + 𝑡𝑓(𝑏) ≧ 𝑓(𝑐) + 𝑓 ′ (𝑐)((1 − 𝑡)𝑎 + 𝑡𝑏 − 𝑐) = 𝑓(𝑐).
これで 𝑓 が下に凸であることが示された. □注意: 上の証明の本質はTaylorの公式の剰余項が0以上になることである. 𝑓 が 𝐶 2 級であるという仮定を2回微分可能性の仮定に弱めても, 𝑐 と 𝑥 のあいだのある実数 𝜉𝑥 が存在して,𝑓(𝑥) = 𝑓(𝑐) + 𝑓 ′ (𝑐)(𝑥 − 𝑐) + 𝑅, 𝑅 = 12 𝑓 ″ (𝜉𝑥 )(𝑥 − 𝑐)となるという形でTaylorの定理が成立している. このことを使えば上の定理における 𝐶 2 級の仮定を2回微分可能性の仮定に弱めることができる. □問題: 上と同様にして 𝑓 ″ ≦ 0 ならば 𝑓 が上に凸であることの証明を書き下せ. □例: 𝑓(𝑥) = 𝑒𝑎𝑥 とおくと 𝑓 ′ (𝑥) = 𝑎𝑒𝑎𝑥 , 𝑓 ″ (𝑥) = 𝑎2 𝑒𝑎𝑥 ≧ 0 を満たしているので, 𝑓 は下に凸な函数である. □例: 𝑥 > 0 に対して 𝑓(𝑥) = log𝑥 とおくと 𝑓 ′ (𝑥) = 1/𝑥, 𝑓 ″ (𝑥) = −1/𝑥2 < 0 なので, 𝑓 は上に凸な函数である. □例題: 𝑎 は実数であるとし, 𝑥 > 0 に対して 𝑓(𝑥) = 𝑥𝑎 とおく. 𝑓(𝑥) は凸性について調べよ.
解答例: 𝑥 > 0 であるとする. 𝑓 ′ (𝑥) = 𝑎𝑥𝑎−1 , 𝑓 ″ (𝑥) = 𝑎(𝑎 − 1)𝑥𝑎−2 であり, 𝑥𝑎−2 > 0 である. ゆえに, 𝑎(𝑎 − 1) ≧ 0 のとき,
すなわち 𝑎 ≦ 0 または 1 ≦ 𝑎 のとき, 𝑓 は下に凸になり, 𝑎(𝑎 − 1) ≦ 0 のとき, すなわち 0 ≦ 𝑎 ≦ 1 のとき, 𝑓 は上に凸になる. □2.3 指数・対数函数への応用
2.3.1 指数函数の上からと下からの評価

𝑥 ∈ ℝ について 1 + 𝑥 ≦ 𝑒𝑥 となることを示せ.
解答例: 𝑦 = 𝑒𝑥 の 𝑥 = 0 での接線は 𝑦 = 1 + 𝑥 であり, 𝑓 ″ (𝑥) = 𝑒𝑥 ≧ 0 であるから, 上の定理より, 1 + 𝑥 ≦ 𝑒𝑥 . □問題: すべての1 − 𝑥 ≦ 𝑒−𝑥 なので, 𝑥 < 1 のとき 𝑒𝑥 ≦ (1 − 𝑥)−1 となる. これで
1 + 𝑥 ≦ 𝑒𝑥 ≦ (1 − 𝑥)−1 (𝑥 < 1)𝑡となることがわかった. 𝑎 > 0, −𝑎 ≦ 𝑡 < 𝑎 のとき, この不等式の 𝑥 =𝑎 を代入して全体を 𝑎 乗すると次が得られる:
𝑡 𝑎
𝑡 −𝑎 (−𝑎 ≦ 𝑡 < 𝑎). □(1 + ) ≦ 𝑒𝑡 ≦ (1 − )注意: この問題の結果より,

2.3.2 対数函数の上からと下からの評価

𝑥 > −1 のとき, log(1 + 𝑥) ≦ 𝑥 となることもわかる. □𝑥
問題: 𝑥 > −1 のとき
1 + 𝑥 ≦ log(1 + 𝑥) となることを示せ.
𝑥 とおく. 𝑓(0) = 0 である. 𝑥 = 1 − 1 と使って, 𝑓 を微分すると,
解答例: 𝑓(𝑥) = log(1 + 𝑥) −
1+𝑥
1+𝑥
1+𝑥
𝑓 ′ (𝑥) = 1 +1 𝑥 − (1 +1 𝑥)2 = (1 +𝑥 𝑥)2なので, 𝑥 < 0 において 𝑓 ′ < 0 で 𝑓 は単調減少し, 𝑥 > 0 において 𝑓 ′ > 0 で 𝑓 は単調増加する. さらに 𝑓(0) = 0 なので,𝑓(𝑥) ≧ 0 すなわち, 1 +𝑥 𝑥 ≦ log(1 + 𝑥) である. □
1−𝑥
″
″
″
注意: 𝑓 (𝑥) =(𝑥 + 1)3 なので, −1 < 𝑥 ≦ 1 で 𝑓 (𝑥) ≧ 0 となるが, 𝑥 > 1 で 𝑓 (𝑥) < 0 となってしまうので, 上の問題と同様の方法でこの問題を解くことはできない. □以上のまとめ: 𝑥 > −1 のとき𝑥
1 + 𝑥 ≦ log(1 + 𝑥) ≦ 𝑥. □注意: 上の問題の結果より,

2.3.3 対数函数の上からと下からの評価のプロット
In [5]:



1
2
3
4
5
6
7
8

f(x) = x/(1+x)g(x) = log(1+x)h(x) = xx = -0.99:0.01:3
plot(size=(400, 250), legend=:bottomright, xlim=(-1,3), ylims=(-6,2))
plot!(x, h.(x), label="x", ls=:dash)plot!(x, g.(x), label="log(1+x)")
plot!(x, f.(x), label="x/(1+x)", ls=:dash)Out[5]:

2.3.4 log(1+x) の -1/2 ≦ x ≦ 0 における下からの評価− 12 ≦ 𝑥 ≦ 0 ならば log(1 + 𝑥) ≧ 2𝑥 となることを示せ.
1
1
解答例: 𝑓(𝑥) = log(1 + 𝑥) − 2𝑥 とおく. 𝑓(0) = 0 である. ゆえに − ≦ 𝑥 ≦ 0 で単調減少するならば, − ≦ 𝑥 ≦ 0 で
2
2
𝑓(𝑥) ≦ 0 となり, 示したいことが示される. そのことを確認するために 𝑓(𝑥) を微分すると,+ 1)
𝑓 ′ (𝑥) = 1 +1 𝑥 − 2 = −(2𝑥1+𝑥問題:

𝑥 ≧ − 12 ならば 𝑓 ′ (𝑥) ≦ 0 となるので, そこで 𝑓(𝑥) は単調減少する. □注意: 𝑓(𝑥) = log(1 + 𝑥) − 2𝑥 は上に凸な函数なので, 𝑓(𝑎) = 0 となる 𝑎 < 0 を取れば 𝑓(𝑥) ≧ 0 と 𝑎 ≦ 𝑥 ≦ 0 は同値にななので

In [6]:

1
2
3
4
5
6
7
8
9
10



f(x) = log(1+x) - 2x
@show f(-0.79681213)@show f(-0.79681214)​
a = -0.79681213
x = -0.999:0.001:0.1
plot(size=(400,250), legend=:bottomright, ylims=(-1,0.5))
plot!(x, f.(x), label="log(1+x) - 2x")
plot!(x, zero(x), label="", color="black", ls=:dot)
plot!([a,a], [-1,0], label="x=$a", color=:red, ls=:dash)f(-0.79681213) = 5.848987960632712e-11
f(-0.79681214) = -2.9157047887196086e-8
Out[6]:

2.3.5 指数函数の上からと下からの評価による指数函数の挟み撃ち
問題:

𝑎 > 0 であるとし, −𝑎 < 𝑡 < 𝑎 であるとする. (1 + 𝑎𝑡 )𝑎 は 𝑎 について単調増加し, (1 − 𝑎𝑡 )−𝑎 は 𝑎 について単調減少することを示せ.

解答例: それぞれの対数を取ってから

𝑎 で微分する, 上の方の問題で示した log(1 + 𝑥) に関する不等式
𝑥 ≦ log(1 + 𝑥) (𝑥 > −1)
1+𝑥

より,

∂ log 1 + 𝑡 𝑎 = log 1 + 𝑡 − 𝑡/𝑎 ≧ 0,∂𝑎∂ ( 𝑎 )−𝑎 ( 𝑎 ) 𝑡 1 + 𝑡/𝑎−𝑡/𝑎𝑡∂𝑎 log (1 − 𝑎 ) = −log(1 − 𝑎 ) + 1 − 𝑡/𝑎 ≦ 0.
𝑡 𝑎𝑡 −𝑎
ゆえに, (1 + ) は 𝑎 について単調増加し, (1 − ) は 𝑎 について単調減少する. □𝑎𝑎
問題: 以上の結果をまとめて用いて,

𝑡 𝑎 = lim 1 − 𝑡 −𝑎 = 𝑒𝑡1+lim𝑎→∞ ( 𝑎 ) 𝑎→∞ ( 𝑎 )を証明せよ.
解答例: 上の方の注意では

𝑡 𝑎 ≦ 𝑒𝑡 ≦ 1 − 𝑡 −𝑎
1
+
( 𝑎)
( 𝑎)

(∗)
(−𝑎 < 𝑡 < 𝑎)𝑡 𝑎𝑡 −𝑎という不等式が成立していることを指摘している. さらにすぐ上の問題によって, (1 + ) , (1 − ) はそれぞれ 𝑎 につい𝑎2𝑎 1𝑡て単調増加, 単調減少するので, どちらも 𝑎 → ∞ で収束する. 𝑎 を十分に大きくして
𝑎2 ≦ 2 となるようにすると, 上の方の問題で示した不等式

log(1 + 𝑥) ≧ 2𝑥

1(− 2 ≦ 𝑥 ≦ 0 )を使うことができて,𝑡/𝑎)𝑎 = 𝑎log 1 − 𝑡2 ≧ 𝑎 ⋅ 2 − 𝑡2 = − 2𝑡2 → 0 (𝑞 → ∞).
0 ≧ log (1(1−+𝑡/𝑎)−𝑎( 𝑎2 )( 𝑎2 ) 𝑎(1 + 𝑡/𝑎)𝑎 → 0 すなわち (1 + 𝑡/𝑎)𝑎 → 1 となる. これで 1 + 𝑡 𝑎 , 1 − 𝑡 −𝑎 が同じとなるので, 𝑎 → ∞ のとき log( 𝑎) ( 𝑎)(1 − 𝑡/𝑎)−𝑎(1 − 𝑡/𝑎)−𝑎値に収束することがわかった. したがって不等式(∗ )より, 欲しい結果が得られる. □注意: 不等式(∗ )は極限で指数函数が現われる結果の極限操作を初等的に実行したいときに便利な不等式である. □In [7]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

f(t) = e^tg(a,t) = (1+t/a)^ah(a,t) = (1-t/a)^(-a)
t = -3:0.01:3​
PP = []
for a in [5, 10, 20, 40]
P = plot(title="a=$a", titlefontsize=10, legendfontsize=7)
plot!(legend=:topleft, yscale=:log, ylims=(10^(-1.3), 10^1.3))
plot!(t, f.(t), label="e^t")plot!(t, h.(a,t), label="(1-t/a)^(-a)", ls=:dash)plot!(t, g.(a,t), label="(1+t/a)^a", ls=:dash)push!(PP, P)
endplot(PP[1:2]..., size=(750,250), layout=@layout([a b]))Out[7]:

In [8]:



1 plot(PP[3:4]..., size=(750,250), layout=@layout([a b]))Out[8]:

3 Jensenの不等式
3.1 期待値汎函数
函数を数に対応させる函数を汎函数 (functional)と呼ぶことがある.

𝑥 を 𝑥 に対応させる函数を 𝑥 と書く.
すべての 𝑥 を一定の値 𝛼 に対応させる函数も同じ記号の 𝛼 で書き, 定数函数と呼ぶ. 𝑓(𝑥) = 𝛼 とおいて記号 𝑓 を利用すると煩雑になるので, 単に 𝛼 と書いて代用するということである. 数としての 𝛼 と定数函数としての 𝛼 を同じ記号で書くので混乱しな函数の例:

いように注意して欲しい.
例えば, すべての𝑥 を 1 に対応させる函数も単に 1 と書く. □

𝑓

𝐸[𝑓]

定義: 函数 を数に対応させる函数
functional)であると言うことにする:

𝐸[ ] (汎函数)が以下の条件を満たしているとき, 𝐸[ ] は期待値汎函数 (expextation

𝑓,𝑔 と数 𝛼,𝛽 に対して, 𝐸[𝛼𝑓 + 𝛽𝑔] = 𝛼𝐸[𝑓] + 𝛽𝐸[𝑔].
(2) 単調性: 函数 𝑓,𝑔 のあいだで常に 𝑓 ≦ 𝑔 が成立しているならば 𝐸[𝑓] ≦ 𝐸[𝑔] .
(1) 線形性: 函数

3.1.1 例: 有限和で書ける加重平均

𝐼 上の函数を数 𝐸[𝑓] に対応させる函数 𝐸[ ] を以下のように定めると, 𝐸[ ] は期待値汎函数になる. まず
𝑎1 ,…, 𝑎𝑛 ∈ 𝐼 を任意に取る. 𝑤1 ,…, 𝑤𝑛 は0以上の実数でかつ 𝑤1 + ⋯ + 𝑤𝑛 = 1 を満たしていると仮定する. そして区間 𝐼上の函数 𝑓 に対して
𝑛𝐸[𝑓] = ∑ 𝑤𝑖 𝑓(𝑎𝑖 ) = 𝑤1 𝑓(𝑎1 ) + ⋯ + 𝑤𝑛 𝑓(𝑎𝑛 )
例: 区間

𝑖=1

と定める. このようにして定められた(1) 区間𝐸[ ] が実際に期待値汎函数の性質を満たしていることは以下のようにして確認できる.

𝐼 上の函数 𝑓,𝑔 と数 𝛼,𝛽 について𝑛𝑛𝐸[𝛼𝑓 + 𝛽𝑔] = ∑ 𝑤𝑖 (𝛼𝑓(𝑎𝑖 ) + 𝛽𝑔(𝑎𝑖 )) = ∑(𝛼𝑤𝑖 𝑓(𝑎𝑖 ) + 𝛽𝑤𝑖 𝑔(𝑎𝑖 ))
𝑖=1

𝑛

𝑛

𝑖=1

= 𝛼 ∑ 𝑤𝑖 𝑓(𝑎𝑖 ) + 𝛽 ∑ 𝑤𝑖 𝑔(𝑎𝑖 ) = 𝛼𝐸[𝑓] + 𝛽𝐸[𝑔].
𝑖=1𝑖=1(2) 区間 𝐼 上で 𝑓 ≦ 𝑔 が成立していると仮定すると, 𝑤𝑖 ≧ 0 より 𝑤𝑖 𝑓(𝑎𝑖 ) ≦ 𝑤𝑖 𝑔(𝑎𝑖 ) も成立するので
𝑛𝑛𝐸[𝑓] = ∑ 𝑤𝑖 𝑓(𝑎𝑖 ) ≦ ∑ 𝑤𝑖 𝑔(𝑎𝑖 ) = 𝐸[𝑔].
𝑖=1𝑖=1(3) 定数函数 𝑓(𝑥) = 𝛼 について 𝑓(𝑎𝑖 ) = 𝛼 が成立しているので, 𝑤1 + ⋯ + 𝑤𝑛 = 1 という仮定より,𝑛𝑛𝐸[𝛼] = 𝐸[𝑓] = ∑ 𝑤𝑖 𝑓(𝑎𝑖 ) = ∑ 𝑤𝑖 𝛼 = 𝛼.
𝑖=1𝑖=1
これで示すべきことがすべて示された.
特にと𝑤𝑖 = 1/𝑛 であるとき, 𝐸[𝑓] は𝑓(𝑎𝑖 ) たちの加法平均になる. □𝐸[𝑓] = 𝑓(𝑎1 ) + ⋯𝑛 + 𝑓(𝑎𝑛 )抽象的な期待値汎函数の概念が難しいと感じる人は, 一般的な期待値汎函数の定義を忘れてこの例の別な場合である加法平均の場合のみを考えれば十分である.

𝐸[𝑓] またはさらにその特3.1.2 例: 区間上の一様分布による平均

𝑎 < 𝑏 であるとする. 閉区間 𝐼 = [𝑎,𝑏] 上の連続函数 𝑓 を𝑏
𝐸[𝑓] = 𝑏 −1 𝑎 ∫𝑎 𝑓(𝑥)𝑑𝑥に対応させる函数 𝐸[ ] は期待値汎函数であることを示せ. □問題:

3.1.3 例: 確率密度函数による平均ℝ 上の函数 𝑝(𝑥) は 𝑝(𝑥) ≧ 0 (𝑥 ∈ ℝ) と ∫−∞∞ 𝑝(𝑥)𝑑𝑥 = 1 を満たしていると仮定する. (このような 𝑝(𝑥) は確率密度函数と呼ばれる.) このとき, ℝ 上の(適当によい条件を仮定した)函数 𝑓 を∞
𝐸[𝑓] = ∫−∞ 𝑓(𝑥)𝑝(𝑥)𝑑𝑥に対応させる函数 𝐸[ ] が期待値汎函数であることを示せ. (𝐸[𝑓] は確率密度函数 𝑝(𝑥) が定める確率分布に関する確率変数 𝑓
問題:の期待値と呼ばれる.)

注意: 上の問題はこの問題で

1𝑝(𝑥) = { 𝑏 − 𝑎 (𝑎 ≦ 𝑥 ≦ 𝑏)0
(それ以外)□∞
解答例: 以下では ∫−∞ を ∫ と略記する.
(1) 数 𝛼, 𝛽 と函数 𝑓 , 𝑔 について𝐸[𝛼𝑓 + 𝛽𝑔] = ∫ (𝛼𝑓(𝑥) + 𝛽𝑔(𝑥))𝑝(𝑥)𝑑𝑥 = 𝛼 ∫ 𝑓(𝑥)𝑝(𝑥)𝑑𝑥 + 𝛽 ∫ 𝑔(𝑥)𝑝(𝑥)𝑑𝑥 = 𝛼𝐸[𝑓] + 𝛽𝐸[𝑔].
(2) ℝ 上で 𝑓 ≦ 𝑔 が成立していると仮定すると, 𝑝(𝑥) ≧ 0 より 𝑓(𝑥)𝑝(𝑥) ≦ 𝑔(𝑥)𝑝(𝑥) も成立するので𝐸[𝑓] = ∫ 𝑓(𝑥)𝑝(𝑥)𝑑𝑥 ≦ ∫ 𝑔(𝑥)𝑝(𝑥)𝑑𝑥 = 𝐸[𝑔].
(3) 定数函数 𝑓(𝑥) = 𝛼 について, ∫ 𝑝(𝑥)𝑑𝑥 = 1 という仮定より,
𝐸[𝛼] = ∫ 𝛼𝑝(𝑥)𝑑𝑥 = 𝛼.
これで示すべきことがすべて示された. □とした場合になっている.

3.2 Jensenの不等式とその証明
Jensenの不等式:
する. このとき

𝐸[ ] は区間 𝐼 上の函数の期待値汎函数であるとし, 𝑓 は区間 𝐼 上の上に凸(もしくは下に凸)な函数であると𝐸[𝑓(𝑥)] ≦ 𝑓(𝐸[𝑥])例えば(もしくは 𝐸[𝑓(𝑥)] ≧ 𝑓(𝐸[𝑥])).

𝑛

𝑛

𝑖=1

𝑖=1

𝐸[𝑓(𝑥)] = ∑ 𝑤𝑖 𝑓(𝑎𝑖 ), 𝑤𝑖 ≧ 0, ∑ 𝑤𝑖 = 1
のとき,

𝑛=2

𝑓

𝑤1 𝑓(𝑎1 ) + ⋯ + 𝑤𝑛 𝑓(𝑎𝑛 ) ≦ 𝑓(𝑤1 𝑎1 + ⋯ + 𝑤𝑛 𝑎𝑛 )(もしくは 𝑤1 𝑓(𝑎1 ) + ⋯ + 𝑤𝑛 𝑓(𝑎𝑛 ) ≧ 𝑓(𝑤1 𝑎1 + ⋯ + 𝑤𝑛 𝑎𝑛 )).

特にこれのの場合には が上に凸(もしくは下に凸)であることの定義とこれらは同値であることに注意せよ. すなわち,
函数 がJensenの不等式を満たすことと上(もしくは下)に凸なことは同値になる. この意味でJensenの不等式は函数の凸性を言い換えた結果になっている.

𝑓

3.2.1 期待値汎函数に関する一般的なJensenの不等式の証明

𝑓 𝐶 1 級であると仮定する. (𝐶 1 級でない場合にも同様の方法で証明できるが, 「接線」

Jensenの不等式の証明: 簡単のため はの存在を別に証明する必要が生じる.)

𝑓 は上に凸であると仮定する.
𝜇 = 𝐸[𝑥] とおく. 𝐸[𝑓(𝑥)] ≦ 𝑓(𝜇) を示せばよい. 𝑥 = 𝜇 における 𝑦 = 𝑓(𝑥) の接線を 𝑦 = 𝛼(𝑥 − 𝜇) + 𝑓(𝜇) と書く. 𝑓 は上に凸であると仮定したので

𝑓(𝑥) ≦ 𝛼(𝑥 − 𝜇) + 𝑓(𝜇)𝐸[ ] の性質より
𝐸[𝑓(𝑥)] ≦ 𝐸[𝛼(𝑥 − 𝜇) + 𝑓(𝜇)] = 𝛼(𝐸[𝑥] − 𝐸[𝜇]) + 𝐸[𝑓(𝜇)] = 𝑓(𝜇).

が成立している(図を描いてみよ). ゆえに最初の不等号は期待値汎函数の単調性より, 1つ目の等号は線形性より, 2つ目の等号は規格化条件より. これで示すべきことがすべて示された.

□In [9]:



1
2
3
4
5
6
7
8

x = 0:0.01:2.0
μ = 0.7
f(x) = log(x)g(μ,x) = (1/μ)*(x-μ) + f(μ)
plot(size=(500,350), legend=:topleft, xlims=(0,1.7), ylims=(-2.2, 0.8))
plot!(x, f.(x), label="y = log x")
plot!(x, g.(μ,x), label="y = a(x-mu)+f(mu)")plot!([μ, μ], [-3.0, f(μ)], label="x=mu", ls=:dash)Out[9]:

3.2.2 有限和で書ける荷重平均に関するJensenの不等式の帰納法による証明
問題: 上に凸な函数

𝑓(𝑥) と𝐸[𝑔(𝑥)] = 𝑤1 𝑔(𝑎1 ) + ⋯ + 𝑤𝑛 𝑔(𝑎𝑛 ), 𝑤𝑖 ≧ 0, 𝑤1 + ⋯ + 𝑤𝑛 = 1

に関するJensenの不等式

𝑤1 𝑓(𝑎1 ) + ⋯ + 𝑤𝑛 𝑓(𝑎𝑛 ) ≦ 𝑓(𝑤1 𝑎1 + ⋯ + 𝑤𝑛 𝑎𝑛 )𝑛 に関する数学的帰納法を用いて直接証明せよ.
解答例: 𝑛 = 1 のとき, (∗ ) は 𝑓(𝑎1 ) ≦ 𝑓(𝑎1 ) を意味するので, 自明に正しい.
𝑛 = 𝑁 ≧ 1 に関する (∗) が常に成立していると仮定し(帰納法の仮定),
𝑤𝑖 ≧ 0, 𝑤1 + ⋯ + 𝑤𝑁 + 𝑤𝑁+1 = 1と仮定する. もしも 𝑤𝑁+1 = 1 ならば 𝑛 = 𝑁 + 1 の場合の (∗ ) は自明に成立している. 以下では 𝑤𝑁+1 < 1 と仮定し,𝑡𝑖 = 1 − 𝑤𝑤𝑖𝑁+1
とおく. このとき, 𝑤𝑖 ≧ 0, 𝑤1 + ⋯ + 𝑤𝑁 = 1 − 𝑤𝑁+1 より,+ 𝑤𝑁 = 1.
𝑡𝑖 ≧ 0, 𝑡1 + ⋯ + 𝑡𝑁 = 𝑤11+−⋯𝑤𝑁+1
したがって, 𝑛 = 𝑁 の場合の(∗ )より,
𝑡1 𝑓(𝑎1 ) + ⋯ + 𝑡𝑁 𝑓(𝑎𝑁 ) ≦ 𝑓(𝑡1 𝑎1 + ⋯ + 𝑡𝑁 𝑎𝑁 ).
𝑓 は上に凸と仮定してあったので, 𝑤𝑖 = (1 − 𝑤𝑁+1 )𝑡𝑖 を使うと,
𝑤1 𝑓(𝑎1 ) + ⋯ + 𝑤𝑁 𝑓(𝑎𝑁 ) + 𝑤𝑁+1 𝑓(𝑎𝑁+1 ) = (1 − 𝑤𝑁+1 )(𝑡1 𝑓(𝑎1 ) + ⋯ + 𝑡𝑁 𝑓(𝑎𝑁 )) + 𝑤𝑁+1 𝑓(𝑎𝑁+1 )≦ (1 − 𝑤𝑁+1 )𝑓(𝑡1 𝑎1 + ⋯ + 𝑡𝑁 𝑎𝑁 ) + 𝑤𝑁+1 𝑓(𝑎𝑁+1 )≦ 𝑓((1 − 𝑤𝑁+1 )(𝑡1 𝑎1 + ⋯ + 𝑡𝑁 𝑎𝑁 ) + 𝑤𝑁+1 𝑎𝑁+1 )= 𝑓(𝑤1 𝑎1 + ⋯ + 𝑤𝑁 𝑎𝑁 + 𝑤𝑁+1 𝑎𝑁+1 ).
ここで, 2行目で 𝑛 = 𝑁 の場合の(∗ )を使い, 3行目で 𝑓 が上に凸であることを使った.
ゆえに数学的帰納法によってすべての 𝑛 について (∗ ) が成立する. □を(∗)

3.3 相加相乗平均の不等式
例:𝑎𝑖 > 0 であるとし,

𝐸[𝑓(𝑥)] = 𝑓(𝑎1 ) + ⋯𝑛 + 𝑓(𝑎𝑛 )とおく. 𝑥 > 0 に対して 𝑓(𝑥) = log𝑥 とおく. このとき, 𝑓(𝑥) = log𝑥 は下に凸なので, Jensenの不等式より
𝐸[𝑓(𝑥)] ≦ 𝑓(𝐸[𝑥]). そして,𝐸[𝑓(𝑥)] = log 𝑎1 + ⋯𝑛 + log 𝑎𝑛 = log(𝑎1 ⋯ 𝑎𝑛 )1/𝑛, 𝑓(𝐸[𝑥]) = log 𝑎1 + ⋯𝑛 + 𝑎𝑛
なので, log の単調増加性より,(𝑎1 ⋯ 𝑎𝑛 )1/𝑛 ≦ 𝑎1 + ⋯𝑛 + 𝑎𝑛 .
これでJensenの不等式が相加相乗平均の不等式を含んでいることがわかった. □例題: 下に凸な函数 𝑓(𝑥) = 𝑒𝑥 に関するJensenの不等式を用いて相加相乗平均の不等式を証明し直せ.
𝑓(𝐴1 ) + ⋯ + 𝑓(𝐴𝑛 ) とおくと, 𝑓(𝑥) = 𝑒𝑥 のとき
解答例: 𝑎𝑖 > 0 であるとし, 𝐴𝑖 = log 𝑎𝑖 , 𝐸[𝑓(𝑥)] =𝑛𝐴𝐴𝐸[𝑓(𝑥)] = 𝐸[𝑒𝑥 ] = 𝑒 1 + ⋯𝑛 + 𝑒 𝑛 = 𝑎1 + ⋯𝑛 + 𝑎𝑛 ,𝑓(𝐸[𝑥]) = 𝑒(𝐴1+⋯+𝐴𝑛)/𝑛 = (𝑒𝐴1 ⋯ 𝑒𝐴𝑛)1/𝑛 = (𝑎1 ⋯ 𝑎𝑛 )1/𝑛.
下に凸な函数 𝑓(𝑥) = 𝑒𝑥 に関するJensenの不等式 𝐸[𝑓(𝑥)] ≧ 𝑓(𝐸[𝑥]) より,
𝑎1 + ⋯ + 𝑎𝑛 ≧ (𝑎1 ⋯ 𝑎𝑛 )1/𝑛.
𝑛
これで示すべきことが示された. □3.4 Youngの不等式

𝑝𝑖 > 0, 𝑝11 + ⋯ + 𝑝1𝑛 = 1, 𝑎𝑖 > 0 のとき
𝑝1
𝑝
𝑎
⋯
≦
𝑎1 𝑎𝑛 𝑝11 + ⋯ + 𝑎𝑝𝑛𝑛𝑛
𝑛 = 2 の場合をYoungの不等式と呼ぶ. すなわち 𝑝 > 0, 𝑞 > 0, 1𝑝 + 1𝑞 = 1, 𝑎 > 0, 𝑏 > 0 のときの𝑞𝑝𝑎𝑏 ≦ 𝑎𝑝 + 𝑏𝑞
Youngの不等式の一般化:という不等式をYoungの不等式と呼ぶ.
証明: 上に凸な函数

ゆえに

問題:

𝑓(𝑥) = log𝑥 に関するJensenの不等式より
𝑝1𝑝𝑝1 + ⋯ + log𝑎𝑛𝑛 ≦ log 𝑎11 + ⋯ + 𝑎𝑝𝑛𝑛
log(𝑎1 ⋯ 𝑎𝑛 ) = log𝑎
( 𝑝1
𝑝1
𝑝𝑛
𝑝𝑛 )
𝑝1
𝑝
𝑎1 ⋯ 𝑎𝑛 ≦ 𝑎𝑝11 + ⋯ + 𝑎𝑝𝑛𝑛𝑛

𝑎,𝑏 > 0, 𝑝,𝑞 > 0, 1𝑝 + 1𝑞 = 1 のとき

𝑝𝑝
𝑎𝑏 ≦ 𝑎𝑝 + 𝑏𝑞となること(つまりYoungの不等式)を直接的に証明してみよ.

□𝑓(𝑥) = log𝑥 が上に凸であることより, 𝐴,𝐵 > 0 について
1 log𝐴 + 1 log𝐵 ≦ log 𝐴 + 𝐵 .
(𝑝 𝑞)
𝑞
𝑝
ゆえに 𝐴 = 𝑎𝑝 , 𝐵 = 𝑏𝑞 とおくと,
𝑞𝑝log(𝑎𝑏) = 1𝑝 log 𝑎𝑝 + 1𝑞 log 𝑏𝑞 ≦ log( 𝑎𝑝 + 𝑏𝑞 ).
解答例1:

したがって,𝑝𝑝
𝑎𝑏 ≦ 𝑎𝑝 + 𝑏𝑞 .

□𝑓(𝑥) = 𝑒𝑥 が下に凸であることより, 実数 𝐴,𝐵 について
1 𝑒𝐴 + 1 𝑒𝐵 ≧ 𝑒𝐴/𝑝+𝐵/𝑞 = 𝑒𝐴/𝑝 𝑒𝐵/𝑞 .
𝑝 𝑞
ゆえに 𝐴 = log𝑎𝑝 , 𝐵 = log𝑏𝑞 とおくと,
𝑎𝑝 + 𝑏𝑞 ≧ 𝑎𝑏. □
𝑝 𝑞
解答例2:

𝑓(𝑥) は 𝑥 ≧ 0 の狭義単調増加連続函数で 𝑓(0) = 0 を満たすものであるとし,
𝑋 = {(𝑥,𝑦) ∣ 0 ≦ 𝑥 ≦ 𝑎, 0 ≦ 𝑦 ≦ 𝑓(𝑥)}, 𝑌 = {(𝑥,𝑦) ∣ 0 ≦ 𝑥 ≦ 𝑓 −1 (𝑦), 0 ≦ 𝑦 ≦ 𝑏}
とおくと, [0,𝑎] × [0,𝑏] ⊂ 𝑋 ∪ 𝑌 となるので(図を描いてみよ), 面積を比較することによって
𝑎𝑏𝑎𝑏 ≦ ∫0 𝑓(𝑥)𝑑𝑥 + ∫0 𝑓 −1 (𝑦)𝑑𝑦.
𝑓(𝑥) = 𝑥𝑝−1 とおくと,
1 + 1 = 1 ⟺ (𝑝 − 1)(𝑞 − 1) = 1
𝑝 𝑞
より, 𝑓 −1 (𝑦) = 𝑦1/(𝑝−1) = 𝑦𝑞−1 となることがわかる. これに上の不等式を適用すると
𝑝𝑝
𝑎𝑏 ≦ 𝑎𝑝 + 𝑏𝑞が得られる. □注意: 𝑎𝑝−1 = 𝑏 ならば (⋆ ) で等号が成立する.
1 + 1 = 1 ⟺ (𝑝 − 1)(𝑞 − 1) = 1 ⟺ (𝑝 − 1)𝑞 = 𝑝𝑝 𝑞なので 𝑎𝑝−1 = 𝑏 と 𝑎𝑝 = 𝑏𝑞 は同値である(前者の両辺を 𝑞 乗すると後者になる). □
解答例3:

(⋆)

In [10]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

function plot_Young(a, b; p=2.5, kwarg...)q = p/(p-1)f(x) = x^(p-1)g(y) = y^(q-1)
A = max(a, g(b))
x = 0:a/200:ay = 0:b/200:bx1 = 0:A/200:A
P = plot(legend=false; kwarg...)plot!([a,a], [0,b], color=:black)plot!([0,a], [b,b], color=:black)plot!(x, f.(x), color=:red, fill=(0, 0.4, :pink))
plot!(x1, f.(x1), color=:red, fill=(b, 0.4, :pink))
if A > ax2 = a:(A-a)/200:A
plot!(x2, f.(x2), color=:red, fill=(b, 0.4, :pink))
end
P
end
​
P1 = plot_Young(3,2)
P2 = plot_Young(2,5)
plot(P1, P2, size=(600, 300))

Out[10]:3.5 Hölderの不等式

𝐿𝑝 ノルム区間 [𝑎,𝑏] 乗の連続函数 𝑓 に対して ‖𝑓 ‖𝑝 を
3.5.1

‖𝑓 ‖𝑝 = (∫𝑎𝑏|𝑓(𝑥)|𝑝 𝑑𝑥

𝑓 の 𝐿𝑝 ノルムと呼ぶ.
問題: 定数 𝛼 について ‖𝛼𝑓‖𝑝 = |𝛼|‖𝑓‖𝑝 が成立していることを示せ.

)1/𝑝と定める. これを函数

解答例:‖𝛼𝑓 ‖𝑝 = (∫𝑎

𝑏

1/𝑝

𝑏

1/𝑝

𝑏

) = ( ∫𝑎) = |𝛼| (∫𝑎𝑓 とおくと ‖𝑔‖𝑝 = 1 となることがわかる. □注意: 上の問題の結果より, 特に 𝑔 =‖𝑓‖𝑝|𝛼𝑓(𝑥)|𝑝 𝑑𝑥|𝛼|𝑝|𝑓(𝑥)|𝑝 𝑑𝑥|𝑓(𝑥)|𝑝 𝑑𝑥

1/𝑝) = |𝛼|‖𝑓 ‖𝑝 .

□3.5.2 一般化されたHölderの不等式

𝑝 > 0, 𝑝𝑖 > 0 であるとし,と仮定する. このとき, 区間

1
1 1
𝑝1 + ⋯ + 𝑝𝑛 = 𝑝[𝑎,𝑏] 上の連続函数 𝑓𝑖 達について‖𝑓1 ⋯ 𝑓𝑛 ‖𝑝 ≦ ‖𝑓1 ‖𝑝1 ⋯‖𝑓𝑛 ‖𝑝𝑛(∗)

が成立する. これを一般化されたHölderの不等式と呼ぶことにする.
ち,,かつ

𝑝>0 𝑞>0𝑛 = 2, 𝑝 = 1 の場合はHölderの不等式と呼ばれる. すなわ

1 + 1 =1
𝑝 𝑞のときの‖𝑓𝑔‖1 ≦ ‖𝑓 ‖𝑝 ‖𝑔‖𝑞という不等式はHölderの不等式と呼ばれる. さらにこれの 𝑝 = 𝑞 = 2 の場合はCauchy-Schwarzの不等式の特別な場合である.
𝑓𝑖 (𝑥)
一般化されたHölderの不等式の証明の概略: 𝑔𝑖 (𝑥) =‖𝑓𝑖 ‖𝑝𝑖 とおく. そのとき ‖𝑔𝑖 ‖𝑝𝑖 = 1 となる.
1
1 1 𝑝
𝑝
𝑝1 + ⋯ + 𝑝𝑛 = 𝑝 は 𝑝1 + ⋯ + 𝑝𝑛 = 1 と同値なので, 𝑞𝑖 = 𝑝𝑖 /𝑝 とおくと,𝑞𝑖 > 0, 𝑝𝑞𝑖 = 𝑝𝑖 , 𝑞11 + ⋯ + 𝑞1𝑛 = 1.
ゆえに 𝑎𝑖 = |𝑔𝑖 (𝑥)|𝑝 にYoungの不等式の一般化を適用することによって,𝑝𝑞
𝑝𝑞|𝑝1 + ⋯ + |𝑔𝑛 (𝑥)|𝑝𝑛 .
|𝑔1 (𝑥)⋯ 𝑔𝑛 (𝑥)|𝑝 = |𝑔1 (𝑥)|𝑝 ⋯|𝑔𝑛 (𝑥)|𝑝 ≦ |𝑔1 (𝑥)𝑞1 | 1 + ⋯ + |𝑔𝑛 (𝑥)𝑞𝑛 | 𝑛 = |𝑔1 (𝑥)𝑞1𝑞𝑛
これを 𝑥 で積分すると,
𝑝𝑝(‖𝑔1 ⋯ 𝑔𝑛 ‖𝑝 )𝑝 ≦ (‖𝑔1 (𝑥)𝑞1‖𝑝1) 1 + ⋯ + (‖𝑔𝑛 (𝑥)𝑞𝑛‖𝑝𝑛) 𝑛 = 𝑞11 + ⋯ + 𝑞1𝑛 = 1.
ゆえに,

‖𝑓1 ⋯ 𝑓𝑛 ‖𝑝 = ‖𝑔1 ⋯ 𝑔𝑛 ‖𝑝 ≦ 1.
‖𝑓1 ‖𝑝1 ⋯‖𝑓𝑛 ‖𝑝𝑛.
したがって,‖𝑓1 ⋯ 𝑓𝑛 ‖𝑝 ≦ ‖𝑓1 ‖𝑝1 ⋯‖𝑓𝑛 ‖𝑝𝑛.

□

3.5.3 一般化されていないHölderの不等式
問題: (一般化されていない)Youngの不等式から(一般化されていない)Hölderの不等式を導け.
解答例の概略:𝑝,𝑞 > 0, 1𝑝 + 1𝑞 = 1 と仮定する.

‖𝑓𝑔‖1 ≦ ‖𝑓 ‖𝑝 ‖𝑔‖𝑞

1 以下になることを示せばよい.
|𝑔(𝑥)|
𝑎(𝑥) = |𝑓(𝑥)|
,
𝑏(𝑥)
=
‖𝑓‖𝑝
‖𝑔‖𝑞
とおくと, ‖𝑎‖𝑝 = ‖𝑏‖𝑞 = 1 となる. 𝑎(𝑥), 𝑏(𝑥) にYoungの不等式を適用すると,
𝑞𝑝𝑎(𝑥)𝑏(𝑥) ≦ 𝑎(𝑥)𝑝 + 𝑏(𝑥)𝑞 .
両辺を 𝑥 について積分すると,𝑏‖𝑓𝑔‖1∫𝑎 𝑎(𝑥)𝑏(𝑥)𝑑𝑥 = ‖𝑎𝑏‖1 = ‖𝑓 ‖𝑝 ‖𝑔‖𝑞 ,𝑏 𝑎(𝑥)𝑝 𝑏(𝑥)𝑞(‖𝑎‖𝑝 )𝑝 + (‖𝑏‖𝑞 )𝑞 = 1 + 1 = 1.
+𝑑𝑥=∫𝑎 ( 𝑝𝑞 )𝑞 𝑝 𝑞𝑝を証明したい. 左辺を右辺で割ったものがゆえに

これより, Hölderの不等式が成立することがわかる.

□‖𝑓𝑔‖1 ≦ 1.
‖𝑓 ‖𝑝 ‖𝑔‖𝑞

3.5.4 Cauchy-Schwarzの不等式

𝑝,𝑞 > 0, 1𝑝 + 1𝑞 = 1 と仮定する. このとき, ‖𝑓 ‖𝑝 < ∞, ‖𝑔‖𝑞 < ∞ を満たす函数 𝑓,𝑔 の内積を𝑏⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⟨𝑓,𝑔⟩ = ∫𝑎 ⎯𝑓(𝑥)𝑔(𝑥)𝑑𝑥⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯と定義できる. ここで 𝑓(𝑥) は 𝑓(𝑥) の複素共役を意味している. 𝑓(𝑥) が実数ならば 𝑓(𝑥) = 𝑓(𝑥) である. このとき, Hölderの不
等式より,

𝑏
𝑏
|⟨𝑓,𝑔⟩| ≦ ∫𝑎 |||⎯𝑓⎯⎯⎯⎯⎯(𝑥)⎯⎯⎯⎯⎯||| |𝑔(𝑥)| 𝑑𝑥 = ∫𝑎 |𝑓(𝑥)||𝑔(𝑥)| 𝑑𝑥 = ‖𝑓𝑔‖1 ≦ ‖𝑓 ‖𝑝 ‖𝑔‖𝑞 .

すなわち,この不等式の|⟨𝑓,𝑔⟩| ≦ ‖𝑓𝑔‖1 ≦ ‖𝑓 ‖𝑝 ‖𝑔‖𝑞 .

𝑝 = 𝑞 = 1/2 の場合はCauchy-Schwarzの不等式と呼ばれている.

3.5.5 分配函数の対数凸性のHölderの不等式を用いた証明
問題:𝑎 < 𝑏 と仮定する. 𝑍(𝛽) = ∫𝑎𝑏 𝑒−𝛽𝑓(𝑥)+𝑔(𝑥) 𝑑𝑥 の形の函数 𝑍(𝛽) について, log𝑍(𝛽) が 𝛽 の下に凸な函数になることを

Hölderの不等式を使って示せ.

0 < 𝑡 < 1 であるとし, 𝑝 = 1/(1 − 𝑡), 𝑞 = 1/𝑡 とおく. そのとき 1𝑝 + 1𝑞 = 1 となる. ゆえにHölderの不等式より,𝑏𝑏𝑍((1 − 𝑡)𝛼 + 𝑡𝛽) = 𝑍 ( 𝛼𝑝 + 𝛽𝑞 ) = ∫𝑎 𝑒−(𝛼/𝑝+𝛽/𝑞)𝑓(𝑥)+(1/𝑝+1/𝑞)𝑔(𝑥) 𝑑𝑥 = ∫𝑎 (𝑒−𝛼𝑓(𝑥)+𝑔(𝑥) )1/𝑝(𝑒−𝛽𝑓(𝑥)+𝑔(𝑥) )1/𝑞 𝑑𝑥
1/𝑝 𝑏
1/𝑞
𝑏
≦ (∫𝑎 𝑒−𝛼𝑓(𝑥)+𝑔(𝑥) 𝑑𝑥) (∫𝑎 𝑒−𝛽𝑓(𝑥)+𝑔(𝑥) 𝑑𝑥)= 𝑍(𝛼)1/𝑝 𝑍(𝛽)1/𝑞 = 𝑍(𝛼)1−𝑡 𝑍(𝛽)𝑡 .

解答例:

ゆえに

log𝑍((1 − 𝑡)𝛼 + 𝑡𝛽) ≦ (1 − 𝑡)log𝑍(𝛼) + 𝑡log𝑍(𝛽).
これは log𝑍(𝛽) が 𝛽 に関する下に凸な函数であることを意味している. □注意: 上の問題の 𝑍(𝛽) の形の函数を分配函数と呼ぶことがある(統計力学). 上の問題より, Hölderの不等式は分配函数の対数が下に凸な函数になることを意味していることがわかる. □3.5.6 ガンマ函数の対数凸性

𝑠 > 0 に対して Γ(𝑠) = ∫0∞ 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 = ∫0∞ 𝑒(𝑠−1) log 𝑥−𝑥 𝑑𝑥 とおくと, その対数 logΓ(𝑠) は
𝑠 > 0 の下に凸な函数になる. □例(ガンマ函数の対数凸性):

3.5.7 分配函数の対数凸性の微分を用いた証明法ℎ(𝑥) に対する ⟨ℎ(𝑥)⟩ = ⟨ℎ(𝑦)⟩ を次のように定める:
1 𝑏 ℎ(𝑥)𝑒−𝛽𝑓(𝑥)+𝑔(𝑥) 𝑑𝑥, ⟨ℎ(𝑦)⟩ = 1 𝑏 ℎ(𝑦)𝑒−𝛽𝑓(𝑦)+𝑔(𝑦) 𝑑𝑦.
⟨ℎ(𝑥)⟩ = 𝑍(𝛽)∫𝑎
𝑍(𝛽) ∫𝑎
さらに函数 ℎ(𝑥,𝑦) に対する ⟨ℎ(𝑥,𝑦)⟩ を次のように定める:
1 𝑏 𝑏 ℎ(𝑥,𝑦)𝑒−𝛽𝑓(𝑥)+𝑔(𝑥) 𝑒−𝛽𝑓(𝑦)+𝑔(𝑦) 𝑑𝑥𝑑𝑦.
⟨ℎ(𝑥,𝑦)⟩ = 𝑍(𝛽)2 ∫𝑎 ∫𝑎このとき ⟨𝑓(𝑥)⟩2 = ⟨𝑓(𝑥)𝑓(𝑦)⟩ などが成立している.
もしも上の問題の 𝑍(𝛽) について 𝛽 に関する微分と積分の順序交換を自由にできるならば
注意: 上の問題の記号のもとで, 函数

𝑏 −𝛽𝑓(𝑥)+𝑔(𝑥)− 𝑑𝛽𝑑 log𝑍(𝛽) = ∫𝑎 𝑒 𝑍(𝛽) 𝑓(𝑥)𝑑𝑥 = ⟨𝑓(𝑥)⟩,𝑑2 log𝑍(𝛽) = ⟨𝑓(𝑥)2 ⟩ − ⟨𝑓(𝑥)⟩2 = ⟨𝑓(𝑥)𝑓(𝑥)⟩ − ⟨𝑓(𝑥)𝑓(𝑦)⟩3.6 Minkowskiの不等式

𝐿1 ノルムについては, 三角不等式 |𝑓(𝑥) + 𝑔(𝑥)| ≦ |𝑓(𝑥)| + |𝑔(𝑥)| より,𝑏𝑏‖𝑓 + 𝑔‖1 = ∫𝑎 |𝑓(𝑥) + 𝑔(𝑥)|𝑑𝑥 ≦ ∫𝑎 (|𝑓(𝑥)| + |𝑔(𝑥)|)𝑑𝑥 = ‖𝑓 ‖1 + ‖𝑔‖1が成立している. この 𝐿1 ノルムに関する三角不等式はそのまま 𝐿𝑝 ノルム (𝑝 > 1) に一般化される.
𝑝 > 1 であると仮定する. 𝑞 = 𝑝 −𝑝 1 とおくと, 1𝑝 + 1𝑞 = 1. このとき,(𝑝−1)/𝑝𝑏‖ |𝜑|𝑝−1 ‖𝑞 = ‖ |𝜑|𝑝−1 ‖𝑝/(𝑝−1) = (∫𝑎 |𝜑(𝑥)|𝑝 𝑑𝑥) = (‖𝜑‖𝑝 )𝑝−1 .
これを 𝜑 = 𝑓 + 𝑔 に適用することによって,𝑏𝑏(‖𝑓 + 𝑔‖𝑝 )𝑝 = ∫𝑎 |𝑓(𝑥) + 𝑔(𝑥)|𝑝 𝑑𝑥 = ∫𝑎 |𝑓(𝑥) + 𝑔(𝑥)| |𝑓(𝑥) + 𝑔(𝑥)|𝑝−1 𝑑𝑥𝑏𝑏≦ ∫𝑎 |𝑓(𝑥)| |𝑓(𝑥) + 𝑔(𝑥)|𝑝−1 𝑑𝑥 + ∫𝑎 |𝑔(𝑥)| |𝑓(𝑥) + 𝑔(𝑥)|𝑝−1 𝑑𝑥≦ ‖𝑓 ‖𝑝 ‖|𝑓(𝑥) + 𝑔(𝑥)|𝑝−1 ‖𝑞 + ‖𝑔‖𝑝 ‖|𝑓(𝑥) + 𝑔(𝑥)|𝑝−1 ‖𝑞= ‖𝑓 ‖𝑝 (‖𝑓(𝑥) + 𝑔(𝑥)‖𝑝 )𝑝−1 + ‖𝑔‖𝑝 (‖𝑓(𝑥) + 𝑔(𝑥)‖𝑝 )𝑝−1
= (‖𝑓 ‖𝑝 + ‖𝑔‖𝑝 )(‖𝑓(𝑥) + 𝑔(𝑥)‖𝑝 )𝑝−1
ここで, 2行目の不等号で三角不等式 |𝑓(𝑥) + 𝑔(𝑥)| ≦ |𝑓(𝑥)| + |𝑔(𝑥)| を使い, 3行目の不等号でHölderの不等式を使った. したがって,‖𝑓 + 𝑔‖𝑝 ≦ ‖𝑓 ‖𝑝 + ‖𝑔‖𝑝 .

これをMinkowskiの不等式と呼ぶ.

𝑏‖𝑓 ‖𝑝 < ∞ すなわち ∫𝑎 |𝑓(𝑥)|𝑝 𝑑𝑥 < ∞ を満たす函数を 𝐿𝑝 函数 もしくは 𝑝 乗可積分函数 と呼ぶ. 特に 𝐿1 函数を単に可積分函数と呼ぶ. □Minkowskiの不等式より, 𝐿𝑝 函数の和も 𝐿𝑝 函数になる.
定義:

09 積分
黒木玄
2018-06-21～2019-04-03, 2023-06-22
Copyright 2018,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/09%20integration.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/09%20integration.ipynb)
https://genkuroki.github.io/documents/Calculus/09%20integration.pdf(https://genkuroki.github.io/documents/Calculus/09%20integration.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 積分の基本性質
1.1 基本性質(A)線形性, (B)積分区間の連結, (C)定数の積分, (D)単調性
1.2 性質(E) 積分の絶対値の上からの評価
1.3 性質(F) 微分積分学の基本定理1
1.4 性質(G) 微分積分学の基本定理2 2 部分積分と置換積分
2.1 置換積分
2.2 部分積分
 3 積分の近似
3.1 Riemann和3.2 台形公式
3.3 Simpsonの公式
 4 広義積分
4.1 Fourier変換
 4.2 絶対収束する広義積分の例
4.2.1 arcsin
4.2.2 arctan
4.2.3 ガンマ函数
4.2.4 ベータ函数
4.2.5 Gauss分布のFourier変換
4.2.6 三角函数のLaplace変換
 4.3 条件収束する広義積分の例
4.3.1 Dirichlet積分
4.3.2 Dirichlet積分の一般化
4.3.3 Fresnel積分の特殊値
4.3.4 Dirichelt積分の収束の様子
4.3.5 Dirichlet積分が絶対収束しないことの証明
4.3.6 Dirichlet積分が絶対収束しない様子
4.3.7 Fresnel積分
4.3.8 Fresnel積分の収束の様子
4.3.9 数式処理系による定積分の計算
4.3.10 Dirichlet積分の分母をとする一般化
4.3.11 部分積分による広義積分の収束の証明法
 5 積分と極限の交換
 5 1 積分と極限が交換できない場合

𝑥𝑎 5.1 積分と極限が交換できない場合
5.1.1 Lebesgueの収束定理の結論が成立しない場合1
 5.2 Dirichlet積分とその一般化
5.2.1 Dirichlet積分の一般化に関する公式
5.2.2 Dirichlet積分の公式の証明のための準備
5.2.3 Dirichlet積分の公式の証明
 5.3 Fresnel積分の特殊値の公式の導出
5.3.1 Fresnel積分の特殊値の公式の証明のための準備 (1/(1+t⁴)の積分)
5.3.2 1/(1+t⁴)の不定積分の公式の数式処理を用いた確認
5.3.3 Fresnel積分の特殊値の公式の証明
5.3.4 Fresnel積分の特殊値の公式の複素解析を用いた導出
5.3.5 sine integral and cosine integral functions
In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​const latex = sympy.latex
using LaTeXStrings
mylatex(x; kwargs...) = latex(x; kwargs...)mylatex(x::AbstractString) = x
latexstring_displaystyle(args...; kwargs...) =LaTeXString(raw"$$" * prod(mylatex.(args; kwargs...)) * raw"$$")
latexdisp(args...; kwargs...) =display(latexstring_displaystyle(args...; kwargs...))
const ls = latexstring_displaystyle
const ld = latexdisp​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 積分の基本性質
1変数函数

𝑓(𝑥) の積分 ∫𝑎𝑏 𝑓(𝑥)𝑑𝑥 の構成の仕方は無数に存在する.

Riemann積分とLebesgue積分は有名であり, それら以外にも様々な方法が存在する. 例えば,
S. ラング, 『ラング 現代の解析学』, 共立出版, 1981 (原書: Serge Lang, Real Analysis, 1969)の第5章「微分法」の第1節では,𝑓(𝑡) = 𝑣𝑖 (𝑎𝑖−1 < 𝑡 < 𝑎𝑖 , 𝑎 = 𝑎0 ≦ 𝑎1 ≦ ⋯ ≦ 𝑎𝑛 = 𝑏)を満たす函数(階段函数と呼ぶことにする)の積分を

𝑛𝑏∫𝑎 𝑓(𝑡)𝑑𝑡 = ∑ 𝑣𝑖(𝑎𝑖 − 𝑎𝑖−1 )𝑖=1と定め, これを階段函数の一様収束先に拡張することによって, 積分を導入している. 閉区間上の連続函数は階段函数の一様収束先になっているので, 連続函数の積分もこれによって定義されることになる.
積分の構成の仕方は無数にあるが, 積分は構成の仕方によらない基本性質を持つ. だから, その基本性質のみを使って示された結果はどの積分論においても利用可能になる.
このノートでは積分の構成の仕方には深く踏み込まずに, 積分の基本性質のみを使って積分論を展開する.
ただし, 積分の基本性質の厳密な説明を避けて, 大らかなスタイルで議論を進めることにする.

1.1 基本性質(A)線形性, (B)積分区間の連結, (C)定数の積分, (D)単調性
基本性質(A) 線形性: 定数𝛼,𝛽 について𝑏𝑏𝑏(𝛼𝑓(𝑥)+
𝛽𝑔(𝑥))𝑑𝑥=𝛼𝑓(𝑥)𝑑𝑥+𝛽∫𝑎∫𝑎∫𝑎 𝑔(𝑥)𝑑𝑥.

基本性質(B) 積分区間の連結:

𝑏

𝑐

𝑐

∫𝑎 𝑓(𝑥)𝑑𝑥 + ∫𝑏 𝑓(𝑥)𝑑𝑥 = ∫𝑎 𝑓(𝑥)𝑑𝑥.
𝑎
注意: (1) (B)において 𝑎 = 𝑏 = 𝑐 と仮定すると ∫𝑎 𝑓(𝑥)𝑑𝑥 = 0 が導かれる.
𝑎𝑏(2) (B)において 𝑐 = 𝑎 と仮定すると ∫𝑏 𝑓(𝑥)𝑑𝑥 = − ∫𝑎 𝑓(𝑥)𝑑𝑥 が導かれる.
𝑏𝑏𝑏𝑎(3) ゆえに 𝑎 ≦ 𝑏 のときに ∫𝑎 𝑓(𝑥)𝑑𝑥 が定義されていれば, 𝑎 > 𝑏 の場合には ∫𝑎 𝑓(𝑥)𝑑𝑥 を ∫𝑎 𝑓(𝑥)𝑑𝑥 = − ∫𝑏 𝑓(𝑥)𝑑𝑥 で定義することによって, 𝑎,𝑏 の大小に条件を付ける必要がなくなる.
𝑐𝑎𝑐(4) (B)は𝑓(𝑥)𝑑𝑥−𝑓(𝑥)𝑑𝑥=∫𝑎∫𝑏∫𝑏 𝑓(𝑥)𝑑𝑥 と同値である. 基本性質(B)はこの形でもよく使われる.
基本性質(C) 定数の積分: 定数 𝛼 について,𝑏∫𝑎 𝛼𝑑𝑥 = 𝛼(𝑏 − 𝑎).

∫𝑎𝑏 1𝑑𝑥 = 𝑏 − 𝑎 と(A)から(C)が導かれる.
𝑏(2) 函数 𝑓(𝑥) が 𝑎 < 𝑥 < 𝑏 で一定の値 𝛼 の値を取るならば(すなわち 𝑓(𝑥) = 𝛼 (𝑎 < 𝑥 < 𝑏)) ならば ∫𝑎 𝑓(𝑥)𝑑𝑥 = 𝛼(𝑏 − 𝑎)
注意: (1)となるという(C)の一般化を仮定すると, (B)と合わせて, 階段函数の積分が確定する.
基本性質(D) 単調性:𝑎 ≦ 𝑏 と仮定する. 1変数実数値函数 𝑓(𝑥), 𝑔(𝑥) について𝑏𝑏𝑓( ) ≦ ( ) (
𝑏)
𝑓(
)𝑑
≦
∫
∫ ( )𝑑

1.2 性質(E) 積分の絶対値の上からの評価

𝑎 ≦ 𝑏 と仮定する. 1変数実数値函数 𝑓(𝑥) について|| 𝑏 𝑓(𝑥)𝑑𝑥|| ≦ 𝑏 |𝑓(𝑥)|𝑑𝑥.
||∫𝑎
|| ∫𝑎
|
|
さらに 𝑎 ≦ 𝑥 ≦ 𝑏 で |𝑓(𝑥)| ≦ 𝑀 ならば|| 𝑏 𝑓(𝑥)𝑑𝑥|| ≦ 𝑀|𝑏 − 𝑎|.
||∫𝑎
||
|
|
注意: (2)は 𝑎 > 𝑏 であっても成立している. そのために絶対値を付けた.
証明: −|𝑓(𝑥)| ≦ 𝑓(𝑥) ≦ |𝑓(𝑥)| なので積分の単調性(D)より
𝑏𝑏𝑏− ∫𝑎 |𝑓(𝑥)|𝑑𝑥 ≦ ∫𝑎 𝑓(𝑥)𝑑𝑥 ≦ ∫𝑎 |𝑓(𝑥)|𝑑𝑥.
これは(1)が成立することを意味する. 𝑎 ≦ 𝑥 ≦ 𝑏 で |𝑓(𝑥)| ≦ 𝑀 ならば積分の単調性(D)と(C)より,
𝑏𝑏|𝑓(𝑥)|𝑑𝑥≦∫𝑎∫𝑎 𝑀 𝑑𝑥 = 𝑀(𝑏 − 𝑎) = 𝑀|𝑏 − 𝑎|.
これで(2)も成立することが示された. □
(E)

(1)
(2)

解説: 多くの場面で「小さいこと」を示したい誤差項は積分で表わされる. (Taylorの定理における積分型剰余項はその典型例である.) 性質(E)は積分の絶対値が「小さいこと」を示すためによく使われることになる.

□

𝑓(𝑥)

注意:
が複素数値函数であっても性質(E)は成立している. さらに絶対値を任意のノルムで置き換えればベクトル値函数であっても性質(E)は成立している. しかし, そのことを示すためには性質(A)～(D)を仮定するだけでは足りないので, 複素数値函数
やベクトル値函数まで拡張された性質(E)も必要ならば, 最初から拡張された性質(E)も仮定しておく方がよいかもしれない.

𝑣1 + ⋯ + 𝑣𝑛 の極限で構成さ拡張された性質(E)が主要などの積分論でも成立する理由は, どの積分論においても積分が有限和れているからである. ここでは複素数またはベクトルである. 絶対値およびより一般にノルムは三角不等式

𝑣𝑖‖𝑣 1 + ⋯ + 𝑣 𝑛 ‖ ≦ ‖𝑣 1 ‖ + ⋯ + ‖𝑣 𝑛 ‖を満たしている. これの極限として複素数値もしくはベクトル値函数 𝑓(𝑥) についても‖‖ 𝑏 𝑓(𝑥)𝑑𝑥‖‖ ≦ 𝑏 ‖𝑓(𝑥)‖𝑑𝑥
‖‖∫𝑎
‖‖ ∫𝑎
が成立することが示される. この不等式を点の運動 𝑥(𝑡) の速度ベクトル 𝑣(𝑡) = 𝑥′ (𝑡) に適用した結果は
𝑏𝑏‖𝑥(𝑏) − 𝑥(𝑎)‖ = ‖‖‖‖∫𝑎 𝑣(𝑡)𝑑𝑡‖‖‖‖ ≦ ∫𝑎 ‖𝑣(𝑡)‖𝑑𝑡となる. 速さ ‖𝑣(𝑡)‖ = ‖𝑥′ (𝑡)‖ の時刻 𝑎 から 𝑏 までの積分の値は点の運動の軌跡(曲線)の長さなので, この不等式は 𝑥(𝑎) と𝑥(𝑏) の距離は 𝑥(𝑎) と 𝑥(𝑏) を結ぶ曲線の長さ以下になることを意味する.
これより, ベクトル値函数に拡張された性質(E)は, 直観的には当然そうなるべき結果を意味していることがわかる. □1.3 性質(F) 微分積分学の基本定理1(F) 微分積分学の基本定理1: 連続函数

𝑓(𝑥) について
𝑑 𝑥 𝑓(𝜉)𝑑𝜉 = 𝑓(𝑥).
𝑑𝑥 ∫𝑎𝐹(𝑥) = ∫𝑎𝑥 𝑓(𝜉)𝑑𝜉 とおく. このとき(B)より
𝑥+ℎ
𝑥+ℎ
𝑥
𝐹(𝑥 + ℎ) − 𝐹(𝑥) = ∫𝑎 𝑓(𝜉)𝑑𝜉 − ∫𝑎 𝑓(𝜉)𝑑𝜉 = ∫𝑥 𝑓(𝜉)𝑑𝜉.
さらに 𝑓(𝑥) は積分変数 𝜉 について定数なので, (C)より
𝑥+ℎ
𝑓(𝑥)ℎ = 𝑓(𝑥)((𝑥 + ℎ) − 𝑥) = ∫𝑥 𝑓(𝑥)𝑑𝜉.
証明:

ゆえに

𝑥+ℎ

𝑥+ℎ

𝑥+ℎ

𝐹(𝑥 + ℎ) − 𝐹(𝑥) − 𝑓(𝑥)ℎ = ∫𝑥 𝑓(𝜉)𝑑𝜉 − ∫𝑥 𝑓(𝑥)𝑑𝜉 = ∫𝑥 (𝑓(𝜉) − 𝑓(𝑥))𝑑𝜉.
任意の 𝜀 > 0 を取る. 𝑓(𝜉) は 𝜉 の連続函数なので |ℎ| を十分に小さくすると|𝑓(𝜉) − 𝑓(𝑥)| ≦ 𝜀となる(図を描いてみよ). ゆえに(E)より

𝑥+ℎ|𝐹(𝑥 + ℎ) − 𝐹(𝑥) − 𝑓(𝑥)ℎ| = ||||∫𝑥 (𝑓(𝜉) − 𝑓(𝑥))𝑑𝜉|||| ≦ 𝜀|(𝑥 + ℎ) − 𝑥| = 𝜀|ℎ|.
||
両辺を |ℎ| で割ることによって, 𝜀 > 0 ごとに |ℎ| > 0 を十分に小さくすることによって,|| 𝐹(𝑥 + ℎ) − 𝐹(𝑥) − 𝑓(𝑥)ℎ || ≦ 𝜀||||ℎとなることわかる. これは ℎ → 0 のとき
𝐹(𝑥 + ℎ) − 𝐹(𝑥) − 𝑓(𝑥) = 𝐹(𝑥 + ℎ) − 𝐹(𝑥) − 𝑓(𝑥)ℎ → 0ℎℎ′が成立することを意味する. これで 𝐹 (𝑥) = 𝑓(𝑥) となることを示せた. □注意: 上の証明では 𝜀-𝛿 論法を使った. 𝜀-𝛿 論法を未習もしくはまだ理解していない人であっても, 𝑓(𝑥) のグラフを適当に描いて, 積分が「面積」を表すことを思い出しながら, 証明の各ステップに現われる積分がグラフのどの部分の「面積」になっているかを確認すれば, 直観的には明らかな議論しか行っていないことがわかるだろう. むしろ 𝜀-𝛿 論法を使った証明を使いこなせるようになるためには, 𝜀-𝛿 論法を理解していない段階でのそのような直観的な議論を十分にしておいた方がよい. 慣れてしまえ
ば, 𝜀-𝛿 論法自体が直観的に明らかな議論に見えて来ることになるだろう. □1.4 性質(G) 微分積分学の基本定理2𝑓(𝑥)準備: 微分可能函数の導函数
する. その結果は平均値の定理

𝑓 ′ (𝑥) が恒等的に 0 ならば 𝑓(𝑥) は定数函数になることを(G)の証明では認めて使うことに𝑓(𝑥) − 𝑓(𝑎) = 𝑓 ′ (𝜉)(𝑥 − 𝑎) (𝜉 = 𝑎 + 𝑡(𝑥 − 𝑎), 0 < 𝑡 < 1)を使えば容易に導かれる(𝜉 は 𝑎, 𝑥 のあいだのある実数である). 𝑓 ′ が恒等的に 0 ならば特に 𝑓 ′ (𝜉) = 0 となるので
𝑓(𝑥) = 𝑓(𝑎) となり, 𝑓(𝑥) の値は 𝑥 の値によらず 𝑓(𝑎) に等しくなる. □(G) 微分積分学の基本定理2: 𝐹(𝑥) は 𝐶 1 級函数(微分可能かつ導函数が連続な函数)であるとすると,
𝑏′∫𝑎 𝐹 (𝑥)𝑑𝑥 = 𝐹(𝑏) − 𝐹(𝑎).
注意: (1)の右辺を [𝐹(𝑥)] 𝑏𝑎 と書くことが多い:[𝐹(𝑥)]𝑏𝑎 = 𝐹(𝑏) − 𝐹(𝑎).
𝑥
証明: 𝐺(𝑥) = ∫𝑎 𝐹 ′ (𝜉)𝑑𝜉 − (𝐹(𝑥) − 𝐹(𝑎)) とおく. このとき, (B)より
𝑎𝐺(𝑎) = ∫𝑎 𝐹 ′(𝜉)𝑑𝜉 − (𝐹(𝑎) − 𝐹(𝑎)) = 0となり, (F)よりゆえに𝐺′ (𝑥) = 𝐹 ′(𝑥) − 𝐹 ′(𝑥) = 0.

𝐺(𝑥) は定数函数になり, 恒等的に 0 になる. ゆえに

(1)

𝑏

0 = 𝐺(𝑏) = ∫𝑎 𝐹 ′(𝑥)𝑑𝑥 − (𝐹(𝑏) − 𝐹(𝑎)).
以上によって, 実1変数実数値函数の微分積分学の基本定理が積分の基本性質(A)～(D)だけから導かれることがわかった.
注意: 実1変数の複素数値函数もしくはベクトル値函数に関する微分積分学の基本定理は積分の基本性質(A)～(D)と拡張された性質(E)のみを使って導き出せる. 性質(A)～(E)は高校数学レベルの積分に関する直観があれば「明らか」だと感じられるシンプルな性質の集まりである. そのような「明らか」でかつシンプルな性質のみを使って微分積分学の基本定理は導出可能なのである.

□

2 部分積分と置換積分
微分積分学の基本定理さえ証明できてしまえば, 部分積分と置換積分の導出は微分学の結果をそのまま積分学に応用する話に過ぎなくなる.

2.1 置換積分

𝑓(𝑥), 𝑔(𝑡) は 𝐶 1 級函数であると仮定し,𝑥

𝐹(𝑥) = ∫𝑎 𝑓(𝜉)𝑑𝜉

とおく. 微分の性質

𝑑′′′𝑑𝑡 𝐹(𝑔(𝑡)) = 𝐹 (𝑔(𝑡))𝑔 (𝑡) = 𝑓(𝑔(𝑡))𝑔 (𝑡)に微分積分学の基本定理(G)を適用すると, 𝑎 = 𝑔(𝛼), 𝑏 = 𝑔(𝛽) のとき,
𝛽 𝑑
𝛽
𝑏
′
𝑏𝑎 = [𝐹(𝑔(𝑡))]𝛽𝛼 =𝑓(𝑥)𝑑𝑥=[𝐹(𝑥)𝐹(𝑔(𝑡))𝑑𝑡
=
]
∫𝑎
∫𝛼 𝑑𝑡
∫𝛼 𝑓(𝑔(𝑡))𝑔 (𝑡)𝑑𝑡.
つまり, 次が成立している.
(H) 置換積分:

𝑎 = 𝑔(𝛼), 𝑏 = 𝑔(𝛽) のとき,𝑏𝛽′∫𝑎 𝑓(𝑥)𝑑𝑥 = ∫𝛼 𝑓(𝑔(𝑡))𝑔 (𝑡)𝑑𝑡.
左辺の積分を右辺で計算することを置換積分と呼ぶ. 𝑥(𝑡) = 𝑔(𝑡) とおいて,
𝛽
𝑏
𝑑𝑥(𝑡)
𝑓(𝑥)𝑑𝑥=∫𝑎∫𝛼 𝑓(𝑥(𝑡)) 𝑑𝑡 𝑑𝑡と書き直すと, 「分子分母の 𝑑𝑡 が約分で消える公式」のように見えて見易い.
問題: 任意の微積分の教科書を参照して, 置換積分を使って計算する積分計算の面白い問題を見付けて, 計算練習せよ.

2.2 部分積分𝑓(𝑥), 𝑔(𝑥) は 𝐶 1 級函数であると仮定する.
微分の性質(𝑓(𝑥)𝑔(𝑥))′ = 𝑓 ′ (𝑥)𝑔(𝑥) + 𝑓(𝑥)𝑔′ (𝑥)に微分積分学の基本定理(G)と積分の線形性(A)を適用すると

𝑏

𝑏

𝑏

[𝑓(𝑥)𝑔(𝑥)]𝑏𝑎 = ∫𝑎 (𝑓(𝑥)𝑔(𝑥))′ 𝑑𝑥 = ∫𝑎 𝑓 ′ (𝑥)𝑔(𝑥)𝑑𝑥 + ∫𝑎 𝑓(𝑥)𝑔′ (𝑥)𝑑𝑥.
これは以下と同値である.
(I) 部分積分:𝑓(𝑥), 𝑔(𝑥) は 𝐶 1 級函数であるとき,𝑏𝑏′ (𝑥)𝑔(𝑥)𝑑𝑥 = [𝑓(𝑥)𝑔(𝑥)]𝑏𝑎 − 𝑓(𝑥)𝑔′ (𝑥)𝑑𝑥,
𝑓
∫𝑎
∫𝑎
𝑏
𝑏
′ (𝑥)𝑑𝑥 = [𝑓(𝑥)𝑔(𝑥)]𝑏𝑎 − 𝑓 ′ (𝑥)𝑔(𝑥)𝑑𝑥.
𝑓(𝑥)
𝑔
∫𝑎
∫𝑎

□

左辺の積分を右辺で計算することを部分積分と呼ぶ.
問題: 任意の微積分の教科書を参照して, 部分積分を使って計算する積分計算の面白い問題を見付けて, 計算練習せよ.

□

3 積分の近似𝑎 < 𝑏 であると仮定し, 𝑓 は閉区間 [𝑎,𝑏] 上の連続函数であると仮定する.
3.1 Riemann和
閉区間[𝑎,𝑏] の分割 𝑎 = 𝑥0 ≦ 𝑥1 ≦ ⋯ ≦ 𝑥𝑁 = 𝑏 と 𝑥∗𝑖 ∈ [𝑥𝑖−1 , 𝑥𝑖 ] と Δ𝑥𝑖 = 𝑥𝑖 − 𝑥𝑖−1 に対して, 和
𝑁

𝑁

𝑖=1

𝑖=1

∑ 𝑓(𝑥∗𝑖 )Δ𝑥𝑖 = ∑ 𝑓(𝑥∗𝑖 )(𝑥𝑖 − 𝑥𝑖−1 )をRiemann和と呼ぶ.

Δ𝑥𝑖 の最大値を小さくすることによって(分割を細かくすることによって), Riemann和で積分 ∫𝑎𝑏 𝑓(𝑥)𝑑𝑥

を幾らでも近似できることを積分の基本性質のみを使って証明しよう.

𝜀 > 0 を取る. 𝑓(𝑥) は閉区間 [𝑎,𝑏] 上の連続函数であると仮定してあったので, 𝑓(𝑥) は閉区間 [𝑎,𝑏] 上の一様連
Δ𝑥𝑖 達の最大値を十分小さくすれば|𝑓(𝑥) − 𝑓(𝑥∗𝑖 )| ≦ 𝑏 −𝜀 𝑎 (𝑥𝑖−1 ≦ 𝑥 ≦ 𝑥𝑖 )証明: 任意の続函数になる.

となる. したがって,

𝑁 𝑥𝑖|| 𝑁 ∗𝑏| | 𝑁 𝑥𝑖|||∑ 𝑓(𝑥𝑖 )Δ𝑥𝑖 − ∫𝑎 𝑓(𝑥)𝑑𝑥||| = |||∑ ∫𝑥𝑖−1 𝑓(𝑥∗𝑖 )𝑑𝑥 − ∑ ∫𝑥𝑖−1 𝑓(𝑥)𝑑𝑥|||
𝑖=1
| 𝑖=1
| || 𝑖=1𝑁 𝑥||𝑖= |||∑ ∫𝑥 (𝑓(𝑥∗𝑖 ) − 𝑓(𝑥))𝑑𝑥|||
𝑖−1
| 𝑖=1
|
𝑁 | 𝑥𝑖≦ ∑ ||∫𝑥 (𝑓(𝑥∗𝑖 ) − 𝑓(𝑥))𝑑𝑥||||𝑖=1 | 𝑖−1
𝑁 𝑥𝑖
≦ ∑ ∫𝑥 |𝑓(𝑥∗𝑖 ) − 𝑓(𝑥)|𝑑𝑥
𝑖=1 𝑖−1𝑁 𝑥𝑖𝑁≦ ∑ ∫𝑥 𝑏 −𝜀 𝑎 𝑑𝑥 = ∑ 𝑏 −𝜀 𝑎 Δ𝑥𝑖
𝑖=1 𝑖−1𝑖=1
𝜀= 𝑏 − 𝑎 (𝑏 − 𝑎) = 𝜀
以上によって, 閉区間 [𝑎,𝑏] の分割を細かくすることによって, Riemann和で積分を誤差 𝜀 以下で近似できることを示せた. □定理: 閉区間 [𝑎,𝑏] の分割のデータ
𝑎 = 𝑥0 ≦ 𝑥1 ≦ ⋯ ≦ 𝑥𝑁 = 𝑏, 𝑥∗𝑖 ∈ [𝑥𝑖−1 , 𝑥𝑖 ], Δ𝑥𝑖 = 𝑥𝑖 − 𝑥𝑖−1において, Δ𝑥𝑖 の最大値を 0 に近付ける極限を,と書くと, [𝑎,𝑏] 上の連続函数 𝑓(𝑥) について,
max{Δlim𝑥𝑖}↘0𝑁𝑏が成立する.

□∫𝑎 𝑓(𝑥)𝑑𝑥 = max{Δlim𝑥𝑖}↘0 ∑ 𝑓(𝑥∗𝑖 )Δ𝑥𝑖

注意(Riemann積分): 積分の基本性質とは無関係に, 閉区間

𝑖=1[𝑎,𝑏] 上の連続函数 𝑓(𝑥) に対して, 極限𝑁𝑓(𝑥∗𝑖 )Δ𝑥𝑖
max{Δlim𝑥𝑖}↘0 ∑𝑖=1が存在することを示せる. この極限が存在するような閉区間 [𝑎,𝑏] 上の函数はRiemann積分可能な函数と呼ばれ, その極限の値
はRiemann積分と呼ばれる. 特に閉区間上の連続函数はRiemann積分可能である. そして, Riemann積分で積分を定義すると,Riemann積分可能な函数について, 積分の基本性質をすべて示すことができる. □3.2 台形公式[𝑎,𝑏] の分割 𝑎 = 𝑥0 ≦ 𝑥1 ≦ ⋯ ≦ 𝑥𝑁 = 𝑏 に対する和𝑁 𝑓(𝑥 ) + 𝑓(𝑥 )
𝑖−1
𝑖 Δ𝑥𝑖
∑
2
𝑖=1
𝑏
で積分 ∫𝑎 𝑓(𝑥)𝑑𝑥 を近似することもできる. これを台形公式(trapezoidal rule)と呼ぶ.
閉区間

3.3 Simpsonの公式[𝑎,𝑏] の分割 𝑎 = 𝑥0 ≦ 𝑥1 ≦ ⋯ ≦ 𝑥𝑁 = 𝑏 に対する和𝑁 𝑓(𝑥 ) + 4𝑓((𝑥 + 𝑥 )/2) + 𝑓(𝑥 )
𝑖−1
𝑖−1 𝑖
𝑖 Δ𝑥𝑖
∑
6
𝑖=1
𝑏
で積分 ∫𝑎 𝑓(𝑥)𝑑𝑥 を近似することもできる. これをSimpsonの公式(Simpson's rule)と呼ぶ.
Simpsonの公式の由来: 𝑎 < 𝑏 であるとし, 𝑐 = (𝑎 + 𝑏)/2 とおく. このとき, 𝑓(𝑎) = 𝛼, 𝑓(𝑐) = 𝛾 , 𝑓(𝑏) = 𝛽 を満たす2次以下の多項式 𝑓(𝑥) が一意的に決まり,
𝑏)(𝑥 − 𝑐) + 𝛽 (𝑥 − 𝑎)(𝑥 − 𝑐) + 𝛾 (𝑥 − 𝑎)(𝑥 − 𝑏)𝑓(𝑥) = 𝛼 (𝑥(𝑎 −− 𝑏)(𝑎− 𝑐) (𝑏 − 𝑎)(𝑏 − 𝑐) (𝑐 − 𝑎)(𝑐 − 𝑏)
閉区間と一意に表わされる. このとき,𝑏 (𝑥 − 𝑏)(𝑥 − 𝑐)1∫𝑎 (𝑎 − 𝑏)(𝑎 − 𝑐) 𝑑𝑥 = 6 (𝑏 − 𝑎),𝑏 (𝑥 − 𝑎)(𝑥 − 𝑐)1∫𝑎 (𝑏 − 𝑎)(𝑏 − 𝑐) 𝑑𝑥 = 6 (𝑏 − 𝑎),𝑏 (𝑥 − 𝑎)(𝑥 − 𝑏)4∫𝑎 (𝑐 − 𝑎)(𝑐 − 𝑏) 𝑑𝑥 = 6 (𝑏 − 𝑎)となることを確認できるので𝑏∫𝑎 𝑓(𝑥)𝑑𝑥 =となることがわかる.

𝑓(𝑥)

つまり,
が2次函数のとき閉区間計算する公式になっている.

□𝑓(𝑎) + 4𝑓((𝑎 + 𝑏)/2) + 𝑓(𝑏) (𝑏 − 𝑎)6[𝑎,𝑏] の自明な分割 𝑎 = 𝑎0 < 𝑎1 = 𝑏 に関するSimpsonの公式は誤差無しで積分の値をSimpsonの公式の他の解釈については
黒木玄, Euler-Maclaurinの和公式の一般化 (https://genkuroki.github.io/documents/20170724EulerMaclaurin.pdf)の第3.5と第3.6節を参照せよ.
問題: 上のSimpsonの公式の由来の解説において結果だけを書いた積分計算を自分で実行せよ.
解答略.

□

In [3]:



1
2
3
4
5
6
7
8
9
10

a, b, c, x = symbols("a b c x", real=true)​
I1 = sympy.Integral((x-b)*(x-c)/((a-b)*(a-c)), (x,a,b))
I2 = sympy.Integral((x-a)*(x-c)/((b-a)*(b-c)), (x,a,b))
I3 = sympy.Integral((x-a)*(x-b)/((c-a)*(c-b)), (x,a,b))​
ld(c, " = ", factor((a+b)/2))
ld(I1, " = ", I1(c=>(a+b)/2).doit().simplify().factor())
ld(I2, " = ", I2(c=>(a+b)/2).doit().simplify().factor())
ld(I3, " = ", I3(c=>(a+b)/2).doit().simplify().factor())

𝑐 = 𝑎 +2 𝑏𝑏(−𝑏 + 𝑥)(−𝑐 + 𝑥) 𝑑𝑥 = − 𝑎 − 𝑏∫𝑎 (𝑎 − 𝑏)(𝑎 − 𝑐)6𝑏(−𝑎 + 𝑥)(−𝑐 + 𝑥)𝑎−𝑏
∫ (−𝑎 + 𝑏)(𝑏 − 𝑐) 𝑑𝑥 = − 6𝑎𝑏(−𝑎 + 𝑥)(−𝑏 + 𝑥)2(𝑎 − 𝑏)∫𝑎 (−𝑎 + 𝑐)(−𝑏 + 𝑐) 𝑑𝑥 = − 3
問題: Simpsonの公式の由来の説明に基いて, 以下の公式を導け.

(𝑏 − 𝑎)(𝑏 − 𝑎)𝑎+𝑏∫𝑎 (𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥 = − 6 , ∫𝑎 (𝑥 − 𝑎) (𝑥 − 2 ) 𝑑𝑥 = 12 .
𝑏

3

𝑏

3

□

解答略.
In [4]:

1
2
3
4
5
6
7
8



a, b, x = symbols("a b x", real=true)c = factor((a+b)/2)​
I1 = sympy.Integral((x-a)*(x-b), (x,a,b))
I2 = sympy.Integral((x-a)*(x-c), (x,a,b))​
ld(I1, " = ", I1.doit().simplify().factor())
ld(I2, " = ", I2.doit().simplify().factor())

𝑏(𝑎 − 𝑏)∫ (−𝑎 + 𝑥)(−𝑏 + 𝑥) 𝑑𝑥 = 6𝑎3𝑏𝑎 + 𝑏 𝑑𝑥 = − (𝑎 − 𝑏)3
(−𝑎
+
𝑥)
𝑥
−
∫
( 2 )
12
𝑎

問題: 円周率を表わす2種類の積分

11
4 ∫0 √⎯1⎯⎯⎯⎯⎯⎯⎯⎯− 𝑥2⎯ 𝑑𝑥 = 𝜋, 4 ∫0 1 +𝑑𝑥𝑥2 = 𝜋の近似計算を, 閉区間 [0,1] の分割 𝑥𝑖 = 𝑖/𝑁 (𝑖 = 0,1,…,𝑁 ) と 𝑥∗𝑖 = (𝑥𝑖−1 + 𝑥𝑖 )/2 に関するRiemann和と台形公式とSimpsonの公式を用いて実行してみよ. 𝑁 = 10 の場合にどうなるか? □In [5]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

function RiemannSum(f, a, b, N)
Δx = (b-a)/Nsum(i->f(a+(i-1/2)*Δx)*Δx, 1:N)
end​
function TrapezoidalRule(f, a, b, N)
Δx = (b-a)/Nsum(i->(f(a+(i-1)*Δx)+f(a+i*Δx))/2*Δx, 1:N)
end​
function SimpsonRule(f, a, b, N)
Δx = (b-a)/Nsum(i->(f(a+(i-1)*Δx)+4f(a+(i-1/2)*Δx)+f(a+i*Δx))/6*Δx, 1:N)
end​
function SymPyIntegrate(f, a, b)
x = symbols("x", real=true)
integrate(f(x), (x, a, b))end

Out[5]: SymPyIntegrate (generic function with 1 method)
In [6]:



1
2
3
4
5
6
7
8
9

f(x) = 4x + 3
a, b = 0.0, 1.0
N = 10​@show RiemannSum(f, a, b, N)@show TrapezoidalRule(f, a, b, N)@show SimpsonRule(f, a, b, N)@show s = SymPyIntegrate(f, Sym(0), Sym(1))
float(s)RiemannSum(f, a, b, N) = 5.0
TrapezoidalRule(f, a, b, N) = 5.0
SimpsonRule(f, a, b, N) = 5.0
s = SymPyIntegrate(f, Sym(0), Sym(1)) = 5
Out[6]: 5.0
In [7]:



1
2
3
4
5
6
7
8
9

f(x) = 2x^2 - x + 3
a, b = 0.0, 1.0
N = 10​@show RiemannSum(f, a, b, N)@show TrapezoidalRule(f, a, b, N)@show SimpsonRule(f, a, b, N)@show s = SymPyIntegrate(f, Sym(0), Sym(1))
float(s)RiemannSum(f, a, b, N) = 3.1650000000000005
TrapezoidalRule(f, a, b, N) = 3.170000000000001
SimpsonRule(f, a, b, N) = 3.166666666666667
s = SymPyIntegrate(f, Sym(0), Sym(1)) = 19/6
Out[7]: 3.1666666666666665
In [8]:



1
2
3
4
5
6
7
8
9

f(x) = 4*√(1-x^2)
a, b = 0.0, 1.0
N = 10​@show RiemannSum(f, a, b, N)@show TrapezoidalRule(f, a, b, N)@show SimpsonRule(f, a, b, N)@show s = SymPyIntegrate(f, Sym(0), Sym(1))
float(s)RiemannSum(f, a, b, N) = 3.1524114332616446
TrapezoidalRule(f, a, b, N) = 3.1045183262483182
SimpsonRule(f, a, b, N) = 3.136447064257202
s = SymPyIntegrate(f, Sym(0), Sym(1)) = piOut[8]: 3.141592653589793

In [9]:



1
2
3
4
5
6
7
8
9

f(x) = 4/(1+x^2)
a, b = 0.0, 1.0
N = 10​@show RiemannSum(f, a, b, N)@show TrapezoidalRule(f, a, b, N)@show SimpsonRule(f, a, b, N)@show s = SymPyIntegrate(f, Sym(0), Sym(1))
float(s)RiemannSum(f, a, b, N) = 3.142425985001098
TrapezoidalRule(f, a, b, N) = 3.1399259889071587
SimpsonRule(f, a, b, N) = 3.1415926529697855
s = SymPyIntegrate(f, Sym(0), Sym(1)) = piOut[9]: 3.141592653589793
In [10]:

1 SimpsonRule(f, a, b, N) - π

Out[10]: -6.200076008155975e-10

1
4 ∫0 1 +𝑑𝑥𝑥2 = 𝜋 の左辺を10分割のSimpsonの公式で計算すると, 小数点以下8桁まで円周率を正確に求めることができている！たったの10分割しかしていないのに！

注意: 数値積分 (https://www.google.co.jp/search?q=%22%E6%95%B0%E5%80%A4%E7%A9%8D%E5%88%86%22)は非常に深い分野である. 巧妙な幾つかの方法が開発されており, 多くの場合に以上で説明した方法よりもずっと効率的である.

□

4 広義積分無限区間もしくは区間(𝑎,𝑏) の端で発散しているかもしれない函数 𝑓(𝑥) について極限𝛽lim
𝛼↘𝑎, 𝛽↗𝑏 ∫𝛼 𝑓(𝑥)𝑑𝑥を広義積分と呼ぶ. 極限が存在しなければ広義積分は存在しない. 広義積分は

𝛽lim |𝑓(𝑥)|𝑑𝑥𝛼↘𝑎, 𝛽↗𝑏 ∫𝛼(∗)∗

が有限の値に収束するとき収束し, そのときその広義積分は絶対収束するという. もとの広義積分は収束するが, ( )が有限の値に収束しないとき, その広義積分は条件収束するという.
応用上重要な積分のかなりの割合が無限区間になっていることが多い.

(−∞,∞), (0,∞) 上の積分になり, 有限区間 (𝑎,𝑏) 上の積分であっても広義積分(−∞,∞)(0,∞) 上の積分で定義(0,1)
注意: 広義積分を表すときに毎回 lim 記号を書くのは面倒なので, 通常の積分と同じ記号法で
𝛽𝑏𝑓(𝑥)𝑑𝑥=lim∫𝑎𝛼↘𝑎, 𝛽↗𝑏 ∫𝛼 𝑓(𝑥)𝑑𝑥と書くことが多い. さらに 𝑓(𝑥) = 𝐹 ′ (𝑥) のとき,
𝛽𝛽 lim 𝐹(𝛽) − lim 𝐹(𝛼).
lim𝛼↘𝑎, 𝛽↗𝑏 ∫𝛼 𝑓(𝑥)𝑑𝑥 = 𝛼↘𝑎,lim𝛽↗𝑏[𝐹(𝑥)]𝛼 = 𝛽↗𝑏𝛼↘𝑎例えば, Gauss積分やFourier変換は無限区間上の積分で定義され, ガンマ函数は半無限区間
され, ベータ函数は有限開区間上の広義積分で定義される.

であるが, これの右辺を記号の簡単のためと書くことにする.

□[𝐹(𝑥)]𝑏𝑎 = 𝛽↗𝑏lim 𝐹(𝛽) − 𝛼↘𝑎lim 𝐹(𝛼)𝑎 < 𝛼 ≦ 𝛽 < 𝑏 のとき積分 ∫𝛼𝛽 𝑓(𝑥)𝑑𝑥 が定義されており,
𝛽lim
𝛼↘𝑎, 𝛽↗𝑏 ∫𝛼 |𝑓(𝑥)|𝑑𝑥

問題: 積分は積分の基本性質を満たしていると仮定する.

が有限の値に収束するならば,

𝛽

𝛼↘𝑎,lim𝛽↗𝑏 ∫𝛼 𝑓(𝑥)𝑑𝑥も収束することを示せ.
解答例:
より

𝑎 に収束する単調減少数列 𝑎𝑛 と 𝑏 に収束する単調増加数列 𝑏𝑛 で 𝑎𝑛 ≦ 𝑏𝑛 を満たすものを任意に取る. このとき仮定𝑏𝑛lim ∫𝑎 |𝑓(𝑥)|𝑑𝑥𝑛→∞𝑛は有限の値に収束する. この条件のもとで𝑏𝑛lim ∫𝑎 𝑓(𝑥)𝑑𝑥𝑛→∞𝑛

𝐴𝑛 , 𝐵𝑛 を
𝑏1
𝐴1 = ∫𝑎 |𝑓(𝑥)|𝑑𝑥,1𝑏1
𝐵1 = ∫𝑎 𝑓(𝑥)𝑑𝑥,が収束することを示せばよい.

𝑎𝑛−1

𝑏𝑛

𝑛

𝑛−1

𝐴𝑛 = ∫𝑎 |𝑓(𝑥)|𝑑𝑥 + ∫𝑏 |𝑓(𝑥)|𝑑𝑥
𝑛−1
𝑛
𝑎𝑛−1
𝑏𝑛
𝐵𝑛 = ∫𝑎 𝑓(𝑥)𝑑𝑥 + ∫𝑏 𝑓(𝑥)𝑑𝑥1と定める. このとき,(𝑛 ≧ 2)(𝑛 ≧ 2)

𝑏

𝑛

𝑏

𝑛

𝑛

𝑘=1

𝑛

𝑘=1

|𝐵𝑘| ≦ 𝐴𝑘 , ∫𝑎 𝑛 |𝑓(𝑥)|𝑑𝑥 = ∑ 𝐴𝑘 , ∫𝑎 𝑛 𝑓(𝑥)𝑑𝑥 = ∑ 𝐵𝑘.
そして,

∞

∞

𝑏

𝑘=1

𝑘=1

𝑛

𝑛
|
|
≦
=
𝐵
𝐴
lim
𝑘
𝑘
∑
∑ 𝑛→∞ ∫𝑎 |𝑓(𝑥)|𝑑𝑥 < ∞なので, 「級数の各項の絶対値を足し上げた結果が有限の値になればもとの級数は収束する」(所謂絶対収束)という結果より, 級
数

∞

𝑏𝑛

𝑘=1

𝑛

∑ 𝐵𝑘 は収束する. それは ∫𝑎 𝑓(𝑥)𝑑𝑥 が 𝑛 → ∞ で収束することを意味する. □注意: 部分積分や置換積分は極限操作に注意を払えばそのまま広義積分にも適用可能である.
注意: 部分積分

𝑏

□

𝑏

′
′
∫𝑎 𝑓 (𝑥)𝑔(𝑥)𝑑𝑥 = [𝑓(𝑥)𝑔(𝑥)]𝑏𝑎 − ∫𝑎 𝑓(𝑥)𝑔 (𝑥)𝑑𝑥

は, 特に[𝑓(𝑥)𝑔(𝑥)]𝑏𝑎 = 0 すなわち

lim 𝑓(𝛼)𝑔(𝛼) = 𝛽↗𝑏lim 𝑓(𝛽)𝑔(𝛽)𝛼↘𝑎のときに便利である. そのとき, 部分積分の公式は

𝑏

𝑏

′
′
∫𝑎 𝑓 (𝑥)𝑔(𝑥)𝑑𝑥 = − ∫𝑎 𝑓(𝑥)𝑔 (𝑥)𝑑𝑥となる. これは 𝑓 の微分を 𝑔 に移動すると −1 倍になることを意味している. 部分積分はこの形で使われることが多い.
特に, [𝑓(𝑥)𝑔(𝑥)] 𝑏𝑎 = 0 の十分条件として,lim 𝑓(𝛼)𝑔(𝛼) = 0, 𝛽↗𝑏lim 𝑓(𝛽)𝑔(𝛽) = 0𝛼↘𝑎という条件は非常によく出て来る. □4.1 Fourier変換
問題(Fourier変換): 函数

𝑓(𝑥) は 𝐶 1 級であり, 𝑥 → ±∞ で |𝑓(𝑥)| と |𝑓 ′ (𝑥)| は十分な速さで 0 に近付くと仮定し,̂ = ∫ ∞ 𝑒−𝑖𝑝𝑥 𝑓(𝑥)𝑑𝑥
𝑓 (𝑝)
−∞

とおく.

̂ は 𝑓(𝑥) のFourier変換と呼ばれる. このとき
𝑓 (𝑝)
̂ (−𝑖 ∂ 𝑓 )∧ (𝑝) = 𝑝 𝑓 (𝑝)̂(𝑥𝑓 )∧(𝑝) = −𝑖 ∂𝑝∂ 𝑓 (𝑝),∂𝑥が成立することを示せ.
解答例: 前者は次のように示される:

̂ = −𝑖 ∫ (−𝑖𝑥)𝑒−𝑖𝑝𝑥 𝑓(𝑥)𝑑𝑥 = ∫ 𝑒−𝑖𝑝𝑥 𝑥𝑓(𝑥)𝑑𝑥 = (𝑥𝑓 )∧(𝑝).
−𝑖 ∂𝑝∂ 𝑓 (𝑝)
−∞
−∞
∞

∞

後者を示そう. この場合にはすぐ上の注意のタイプの部分積分を利用できるので,∂∂
̂(−𝑖 ∂𝑥 𝑓 ) (𝑝) = −𝑖 ∫−∞ 𝑒−𝑖𝑝𝑥 ∂𝑥 𝑓(𝑥)𝑑𝑥 = 𝑖 ∫−∞ (−𝑖𝑝)𝑒−𝑖𝑝𝑥 𝑓(𝑥)𝑑𝑥 = 𝑝𝑓 (𝑝).
2つ目の等号で部分積分を使った. □このようにFourier変換には 𝑥 をかける操作と微分する操作を交換する性質を持っている.
∧∞∞

4.2 絶対収束する広義積分の例
以下は絶対収束する広義積分の例である.
4.2.1 arcsin
(1)

𝑦 𝑑𝑡
1 𝑑𝑡
1 ⎯ は発散している.
arcsin𝑦 = ∫0 √⎯1⎯⎯⎯⎯⎯⎯⎯=𝜋なので. 積分区間 (−1,1) の両端で被積分函数⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯∫
2
2−1 √1 − 𝑡−𝑡
√1 − 𝑡2

4.2.2 arctan𝑎∞arctan𝑎 = ∫0 1 +𝑑𝑡𝑡2 なので ∫−∞ 1 +𝑑𝑡𝑡2 = 𝜋. これは無限区間の積分になっている.
以上の2つの 𝜋 は単位半円周の長さを意味する.
(2)

4.2.3 ガンマ函数(3)∞𝑠 > 0 に対するガンマ函数の定義 Γ(𝑠) = ∫0 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 は無限区間の積分になっており, 0 < 𝑠 < 1 のとき 𝑥 ↘ 0 で被積分函数は発散している.

∞

𝑥 → ∞ で 𝑒−𝑥 𝑥𝑠−1 は急速に 0 に近付くので ∫1 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 はどんな 𝑠 の値に対しても収束している.
1𝑠 ≠ 0 のとき ∫ 𝑥𝑠−1 𝑑𝑥 = 𝑥𝑠𝑠 なので 𝑠 > 0 ならば 𝑠 < 1 であっても ∫0 𝑥𝑠−1 𝑑𝑠 = 1𝑠 (有限の値)となる. これより 𝑠 > 01−𝑥 𝑠−1のとき∫0 𝑒 𝑥 𝑑𝑥 も収束することがわかる. (𝑥 > 0 で 𝑒−𝑥 < 1 となることに注意せよ.)0 < 𝑠 のとき(𝑠 < 1 であっても), 積分 ∫01 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 が有限の値に収束することを示せ.
解答例: 𝑥 > 0 のとき 𝑒−𝑥 < 1 なので, 𝑠 > 0 のとき, 𝑥 ↘ 0 で 𝑥𝑠 → 0 となることより,
1
1
2−𝑥 𝑥𝑠−1 𝑑𝑥 ≦𝑠−1 𝑑𝑥 = 𝑥𝑠 = 1 < ∞.
□
𝑒
𝑥
∫0
∫0
[𝑠] 𝑠
問題:

0

∞

𝑠 に対して, 積分 ∫1 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 が有限の値に収束することを示せ.
解答例: 指数函数は多項式函数よりも速く増大するので, 𝑅 > 1 を十分大きくすると, 𝑥 ≧ 𝑅 で 𝑒−𝑥/2 𝑥𝑠−1 ≦ 1 となる. ゆえに
𝑒−𝑥 𝑥𝑠−1 ≦ 𝑒−𝑥/2 (𝑥 ≧ 𝑅).
問題: 任意の実数

ゆえに

∞

𝑅

∞

∫1 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 = ∫1 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 + ∫𝑅 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥𝑅∞≦ ∫1 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 + ∫𝑅 𝑒−𝑥/2 𝑑𝑥
𝑅= ∫1 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 + 2𝑒−𝑅/2 < ∞. □4.2.4 ベータ函数1𝑝 > 0, 𝑞 > 0 に対するベータ函数の定義 𝐵(𝑝,𝑞) = ∫0 𝑥𝑝−1 (1 − 𝑥)𝑞−1 𝑑𝑥 の被積分函数は, 0 < 𝑝 < 1 ならば積分区間の左端で, 0 < 𝑞 < 1 ならば積分区間の右端で発散している.
11
𝑝−1
しかし, 𝑝 > 0 ならば 𝑝 < 1 であっても∫0 𝑥 𝑑𝑠 = 𝑝 (有限の値)となることから左端でも積分は収束する. 同様にして,
𝑞 > 0 ならば右端でも積分は収束する.
(4)

4.2.5 Gauss分布のFourier変換

𝑎 > 0 と仮定する. 𝑓(𝑥) = 𝑒−𝑥2/𝑎 のFourier変換
̂ = ∫ ∞ 𝑒−𝑖𝑝𝑥 𝑓(𝑥)𝑑𝑥 = ∫ ∞ 𝑒−𝑥2/𝑎 cos(𝑝𝑥)𝑑𝑥
𝑓 (𝑝)
−∞
−∞
2
の積分区間は無限区間である. 𝑥 → ±∞ で 𝑒−𝑥 /𝑎 が急速に 0 に近付くのでこの積分は絶対収束する.
(5)

4.2.6 三角函数のLaplace変換

𝑠 > 0 と仮定する. 次の公式を示せ:∞∞−𝑠𝑡 cos(𝑝𝑡)𝑑𝑡 = 𝑠 ,−𝑠𝑡 sin(𝑝𝑡)𝑑𝑡 = 𝑝 .
𝑒
𝑒
2
2
∫0
𝑠 + 𝑝 ∫0𝑠2 + 𝑝2∞−𝑠𝑡 cos(𝑝𝑡)𝑑𝑡 とおく. ∂ 𝑒−𝑠𝑡 = 𝑒−𝑠𝑡 を使った部分積分を2回行う.
𝑒
解答例1: 𝑓(𝑠) =∫0∂𝑡 ( −𝑠 )∞∞∞𝑓(𝑠) = ∫0 𝑒−𝑠𝑡 cos(𝑝𝑡)𝑑𝑡 = [ 𝑒−𝑠−𝑠𝑡 cos(𝑝𝑡)] − ∫0 𝑒−𝑠−𝑠𝑡 (−𝑝sin(𝑝𝑡))𝑑𝑡
0
∞
∞
∞
1
𝑝
1
𝑝
= 𝑠 − 𝑠 ∫0 𝑒−𝑠𝑡 sin(𝑝𝑡)𝑑𝑡 = 𝑠 − 𝑠 ([ 𝑒−𝑠−𝑠𝑡 sin(𝑝𝑡)] − ∫0 𝑒−𝑠−𝑠𝑡 𝑝cos(𝑝𝑡)𝑑𝑡)
021𝑝= 𝑠 − 𝑠2 𝑓(𝑠).
これを 𝑓(𝑠) について解けば前者の公式が得られる.
∞
𝑔(𝑠) = ∫0 𝑒−𝑠𝑡 sin(𝑝𝑡)𝑑𝑡 とおく. 上と同様にして,
∞
∞
∞ −𝑠𝑡
−𝑠𝑡
𝑔(𝑠) = ∫0 𝑒−𝑠𝑡 sin(𝑝𝑡)𝑑𝑡 = [ 𝑒−𝑠 sin(𝑝𝑡)] − ∫0 𝑒−𝑠 𝑝cos(𝑝𝑡)𝑑𝑡
0
∞
∞
∞ −𝑠𝑡
−𝑠𝑡
𝑝
𝑝
𝑒
= 𝑠 ∫0 𝑒−𝑠𝑡 cos(𝑝𝑡)𝑑𝑡 = 𝑠 ([ −𝑠 cos(𝑝𝑡)] − ∫0 𝑒−𝑠 (−𝑝sin(𝑝𝑡))𝑑𝑡)0𝑝1𝑝= 𝑠 ( 𝑠 − 𝑠 𝑔(𝑠)) .
これを 𝑔(𝑠) について解けば後者の公式が得られる. □解答例2: 𝑒𝑖𝑝𝑥 = cos(𝑝𝑥) + 𝑖sin(𝑝𝑥) を用いて一挙に計算する.
∞∞−(𝑠−𝑖𝑝)𝑡 ∞𝑒
1 𝑠 + 𝑖𝑝−𝑠𝑡
𝑖𝑝𝑥−(𝑠−𝑖𝑝)𝑡𝑑𝑥=
𝑑𝑥=∫0 𝑒 𝑒∫0 𝑒[ −(𝑠 − 𝑖𝑝) ]0 = 𝑠 − 𝑖𝑝 = 𝑠2 + 𝑝2 .
この結果の実部と虚部のそれぞれから示したい公式の前者と後者が得られる. □問題(三角函数のLaplace変換):

部分積分を2回繰り返すよりも計算が圧倒的に平易になっている.

In [11]:

1
2
3
4
5
6
7



∞

t, s, p = symbols("t s p", positive=true)​
I1 = sympy.Integral(exp(-s*t)*cos(p*t), (t,0,oo))
I2 = sympy.Integral(exp(-s*t)*sin(p*t), (t,0,oo))​ld(I1, " = ", I1.doit().simplify())
ld(I2, " = ", I2.doit().simplify())

𝑠−𝑠𝑡∫0 𝑒 cos(𝑝𝑡)𝑑𝑡 = 𝑝2 + 𝑠2∞

−𝑠𝑡 sin(𝑝𝑡)𝑑𝑡 = 𝑝𝑒∫𝑝2 + 𝑠204.3 条件収束する広義積分の例
以下は条件収束する広義積分に関する有名な公式である.
4.3.1 Dirichlet積分(1) Dirichlet積分(ディリクレ積分):∫0∞ sin𝑥

𝜋.
𝑑𝑥
=
𝑥
2

4.3.2 Dirichlet積分の一般化(2) Dirichelet積分の一般化:∞ 𝑒−𝑎𝑥 sin𝑥∞
𝑑𝑥 = ∫𝑎 1 +𝑑𝑡𝑡2 = 𝜋2 − arctan𝑎 (𝑎 ≧ 0).

∫0 𝑥
これはDirichlet積分になる 𝑎 = 0 の場合にのみ条件収束する.
4.3.3 Fresnel積分の特殊値(3) Fresnel積分の特殊値(フレネル積分の特殊値):𝑡∞∞2 )𝑑𝑡 =
2 )𝑑𝑡 = ⎯⎯⎯𝜋⎯.
cos(
sin(
𝑡
𝑡
∫−∞
∫−∞
√2

(0,∞) 上の積分に書き直して, 𝑡 = √⎯⎯𝑥 と置換すると∞ cos𝑥∞ sin𝑥
⎯⎯⎯𝜋⎯
𝑑𝑥
=
𝑑𝑥
=
∫0 √⎯⎯𝑥∫0 √⎯⎯𝑥 √ 2 .

(4) 上の続き. (3)における被積分函数は の偶函数なのでこれらの公式の証明については
黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)
を参照せよ. (1), (2)の証明は第5.5節とを参照せよ. (1), (3), (4)の証明は第8.6節を参照せよ.

4.3.4 Dirichelt積分の収束の様子
問題:

𝑅
sinc𝑥 = sin𝑥
(𝑥 ≠ 0), sinc0 = 1 と 𝐹(𝑅) =∫0 sinc𝑥𝑑𝑥 のグラフをプロットせよ. □𝑥

次のセルを見よ.

In [12]:



1
2
3
4
5
6
7
8
9
10

f(x) = iszero(x) ? one(x) : sin(x)/x
F(R) = quadgk(f, 0, R)[1]x = 0:0.05:100
R = 0:0.05:100​
P1 = plot(x, f.(x), label="(sin x)/x", legend=:topright, ylims=(-0.4, 1.2))
hline!([0], ls=:dash, label="0")P2 = plot(R, F.(R), label="int_0^R (sin x)/x dx", legend=:bottomright, ylims=(0,2))
hline!([π/2], ls=:dash, label="pi/2")
plot(P1, P2, size=(700,250))

Out[12]:4.3.5 Dirichlet積分が絶対収束しないことの証明∞ | sin𝑥 |∫0 ||| 𝑥 ||| 𝑑𝑥 = ∞ を示せ.
𝜋
解答例: |sin(𝑥 + 𝜋)| = |sin𝑥| と ∫0 sin𝑥𝑑𝑥 = 2 より,∞ 𝑛𝜋 |sin𝑥|∞ 𝑛𝜋 |sin𝑥|∞ | sin𝑥 |
|
|
𝑑𝑥
=
𝑑𝑥
≧
𝑑𝑥
|
|
∑
∫0 | 𝑥 | ∑𝑛=1 ∫(𝑛−1)𝜋 𝑥
𝑛=1 ∫(𝑛−1)𝜋 𝑛𝜋∞∞𝜋= ∑ 𝑛𝜋1 ∫0 sin𝑥𝑑𝑥 = 𝜋2 ∑ 1𝑛 = ∞. □
𝑛=1
𝑛=1
問題:

注意: 上の解答例の計算の仕方より,

𝑁𝜋 | sin𝑥 |

𝑁 1 2
2
|
|
𝑑𝑥
≧
∼ log𝑁
∫0 || 𝑥 || 𝜋 ∑𝑛=1 𝑛 𝜋となることがわかる.

4.3.6 Dirichlet積分が絶対収束しない様子
問題:

𝑅|
𝐺(𝑅) = ∫0 |||| sin𝑥𝑥 ||| 𝑑𝑥 をプロットせよ. □次のセルを見よ.

In [13]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

g(x) = abs(iszero(x) ? one(x) : sin(x)/x)
G(R) = quadgk(g, 0, R)[1]@show G(π)​
N = 1:0.1:10
R = N.*πP1 = plot(size=(600, 300), legend=:topleft, xscale=:log)
plot!(R, G.(R), label="G(R)", lw=2)
plot!(R, @.(2/π*log(R/π)+G(π)), label="(2/pi) log(R/pi) + G(pi)", ls=:dash, lw=2)​
N = 1:100
R = N.*πP2 = plot(size=(600, 300), legend=:topleft, xscale=:log)
plot!(R, G.(R), label="G(R)", lw=2)
plot!(R, @.(2/π*log(R/π)+G(π)), label="(2/pi) log(R/pi) + G(pi)", ls=:dash, lw=2)​
plot(P1, P2, size=(800, 300))

G(π) = 1.8519370519824665
Out[13]:4.3.7 Fresnel積分
Fresnel積分: 次の不定積分をFresnel積分(フレネル積分)と呼ぶ:

𝑡𝑡

𝐶(𝑡) = ∫0 cos(𝑠2 )𝑑𝑠, 𝑆(𝑡) = ∫0 sin(𝑠2 )𝑑𝑠.
上で紹介したように, 条件収束する広義積分の例として,

1 ⎯⎯⎯𝜋⎯
𝐶(𝑡)
=
𝑆(𝑡)
=
lim
lim
∞
∞
𝑡→
𝑡→
2√ 2
は有名である. 𝐶 ′ (𝑡) 2 + 𝑆 ′ (𝑡) 2 = 1 なので点 (𝐶(𝑡),𝑆(𝑡)) の運動の速さは常に 1 である. だから時刻 0 から 𝑡 までの軌跡の長⎯⎯⎯⎯⎯さは 𝑡 に等しい. だから軌跡の長さは 𝑡 → ∞ で無限大に発散する. 無限に長い軌跡の最終到着地点が 𝑎 = (1/2)√ 𝜋/2 に対する点 (𝑎,𝑎) になる.
4.3.8 Fresnel積分の収束の様子
Fresnel積分
確認できる.

⎯⎯⎯⎯ に収束する様子も𝐶(𝑡),𝑆(𝑡) のそれぞれをプロットすると以下のようになる. それらが 𝑡 → ∞ で 𝑎 = (1/2)√⎯𝜋/2

In [14]:



1
2
3
4
5
6
7
8
9
10
11
12
13

C(t) = quadgk(s->cos(s^2), 0, t)[1]S(t) = quadgk(s->sin(s^2), 0, t)[1]a = sqrt(π/2)/2​
PP = []​
tmin, tmax = 0, 20
t = tmin:(tmax-tmin)/1000:tmax
PC = plot(t, C.(t), label="C(t)"); hline!([a], label="a")PS = plot(t, C.(t), label="S(t)"); hline!([a], label="a")push!(PP, PC, PS)​plot(PP..., size=(700, 250), legend=:bottomright)

Out[14]:次のセルで(𝐶(𝑡),𝑆(𝑡)) の軌跡をプロットしてみよう.

In [15]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

C(t) = quadgk(s->cos(s^2), 0, t)[1]S(t) = quadgk(s->sin(s^2), 0, t)[1]a = sqrt(π/2)/2​
P = []for (lw, tmax) in [(1,7), (0.6,10), (0.4,20), (0.25,40)]t = 0:0.01:tmax
p = plot(xlims=(0,1), ylims=(0,1), legend=false)plot!(title="Euler spiral (t = 0 to $tmax)", titlefontsize=10)
plot!(C.(t), S.(t), lw=lw)
scatter!([a],[a])push!(P, p)end#pngplot(P..., size=(600, 600))
plot(P..., size=(600, 600))

Out[15]:4.3.9 数式処理系による定積分の計算
In [16]:

1 x = symbols("x", positive=true)
2 I1 = sympy.Integral(x^(-1)*sin(x), (x,0,oo))
3 ld(I1, " = ", I1.doit())

∞sin(𝑥) 𝜋∫0 𝑥 𝑑𝑥 = 2
In [17]:

1 a, x = symbols("a, x", positive=true)
2 I1 = sympy.Integral(exp(-a*x)*x^(-1)*sin(x), (x,0,oo))
3 ld(I1, " = ", I1.doit())



∞ −𝑎𝑥

∫0

𝑒 sin(𝑥) 𝑑𝑥 = −atan(𝑎) + 𝜋𝑥2In [18]:

1
2
3
4
5
6
7



x = symbols("x", positive=true)​
I1 = sympy.Integral(cos(x^2), (x,-oo,oo))
I2 = sympy.Integral(sin(x^2), (x,-oo,oo))​ld(I1, " = ", I1.doit())
ld(I2, " = ", I2.doit())

⎯⎯ ⎯⎯
∫
2
−∞
∞
⎯⎯2√⎯⎯𝜋√2∫−∞ sin (𝑥 ) 𝑑𝑥 = 2∞

In [19]:



1
2
3
4
5
6
7

cos (𝑥2 ) 𝑑𝑥 = √2√𝜋

x = symbols("x", positive=true)​
I1 = sympy.Integral(x^(-Sym(1)/2)*cos(x), (x,0,oo))
I2 = sympy.Integral(x^(-Sym(1)/2)*sin(x), (x,0,oo))​ld(I1, " = ", I1.doit())
ld(I2, " = ", I2.doit())⎯⎯2√⎯⎯𝜋√cos(𝑥)∫0 √⎯⎯𝑥 𝑑𝑥 = 2∞√⎯⎯2√⎯⎯𝜋sin(𝑥)
𝑑𝑥=∫0 √⎯⎯𝑥2∞

4.3.10 Dirichlet積分の分母を問題:

𝑎 > 0 のとき, 広義積分

𝑥𝑎 とする一般化∞ sin𝑥𝑅 sin𝑥
𝑑𝑥
=
lim
𝑎
∫1 𝑥
𝑅→∞ ∫1 𝑥𝑎 𝑑𝑥が収束することを示せ.
解答例: 部分積分によって𝑅 sin𝑎
𝑅
−𝑎
′
𝑑𝑥
=
∫1 𝑥𝑎
∫1 𝑥 (−cos𝑥) 𝑑𝑥
𝑅= [−𝑥−𝑎 cos𝑥]𝑅1 − ∫1 (𝑥−𝑎 )′(−cos𝑥)𝑑𝑥
𝑅= −𝑅−𝑎 cos𝑅 + cos1 − 𝑎 ∫1 𝑥−𝑎−1 cos𝑥𝑑𝑥.

−𝑅−𝑎 cos𝑅 は 𝑅 → ∞ で 0 に収束し, 第3項の積分は
𝑅
𝑅
𝑅−𝑎−1 cos𝑥|𝑑𝑥 ≦−𝑎−1 𝑑𝑥 = 𝑥−𝑎 = 1 − 𝑅−𝑎
|
𝑥
𝑥
∫1
∫1
[ −𝑎 ]1𝑎なので 𝑅 → ∞ で絶対収束する. これで示すべきことがすべて示された. □
第1項の

解説:

 1 − 𝑅1−𝑎 (𝑎 ≠ 1)1−𝑎∫1
 log𝑅(𝑎 = 1)なので, 𝑎 ≦ 1 のとき, この積分は 𝑅 → ∞ で無限大に発散する. しかし, 𝑥−𝑎 を微分すると, −𝑎𝑥−(𝑎+1) になり, 𝑎 > 0 ならば
𝑎 + 1 > 1 となり, 𝑥−(𝑎+1) の 1 から ∞ までの積分が収束することを使える. 上の問題の解答例では, 部分積分によってそれを実現している. 絶対収束しない積分を上手に部分積分すると絶対収束する形に直せることがよくある. 部分積分はこの意味での非常に有用である. □𝑅

4.3.11 部分積分による広義積分の収束の証明法

𝑥−𝑎 𝑑𝑥 = 𝑎(𝑥), 𝑏(𝑥) は 𝑥 ≧ 1 の連続函数であるとし, 1𝐴(𝑥) = ∫1𝑥 𝑎(𝜉)𝑑𝜉 とおく. 𝐴(𝑥) は 𝑥 ≧ 1 で有界であると仮定する:
𝐴(𝑥) ≦ 𝑀 (𝑥 ≧ 1). さらに 𝑏(𝑥) は単調減少な 𝐶 函数でかつ 𝑥 → ∞ で 𝑏(𝑥) → 0 となっていると仮定する(特に 𝑏(𝑥) ≧ 0 (𝑥 ≧ 0) である). このとき, 広義積分∞𝑅(1)𝑎(𝑥)𝑏(𝑥)𝑑𝑥=lim∫1
𝑅→∞ ∫1 𝑎(𝑥)𝑏(𝑥)𝑑𝑥問題:が収束することを示せ.
解答例: 部分積分によって,

𝑅

𝑅

′
(2)
∫1 𝑎(𝑥)𝑏(𝑥)𝑑𝑥 = 𝐴(𝑅)𝑏(𝑅) − 𝐴(1)𝑏(1) − ∫1 𝐴(𝑥)𝑏 (𝑥)𝑑𝑥.
そして, 𝑥 ≧ 1 のとき, |𝐴(𝑥)| ≦ 𝑀 かつ 𝑏(𝑥) の単調減少性より 𝑏′ (𝑥) ≦ 0 なので,|𝐴(𝑥)𝑏′(𝑥)| ≦ −𝑀 𝑏′(𝑥) (𝑥 ≧ 1).
ゆえに, 𝑏(𝑥) ≧ 0 であることも使うと,𝑅𝑅′ (𝑥)|𝑑𝑥 ≦ −
′
|𝐴(𝑥)
𝑏
∫1
∫1 𝑀 𝑏 (𝑥)𝑑𝑥 = 𝑀(𝑏(1) − 𝑏(𝑅)) ≦ 𝑀𝑏(1) < ∞.
これで, 上の(2)の右辺の積分が絶対収束することがわかった. (2)の右辺の 𝐴(𝑅)𝑏(𝑅) は 𝑅 → ∞ のとき 𝑏(𝑅) → 0 より 0 に収束する. これで, (1)の広義積分が収束することがわかった. □注意: 上の解答例と黒木玄, 02 級数 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/02%20series.ipynb) の 2.2 条件収束する複素級数の例(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/02%20series.ipynb#%E6%9D%A1%E4%BB%B6%E5%8F%
ず

5 積分と極限の交換
このノートを含む一連のノート群では安全な極限の交換しか扱わない.
読者は積分と極限の交換, 積分と微分の交換, 積分順序の交換などを形式的に自由にできることを認めて読んで欲しい.
もしくは以下の結果が証明抜きで自由に使用されると考えてもよい.

𝑏𝑑∫𝑎 (∫𝑐 |𝑓(𝑥,𝑦)|𝑑𝑦) 𝑑𝑥 < ∞ ならば𝑏𝑑𝑑𝑏𝑓(𝑥,𝑦)𝑑𝑦𝑑𝑥=∫ 𝑎 (∫ 𝑐) ∫𝑐 (∫𝑎 𝑓(𝑥,𝑦)𝑑𝑥) 𝑑𝑦.
𝑏(K) 積分記号化での微分: 各パラメーター 𝛼 について ∫𝑎 |𝑓(𝛼,𝑥)|𝑑𝑥 < ∞ であり, 各 𝑥 ∈ (𝑎,𝑏) について偏導函数(偏微分に(J) 積分の順序交換:

値を持つ函数)が存在し, ある非負値函数∂𝑓(𝛼,𝑥) = lim 𝑓(𝛼 + ℎ,𝑥) − 𝑓(𝛼,𝑥)∂𝛼 ℎ→0ℎ𝜑(𝑥) ≧ 0𝑏でかつ∫𝑎 𝜑(𝑥)𝑑𝑥 < ∞,を満たすものが存在するならば,|| ∂𝑓(𝛼,𝑥) || ≦ 𝜑(𝑥) (𝑎 < 𝑥 < 𝑏)|| ∂𝛼 ||

𝑑 𝑏 𝑓(𝛼,𝑥)𝑑𝑥 = 𝑏 ∂𝑓(𝛼,𝑥) 𝑑𝑥.
∫𝑎 ∂𝛼
𝑑𝛼 ∫𝑎
(L) Lebesgue(ルベーグ)の収束定理: 函数列 𝑓𝑛 (𝑥) は各点収束している(すなわち各 𝑥 ∈ (𝑎,𝑏) ごとに数列 𝑓𝑛 (𝑥) が収束している)とし, ある非負値函数 𝜑(𝑥) ≧ 0 で𝑏∫𝑎 𝜑(𝑥)𝑑𝑥 < ∞を満たすものが存在すると仮定する. このとき,

𝑏𝑏lim ∫𝑎 𝑓𝑛 (𝑥)𝑑𝑥 = ∫𝑎 𝑛→∞
lim 𝑓𝑛 (𝑥)𝑑𝑥.
𝑛→∞以上は少々荒い説明の仕方になっている. 正確でかつより一般的な結果およびその証明については
猪狩惺, 『実解析入門 (https://www.amazon.co.jp/dp/4000054449)』, 岩波書店, 1996など多くの教科書に書いてある. この本は品切れで中古本にプレミア価格がついている. 大学の図書館などで借りて読めば安上がりである その本において (L)はp 78の定理3 23に (K)はp 79の例3 3に (J)のより正確な表現であるFubiniの定理はpp 120

5.1 積分と極限が交換できない場合
このノートを含む一連のノート群では安全な極限の交換しか行わないが, 積分と極限が交換できない例は非常に簡単に作れる.
以下を見よ.

5.1.1 Lebesgueの収束定理の結論が成立しない場合1

𝑓𝑛 (𝑥) を(0 < 𝑥 ≦ 𝑛)
𝑓𝑛 (𝑥) = { 1/𝑛0 (otherwise)

例(Lebesgueの収束定理の結論が成立しない場合1): 函数列と定める. さらに函数𝑔(𝑥) をと定める. このとき, 任意の実数(𝑛 − 1 < 𝑥 ≦ 𝑛)𝑔(𝑥) = max{𝑓𝑛 (𝑥)}∞𝑛=1 = { 1/𝑛0 (otherwise)∞𝑥 について 𝑛→∞lim 𝑓𝑛 (𝑥) = 0 だが, ∫0 𝑓𝑛 (𝑥)𝑑𝑥 = 1 なので,∞∞lim ∫0 𝑓𝑛 (𝑥)𝑑𝑥 = 1 ≠ 0 = ∫0 𝑛→∞
lim 𝑓𝑛 (𝑥)𝑑𝑥𝑛→∞となる. そして,∞ 1
𝑔(𝑥)𝑑𝑥
=
∑𝑛 =∞
∫0
∞

□
問題: 上の問題の 𝑓𝑛 (𝑥), 𝑔(𝑥) のグラフを描け.
解答例: 次のセルをみよ. □であることにも注意せよ.

𝑛=1

In [20]:



1
2
3
4
5
6
7
8
9
10
11
12
13

f(n,x) = 0 < x ≤ n ? 1/n : zero(x)g(x) = x > 0 ? 1/ceil(x) : zero(x)x = 0.0:0.02:10.0​
PP = []
for n in 1:8
P = plot(x, f.(n,x), label="f_$n(x)")
push!(PP, P)
end
P = plot(x, g.(x), label="g(x)")
push!(PP, P)#pngplot(P..., size=(750, 600), ylims=(0,1))
plot(PP..., size=(750, 600), ylims=(0,1))

Out[20]:5.2 Dirichlet積分とその一般化
条件収束する広義積分に関する有名な公式∫0∞ sin𝑥𝜋
𝑥 𝑑𝑥 = 2の左辺はよくDirichlet積分と呼ばれる.
Dirichlet積分の公式の様々な証明については以下の文献を参照せよ.

∫0∞ sin𝑥 𝑥 𝑑𝑥, The Mathematical Gazette Vol. 5, No. 80 (Jun. - Jul., 1909), pp. 98-103. (JSTOR(https://www.jstor.org/stable/3602798))∞
A. C. Dixon, Proof That ∫0 sin𝑥 𝑥 𝑑𝑥 = 𝜋 , The Mathematical Gazette Vol. 6, No. 96 (Jan., 1912), pp. 223-224. (JSTOR
2
D. H. Hardy, The Integral(https://www.jstor.org/stable/3604314))

この一連のノート群ではDirichlet積分の公式の導出を何度も繰り返し扱うが, そこで使った方法の多くはこの2つの文献で紹介されている方法の範囲に含まれている.
Dirichlet積分の公式は, ノート「12 Fourier解析(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)」でFourier変換の逆変換の収束性に関するDiniの条件を扱うときに用いられる.

5.2.1 Dirichlet積分の一般化に関する公式

問題: Dirichlet積分の一般化に関する公式∫0∞ 𝑒−𝑎𝑥 sin𝑥𝑥∞
𝑑𝑥 = ∫𝑎 1 +𝑑𝑡𝑡2 = 𝜋2 − arctan𝑎 (𝑎 ≧ 0)

𝑎 > 0 の場合について示せ.
注意: 上の問題の公式の 𝑎 ↘ 0 の極限としてDirichlet積分の公式が得られる.
∞ 𝑒−𝑎𝑥 sin𝑥
解答例1: 𝑎 > 0 と仮定し, 𝐼(𝑎) =∫0 𝑥 𝑑𝑥 とおく.
𝑎 → ∞ で 𝐼(𝑎) → 0 である(𝐼(∞) = 0 とおく). 積分記号化での微分(K)と上の方にある三角函数のLaplace変換の問題の結果
を

より

∞
∞
−𝑎𝑥
𝐼 ′(𝑎) = ∫0 ∂𝑎∂ 𝑒 𝑥sin𝑥 𝑑𝑥 = − ∫0 𝑒−𝑎𝑥 sin𝑥𝑑𝑥 = 1 −1
+ 𝑎2 .

ゆえに𝑎∞ 𝑑𝑡
𝐼(𝑎) = 𝐼(∞) + ∫∞ 1 −1
𝑑𝑡=
+ 𝑡2 ∫𝑎 1 + 𝑡2 .

さらに

𝑑𝑡 = ∞ 𝑑𝑡 − 𝑎 𝑑𝑡 = 𝜋 − arctan𝑎.
∫𝑎 1 + 𝑡2 ∫0 1 + 𝑡2 ∫0 1 + 𝑡2 2
これで示すべきことがすべて示された. □𝑒−𝑎𝑥 = ∞ 𝑒−𝑡𝑥 𝑑𝑡 なので解答例2: 𝑎 > 0 であると仮定する. 𝑥 > 0 のとき,𝑥 ∫𝑎∞ 𝑒−𝑎𝑥 sin𝑥
∞
∞
−𝑡𝑥
𝑑𝑥
=
∫0 𝑥
∫0 (∫𝑎 𝑒 sin𝑥𝑑𝑡) 𝑑𝑥.
∞

積分の順序交換(J)によって,

∞

∞

∞

∞

−𝑡𝑥
−𝑡𝑥
∫0 (∫𝑎 𝑒 sin𝑥𝑑𝑡) 𝑑𝑥 = ∫𝑎 (∫0 𝑒 sin𝑥𝑑𝑥) 𝑑𝑡.
上の方の三角函数のLaplace変換の問題の結果より,∞ 1−𝑡𝑥 sin𝑥𝑑𝑥 𝑑𝑡 =𝑒
∫ 𝑎 (∫ 0) ∫𝑎 1 + 𝑡2 𝑑𝑡.
これで 𝑎 > 0 の場合の公式(2)が示された. □注意: 𝑎 > 0 の場合には絶対収束する積分しか出て来ないので積分順序を自由に交換できて簡単である. 𝑎 = 0 の場合にも積分
順序の交換が可能なことを示せれば 𝑎 = 0 の場合の(1)も証明される. □∞∞5.2.2 Dirichlet積分の公式の証明のための準備

𝑡 > 0 のとき,
−𝑡𝑥 cos𝑥𝑑𝑥 = −𝑒−𝑡𝑥 (𝑡cos𝑥 − sin𝑥),−𝑡𝑥 sin𝑥𝑑𝑥 = −𝑒−𝑡𝑥 (𝑡sin𝑥 + cos𝑥).
𝑒𝑒∫∫
1 + 𝑡2
1 + 𝑡2問題(次の問題の解答例1のための準備): 次の公式を示せ:

解答例:−𝑡𝑥 𝑒𝑖𝑥 𝑑𝑥 = 𝑒−(𝑡−𝑖)𝑥 𝑑𝑥 = 𝑒−(𝑡−𝑖)𝑥 = − 𝑡 + 𝑖 𝑒−𝑡𝑥 (cos𝑥 + 𝑖sin𝑥)𝑒∫∫−(𝑡 − 𝑖) 𝑡2 + 1−𝑡𝑥−𝑒= 1 + 𝑡2 ((𝑡cos𝑥 − sin𝑥) + 𝑖(𝑡sin𝑥 + cos𝑥)).
この等式の両辺の実部と虚部が示すべき公式にちょうどなっている. □この問題の結果より, 𝑡 > 0 のとき,

In [21]:



1
2
3
4
5
6
7

∫

𝑅

𝑑

−𝑡𝑥

−𝑒−𝑡𝑅 (𝑡 𝑅 i 𝑅) + 𝑡

t, x = symbols("t x", positive=true)​
I1 = sympy.Integral(exp(-t*x)*cos(x), x)
I2 = sympy.Integral(exp(-t*x)*sin(x), x)​
ld(I1, " = ", I1.doit().simplify())
ld(I2, " = ", I2.doit().simplify())−𝑡𝑥 cos(𝑥)𝑑𝑥 = (−𝑡cos(𝑥) + sin(𝑥))𝑒𝑒∫𝑡2 + 1−𝑡𝑥 sin(𝑥)𝑑𝑥 = − (𝑡sin(𝑥) + cos(𝑥))𝑒−𝑡𝑥
𝑒∫𝑡2 + 1−𝑡𝑥

5.2.3 Dirichlet積分の公式の証明
問題: Dirichlet積分の公式∫0∞ sin𝑥𝑅 sin𝑥𝜋𝑑𝑥=
lim
𝑅→∞ ∫0 𝑥 𝑑𝑥 = 2𝑥を示せ. (1つ目の等号は広義積分の定義であり, 示す必要はない.)
解答例1:∞
𝑅 > 0 であるとする. 𝑥 > 0 のとき, 𝑥1 = ∫0 𝑒−𝑡𝑥 𝑑𝑡 なので𝑅 sin𝑥
𝑅
∞
−𝑡𝑥
𝑑𝑥
=
∫0 𝑥
∫0 (∫0 𝑒 sin𝑥𝑑𝑡) 𝑑𝑥.

積分の順序交換(J)によって∫0
すぐ上の問題の結果より,

𝑅 sin𝑥∞𝑅−𝑡𝑥
𝑥 𝑑𝑥 = ∫0 (∫0 𝑒 sin𝑥𝑑𝑥) 𝑑𝑡.

𝑅 sin𝑥∞ −𝑒−𝑡𝑅∞ 𝑑𝑡𝑑𝑥=(𝑡sin𝑅+cos𝑅)𝑑𝑡+∫0 𝑥∫0 1 + 𝑡2∫0 1 + 𝑡2 .
右辺の前者の積分は 𝑅 → ∞ で 0 に収束し, 後者の積分は 𝜋/2 に等しいので,∞ sin𝑥𝑅 sin𝑥
𝜋
𝑑𝑥
=
lim
∫0 𝑥
𝑅→∞ ∫0 𝑥 𝑑𝑥 = 2 .
これで公式(1)が示された. □解答例2: 𝑁 は正の整数であるとする.
𝑁
2𝜋𝑖𝑘𝑥 = 𝑒−2𝜋𝑖𝑁𝑥 𝑒2𝜋𝑖(2𝑁+1)𝑥 − 1 = 𝑒𝜋𝑖(2𝑁+1)𝑥 − 𝑒−𝜋𝑖(2𝑁+1)𝑥 = sin(𝜋(2𝑁 + 1)𝑥)𝑒∑sin(𝜋𝑥)𝑒𝜋𝑖𝑥 − 𝑒−𝜋𝑖𝑥
𝑒2𝜋𝑖𝑥 − 1𝑘=−𝑁

𝑁 → ∞ のとき,
1/2 𝑁
1/2
+ 1)𝑥) 𝑑𝑥 = 2 1/2 sin(𝜋(2𝑁 + 1)𝑥) 𝑑𝑥
1 = ∫−1/2 ∑ 𝑒2𝜋𝑖𝑘𝑥 𝑑𝑥 = ∫−1/2 sin(𝜋(2𝑁∫0sin(𝜋𝑥)sin(𝜋𝑥)𝑘=−𝑁𝜋(2𝑁+1)/2∞sin𝑡
2 sin𝑡 𝑑𝑡.
= 𝜋2 ∫0𝑑𝑡→𝑡(2𝑁 + 1)sin( 2𝑁+1 ) 𝜋 ∫0 𝑡𝑡𝑡
4つ目の等号で 𝑥 =𝜋(2𝑁 + 1) とおいた. 𝑁 → ∞ の極限操作では (2𝑁 + 1)sin( 2𝑁 + 1 ) → 𝑡 を用いた.
∞ sin𝑡𝜋
ゆえに∫0 𝑡 𝑑𝑡 = 2 . □解答例2': 上の解答例2で 𝑁 → ∞ での極限を雑に扱った部分を, Fourier解析におけるRiemann-Lebesgueの定理を認めて使うなので,ことによって, より正確に扱ってみよう.

1
1sin(𝜋𝑥) − 𝜋𝑥 は 𝑥 = 0 まで連続函数として延長され, [−1/2,1/2] 上の連続函数になる. ゆえにRiemann-Lebesgueの定理より, 𝑁 → ∞ のとき
1/2
1 − 1 sin(𝜋(2𝑁 + 1)𝑥)𝑑𝑥 → 0.
𝜀𝑁 := 2 ∫0 ( sin(𝜋𝑥)𝜋𝑥 )𝑡 とおくと, 𝑁 → ∞ のとき
一方, 𝑥 =
𝜋(2𝑁 + 1)
1/2
𝜋(2𝑁+1)/2 sin𝑡
2 ∞ sin𝑡 𝑑𝑡.
2 ∫0 sin(𝜋(2𝑁𝜋𝑥 + 1)𝑥) 𝑑𝑥 = 𝜋2 ∫0𝑑𝑡→
𝜋 ∫0 𝑡𝑡
ゆえに, 𝑁 → ∞ のとき, 途中まで解答例1と同様にして,
1/2 𝑁
1/2
+ 1)𝑥) 𝑑𝑥 = 2 1/2 sin(𝜋(2𝑁 + 1)𝑥) 𝑑𝑥
1 = ∫−1/2 ∑ 𝑒2𝜋𝑖𝑘𝑥 𝑑𝑥 = ∫−1/2 sin(𝜋(2𝑁∫0sin(𝜋𝑥)sin(𝜋𝑥)𝑘=−𝑁1/2 sin(𝜋(2𝑁 + 1)𝑥)∞= 𝜀𝑁 + 2 ∫0𝑑𝑥 → 𝜋2 ∫0 sin𝑡
𝜋𝑥𝑡 𝑑𝑡
∞ sin𝑡𝜋∫
5.3 Fresnel積分の特殊値の公式の導出

5.3.1 Fresnel積分の特殊値の公式の証明のための準備 (1/(1+t⁴)の積分)
問題: 次を示せ.

𝑑𝑡 = ∞ 𝑡2 𝑑𝑡 = √⎯⎯2 𝜋∫0 1 + 𝑡4 ∫0 1 + 𝑡4 4∞

In [22]:



1
2
3
4
5
6
7

t = symbols("t", real=true)​
I1 = sympy.Integral(t^2/(t^4+1), (t,0,oo))
I2 = sympy.Integral(1/(t^4+1), (t,0,oo))​ld(I1, " = ", I1.doit().simplify())
ld(I2, " = ", I2.doit().simplify())

𝑡2 𝑑𝑡 = √⎯⎯2𝜋∫0 𝑡4 + 1
4∞
1 𝑑𝑡 = √⎯⎯2𝜋∫0 𝑡4 + 1
4
∞

解答例1:

𝑡 = 1/𝑢 とおくと,

𝑑𝑡 = 0 −𝑢−2 𝑑𝑢 = ∞ 𝑢2 𝑑𝑢 = ∞ 𝑡2 𝑑𝑡 .
∫0 1 + 𝑡4 ∫∞ 1 + 𝑢−4 ∫0 𝑢4 + 1 ∫0 1 + 𝑡4∞

𝐹(𝑡) を次のように定める:⎯⎯ 2 ⎯⎯⎯⎯
𝐹(𝑡) = √82 log 𝑡𝑡2 +− √√2⎯⎯2 𝑡𝑡 ++ 11 + √42 (arctan(√⎯⎯2 𝑡 + 1) + arctan(√⎯⎯2 𝑡 − 1)) .

天下りになってしまうが,これの導函数を計算すると

𝐹 ′(𝑡) = 1/(1 + 𝑡4 ) となることを確認できる(かなり面倒な計算が必要になる). したがって,⎯⎯∞ 𝑑𝑡∞0 = 𝐹(∞) = √2 𝜋.
=
[𝐹(𝑡)
□
]
∫0 1 + 𝑡4
4

1/(1 + 𝑡4 ) の原始函数の求め方については
E. ハイラー, G. ワナー, 『解析教程 上 (https://www.amazon.co.jp/dp/4621062034)』の第2章(5.16)式の周辺(pp.172-174)が詳しい.
見よ.

1/(1 + 𝑡4 ) の部分分数展開を使う. 下の方の解答例2の直後の問題とその解答例もIn [23]:



1
2
3
4
5

t = symbols("t")
r = sqrt(Sym(2))
H = r/8*log((t^2+r*t+1)/(t^2-r*t+1)) + r/4*(atan(r*t+1)+atan(r*t-1))
ld("F(t) = ", H)ld(raw"\frac{d}{dt}F(t) = ", simplify(diff(H, t)))⎯⎯2 log 𝑡2+√2𝑡+1
⎯⎯
⎯⎯
⎯⎯
√
( 𝑡2−√2𝑡+1 )𝐹(𝑡) = √2 (atan (√2𝑡 − 1)4 + atan (√2𝑡 + 1)) +8𝑑1𝑑𝑡 𝐹(𝑡) = 𝑡4 + 1
解答例2: 複素解析を使う方法. 𝑅 > 0 とし, 𝐶1 は 0 から 𝑅 への線分 𝑡, 0 ≦ 𝑡 ≦ 𝑅 であるとし, 𝐶2 は 𝑅 から 𝑖𝑅 への曲線
𝑅𝑒𝑖𝜃 , 0 ≦ 𝜃 ≦ 𝜋/2, 𝐶3 は 𝑅𝑖 から 0 への線分であるとする. このとき,
𝑑𝑧 = − 𝑅 𝑑(𝑖𝑡) = −𝑖 𝑅 𝑑𝑡 = −𝑖 𝑑𝑡 .
∫𝐶3 1 + 𝑧4 ∫0 1 + (𝑖𝑡)4 ∫0 1 + 𝑡4 ∫𝐶1 1 + 𝑡4
1/(1 + 𝑧4 ) の 𝑧 = 𝑒𝑖𝜋/4 における留数は
1
1
1
=
=
⎯⎯
⎯⎯
⎯⎯
⎯⎯
𝑖𝜋/4
𝑖3𝜋/4
𝑖𝜋/4
𝑖5𝜋/4
𝑖𝜋/4
𝑖7𝜋/4
(𝑒 − 𝑒 )(𝑒 − 𝑒 )(𝑒 − 𝑒 ) √2 ⋅ √2(1 + 𝑖) ⋅ √2 𝑖 2√2 (1 + 𝑖)𝑖
なので, 留数定理より,

2𝜋𝑖 = (1 − 𝑖) 𝑑𝑧 + 𝑑𝑧 .
⎯⎯∫𝐶1 1 + 𝑧4 ∫𝐶2 1 + 𝑧4
2√2 (1 + 𝑖)𝑖
𝑅 → ∞ で右辺の 𝐶1 上での積分は ∫0∞ 𝑑𝑡/(1 + 𝑡4 ) に収束し, 𝐶2 上での積分は 0 に収束するので,
2𝜋𝑖 = (1 − 𝑖) ∞ 𝑑𝑡 .
⎯⎯∫0 1 + 𝑡4
2√2 (1 + 𝑖)𝑖
ゆえに,

𝑑𝑡 = 2𝜋 = √⎯⎯2 𝜋 . □∫0 1 + 𝑡4 2√⎯⎯2 ⋅ 2 4問題(上の解答例1で使った結果): 1/(𝑡4 + 1) の原始函数を求めよ.
⎯⎯
解答例: 以下, 記号の簡単のため 𝑟 = √ 2 とおく(𝑟2 = 2). 因数分解
𝑡4 + 1 = (𝑡2 + 𝑟𝑡 + 1)(𝑡2 − 𝑟𝑡 + 1)
∞

より,

一般に

𝑎 > 0 のとき

𝑡 = 𝑠 − 𝑟/2 とおくと𝑡 = 𝑠 + 𝑟/2 とおくと

ゆえに

2𝑟
𝑡+𝑟
𝑡−𝑟
𝑡4 + 1 = 𝑡2 + 𝑟𝑡 + 1 − 𝑡2 − 𝑟𝑡 + 1 .
𝑠 𝑑𝑠 1 2 2
𝑑𝑠 1 𝑠∫ 𝑠2 + 𝑎2 = 2 log(𝑠 + 𝑎 ), ∫ 𝑠2 + 𝑎2 = 𝑎 arctan 𝑎 .
𝑡+𝑟
𝑠 + 𝑟/2
1 2∫ 𝑡2 + 𝑟𝑡 + 1 𝑑𝑡 = ∫ 𝑠2 + 1/2 𝑑𝑠 = 2 log(2𝑠 + 1) + arctan(𝑟𝑠)= 12 log2 + 12 log(𝑡2 + 𝑟𝑡 + 1) + arctan(𝑟𝑡 + 1).
1 log(2𝑠2 + 1) + arctan(𝑟𝑠)− ∫ 𝑡2 −𝑡 −𝑟𝑡 𝑟+ 1 𝑑𝑡 = − ∫ 𝑠𝑠2 −+ 𝑟/2
𝑑𝑠
=
−
2
1/2
1
1
= − 2 log2 − 2 log(𝑡2 − 𝑟𝑡 + 1) + arctan(𝑟𝑡 − 1).

2
2𝑟 ∫ 𝑡4 𝑑𝑡+ 1 = 12 log 𝑡𝑡2 +− 𝑟𝑡𝑟𝑡 ++ 11 + arctan(𝑟𝑡 + 1) + arctan(𝑟𝑡 − 1).
したがって,∫

𝑑𝑡 = 1 log 𝑡2 + 𝑟𝑡 + 1 + 1 (arctan(𝑟𝑡 + 1) + arctan(𝑟𝑡 1))

5.3.2 1/(1+t⁴)の不定積分の公式の数式処理を用いた確認In [24]:



1
2
3
4
5
6
7
8

s = symbols("s", real=true)a = symbols("a", positive=true)​
I1 = sympy.Integral(s/(s^2+a^2), s)
I2 = sympy.Integral(1/(s^2+a^2), s)​ld(I1, " = ", I1.doit())
ld(I2, " = ", I2.doit())

𝑠 𝑑𝑠 = log (𝑎2 + 𝑠2 )∫ 𝑎2 + 𝑠2
2
1 𝑑𝑠 = atan ( 𝑠𝑎 )∫ 𝑎2 + 𝑠2𝑎□In [25]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

r, s, t = symbols("r s t", real=true)v = sqrt(Sym(2))​
ld("r = ", v)​
A = (t + r)/(t^2 + r*t + 1)
B = -(t - r)/(t^2 - r*t + 1)
H = expand(1/((t^2 + r*t + 1)*(t^2 - r*t + 1)))​ld("A = ", A)ld("B = ", B)
ld("H = ", H(r=>v))
ld("A + B - 2rH = ", simplify(A+B-2r*H)) # Verify 2r*H == A+B​# integrate A
As = simplify(simplify(A(t=>s-r/2))(r^2=>2))
intAs = integrate(s/(s^2+Sym(1)/2), s) + integrate(r/2/(s^2+Sym(1)/2), s)
intA = simplify(expand(intAs(s=>t+r/2)))​ld(raw"A|_{t=s-r/2} = ", As)ld(raw"\int A|_{t=s-r/2}\,ds = ", simplify(intAs(r=>v)))ld(raw"\int A\,dt = ", simplify(intA(r=>v)))​# integrate B
Bs = simplify(simplify(B(t=>s+r/2))(r^2=>2))
intBs = -integrate(s/(s^2+Sym(1)/2), s) + integrate(r/2/(s^2+Sym(1)/2), s)
intB = simplify(expand(intBs(s=>t-r/2)))​ld(raw"B|_{t=s+r/2} = ", Bs)
ld(raw"\int B|_{t=s+r/2}\,ds = ", simplify(intBs(r=>v)))ld(raw"\int B\,dt = ", simplify(intB(r=>v)))​
K = simplify((1/(2r)*(intA + intB))(r=>v))​
ld(raw"K(t) = \frac{1}{2r}\left(\int A\,dt + \int B\,dt\right)")ld(raw" = ", K)ld(raw"\frac{d}{dt}K(t) = ", simplify(diff(K, t))) # Verification of dF/dt = 1/(t^4+1)

𝑟 = √⎯⎯2
𝐴 = 𝑟𝑡 +𝑟 +𝑡2 𝑡+ 1
𝐵 = −𝑟𝑡 𝑟+−𝑡2𝑡 + 1
𝐻 = 𝑡4 1+ 1
𝐴 + 𝐵 − 2𝑟𝐻 = 0
𝐴|𝑡=𝑠−𝑟/2 = 2𝑟𝑠+2 +2𝑠1
log (2𝑠2 + 1) + atan √⎯⎯2𝑠
𝐴
|
𝑑𝑠
=
( )
𝑡=𝑠−𝑟/2∫
2
log (2𝑡2 + 2√⎯⎯2𝑡 + 2) + atan √⎯⎯2𝑡 + 1
𝐴𝑑𝑡
=
(
)
∫
2
𝐵|𝑡=𝑠+𝑟/2 = 2𝑟𝑠−2 +2𝑠1
log (2𝑠2 + 1) + atan √⎯⎯2𝑠
𝐵
|
𝑑𝑠
=
−
( )
∫ 𝑡=𝑠+𝑟/2
2
2 − 2√⎯⎯2𝑡 + 2)
log
2
𝑡
(
+ atan (√⎯⎯2𝑡 − 1)
∫ 𝐵𝑑𝑡 = −2
𝐾(𝑡) = 2𝑟1 (∫ 𝐴𝑑𝑡 + ∫ 𝐵𝑑𝑡)⎯⎯2 (−log (𝑡2 − √⎯⎯2𝑡 + 1) + log (𝑡2 + √⎯⎯2𝑡 + 1) + 2atan (√⎯⎯2𝑡 − 1) + 2atan (√⎯⎯2𝑡 + 1))
√
=
8
𝑑
1
𝑑𝑡 𝐾(𝑡) = 𝑡4 + 1

5.3.3 Fresnel積分の特殊値の公式の証明
問題: Fresnel積分の特殊値の公式∫0∞ sin𝑥
⎯⎯⎯𝜋⎯
𝑑𝑥
=
𝑑𝑥
=
∫0 √⎯⎯𝑥 √ 2√⎯⎯𝑥∞ cos𝑥を示せ.
解答例: Gauss積分の公式より,

ゆえに

𝑥 > 0 のとき∞∞⎯⎯⎯⎯
2 ∫0 𝑒−𝑥𝑡2 𝑑𝑡 = ∫−∞ 𝑒−𝑥𝑡2 𝑑𝑡 = √ 𝜋𝑥
∞ 𝑒𝑖𝑥

2 ∞ ∞ 𝑒−𝑥𝑡2 𝑒𝑖𝑥 𝑑𝑡 𝑑𝑥
𝑑𝑥=∫0 √⎯⎯𝑥 √⎯⎯𝜋 ∫0 (∫0)

積分順序を交換すると(本当はこの部分を上の問題と同様の方法で正当化する必要がある),

2 ∞ ∞ 𝑒−𝑥𝑡2 𝑒𝑖𝑥 𝑑𝑡 𝑑𝑥 = 2 ∞ ∞ 𝑒−𝑥𝑡2 𝑒𝑖𝑥 𝑑𝑥 𝑑𝑡.
) √⎯⎯𝜋 ∫0 (∫0)√⎯⎯𝜋 ∫0 (∫0三角函数のLaplace変換の問題の解答例2より,2 ∞ ∞ 𝑒−𝑥𝑡2 𝑒𝑖𝑥 𝑑𝑥 𝑑𝑡 = 2 ∞ 𝑡2 + 𝑖 𝑑𝑡
) √⎯⎯𝜋 ∫0 𝑡4 + 1√⎯⎯𝜋 ∫0 (∫0上の問題の結果より,

2 ∞ 𝑡2 + 𝑖 𝑑𝑡 = 2 (1 + 𝑖) √⎯⎯2 𝜋 = (1 + 𝑖) ⎯⎯⎯𝜋⎯.
√24√⎯⎯𝜋 ∫0 𝑡4 + 1 √⎯⎯𝜋

したがって,

⎯⎯⎯𝜋⎯
𝑑𝑥
=
(1
+
𝑖)
⎯⎯
∫0 √ 𝑥√2.
両辺の実部と虚部を見れば示したい結果が得られる. □∞ 𝑒𝑖𝑥

上の解答例と本質的に同じ解答の詳しい解説がE. ハイラー, G. ワナー, 『解析教程 下 (https://www.amazon.co.jp/dp/4621061909)』の第4章の演習問題5.14(p.254, この問題はこの本の最後に載っている問題)の解答解説(pp.313-314)にある.

5.3.4 Fresnel積分の特殊値の公式の複素解析を用いた導出
注意: 複素解析を使えばFresnel積分の特殊値の公式∞
2 𝑑𝑡 =
2 𝑑𝑡 = 1 ⎯⎯⎯𝜋⎯
cos
sin
𝑡
𝑡
∫0
∫0
2√ 2
∞

を以下のように比較的容易に示すことができる.

𝑅 > 0 であるとし, 𝐶1 は 0 から 𝑅 への線分, 𝐶2 は 𝑅 から 𝑅𝑒𝜋𝑖/4 への円弧, 𝐶3 は 0 から 𝑅𝑒𝜋𝑖/4 への線分とすると, Cauchyの積分定理より,−𝑧2 𝑑𝑧 = 𝑒−𝑧2 𝑑𝑧 + 𝑒−𝑧2 𝑑𝑧.
𝑒
∫𝐶
∫𝐶
∫𝐶
3

そして,

1

2

𝑅

𝑅

−2
𝜋𝑖/4 2 𝜋𝑖/4
𝜋𝑖/4
−𝑖 2
∫𝐶3 𝑒 𝑧 𝑑𝑧 = ∫0 exp(−(𝑒 𝑡) )𝑑(𝑒 𝑡)𝑑𝑡 = 𝑒 ∫0 𝑒 𝑡 𝑑𝑡,
⎯⎯𝜋
𝑅 2
√
2
−
−
𝑧
𝑡
∫𝐶1 𝑒 𝑑𝑧 = ∫0 𝑒 𝑑𝑡 → 2 (𝑅 → ∞),−2∫𝐶2 𝑒 𝑧 𝑑𝑧 → 0 (𝑅 → ∞).
したがって,

両辺に⎯⎯∞𝑒𝜋𝑖/4 ∫0 𝑒−𝑖𝑡2 𝑑𝑡 = √2𝜋 .

𝑒−𝜋𝑖/4 = 1√−⎯⎯𝑖 をかけると,上の複素解析を用いたFresnel積分の特殊値の導出のより詳しい解説が高木貞治, 『解析概論 (https://www.amazon.co.jp/dp/4000051717)』の第62節の例2(pp.224-225)にある.
ガンマ函数との関連については
黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)−1 < 𝑠 < 1 のとき
𝑠−1 sin𝑥𝑑𝑥 = Γ(𝑠)sin 𝜋𝑠 = Γ(𝑠 + 1) sin(𝜋𝑠/2)𝑥∫02𝑠となることを示せる. (sin(𝜋𝑠/2)/𝑠 の 𝑠 = 0 での値は極限を取ることによって自然に 𝜋/2 だと定義される.) これの 𝑠 = 0 の場
∞ sin𝑥𝜋 であり, 𝑠 = 1/2 の場合が ∞ sin𝑥⎯⎯ 𝑑𝑥 = ⎯⎯⎯𝜋⎯ である. このように, Dirichlet積分とFresnel積分
𝑑𝑥
=
合が
∫0 𝑥
∫0 √ 𝑥 √ 22(の特殊値)はガンマ函数によって統一的に取り扱うことができる. 別々に公式を証明する必要はない. □の第8.6節を参照せよ. 一般に, ちょっとした複素解析の利用によって,∞

5.3.5 sine integral and cosine integral functions
函数

Si𝑥, si𝑥, Ci𝑥, Cin𝑥 が以下のように定義される:
𝑥∞ sin𝑡Si𝑥 = ∫0 sin𝑡
𝑑𝑡,
si𝑥
=
−
∫𝑥 𝑡 𝑑𝑡,𝑡∞
𝑥 cos𝑡 − 1
Ci𝑥 = − ∫𝑥 cos𝑡
𝑑𝑡,
Cin𝑥
=
−
∫0 𝑡 𝑑𝑡.
𝑡

これらのあいだには以下のような関係がある:∞𝜋,
Si𝑥 − si𝑥 = ∫0 sin𝑡𝑑𝑡=𝑡2
Ci𝑥 = 𝛾 + log𝑥 − Cin𝑥.
前者はDirichlet積分の公式そのものである. 後者の公式中の 𝛾 はEuler定数 𝛾 = 0.5772⋯ である. 以下では後者を示そう.
(1) 0 < 𝑠 < 1 のとき,∞
𝑠−1 𝑒𝑖𝑡 𝑑𝑡 = 𝑒𝜋𝑖𝑠/2 Γ(𝑠) = 𝑒𝜋𝑖𝑠/2 Γ(𝑠 + 1).
𝑡∫0𝑠
ゆえに, 両辺の実部と虚部を取ることによって,cos(𝜋𝑠/2)
𝑠−1∫0 ∞ 𝑡 cos𝑡𝑑𝑡 = 𝑠 Γ(𝑠 + 1),𝑠−1 sin𝑡𝑑𝑡 = sin(𝜋𝑠/2) Γ(𝑠 + 1).
𝑡
∫0
𝑠
∞

証明: ガンマ函数の定義式

において,

𝑢 = −𝑖𝑡 = 𝑒−𝜋𝑖/2 𝑡 とおくと,∞

Γ(𝑠) = ∫0 𝑢𝑠−1 𝑒−𝑢 𝑑𝑢𝑖∞Γ(𝑠) = 𝑒−𝜋𝑖𝑠/2 ∫0 𝑡𝑠−1 𝑒𝑖𝑡 𝑑𝑡.
Cauchyの積分定理によって, 積分経路を正の虚軸から正の実軸に回転できることを示せる:∞

ゆえに上の(1)の公式が成立する.

□

Γ(𝑠) = 𝑒−𝜋𝑖𝑠/2 ∫0 𝑡𝑠−1 𝑒𝑖𝑡 𝑑𝑡.

sin𝑡 を含む公式で, 𝑠 ↘ 0 とするとDirichlet積分の公式が得られる:∞ sin𝑡𝜋∫0 𝑡 𝑑𝑡 = 2 .
(3) ガンマ函数 Γ(𝑠) の 𝑠 = 1 での微係数はEuler定数の −1 倍に等しい:
Γ′(1) = −𝛾.
(2) 上の(1)における証明: ガンマ函数に関するGaussの公式

𝑛𝑠 𝑛! .
Γ(𝑠) = 𝑛→∞lim 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛)

𝑠 について微分すると,
Γ′(𝑠) = lim log𝑛 − 1 + 1 + ⋯ + 1(𝑠 𝑠+1
Γ(𝑠) 𝑛→∞ (𝑠 + 𝑛 ))
なので, 特に 𝑠 = 1 とおくと, Euler定数の定義より,
Γ′(1) = 𝑛→∞lim (log𝑛 − ( 11 + 12 + ⋯ + 𝑛 +1 1 )) = −𝛾. □(4) 𝑠 ↘ 0 において,∞1𝑠−1∫0 𝑡 cos𝑡𝑑𝑡 = 𝑠 − 𝛾 + 𝑂(𝑠).
証明: 上の(1)の cos𝑡 が出て来る公式および cos𝑥 = 1 + 𝑂(𝑥2 ) と Γ(1) = 1 と(3) Γ′ (1) = −𝛾 より,∞
cos(𝜋𝑠/2)
𝑠−1∫0 𝑡 cos𝑡𝑑𝑡 = 𝑠 Γ(𝑠 + 1)
𝑠2 ) (1 − 𝛾𝑠 + 𝑂(𝑠2 )) = 1 − 𝛾 + 𝑂(𝑠). □= 1 + 𝑂(𝑠𝑠(5) 𝑥 > 0 のとき, 𝑠 ↘ 0 において,𝑥
𝑥 cos𝑡 − 1
𝑠−1 cos𝑡𝑑𝑡 = 1 + log𝑥 +𝑡∫0∫0 𝑡 𝑑𝑡 + 𝑂(𝑠).
𝑠
証明: 𝑡𝑠−1 (cos𝑡 − 1) = 𝑂(𝑡𝑠+1 ) に注意すれば,
𝑥𝑥𝑥
𝑠−1 cos𝑡𝑑𝑡 =𝑠−1 𝑑𝑡 + 𝑡𝑠−1 (cos𝑡 − 1)𝑑𝑡𝑡𝑡
∫0∫0 𝑥 ∫0𝑠= 𝑥𝑠 + ∫0 𝑡𝑠 cos𝑡𝑡 − 1 𝑑𝑡
𝑥
= 1𝑠 (1 + 𝑠log𝑥 + 𝑂(𝑠2 )) + ∫0 (1 + 𝑠log𝑡 + 𝑂(𝑡2 )) cos𝑡𝑡 − 1 𝑑𝑡
𝑥
= 1𝑠 + log𝑥 + ∫0 cos𝑡𝑡 − 1 𝑑𝑡 + 𝑂(𝑠). □(6) 𝑥 > 0 のとき,
∞ cos𝑡𝑥 cos𝑡 − 1
𝑑𝑡
=
−𝛾
−
log𝑥
−
∫𝑥 𝑡
∫0 𝑡 𝑑𝑡.
これは Ci𝑥 = 𝛾 + log𝑥 − Cin𝑥 が成立することを意味している.
の両辺の対数を証明: (4)と(5)より,

∞ cos𝑡∞𝑡𝑠−1 cos𝑡𝑑𝑡∫𝑥 𝑡 𝑑𝑡 = lim𝑠↘0 ∫𝑥∞𝑥
𝑠−1 cos𝑡𝑑𝑡 − 𝑡𝑠−1 cos𝑡𝑑𝑡
= lim
𝑡
∫0
)
𝑠↘0 (∫01 − 𝛾 + 𝑂(𝑠) − 1 + log𝑥 + 𝑥 cos𝑡 − 1 𝑑𝑡 + 𝑂(𝑠)
= lim
) (𝑠
∫0 𝑡
))
𝑠↘0 (( 𝑠例: 𝜀,𝑎 > 0 のとき, 𝑡 = 𝑢/𝑎 とおくと, (6)より,
𝑎𝜀 cos𝑢 − 1∞ cos(𝑎𝑡)∞ cos𝑢
𝑑𝑡
=
𝑑𝑢
=
−𝛾
−
log𝑎
+
log𝜀
−
∫𝜀 𝑡
∫𝑎𝜀 𝑢
∫0 𝑢 𝑑𝑢なので, さらに 𝑏 > 0 とすると,
𝑏𝜀 cos𝑢 − 1𝑏𝜀 cos𝑢 − 1∞ cos(𝑎𝑡) − cos(𝑏𝑡)
𝑑𝑡
=
−log𝑎
+
log𝑏
−
𝑑𝑢
+
∫𝜀
∫0 𝑢
∫0 𝑢 𝑑𝑢𝑡なので 𝜀 ↘ 0 の極限を取ると,∞ cos(𝑎𝑡) − cos(𝑏𝑡)𝑑𝑡 = −log𝑎 + log𝑏 = −log 𝑎𝑏 . □∫0𝑡
In [26]:

1 @vars a b t positive=true
2 I1 = sympy.Integral((cos(a*t)-cos(b*t))/t, (t, 0, oo))
3 ld(I1, "=", I1.doit())



∞

∫0
例:

In [27]:cos(𝑎𝑡) − cos(𝑏𝑡) 𝑑𝑡 = −log(𝑎) + log(𝑏)𝑡𝑎1 ,…, 𝑎𝑟 > 0 かつ 𝛼1 + ⋯ + 𝛼𝑟 = 0 のとき, 上の例と同様にして,∞ 𝛼1 cos(𝑎1 𝑡) + ⋯ + 𝛼𝑟 cos(𝑎𝑟 𝑡)
𝑑𝑡 = −(𝛼1 log 𝑎1 + ⋯ + 𝛼𝑟 log 𝑎𝑟 ).
∫0
𝑡
1
2
3
4



∞

∫0

□

@vars a b c d t positive=true@vars α β γ
I1 = sympy.Integral((α*cos(a*t)+β*cos(b*t)+γ*cos(c*t)-(α+β+γ)*cos(d*t))/t, (t, 0, oo))ld(I1, " = ", I1.doit())αcos(𝑎𝑡) + βcos(𝑏𝑡) + γcos(𝑐𝑡) − (α + β + γ)cos(𝑑𝑡) 𝑑𝑡 = −αlog(𝑎) + αlog(𝑑) − βlog(𝑏) + βlog(𝑑) − γlo𝑡10 Gauss積分, ガンマ函数, ベータ函数
黒木玄2018-06-21～2019-04-03, 2020-04-25, 2023-06-22, 2023-11-05
Copyright 2018,2019,2020,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb)
https://genkuroki.github.io/documents/Calculus/10%20Gauss%2C%20Gamma%2C%20Beta.pdf(https://genkuroki.github.io/documents/Calculus/10%20Gauss%2C%20Gamma%2C%20Beta.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール (https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 Gauss積分
1.1 Gauss積分の公式
 1.2 Gauss積分を使う簡単な計算例
1.2.1 Gauss積分1.2.2 正規分布
1.2.3 Lebesgueの収束定理が成立しない場合2
1.2.4 正規分布のモーメント1.3 Gauss分布のFourier変換
 1.4 Gauss積分の公式の導出
1.4.1 方法1: 高さ で輪切りにする方法
1.4.2 方法2: 極座標を使う方法
1.4.3 方法3:と変数変換する方法
 2 ガンマ函数とベータ函数
 2.1 ガンマ函数とベータ函数の定義
2.1.1 ガンマ函数のGauss積分型表示
2.1.2 ガンマ函数のスケール変換
2.1.3 ベータ函数の様々な表示
2.1.4 ガンマ函数を定義する積分の被積分函数のグラフ
2.1.5 ベータ函数を定義する積分の被積分函数のグラフ
 2.2 ガンマ函数の特殊値と函数等式
2.2.1 ガンマ函数の1と1/2での値.
2.2.2 ガンマ函数の函数等式
2.2.3 ガンマ函数の正の半整数での値
2.2.4 ガンマ函数の Ramanujan's master theorem 型解析接続
 2.3 Riemannのゼータ函数の積分表示と函数等式と負の整数と正の偶数における特殊値
2.3.1 Riemannのゼータ函数の積分表示1
2.3.2 Riemannのゼータ函数の0以下での整数での値
2.3.3 交代版のRiemannのゼータ函数の積分表示
2.3.4 Hurwitzのゼータ函数0以下の整数での特殊値がBernoulli多項式で書けること
2.3.5 べき乗和のBernoulli多項式による表示
2.3.6 Riemannのゼータ函数の積分表示2(テータ函数のMellin変換)と函数等式
 2.4 ベータ函数とガンマ函数の関係
2.4.1 方法1: 置換積分と積分の順序交換のみを使う方法
2.4.2 方法2: 極座標変換を使う方法
2.4.3 方法3: y = tx と変数変換する方法
2.4.4 ガンマ函数の1/2での値をベータ函数経由で計算

𝑧𝑦 = 𝑥tan𝜃2.4.5 ベータ函数の応用の雑多の例
2.4.6 B(s, 1/2)の級数展開
 2.5 ガンマ函数の無限積表示
2.5.1 ガンマ函数に関するGaussの公式
2.5.2 指数函数の上からと下からの評価を用いた厳密な議論
2.5.3 ガンマ函数に関するWeierstrassの公式
 2.6 sinとガンマ函数の関係
2.6.1 sinの奇数倍角の公式を用いたsinの無限積表示の導出
2.6.2 Euler's reflection formula2.6.3 cosの偶数倍角の公式を用いたcosの無限積表示の導出
 2.7 Wallisの公式
2.7.1 2種類のWallisの公式の同値性
2.7.2 sinの無限積表示を用いたWallisの公式の証明
2.7.3 ベータ函数の極限でガンマ函数が得らえることを用いWallisの公式の証明
2.7.4 Wallisの公式からGauss積分の値を得る方法
2.8 Legendre's duplication formula 2.9 sinとガンマ函数の関係の再証明
2.9.1 Legendre's duplication formula を用いた Euler's reflection formula の再証明
2.9.2 sinの無限積表示の再証明
 2.10 Lerchの定理とゼータ正規化積
2.10.1 Lerchの定理 (Hurwitzのゼータ函数とガンマ函数の関係)
2.10.2 digamma, trigamma, polygamma 函数
2.10.3 ゼータ正規化積
2.10.4 Lerchの定理を用いたBinetの公式の証明
 3 Stirlingの公式とLaplaceの方法
3.1 Stirlingの公式
3.2 Wallisの公式のStirlingの公式を使った証明
3.3 Gauss's multiplication formula 3.4 Laplaceの方法
3.4.1 Laplaceの方法の解説
3.4.2 Laplaceの方法によるStirlingの公式の導出
3.5 Laplaceの方法の弱形

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#pyplot(fmt=:svg)
pyplot()#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​const latex = sympy.latex
using LaTeXStrings​
using SpecialFunctions
SpecialFunctions.lgamma(x::Real) = logabsgamma(x)[1]​
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/ty​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_frac
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz[1"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 Gauss積分
1.1 Gauss積分の公式

∞ 2
⎯⎯
−𝑥
∫−∞ 𝑒 𝑑𝑥 = √𝜋をGauss積分の公式と呼ぶことにする. 証明は後で行う.
このノートの筆者は大学新入生が習う積分の公式の中でこれが最も重要であると考えている. ガウス積分が重要だと考える理由は以下の通り.
(1) この公式自体が非常に面白い形をしている. 左辺を見てもどこにも円周率は見えないが, 右辺には円周率が出て来る. しかも円周率がそのまま出て来るのではなく, その平方根が出て来る.

(2) 様々な方法を使ってGauss積分の公式を証明できる.
(3) Gauss積分の公式は確率論や統計学で正規分布を扱うときには必須である. 正規分布は中心極限定理によって特別に重要な役目を果たす確率分布である.
(4) Gauss積分はガンマ函数に一般化される.
(5) Gauss積分はLaplaceの方法の基礎である. Laplaceの方法はある種の積分の漸近挙動を調べるための最も基本的な方法であり,解析学の応用において基本的かつ重要である.
(6) 特にGauss積分で階乗に等しい積分を近似することによって, Stirlingの公式が得られる. (Stirlingの公式
平行根の因子はGauss積分を経由して得られる.)
以上のようにGauss積分は純粋数学的にも応用数学的にも基本的かつ重要である.

1.2 Gauss積分を使う簡単な計算例
1.2.1 Gauss積分
問題: 上の公式を使って,

𝑎 > 0 のとき,

∞ 2
⎯⎯⎯⎯
−𝑦 /𝑎
∫−∞ 𝑒 𝑑𝑦 = √𝑎𝜋となることを示せ.
注意:𝑎 を 1/𝑎 で置き換えれば∞ 2−𝑎𝑦 𝑑𝑦 = ⎯⎯⎯𝜋⎯
𝑒
∫−∞
√𝑎

も得られる.

𝑥 = √𝑦⎯⎯𝑎 と置換積分すると∞∞√⎯⎯𝜋 = ∫−∞ 𝑒−𝑥2 𝑑𝑥 = √1⎯⎯𝑎 ∫−∞ 𝑒−𝑦2/𝑎 𝑑𝑦⎯⎯
なので, 両辺に √ 𝑎 をかければ示したい公式が得られる. □解答例: Gauss積分の公式で1.2.2 正規分布問題: 分散𝜎 2 > 0, 平均 𝜇 の正規分布の確率密度函数 𝑝(𝑥) が1 ⎯ 𝑒−(𝑥−𝜇)2/(2𝜎2)𝑝(𝑥) = ⎯⎯⎯⎯⎯⎯⎯√2𝜋𝜎 2で定義される. このとき∞∫−∞ 𝑝(𝑥)𝑑𝑥 = 1となることを示せ. (この問題より, 確率統計学においてGauss積分の公式は必須であることがわかる.)
解答例:

𝑥 = 𝑦 + 𝜇 と置換し, 上の問題の結果を使うと,∞
1 ⎯ ∞ 𝑒−(𝑥−𝜇)2/(2𝜎2) 𝑑𝑥 = ⎯⎯⎯⎯⎯⎯⎯
1 ⎯ ∞ 𝑒−𝑦2/(2𝜎2) 𝑑𝑦𝑝(𝑥)𝑑𝑥=⎯⎯⎯⎯⎯⎯⎯∫−∞√2𝜋𝜎 2 ∫−∞√2𝜋𝜎 2 ∫−∞1 ⎯ √⎯2⎯⎯⎯⎯⎯⎯
2 𝜋⎯ = 1.
= ⎯⎯⎯⎯⎯⎯⎯𝜎□√2𝜋𝜎 2

1.2.3 Lebesgueの収束定理が成立しない場合2𝑓𝑛 (𝑥) を
𝑓𝑛 (𝑥) = √1⎯𝑛𝜋⎯⎯⎯ 𝑒−𝑥2/𝑛問題(Lebesgueの収束定理の結論が成立しない場合2): 函数列と定める. 以下を示せ.

⎯⎯⎯⎯⎯ の𝑛! ∼ 𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛(1)∞∫−∞ 𝑓𝑛 (𝑥)𝑑𝑥 = 1.

(2) 各𝑥 ∈ ℝ ごとに 𝑛→∞lim 𝑓𝑛 (𝑥) = 0.

(3) したがって∞∞

lim ∫−∞ 𝑓𝑛 (𝑥)𝑑𝑥 ≠ ∫−∞ 𝑛→∞
lim 𝑓𝑛 (𝑥)𝑑𝑥.
𝑛→∞

解答例: (1)はGauss積分の公式から得られる(詳細は自分で計算して確認せよ). (3)は(1)と(2)からただちに得られるので, あとは(2)のみを示せば十分である.
となることもわかる.

□

2
𝑥 ∈ ℝ を任意に取って固定する. このとき 𝑛 → ∞ で 𝑥𝑛 → 0, √1⎯𝑛𝜋⎯⎯⎯ → 0 となるので, 𝑓𝑛 (𝑥) → 0

問題: すぐ上の問題の函数

𝑓𝑛 (𝑥) のグラフを描いてみよ.

解答例: 以下のセルのようになる.

𝑛 が大きくなると, 𝑓𝑛 (𝑥) の「分布」は広く拡がる. □In [3]:



1
2
3
4
5
6
7
8
9
10

f(n,x) = exp(-x^2/n)/√(n*π)
x = -10.0:0.05:12.0#cycls = [:solid, :dash, :dashdot, :dashdotdot]
cycls = [:solid, :dash, :dashdot, :dot]ns = [1,2,3,4,5,10, 30, 100]
P = plot(size=(420,250))
for k in 1:lastindex(ns)plot!(x, f.(ns[k],x), label="n = $(ns[k])", ls=cycls[mod1(k, lastindex(cycls))], lw=1
endPOut[3]:

1.2.4 正規分布のモーメント問題: 次を示せ:

注意:𝑎 > 0 と 𝑘 = 0,1,2,… について∞ 2
− 1) 𝑎−(2𝑘+1)/2 = √⎯⎯𝜋 (2𝑘)! 𝑎−(2𝑘+1)/2 .
⎯⎯ 1 ⋅ 3⋯(2𝑘−𝑎𝑥 2𝑘𝑘∫−∞ 𝑒 𝑥 𝑑𝑥 = √𝜋222𝑘 𝑘!

𝑎 を 1/𝑎 で置き換えれば次も得られる:∞ 2
1 ⋅ 3⋯(2𝑘 − 1) √⎯𝑎⎯⎯⎯⎯⎯⎯⎯⎯⎯−𝑥 /𝑎 2𝑘
2𝑘+1 𝜋⎯ = (2𝑘)! √⎯𝑎⎯⎯⎯⎯⎯⎯⎯⎯⎯
2𝑘+1 𝜋⎯.
2𝑘𝑘∫−∞ 𝑒 𝑥 𝑑𝑥 =22 𝑘!

解答例: Gauss積分の公式から得られる公式

の両辺を

∞ 2
⎯⎯ −1/2−𝑎𝑥∫−∞ 𝑒 𝑑𝑥 = √𝜋 𝑎𝑎 で微分して −1 倍する操作を繰り返すと((K)を使う),∞ 2⎯⎯ 1 −3/2−𝑎𝑥 2∫−∞ 𝑒 𝑥 𝑑𝑥 = √𝜋 2 𝑎 ,∞ 2⎯⎯ 1 3 −5/2
−𝑎𝑥 4∫−∞∞ 𝑒 𝑥 𝑑𝑥 = √𝜋 2 2 𝑎 ,⎯⎯ 1 3 5 −7/2
−𝑎𝑥2 6∫−∞ 𝑒 𝑥 𝑑𝑥 = √𝜋 2 2 2 𝑎 .

𝑘 回その操作を繰り返すと,

(1)
(2)

∞ 2
⎯⎯ 1 3 2𝑘 − 1 −(2𝑘+1)/2 .
−𝑎𝑥 2𝑘∫−∞ 𝑒 𝑥 𝑑𝑥 = √𝜋 2 2 ⋯ 2 𝑎
これより, (1)の前半が成立することがわかる. 後半の成立は

1 ⋅ 3⋯(2𝑘 − 1) = 1 ⋅ 3⋯(2𝑘 − 1) 2 ⋅ 4⋯(2𝑘) = (2𝑘)!
2𝑘
2𝑘
2𝑘 𝑘!
22𝑘 𝑘!

□
注意: 奇数の積 1 ⋅ 3⋯(2𝑘 − 1) について(3)の計算法はよく使われる:(2𝑘)! .
1 ⋅ 3⋯(2𝑘 − 1) = 1 ⋅ 3⋯(2𝑘 − 1) 2 ⋅ 4⋯(2𝑘)
=
𝑘
2 𝑘!
2𝑘 𝑘!
によって確認できる.

例えば二項係数に関するもよく出て来る.

□𝑘 (−1/2)(−3/2)⋯(−(2𝑘 − 1)/2)(−1)𝑘(−1/2
=
(−1)
)
𝑘!
𝑘
1
⋅
3⋯(2𝑘
−
1)
1 2𝑘
= 2𝑘 𝑘! = 22𝑘(2𝑘)!
=𝑘!𝑘! 22𝑘 ( 𝑘 )1.3 Gauss分布のFourier変換

𝑎 > 0 であるとする. 𝑒−𝑥2/𝑎 型の函数をGauss分布函数と呼ぶことがある.
一般に函数 𝑓(𝑥) に対して,
̂ = ∫ ∞ 𝑒−𝑖𝑝𝑥 𝑓(𝑥)𝑑𝑥
𝑓 (𝑝)−∞を 𝑓 のFourier変換(フーリエ変換)と呼ぶ. もしも実数値函数 𝑓(𝑥) が偶函数であれば,
𝑒−𝑖𝑝𝑥 𝑓(𝑥) = 𝑓(𝑥)cos(𝑝𝑥) − 𝑖𝑓(𝑥)sin(𝑝𝑥)の虚部は奇函数になり, その積分は消えるので∞

̂ = ∫ 𝑓(𝑥)cos(𝑝𝑥)𝑑𝑥
𝑓 (𝑝)
−∞
となる.

𝑎 > 0 とする. 𝑓(𝑥) = 𝑒−𝑥2/𝑎 のFourier変換を求めよ.
∞ (−𝑝2 )𝑘𝑥2𝑘
解答例1: cos(𝑝𝑥) =∑ (2𝑘)! より,
問題:

𝑘=0

̂ = ∫ ∞ 𝑒−𝑥2/𝑎 cos(𝑝𝑥)𝑑𝑥 = ∑∞ (−𝑝2 )𝑘 ∫ ∞ 𝑒−𝑥2/𝑎 𝑥2𝑘 𝑑𝑥
𝑓 (𝑝)−∞𝑘=0 (2𝑘)! −∞∞ (−𝑝2 )𝑘 (2𝑘)! ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯∞2 𝑘= ∑ (2𝑘)! 22𝑘 𝑘! √𝑎2𝑘+1 𝜋 = √⎯𝑎𝜋⎯⎯⎯ ∑ (−𝑎𝑝𝑘!/4) = √⎯𝑎𝜋⎯⎯⎯ 𝑒−𝑎𝑝2/4 .
𝑘=0
𝑘=0
3つ目の等号で上の方の問題の結果を用いた. □解答例2: 複素解析を用いる. 複素解析さえ認めて使えば, 形式的によりわかり易く計算できる.

22− 𝑥𝑎2 − 𝑖𝑝𝑥 = − 1𝑎 (𝑥2 + 𝑖𝑎𝑝𝑥) = − 1𝑎 ((𝑥 + 𝑖𝑎𝑝2 ) − −𝑎42 𝑝2 ) = − 1𝑎 (𝑥 + 𝑖𝑎𝑝2 ) − 𝑎4𝑝2
𝑖𝑎𝑝 と置換すると,と平方完成し, 𝑥 = 𝑦 −2
̂ = ∫ ∞ 𝑒−𝑥2/𝑎 𝑒−𝑖𝑝𝑥 𝑑𝑥 = ∫ ∞ 𝑒−(𝑥2/𝑎+𝑖𝑝𝑥) 𝑑𝑥
𝑓 (𝑝)
−∞
−∞
2
∞+𝑖𝑎𝑝/2∞
2= ∫−∞ exp(− 1𝑎 (𝑥 + 𝑖𝑎𝑝2 ) − 𝑎𝑝4 ) 𝑑𝑥 = 𝑒−𝑎𝑝2/4 ∫−∞+𝑖𝑎𝑝/2 𝑒−𝑦2/𝑎 𝑑𝑦.

(3)Cauchyの積分定理より,∞+𝑖𝑎𝑝/2 2∞ 2⎯⎯⎯⎯−𝑦 /𝑎 𝑑𝑦 =−𝑦 /𝑎𝑒∫−∞+𝑖𝑎𝑝/2∫−∞ 𝑒 𝑑𝑦 = √𝑎𝜋.
したがって,

̂ = ∫ ∞ 𝑒−𝑥2/𝑎 𝑒−𝑖𝑝𝑥 𝑑𝑥 = √⎯𝑎𝜋⎯⎯⎯ 𝑒−𝑎𝑝2/4 .
𝑓 (𝑝)
−∞
𝐶
𝑅 + 𝑖𝑎𝑝/2

−𝑅

𝑅

□

補足: 複素平面上の経路 を次のように定める: まずから に直線的に移動する. 次にする. その次にからに直線的に移動する. 最後にからって得られる長方形型の経路が である. 上の解答例2の中のCauchyの積分定理をこの経路とすると, 左右の縦方向に移動する経路上での積分が に収束することを使う.

𝑅→∞𝑒−𝑎𝑥2 のFourier変換については−𝑅 + 𝑖𝑎𝑝/2
𝐶

0−𝑅 + 𝑖𝑎𝑝/2□

𝑅 から 𝑅 + 𝑖𝑎𝑝/2 に直線的に移動−𝑅 に直線的に移動する. これによ
𝐶𝑅 に適用した場合を使っている.

黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)の第6節も参照せよ.

1.4 Gauss積分の公式の導出
Gauss積分の計算の仕方については
黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)の第7節および高木貞治, 解析概論, 岩波書店 (1983)の第3章§35の例5,6 (https://twitter.com/genkuroki/status/1018654177164083201)を参照せよ.

∞
𝐼 = ∫−∞ 𝑒−𝑥2 𝑑𝑥 とおく. 𝐼 = √⎯⎯𝜋 であることを示したい. そのためには∞∞

𝐼 2 = ∫−∞ 𝑒−𝑥2 𝑑𝑥 ⋅ ∫−∞ 𝑒−𝑦2 𝑑𝑦∞∞∞∞= ∫−∞ (∫−∞ 𝑒−𝑥2 𝑑𝑥) 𝑒−𝑦2 𝑑𝑦 = ∫−∞ (∫−∞ 𝑒−(𝑥2+𝑦2) 𝑑𝑥) 𝑑𝑦

が𝜋 に等しいことを証明すればよい. 上の計算の2つ目と3つ目の等号で積分の線形性(A)を用いた.

𝑧 で輪切りにする方法∞∞
𝐼 2 = ∫−∞ (∫−∞ 𝑒−(𝑥2+𝑦2) 𝑑𝑥) 𝑑𝑦 は2変数函数 𝑧 = 𝑒−(𝑥2+𝑦2) の 𝑥𝑦𝑧 空間内のグラフと 𝑥𝑦 平面 𝑧 = 0 のあいだに挟まれた
1.4.1 方法1: 高さ

山型の領域の体積を意味する.
なぜならば,∞

𝑆(𝑦) = ∫−∞ 𝑒−(𝑥2+𝑦2) 𝑑𝑥 はその領域の 𝑦 を固定したときの切断面の面積に等しく, ∫−∞∞ 𝑆(𝑦)𝑑𝑦 はその切断面の面積の積分なので領域全体の体積に等しいからである. 一般に, 長さを積分すれば面積になり、面積を積分すれば体積になる.

𝑧 での切断面の面積の 𝑧 = 0 から 𝑧 = 1 までの積分に等しい. 高さ 𝑧 での切断面は半径⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
⎯
2
2
+
=
−log𝑧
𝑥
𝑦
の円盤になり,その面積は −𝜋log𝑧 になる. ゆえに√√
1
𝐼 2 = ∫0 (−𝜋log𝑧)𝑑𝑧 = −𝜋[𝑧log𝑧 − 𝑧]10 = 𝜋.
∞ 2⎯⎯
これより 𝐼 = ∫−∞ 𝑒−𝑥 𝑑𝑥 = √ 𝜋 であることがわかる.
その山型の領域の体積は高さ

1.4.2 方法2: 極座標を使う方法
以下の方法は2重積分の積分変数の変換の仕方(Jacobianが出て来る)を知っておかなければ使えない.

𝑥 = 𝑟cos𝜃, 𝑦 = 𝑟sin𝜃 とおくと,

𝐼2 =

2𝜋

∫0 𝑑𝜃 ∫0∞

𝑟𝑒−𝑟2 𝑑𝑟 = 2𝜋 𝑒−𝑟∞

1 = 𝜋.
=
2𝜋2[ −2 ]
20⎯⎯
ゆえに 𝐼 = √ 𝜋
1.4.3 方法3: 𝑦 = 𝑥tan𝜃 と変数変換する方法
𝐼 2 は次のようにも表せる:∞∞
𝐼 2 = 2 ∫0 (∫−∞ 𝑒−(𝑥2+𝑦2) 𝑑𝑦) 𝑑𝑥.
この積分内で 𝑥 は 𝑥 > 0 を動くと考える.
内側の積分で積分変数を −∞ < 𝑦 < ∞ から −𝜋/2 < 𝜃 < 𝜋/2 に 𝑦 = 𝑥tan𝜃 によって変換すると,
2cos𝜃 > 0, 𝑑𝑦 = cos𝑥2 𝜃 𝑑𝜃, 𝑥2 + 𝑦2 = 𝑥2 (1 + tan2 𝜃) = cos𝑥2 𝜃
なので

𝜋/2
∞
2
𝐼 2 = 2 ∫0 (∫−𝜋/2 exp(− cos𝑥2 𝜃 ) cos𝑥2 𝜃 𝑑𝜃) 𝑑𝑥.

ゆえに積分の順序を交換すると((J)を使う),∞
𝜋/22
𝐼 2 = 2 ∫−𝜋/2 (∫0 exp(− cos𝑥2 𝜃 ) cos𝑥2 𝜃 𝑑𝑥) 𝑑𝜃
𝑥=∞
𝜋/2
𝜋/2
= 2 ∫−𝜋/2 [ −21 exp(− cos𝑥22 𝜃 )] 𝑑𝜃 = 2 ∫−𝜋/2 12 𝑑𝜃 = 2 𝜋2 = 𝜋.
𝑥=0⎯⎯
したがって 𝐼 = √ 𝜋 .
注意: 極座標変換 (𝑥,𝑦) = (𝑟cos𝜃,𝑟sin𝜃) が有効な場面では, 𝑦 = 𝑥tan𝜃 という変数変換も有効なことが多い. tan𝜃 の幾何的な意味は「原点を通る直線の傾き」であった. その意味でも 𝑦 = 𝑥tan𝜃 は自然な変数変換だと言える. □2 ガンマ函数とベータ函数
2.1 ガンマ函数とベータ函数の定義

𝑠 > 0, 𝑝 > 0, 𝑞 > 0 と仮定する. Γ(𝑠) と 𝐵(𝑝,𝑞) を次の積分で定義する:∞
1
Γ(𝑠) = ∫0 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥, 𝐵(𝑝,𝑞) = ∫0 𝑥𝑝−1 (1 − 𝑥)𝑞−1 𝑑𝑥.
Γ(𝑠) をガンマ函数と, 𝐵(𝑝,𝑞) をベータ函数と呼ぶ.
2.1.1 ガンマ函数のGauss積分型表示問題(ガンマ函数のGauss積分型の表示): 次を示せ:∞

Γ(𝑠) = 2 ∫0 𝑒−𝑦2 𝑦2𝑠−1 𝑑𝑦.
解答例: ガンマ函数の積分による定義式において 𝑥 = 𝑦2 と置換すると,∞∞
Γ(𝑠) = ∫0 𝑒−𝑦2 𝑦2𝑠−2 2𝑦𝑑𝑦 = 2 ∫0 𝑒−𝑦2 𝑦2𝑠−1 𝑑𝑦.
注意: この公式より, ガンマ函数は本質的にGauss積分の一般化になっていることがわかる.
In [4]:

Out[4]:

1
2
3
4

□
□

y = symbols("y")
s = symbols("s", positive=true)
sol = 2*integrate(e^(-y^2)*y^(2s-1), (y,0,oo))
latexstring(raw"\ds 2\int_0^\infty e^{-y^2} y^{2s-1} \,dy =", latex(sol))∞

2 ∫0 𝑒−𝑦2 𝑦2𝑠−1 𝑑𝑦 = Γ(𝑠)

問題: 次を示せ:

略解:𝑟 > 0 について

1 1−𝑥𝑟
∫0 𝑒 𝑑𝑥 = 𝑟 Γ ( 𝑟 ) .
∞𝑥 = 𝑡1/𝑟 と置換すればただちに得られる. □注意: ガンマ函数の函数等式(下の方で示す)もしくは部分積分によってIn [5]:

1
2
3
4



Out[5]:

1 Γ 1 = Γ 1 + 1 が成立することもわかる. □𝑟 (𝑟) ( 𝑟)x = symbols("x")
r = symbols("r", positive=true)
sol = integrate(e^(-x^r), (x,0,oo))
latexstring(raw"\ds \int_0^\infty e^{-x^r} \,dx =", latex(sol))−𝑥𝑟 𝑑𝑥 = Γ 1 + 1
𝑒
∫0
( 𝑟)
∞

2.1.2 ガンマ函数のスケール変換
問題(ガンマ函数のスケール変換): 次を示せ:∞−𝑥/𝜃 𝑠−1𝑠∫0 𝑒 𝑥 𝑑𝑥 = 𝜃 Γ(𝑠) (𝜃 > 0, 𝑠 > 0).
ガンマ函数はこの形式でも非常によく使われる.

𝑥 = 𝜃𝑦 と置換すると, 𝑥𝑠−1 𝑑𝑥 = 𝜃𝑠 𝑦𝑠−1 𝑑𝑦 なので示したい公式が得られる. □.

解答例:
In [6]:

1
2
3
4
5



Out[6]:∞

x = symbols("x")
s = symbols("s", positive=true)t = symbols("t", positive=true)
sol = simplify(integrate(e^(-x/t)*x^(s-1), (x,0,oo)))latexstring(raw"\ds \int_0^\infty e^{-x/t} x^{s-1} \,dx =", latex(sol))−𝑥/𝑡 𝑠−1𝑠∫0 𝑒 𝑥 𝑑𝑥 = 𝑡 Γ(𝑠)2.1.3 ベータ函数の様々な表示問題(ベータ函数の様々な表示): 次を示せ:

𝜋/2∞∞
𝐵(𝑝,𝑞) = 2 ∫0 (cos𝜃)2𝑝−1 (sin𝜃)2𝑞−1 𝑑𝜃 = ∫0 (1 +𝑡𝑝−1𝑡)𝑝+𝑞 𝑑𝑡 = 1𝑝 ∫0 (1 + 𝑢𝑑𝑢1/𝑝)𝑝+𝑞 .

ベータ函数のこれらの表示もよく使われる.
解答例:

𝐵(𝑝,𝑞) = ∫01 𝑥𝑝−1 (1 − 𝑥)𝑞−1 𝑑𝑥 で 𝑥 = cos2 𝜃 と置換すると,
𝑑𝑥 = −2cos𝜃 sin𝜃 𝑑𝜃

より,

𝜋/2

𝐵(𝑝,𝑞) = 2 ∫0 (cos𝜃)2𝑝−1 (sin𝜃)2𝑞−1 𝑑𝜃.
𝐵(𝑝,𝑞) = ∫01 𝑥𝑝−1 (1 − 𝑥)𝑞−1 𝑑𝑥 で 𝑥 = 1 +𝑡 𝑡 = 1 − 1 +1 𝑡 と置換すると,
𝑑𝑥 = 1 𝑑𝑡+ 𝑡
より,

𝑞−1
∞
∞ 𝑝−1
𝐵(𝑝,𝑞) = ∫0 ( 1 +𝑡 𝑡 )𝑝−1 ( 1 +1 𝑡 ) (1 +𝑑𝑡𝑡)2 = ∫0 (1 +𝑡 𝑡)𝑝+𝑞 𝑑𝑡

さらに

𝑡 = 𝑢1/𝑝 と置換すると,𝑡𝑝−1 𝑑𝑡 = 1𝑝 𝑑𝑢

より,

∞ 𝑝−1
∞
𝐵(𝑝,𝑞) = ∫0 (1 +𝑡 𝑡)𝑝+𝑞 𝑑𝑡 = 1𝑝 ∫0 (1 + 𝑢𝑑𝑢1/𝑝)𝑝+𝑞 .

□𝑎 < 𝑏, 𝑝 > 0, 𝑞 > 0 のとき,
𝑏
𝑝−1
𝑞−1
𝑝+𝑞−1
∫𝑎 (𝑥 − 𝑎) (𝑏 − 𝑥) 𝑑𝑥 = (𝑏 − 𝑎) 𝐵(𝑝,𝑞).
証明: 𝑥 = (1 − 𝑡)𝑎 + 𝑡𝑏 = 𝑎 + (𝑏 − 𝑎)𝑡 と積分変数を置換すると,
𝑏1𝑝−1 (𝑏 − 𝑥)𝑞−1 𝑑𝑥 = ((𝑏 − 𝑎)𝑡)𝑝−1 ((𝑏 − 𝑎)(1 − 𝑡))𝑞−1(𝑏 − 𝑎)𝑑𝑡 = (𝑏 − 𝑎)𝑝+𝑞−1𝐵(𝑝,𝑞).
(𝑥
−
𝑎
)
∫𝑎
∫0
1
1 1 1
例: 𝐵(2,2) =∫0 𝑥(1 − 𝑥)𝑑𝑥 = 2 − 3 = 6 なので𝑏
3 𝐵(2,2) = (𝑏 − 𝑎)3 .
(𝑥
−
𝑎)(𝑏
−
𝑥)𝑑𝑥
=
(𝑏
−
𝑎
□
)
∫𝑎
6
問題: 次を示せ.

2.1.4 ガンマ函数を定義する積分の被積分函数のグラフ
問題: ガンマ函数を定義する積分の被積分函数のグラフを色々な解答例: 次のセルを見よ.

□𝑠 > 0 について描いてみよ.

In [7]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14

In [8]:



1 plot(PP[1:3]...; size=(750, 200), legend=false, layout=@layout([a b c]))# ガンマ函数の積分の被積分函数のグラフ​
f(s,x) = e^(-x)*x^(s-1)
x = 0.00:0.05:30.0
PP = []
for s in [1/2, 1, 2, 3, 6, 10]
P = plot(x, f.(s,x), title="s = $s", titlefontsize=10)
push!(PP, P)
end
for s in [15, 20, 30]
x = 0:0.02:2.2s
P = plot(x, f.(s,x), title="s = $s", titlefontsize=10)
push!(PP, P)
end

Out[8]:

In [9]:

Out[9]:

1 plot(PP[4:6]..., size=(750, 200), legend=false, layout=@layout([a b c]))□In [10]:

1 plot(PP[7:9]..., size=(750, 200), legend=false, layout=@layout([a b c]))Out[10]:𝑠 を大きくすると, ガンマ函数の被積分函数(を函数で割ったもの)は正規分布の確率密度函数とほとんどぴったり一致するようになる. 次のセルを見よ.
In [11]:



1
2
3
4
5
6
7
8
9
10
11

# f(s,x) = e^{-x} x^{s-1} / Γ(s)# g(s,x) = e^{-(x-s)^2/(2s)} / √(2πs)​
f(s,x) = e^(-x+(s-1)*log(x)-lgamma(s))
g(s,x) = e^(-(x-s)^2/(2s)) / √(2π*s)s = 100
x = 0:0.5:2splot(size=(400, 250))
plot!(title="y = e^(-x) x^(s-1)/Gamma(s), s = $s", titlefontsize=11)
plot!(x, f.(s,x), label="Gamma dist", lw=2)
plot!(x, g.(s,x), label="normal dist", ls=:dash, lw=2)

Out[11]:2.1.5 ベータ函数を定義する積分の被積分函数のグラフ
問題: ベータ函数を定義する積分の被積分函数のグラフを色々な解答例: 次のセルを見よ.
In [12]:



1
2
3
4
5
6
7
8
9
10

□

𝑝,𝑞 > 0 について描いてみよ.

# ベータ函数の積分の被積分函数のグラフ​
f(p,q,x) = x^(p-1)*(1-x)^(q-1)
x = 0.002:0.002:0.998
PP = []for (p,q) in [(1/2,1/2), (1,1), (1,2), (2,2), (2,3), (2,4), (4,6), (8, 12), (16, 24)]y = f.(p,q,x)
P = plot(x, y, title="(p,q) = ($p,$q)", titlefontsize=10, xlims=(0,1), ylims=(0,1.05*m
push!(PP, P)
end

In [13]:

1 plot(PP[1:3]..., size=(750, 200), legend=false, layout=@layout([a b c]))Out[13]:

In [14]:

1 plot(PP[4:6]..., size=(750, 200), legend=false, layout=@layout([a b c]))Out[14]:

In [15]:

1 plot(PP[7:9]..., size=(750, 200), legend=false, layout=@layout([a b c]))Out[15]:𝑝,𝑞 がそれらの比を保ちながら大きくすると, ベータ函数の被積分函数をベータ函数で割ったものは正規分布の被積分函数にほとんどぴったり一致するようになる. 次のセルを見よ.

In [16]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# f(p,q,x) = x^{p-1} (1-x)^{q-1} / B(p,q)# μ = p/(p+q)# σ² = pq/((p+q)^2(p+q+1))# g(μ,σ²,x) = e^{-(x-μ)^2/(2σ²)} / √(2πσ²)​f(p,q,x) = x^(p-1)*(1-x)^(q-1)/beta(p,q)
g(μ,σ²,x) = e^(-(x-μ)^2/(2*σ²)) / √(2π*σ²)p, q = 45,55
μ = p/(p+q)σ² = p*q/((p+q)^2*(p+q+1))
x = 0.000:0.002:1.000plot(size=(400, 250))
plot!(title="y = x^(p-1) (1-x)^(q-1) / B(p,q), (p,q) = ($p,$q)", titlefontsize=10)
plot!(x, f.(p,q,x), label="Beta dist", lw=2)
plot!(x, g.(μ,σ²,x), label="normal dist", lw=2, ls=:dash)Out[16]:

2.2 ガンマ函数の特殊値と函数等式
2.2.1 ガンマ函数の1と1/2での値.
問題(ガンマ函数の最も簡単な特殊値):
解答例: 前者は

Γ(1) = 1 と Γ(1/2) = √⎯⎯𝜋 を示せ.
∞

Γ(1) = ∫0 𝑒−𝑥 𝑑𝑥 = [−𝑒−𝑥 ]∞0 = 1.
∞ 2⎯⎯と容易に示される. 後者を示すためには Γ(1/2) がGauss積分 ∫−∞ 𝑒−𝑦 𝑑𝑦 = √ 𝜋 に等しいことを示せばよい. 𝑥 = 𝑦2 で置換積分すると,注意: 上の問題の解答より,
言える.

□

∞
∞
Γ(1/2) = ∫0 𝑒−𝑥 𝑥1/2−1 𝑑𝑥 = ∫0 𝑒−𝑦2 1𝑦 2𝑦𝑑𝑦∞∞
= 2 ∫0 𝑒−𝑦2 𝑑𝑦 = ∫−∞ 𝑒−𝑦2 𝑑𝑦 = √⎯⎯𝜋.

□Γ(1/2) は本質的にGauss積分に等しい. その意味でガンマ函数はGauss積分の一般化になっていると

2.2.2 ガンマ函数の函数等式

𝑠 > 0 のとき Γ(𝑠 + 1) = 𝑠Γ(𝑠) となることを示せ.
解答例: 部分積分を使う. 𝑠 > 0 と仮定する. このとき∞∞
Γ(𝑠 + 1) = ∫0 𝑒−𝑥 𝑥𝑠 𝑑𝑥 = ∫0 (−𝑒−𝑥 )′𝑥𝑠 𝑑𝑥∞∞= ∫0 𝑒−𝑥 (𝑥𝑠 )′ 𝑑𝑥 = ∫0 𝑒−𝑥 𝑠𝑥𝑠−1 𝑑𝑥 = 𝑠Γ(𝑠).
3つ目の等号で部分積分を行った. そのとき, 𝑥 ↘ 0 でも 𝑥 → ∞ でも 𝑒−𝑥 𝑥𝑠 → 0 となることを使った(𝑠 > 0 と仮定したことに注意せよ). (積分以外の項が消える.) □注意: 上の問題の結果を使えば, 𝑠 < 0, 𝑠 ≠ 0,−1,−2,… のとき 𝑠 + 𝑛 > 0 となる整数 𝑛 を取れば,
Γ(𝑠 + 𝑛)Γ(𝑠) = 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛 − 1)の右辺はwell-definedになるので, この公式によってガンマ函数を 𝑠 < 0, 𝑠 ≠ 0,−1,−2,… の場合に自然に拡張できる. □問題(ガンマ函数の函数等式):

𝑛 についてΓ(𝑛 + 1) = 𝑛Γ(𝑛) = 𝑛(𝑛 − 1)Γ(𝑛 − 1) = ⋯ = 𝑛(𝑛 − 1)⋯1Γ(1) = 𝑛!.
すなわち, Γ(𝑠 + 1) は階乗 𝑛! の連続変数 𝑠 への拡張になっていることがわかる. □注意(ガンマ函数は階乗の一般化): 以上の問題の結果より, 非負の整数

2.2.3 ガンマ函数の正の半整数での値

𝑘 に対して− 1) √⎯⎯𝜋 = (2𝑘)! √⎯⎯𝜋Γ((2𝑘 + 1)/2) = 1 ⋅ 3⋯(2𝑘𝑘
2
22𝑘 𝑘!
⎯⎯
解答例1: ガンマ函数の函数等式と Γ(1/2) = √ 𝜋 より
Γ ( 2𝑘 2+ 1 ) = 2𝑘 2− 1 Γ ( 2𝑘 2− 1 ) = 2𝑘 2− 1 2𝑘 2− 3 Γ ( 2𝑘 2− 3 ) = ⋯− 1) √⎯⎯𝜋.
= 2𝑘 2− 1 2𝑘 2− 3 ⋯ 12 Γ ( 12 ) = 1 ⋅ 3⋯(2𝑘
2𝑘
問題(ガンマ函数の正の半整数での値): 次を示せ: 非負の整数

これで示したい公式の1つ目の等号は示せた. 2つ目の等号は上の方のGauss積分の応用問題で使った方法を使えば同様に示される.

□Γ(𝑠) = 2 ∫0∞ 𝑒−𝑦2 𝑦2𝑠−1 𝑑𝑦 という表示を使うと,∞∞
Γ((2𝑘 + 1)/2) = 2 ∫0 𝑒−𝑦2 𝑦2𝑘 𝑑𝑦 = ∫−∞ 𝑒−𝑦2 𝑦2𝑘 𝑑𝑦
なので, 上の方のGauss積分の応用問題に関する結果から欲しい公式が得られる. □解答例2: ガンマ函数の2.2.4 ガンマ函数の Ramanujan's master theorem 型解析接続問題:

𝑁 = 0,1,2,… とする. 次の公式を示せ:
𝑁
∞
𝑘 𝑠−1
Γ(𝑠) = ∫0 (𝑒−𝑥 − ∑ (−𝑥)𝑘! ) 𝑥 𝑑𝑥

解答例:

Re𝑠 > 0 のとき

𝑘=0(−(𝑁 + 1) < Re𝑠 < −𝑁).

1

−𝑥 𝑠−1∫0 𝑒 𝑥 𝑑𝑥
𝑁
𝑁 (−1)𝑘 1
1
𝑘 𝑠−1= ∫0 (𝑒−𝑥 − ∑ (−𝑥)𝑑𝑥+𝑥𝑥𝑠+𝑘−1 𝑑𝑥∑
𝑘=0 𝑘! )𝑘=0 𝑘! ∫0𝑁
𝑁 (−1)𝑘 1
1
𝑘 𝑠−1= ∫0 (𝑒−𝑥 − ∑ (−𝑥)
𝑑𝑥
+
.
𝑥
∑
𝑘=0 𝑘! )𝑘=0 𝑘! 𝑠 + 𝑘1
この計算の最後の結果中の積分は Re𝑠 > −(𝑁 + 1) で収束し, この計算結果は ∫0 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 の Re𝑠 > −(𝑁 + 1) への解析接続を与える.

∫1∞ 𝑥𝑠+𝑘−1 𝑑𝑥 = −1/(𝑠 + 𝑘) (Re𝑠 < −𝑘) を使った上と同様の計算によって, Re𝑠 < −𝑁 のとき∞−𝑥 𝑠−1∫1 𝑒 𝑥 𝑑𝑥
𝑁𝑁∞= ∫1 (𝑒−𝑥 − ∑ (−𝑥𝑘!)𝑘 ) 𝑥𝑠−1 𝑑𝑥 − ∑ (−1𝑘!)𝑘 𝑠 +1 𝑘𝑘=0
𝑘=0となることがわかる.

−(𝑁 + 1) < Re𝑠 < −𝑁 のとき, 以上の2つの結果を足し合わせると, ∑ の項がキャンセルして消えて,
𝑁
∞
𝑘 𝑠−1
Γ(𝑠) = ∫0 (𝑒−𝑥 − ∑ (−𝑥)𝑘! ) 𝑥 𝑑𝑥が得られる.

□

𝑘=0

注意: この公式は Ramanujan's master theorem (https://www.google.com/search?q=Ramanujan+master+theorem) の特別な場合になっている. 論文

Tewodros Amdeberhen, Olivier Espinosa, Ivan Gonzalez, Marshall Harrison, Victor H. Moll, and Armin Straub. Ramanujan’s
Master Theorem. The Ramanujan Journal 29(1-3). DOI: 10.1007/s11139-011-9333-y (ResearchGate(https://www.researchgate.net/publication/257643116_Ramanujan's_Master_Theorem))の Example 8.2 は上の公式の𝑁 = 0 の場合になっている. □2.3 Riemannのゼータ函数の積分表示と函数等式と負の整数と正の偶数における特殊値
この節はこのノートを最初に読むときには飛ばして読んでも構わない. ガンマ函数の理論がRiemannのゼータ函数の理論と密接に関係していることを認識しておけば問題ない.
Bernoulli数やBernoulli多項式に関してはノート「13 Euler-Maclaurinの和公式(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb)」により詳しい解説がある.

2.3.1 Riemannのゼータ函数の積分表示1
問題(Riemannのゼータ函数の積分表示1): 次をが成立することを示せ.

∞
1 ∞ 𝑥𝑠−1 𝑑𝑥 (𝑠 > 1).
𝜁(𝑠) = ∑ 𝑛1𝑠 = Γ(𝑠)∫0 𝑒𝑥 − 1𝑛=1
𝑒𝑥 − 1 → 1 となるので, 𝑥 は 𝑥 = 0 まで連続的に拡張され, この公式の積分は注意: 𝑥 → 0 のとき𝑥𝑒𝑥 − 1∞ 𝑥𝑠−1 𝑑𝑥∞ 𝑥
𝑠−2=∫0 𝑒𝑥 − 1 ∫0 𝑒𝑥 − 1 𝑥 𝑑𝑥と書けるので, 𝑠 − 2 > −1 すなわち 𝑠 > 1 ならば収束している. □1 = 1 ∞ 𝑒−𝑛𝑥 𝑥𝑠−1 𝑑𝑥 なので,解答例: ガンマ函数のスケール変換に関する問題の結果より,
𝑛𝑠 Γ(𝑠) ∫0∞
1 ∞ ∞ 𝑒−𝑛𝑥 𝑥𝑠−1 𝑑𝑥
𝜁(𝑠) = ∑ 𝑛1𝑠 = Γ(𝑠)∑𝑛=1𝑛=1 ∫0∞∞∞ 𝑥𝑠−1 𝑑𝑥
1−𝑛𝑥 𝑥𝑠−1 𝑑𝑥 = 1= Γ(𝑠)𝑒∫0 ∑Γ(𝑠) ∫0 𝑒𝑥 − 1 . □𝑛=1

定義: Bernoulli数

𝐵𝑛 (𝑛 = 0,1,2,…) を次の条件によって定める:
𝑧 = ∞ 𝐵𝑛 𝑧𝑛 .
𝑒𝑧 − 1 ∑ 𝑛!
𝑛=1□

𝐵0 = 1, 𝐵1 = − 12 であり, 𝑛 が3以上の奇数のとき 𝐵𝑛 = 0 となることを示せ.
𝑧
解答例: 𝑧 → 0 のとき,
𝑒𝑧 − 1 → 1 より 𝐵0 = 1 となる. さらに,𝑧 + 𝑧 = 𝑧 𝑒𝑧 + 1 = 𝑧 𝑒𝑧/2 + 𝑒−𝑧/2
𝑒𝑧 − 1 2 2 𝑒𝑧 − 1 2 𝑒𝑧/2 − 𝑒−𝑧/21であることと, これが偶函数であることから, 𝐵1 = − でかつ 𝑛 が3以上の奇数ならば 𝐵𝑛 = 0 となることがわかる. □2問題(Riemannのゼータ函数の積分表示1'): 非負の整数 𝑁 に対して, 次を示せ:
1 ∞ 𝑥𝑠−1 𝑑𝑥 + 1 𝑥 − 𝑁 𝐵𝑘 𝑥𝑘 𝑥𝑠−2 𝑑𝑥 + 𝑁 𝐵𝑘 1 .
𝜁(𝑠) = Γ(𝑠)∑ 𝑘! 𝑠 + 𝑘 − 1 ][∫1 𝑒𝑥 − 1 ∫0 ( 𝑒𝑥 − 1 ∑ 𝑘! )
問題:

𝑘=0

𝑘=0

𝑠 > −𝑁 で絶対収束していることを示せ.
∞
1
解答例: Riemannのゼータ函数の積分表示1の公式で積分を ∫1 と ∫0 に分けて, 𝑘 = 0,1,…,𝑁 に対する
1 𝐵𝑘
𝐵𝑘 1
𝑠+𝑘−2
∫0 𝑘! 𝑥 𝑑𝑥 = 𝑘! 𝑠 + 𝑘 − 1
さらに右辺の括弧の内側の2つ目の積分がを足して引けば示したい公式が得られる.

1

1𝑥 − 𝑁 𝐵𝑘 𝑥𝑘 = 𝑂(𝑥𝑁+1 )𝑒𝑥 − 1 ∑𝑘=0 𝑘!

𝑁+1 𝑠−2𝑠+𝑁−1∫0 𝑥 𝑥 𝑑𝑥 = ∫0 𝑥 𝑑𝑥 が 𝑠 > −𝑁 で絶対収束していることから, 右辺の括弧の内側の2つ目の積分もそこで収束している. □であり,

2.3.2 Riemannのゼータ函数の0以下での整数での値

𝜁(𝑠) を 𝑠 > −𝑁 まで拡張しておくとき,
𝜁(0) = − 12 , 𝜁(−𝑟) = − 𝑟𝐵+𝑟+11 (𝑟 = 1,2,3,…)となることを示せ. (𝑟 が2以上の偶数のとき 𝐵𝑟+1 = 0 となることに注意せよ.)問題: Riemannのゼータ函数の積分表示1'の右辺で解答例: ガンマ函数の函数等式より,

𝑠(𝑠 + 1)⋯(𝑠 + 𝑘 − 2)(𝑠 + 𝑘 − 1) 𝐵𝑘 1
1 𝐵𝑘 1
Γ(𝑠) 𝑘! 𝑠 + 𝑘 − 1 =Γ(𝑠 + 𝑘)𝑘! 𝑠 + 𝑘 − 1
𝑠(𝑠
+
1)⋯(𝑠
+
𝑘
−
2)
𝐵
𝑘
=
Γ(𝑠 + 𝑘)𝑘!
なので, 非負の整数 𝑟 に対して, 𝑘 = 𝑟 + 1 とおいて 𝑠 → −𝑟 とすると,
 1
1 𝐵𝑘 1 → (−1)𝑟 𝐵𝑟+1 =  − 2 (𝑟 = 0)
Γ(𝑠) 𝑘! 𝑠 + 𝑘 − 1
𝑟 + 1  − 𝐵𝑟+1 (𝑟 = 1,2,3,…) .
𝑟+1
1
ただし, 等号で, 𝐵1 = − と 𝑟 + 1 が3以上の奇数のとき 𝐵𝑟+1 = 0 となることを使った. これをRiemannのゼータ函数の積分表
2示1'
1 ∞ 𝑥𝑠−1 𝑑𝑥 + 1 𝑥 − 𝑁 𝐵𝑘 𝑥𝑘 𝑥𝑠−2 𝑑𝑥 + 𝑁 𝐵𝑘 1
𝜁(𝑠) = Γ(𝑠)∑[∫1 𝑒𝑥 − 1 ∫0 ( 𝑒𝑥 − 1 ∑𝑘=0 𝑘! )𝑘=0 𝑘! 𝑠 + 𝑘 − 1 ]に適用すれば,が得られる.

□

𝜁(0) = − 12 , 𝜁(−𝑟) = − 𝑟𝐵+𝑟+11 (𝑟 = 1,2,3,…)2.3.3 交代版のRiemannのゼータ函数の積分表示
問題: 次を示せ.

∞
𝑛−1
1 ∞ 𝑥𝑠−1 𝑑𝑥 (𝑠 > 1).
(1 − 21−𝑠 )𝜁(𝑠) = ∑ (−1)𝑛𝑠 = Γ(𝑠)∫0 𝑒𝑥 + 1
𝑛=1
注意: この公式の積分は Re𝑠 > 0 で収束している. □解答例: 1つ目の等号を示そう:

𝜁(𝑠) = 11𝑠 + 21𝑠 + 31𝑠 + 41𝑠 + ⋯,21−𝑠 𝜁(𝑠) = 22𝑠 + 42𝑠 + 62𝑠 + 82𝑠 + ⋯,∞(1 − 21−𝑠 )𝜁(𝑠) = 11𝑠 − 21𝑠 + 31𝑠 − 41𝑠 + ⋯ = ∑ (−1𝑛)𝑠𝑛−1 .
𝑛=1
1 1 ∞ 𝑒−𝑛𝑥 𝑥𝑠−1 𝑑𝑥 なので,2つ目の等号を示そう. 上の問題の解答例と同様にして, 𝑠 =𝑛 Γ(𝑠) ∫0∞ (−1)𝑛−1
1 ∞ (−1)𝑛−1 ∞ 𝑒−𝑛𝑥 𝑥𝑠−1 𝑑𝑥=𝑠∑∫0Γ(𝑠) ∑
𝑛=1 𝑛
𝑛=1
1 ∞ ∞ (−1)𝑛−1 𝑒−𝑛𝑥 𝑥𝑠−1 𝑑𝑥 = 1 ∞ 𝑥𝑠−1 𝑑𝑥 𝑑𝑥.
= Γ(𝑠)∫0 ∑Γ(𝑠) ∫0 𝑒𝑥 + 1
𝑛=1□

注意: 以上の計算は統計力学におけるFermi-Dirac統計 (https://www.google.co.jp/search?q=DiracFermi%E5%88%86%E5%B8%83+%CE%B6)に関する議論に登場する. ゼータ函数は数論の基本であるだけではなく, 統計力学的にも意味を持っている.

□

2.3.4 Hurwitzのゼータ函数0以下の整数での特殊値がBernoulli多項式で書けること

𝜁(𝑠,𝑥) とBernoulli多項式 𝐵𝑘(𝑥) を∞𝜁(𝑠,𝑥) = ∑ (𝑥 +1 𝑘)𝑠 (𝑥 > 0, 𝑠 > 1),

問題: Hurwitzのゼータ函数

𝑘=0𝑡𝑒𝑥𝑡 = ∞ 𝐵𝑘(𝑥) 𝑡𝑘
𝑒𝑡 − 1 ∑𝑘=0 𝑘!

𝜁(𝑠) = 𝜁(𝑠,1) なのでHurwitzのゼータ函数はRiemannのゼータ函数の拡張になっている. 以下を示せ:
1 ∞ 𝑒(1−𝑥)𝑡 𝑡𝑠−1 𝑑𝑡.
𝜁(𝑠,𝑥) = Γ(𝑠)(1)∫0 𝑒𝑡 − 1
と定める.

(2)

1 ∞ 𝑒(1−𝑥)𝑡 𝑡𝑠−1 𝑑𝑡 + 1 𝑡𝑒(1−𝑥)𝑡 − 𝑁 𝐵𝑘(1 − 𝑥) 𝑡𝑘 𝑡𝑠−2 𝑑𝑡 + 𝑁 𝐵𝑘(1 − 𝑥) 1 .
𝜁(𝑠,𝑥) = Γ(𝑠)∫0 ( 𝑒𝑡 − 1 ∑ 𝑘! )∑ 𝑘! 𝑠 + 𝑘 − 1 ][∫1 𝑒𝑡 − 1
𝑘=0

𝑘=0

𝑠 < 1 に拡張すると, 0 以上の整数 𝑚 について
(1 − 𝑥) = − 𝐵𝑚+1(𝑥) .
𝜁(−𝑚,𝑥) = (−1)𝑚𝐵𝑚𝑚+1
+1
𝑚+1
∞
1
1
−(𝑥+𝑘)𝑡 𝑠−1
解答例: (1) 𝑥,𝑠 > 0, 𝑘 ≧ 0 に対して,(𝑥 + 𝑘)𝑠 = Γ(𝑠) ∫0 𝑒 𝑡 𝑑𝑡 を使うと,
∞ 1
∞
∞ ∞
−(𝑥+𝑘)𝑡 𝑡𝑠−1 𝑑𝑡 = 1−𝑘𝑡 𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡𝜁(𝑠,𝑥) = ∑ Γ(𝑠)
𝑒
𝑒
∑
∫
∫
Γ(𝑠)
(
0
0 𝑘=0 )
𝑘=0∞∞1𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡 = 1𝑒(1−𝑥)𝑡 𝑡𝑠−1 𝑑𝑡.
= Γ(𝑠)−𝑡∫0 1 − 𝑒Γ(𝑠) ∫0 𝑒𝑡 − 1(2) 上の(1)の結果の右辺の積分を 0 から 1 への積分と 1 から ∞ の積分に分けて, 0 から 1 への積分の被積分函数に𝑁 𝐵 (1 − 𝑥)𝑘𝑡𝑘 を足して引き, 引いた方の積分を計算すれば, (2)の公式が得られる.
∑𝑘!
𝑘=0
𝑡𝑒(1−𝑥)𝑡 − 𝑁 𝐵𝑘(1 − 𝑥) 𝑡𝑘 𝑡𝑠−1 = 𝑂(𝑡𝑠+𝑁−1 ) となるので, (2)の右辺の 0 から 1 への積分
(3) Bernoulli多項式の定義より,( 𝑒𝑡 − 1 ∑)𝑘=0 𝑘!
1は 𝑠 > −𝑁 で絶対収束している. 𝑁 > 𝑚 と仮定する. 𝑠 が 0 以下の整数に近付くとΓ(𝑠) → 0 となり,𝑠(𝑠 + 1)⋯(𝑠 + 𝑚 − 1)11𝑚
Γ(𝑠) 𝑠 + (𝑚 + 1) − 1 = Γ(𝑠 + 𝑚 + 1) → (−1) 𝑚! (𝑠 → −𝑚)より, 𝑠 → −𝑚 のとき,
1 𝐵𝑚+1(1 − 𝑥)1
𝑚𝑚! 𝐵𝑚+1(1 − 𝑥) = (−1)𝑚𝐵𝑚+1(1 − 𝑥)→(−1)
Γ(𝑠) (𝑚 + 1)! 𝑠 + (𝑚 + 1) − 1(𝑚 + 1)!
𝑚+1(−1)𝑚𝐵𝑚+1(1 − 𝑥) が得られる. さらに, 𝑡𝑒(1−𝑥)𝑡 = (−𝑡)𝑒𝑎(−𝑡) によって,となることから, 𝜁(−𝑚,𝑥) =𝑚+1
𝑒𝐵𝑡 − 1(1 − 𝑥)𝑒−𝑡 − 1𝐵 (𝑥)
𝑚
(−1
)
𝑚+1
= − 𝑚𝑚+1+ 1 も得られる. □𝐵𝑘(1 − 𝑥) = (−1)𝑘𝐵𝑘(𝑥) となることがわかるので, 𝜁(−𝑚,𝑥) =𝑚+1(3) Hurwitzのゼータ函数を(2)によって2.3.5 べき乗和のBernoulli多項式による表示
注意: 上の結果より, 累乗和

𝑆𝑚 (𝑛) = 1𝑚 + 2𝑚 + ⋯ + 𝑛𝑚を次のようにして, Bernoulli多項式を使って表すことができることがわかる:

𝑆𝑚 (𝑛) = 𝜁(−𝑚,1) − 𝜁(−𝑚,𝑛 + 1) = 𝐵𝑚+1(𝑛 +𝑚1)+−1 𝐵𝑚+1(1) .

ここで𝜁(𝑠,𝑥) の解析接続を使った. 形式的には
𝜁(−𝑚,1) − 𝜁(−𝑚,𝑛 + 1) = (1𝑚𝑚 + ⋯ + 𝑛𝑚𝑚 + (𝑛 + 1)𝑚 + (𝑛 + 1)𝑚 + ⋯) − ((𝑛 + 1)𝑚 + (𝑛 + 1)𝑚 + ⋯)= 1 + ⋯ + 𝑛 = 𝑆𝑚 (𝑛)という計算が実行されたことになる. この計算はれる.

□

𝑚 < −1 ならばそのまま正しい. それ以外の場合には解析接続によって正当化さ

2.3.6 Riemannのゼータ函数の積分表示2(テータ函数のMellin変換)と函数等式問題(Riemannのゼータ函数の積分表示2):

𝜃(𝑡) を∞

𝜃(𝑡) = ∑ 𝑒−𝜋𝑛2𝑡 (𝑡 > 0)𝑛=1

とおくと, 次が成立することを示せ:∞

𝜋−𝑠/2 Γ(𝑠/2)𝜁(𝑠) = ∫0 𝜃(𝑡)𝑡𝑠/2−1 𝑑𝑡 (𝑠 > 2).
解答例:∞ Γ(𝑠/2) ∞ ∞ 2−𝜋𝑛 𝑡 𝑠/2−1
𝜋−𝑠/2 Γ(𝑠/2)𝜁(𝑠) = ∑ (𝜋𝑛2 )𝑠/2 = ∑ ∫0 𝑒 𝑡 𝑑𝑥

𝑛=1
𝑛=1
∞ ∞
∞
= ∫0 ∑ 𝑒−𝜋𝑛2𝑡 𝑡𝑠/2−1 𝑑𝑥 = ∫0 𝜃(𝑡)𝑡𝑠/2−1 𝑑𝑡.
𝑛=1□𝜃(𝑡) が1 + 2𝜃(1/𝑡) = 𝑡1/2 (1 + 2𝜃(𝑡)) (𝑡 > 0)問題(Riemannのゼータ函数の積分表示2'): 上の問題の続き.

すなわち

𝜃(1/𝑡) = − 12 + 12 𝑡1/2 + 𝑡1/2 𝜃(𝑡)を満たしていることを認めて, 次を示せ:∞
𝜋−𝑠/2 Γ(𝑠/2)𝜁(𝑠) = − 1𝑠 − 1 −1 𝑠 + ∫1 𝜃(𝑡)(𝑡𝑠/2 + 𝑡(1−𝑠)/2 ) 𝑑𝑡𝑡 .

𝜃(𝑡) に関する上の公式の証明についてはノート「12 Fourier解析(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)」におけるPoissonの和公式の解説を見よ.

𝑠

注意: 上の問題の公式の右辺の積分は が任意の複素数であってもしているので, 右辺は左辺の複素平面上への解析接続を与える.
さらに, 右辺は をで置き換える操作で不変であるから,𝑠 1−𝑠

̂ = 𝜋−𝑠/2 Γ(𝑠/2)𝜁(𝑠)
𝜁 (𝑠)

とおくと,

̂
𝜁 (1̂ − 𝑠) = 𝜁 (𝑠)が成立している. これをゼータ函数の函数等式と呼ぶ. □0 から 1 と 1 から ∞ に分けて, 𝑡 = 1/𝑢 とおく
𝑡𝑠/2−1 𝑑𝑡 = −𝑢−𝑠/2+1 𝑢−2 𝑑𝑢 = −∞𝑢−𝑠/2−1 𝑑𝑢1∞
𝑠/2−1 𝑑𝑡 =𝑠/2−1 𝑑𝑡 +
𝑠/2
𝜃(𝑡)
𝜃(𝑡)
𝑡
𝑡
∫0
∫0
∫1 𝜃(𝑡)𝑡 𝑑𝑡,1∞ 1 1
𝑠/2−1 𝑑𝑡 =1/2 1/2−𝑠/2−1𝜃(𝑡)𝑡∫0∫1 (− 2 + 2 𝑡 + 𝑡 𝜃(𝑡)) 𝑡 𝑑𝑡∞
= ∫1 (− 12 𝑡−𝑠/2−1 + 12 𝑡(1−𝑠)/2−1 + 𝜃(𝑡)𝑡(1−𝑠)/2−1 ) 𝑑𝑡∞
= − 1𝑠 − 𝑠 −1 1 + ∫1 𝜃(𝑡)𝑡(1−𝑠)/2−1 𝑑𝑡.
上の問題の結果と以上の計算をまとめると, 欲しい結果が得られる. □解答例: 上の問題と以下の計算を合わせれば欲しい結果が得られる. 積分区間を
と,
を使うと,

問題: 上の問題の続き. ガンマ函数が Euler's reflection formula𝜋Γ(𝑠)Γ(1 − 𝑠) = sin(𝜋𝑠)と Legendre's duplication formulaΓ(𝑠)Γ(𝑠 + 1/2) = 21−2𝑠 𝜋1/2 Γ(2𝑠)̂ − 𝑠) = 𝜁 (𝑠)̂ がを満たしていることを認めて, 上の問題の注意におけるゼータ函数の函数等式 𝜁 (1𝜁(𝑠) = 2𝑠 𝜋𝑠−1 sin 𝜋𝑠2 Γ(1 − 𝑠)𝜁(1 − 𝑠)と書き直されることを示せ.
Legendre's duplication formula と Euler's reflection formula はこのノートの下の方で初等的に証明される. Euler's reflection
formulaの証明についてはノート「12 Fourier解析(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)」のガンマ函数とsinの関係の節も参照せよ.
解答例:

̂ = 𝜋−𝑠/2 Γ(𝑠/2)𝜁(𝑠), 𝜁 (𝑠)̂ = 𝜁 (1̂ − 𝑠) より,
𝜁 (𝑠)𝜋−𝑠/2 Γ(𝑠/2)𝜁(𝑠) = 𝜋−(1−𝑠)/2 Γ((1 − 𝑠)/2)𝜁(1 − 𝑠).

これは以下のように書き直される:− 𝑠)/2) 𝜁(𝑠).
𝜁(𝑠) = 𝜋𝑠−1/2 Γ((1Γ(𝑠/2)𝑠 に 𝑠/2 を代入すると,
𝜋 , i.e. 1 = 𝜋−1 sin 𝜋𝑠 Γ(1 − 𝑠/2)
Γ(𝑠/2)Γ(1 − 𝑠/2) = sin(𝜋𝑠/2)
Γ(𝑠/2)
2となり, Legendre's duplication formula の 𝑠 に (1 − 𝑠)/2 を代入すると,
Γ((1 − 𝑠)/2)Γ(1 − 𝑠/2) = 2𝑠 𝜋1/2 Γ(1 − 𝑠),
一方, Euler's reflection formula のとなるので, それらを上の公式に代入すると,が得られる.

問題:

𝜁(𝑠) = 2𝑠 𝜋𝑠−1 sin 𝜋𝑠2 Γ(1 − 𝑠)𝜁(1 − 𝑠)□𝑘 が正の整数であるとき 𝜁(−(2𝑘 − 1)) = − 𝐵2𝑘2𝑘 であるという事実と上の問題の結果から
2𝑘−1 )𝑘−1𝐵2𝑘 2𝑘
𝜁(2𝑘) = 2 (−1(2𝑘)! 𝜋が導かれることを示せ.

𝜁(−(2𝑘 − 1)) = − 𝐵2𝑘2𝑘 と上の問題の結果より,− 𝐵2𝑘2𝑘 = 𝜁(−(2𝑘 − 1)) = 2−(2𝑘−1) 𝜋−2𝑘 (−1)𝑘(2𝑘 − 1)!𝜁(2𝑘).
これより示したい公式が得られる. □解答例:

2.4 ベータ函数とガンマ函数の関係
ベータ函数はガンマ函数によって𝐵(𝑝,𝑞) = Γ(𝑝)Γ(𝑞)Γ(𝑝 + 𝑞)と表わされる. これを証明したい. そのためには

∞

(∗)

∞

Γ(𝑝)Γ(𝑞) = ∫0 (∫0 𝑒−(𝑥+𝑦) 𝑥𝑝−1 𝑦𝑞−1 𝑑𝑦) 𝑑𝑥
が∞1

Γ(𝑝 + 𝑞)𝐵(𝑝,𝑞) = ∫0 𝑒−𝑧 𝑧𝑝+𝑞−1 𝑑𝑧 ∫0 𝑡𝑝−1 (1 − 𝑡)𝑞−1 𝑑𝑡に等しいことを示せばよい. ガンマ函数とベータ函数の別の表示を使えば右辺も別の形になることに注意せよ.

2.4.1 方法1: 置換積分と積分の順序交換のみを使う方法

𝐴
1 ∞ ∞
0 𝑥,𝑦
1𝐴 (𝑥,𝑦)Γ(𝑝)Γ(𝑞) = ∫0 (∫0 𝑒−(𝑥+𝑦) 𝑥𝑝−1 𝑦𝑞−1 𝑑𝑦) 𝑑𝑥∞∞= ∫0 (∫𝑥 𝑒−𝑧 𝑥𝑝−1 (𝑧 − 𝑥)𝑞−1 𝑑𝑧) 𝑑𝑥∞∞= ∫0 (∫0 1𝑥<𝑧 (𝑥,𝑧)𝑒−𝑧 𝑥𝑝−1 (𝑧 − 𝑥)𝑞−1 𝑑𝑧) 𝑑𝑥∞∞= ∫0 (∫0 1𝑥<𝑧 (𝑥,𝑧)𝑒−𝑧 𝑥𝑝−1 (𝑧 − 𝑥)𝑞−1 𝑑𝑥) 𝑑𝑧∞𝑧= ∫0 (∫0 𝑒−𝑧 𝑥𝑝−1 (𝑧 − 𝑥)𝑞−1 𝑑𝑥) 𝑑𝑧∞
1= ∫0 (∫0 𝑒−𝑧 (𝑧𝑡)𝑝−1 (𝑧 − 𝑧𝑡)𝑞−1𝑧𝑑𝑡) 𝑑𝑧∞
1= ∫0 𝑒−𝑧 𝑧𝑝+𝑞−1 𝑑𝑧 ∫0 𝑡𝑝−1 (1 − 𝑡)𝑞−1 𝑑𝑡 = Γ(𝑝 + 𝑞)𝐵(𝑝,𝑞).
2つ目の等号で 𝑦 = 𝑧 − 𝑥 と置換積分し, 4つ目の等号で積分の順序を交換し, 6つ目の等号で 𝑥 = 𝑧𝑡 と置換積分した.

ガンマ函数とベータ函数のあいだの関係式は1変数の置換積分と積分の順序交換のみを使って証明可能である. 条件 に対して,が条件 をみたすとき値が になり, それ以外のときに値が になるの函数をと書くことにすると,

𝑥,𝑦𝐴以上の計算は
黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)の第7.4節からの引き写しである.

2.4.2 方法2: 極座標変換を使う方法
この方法は2重積分に関する知識が必要になる. 2重積分について知らない人は次の節の別の方法を参照せよ.

𝑥 = 𝑋 2 , 𝑦 = 𝑌 2 と変数変換すると,∞ ∞Γ(𝑝)Γ(𝑞) = 4 ∫0 ∫0 𝑒−(𝑋 2+𝑌 2)𝑋 2𝑝−1 𝑌 2𝑞−1 𝑑𝑋𝑑𝑌.
さらに 𝑋 = 𝑟cos𝜃, 𝑌 = 𝑟sin𝜃 と変数変換すると,
𝜋/2∞
Γ(𝑝)Γ(𝑞) = 4 ∫0 𝑑𝜃 ∫0 𝑒−𝑟2 (𝑟cos𝜃)2𝑝−1 (𝑟sin𝜃)2𝑞−1𝑟𝑑𝑟
𝜋/2∞= 4 ∫0 (cos𝜃)2𝑝−1 (sin𝜃)2𝑞−1 𝑑𝜃 ∫0 𝑒−𝑟2 𝑟2(𝑝+𝑞)−1 𝑑𝑟 = 𝐵(𝑝,𝑞)Γ(𝑝 + 𝑞).
最後の等号でベータ函数の三角函数を用いた表示とガンマ函数のGauss積分に似た表示を用いた. □2.4.3 方法3: y = tx と変数変換する方法

𝑦 = 𝑡𝑥 とおくと, 𝑑𝑦 = 𝑥𝑑𝑡 より,∞∞∞∞
Γ(𝑝)Γ(𝑞) = ∫0 (∫0 𝑒−(𝑥+𝑦) 𝑥𝑝−1 𝑦𝑞−1 𝑑𝑦) 𝑑𝑥 = ∫0 (∫0 𝑒−(1+𝑡)𝑥 𝑥𝑝+𝑞−1 𝑡𝑞−1 𝑑𝑡) 𝑑𝑥∞∞∞= ∫0 (∫0 𝑒−(1+𝑡)𝑥 𝑥𝑝+𝑞−1 𝑑𝑥) 𝑡𝑞−1 𝑑𝑡 = ∫0 (1Γ(𝑝+ +𝑡)𝑝+𝑞𝑞) 𝑡𝑞−1 𝑑𝑡∞ 𝑞−1= Γ(𝑝 + 𝑞) ∫0 (1 +𝑡 𝑡)𝑝+𝑞 𝑑𝑡 = Γ(𝑝 + 𝑞)𝐵(𝑝,𝑞).
3つ目の等号で積分順序を交換し, 4つ目の等号で 𝑠,𝑐 > 0 についてよく使われる公式(𝑥 = 𝑦/𝑐 と置けば得られる公式)∞Γ(𝑠)−𝑐𝑥 𝑠−1∫0 𝑒 𝑥 𝑑𝑥 = 𝑐𝑠を使い, 最後の等号でベータ函数の次の表示の仕方を用いた:

1∞ 𝑞−1
𝐵(𝑝,𝑞) = ∫0 𝑥𝑝−1 (1 − 𝑥)𝑞−1 𝑑𝑥 = ∫0 (1 +𝑡 𝑡)𝑝+𝑞 𝑑𝑡

この公式は積分変数を

𝑥 = 1 +1 𝑡 と置換すれば得られる. 𝑥 = 1 +𝑡 𝑡 と置換すれば 𝑝,𝑞 を交換した公式が得られる.

ベータ函数に関するその公式を知っていれば, ガンマ函数とベータ函数の関係を導くにはこの方法が簡単かもしれない.

𝑦 = 𝑡𝑥 の 𝑡 は直線の傾きという意味を持っている. 𝑥𝑦 平面の第一象限の点を (𝑥,𝑦) で指定していたのを, (𝑥,𝑦) = (𝑥,𝑡𝑥) と直線の傾き 𝑡 と 𝑥 で指定するようにしたことが 上の計算で採用した方法である この方法はJacobianが出て来る二重積分の積分変2.4.4 ガンマ函数の1/2での値をベータ函数経由で計算
問題: ベータ函数とガンマ函数の関係を用いてΓ(1/2) = √⎯⎯𝜋 を証明せよ.

解答例:

𝜋/2
𝜋/2
2⋅1/2−1(sin𝜃)2⋅1/2−1 𝑑𝜃 = 2
Γ(1/2)2 = Γ(1/2)Γ(1/2)=
𝐵(1/2,1/2)
=
2
(cos𝜃
)
∫0
∫0 𝑑𝜃 = 𝜋.
Γ(1)1つ目の等号で Γ(1) = 1 を使い, 2つ目の等号でベータ函数とガンマ函数の関係を用い, 3つ目の等号でベータ函数の三角函数を用⎯⎯いた表示を使った. ゆえに Γ(1/2) = √ 𝜋 . □∞ 2⎯⎯
注意: この問題の解答例はGauss積分の公式の別証明 ∫−∞ 𝑒−𝑥 𝑑𝑥 = Γ(1/2) = √ 𝜋 を与える. □2.4.5 ベータ函数の応用の雑多の例
問題: 次の積分を計算せよ:

1

𝐴 = ∫0 𝑥5 (1 − 𝑥2 )3/2 𝑑𝑥.

𝑥 = 𝑡1/2 と置換すると 𝑑𝑥 = 12 𝑡−1/2 𝑑𝑡 なので,
11
Γ(3)Γ(5/2) .
𝐴 = ∫0 𝑡5/2 (1 − 𝑡)3/2 12 𝑡−1/2 𝑑𝑡 = 12 ∫0 𝑡2 (1 − 𝑡)3/2 𝑑𝑡 = 12 𝐵(3,5/2) = 2Γ(3+ 5/2)
3つ目の等号で 2 = 3 − 1, 3/2 = 5/2 − 1 とみなしてからベータ函数の表示を得ていることに注意せよ. このステップでよく間
解答例:

違う.

一般に非負の整数

𝑛 についてなので,

1
Γ(𝑛 + 1) = 𝑛!, Γ(𝑠Γ(𝑠)+ 𝑛) = 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛 − 1)1
23 .
Γ(3) = 2! = 2, Γ(3Γ(5/2)==+ 5/2) (5/2)(7/2)(9/2) 5 ⋅ 7 ⋅ 9

したがってIn [17]:

Out[17]:3
𝐴 = 22 5 ⋅27 ⋅ 9 = 3158 .

□1 x = symbols("x", real=true)
2 sol = integrate(x^5*(1-x^2)^(Sym(3)/2), (x,0,1))
3 latexstring(raw"\ds \int_0^1 x^5 (1-x^2)^{3/2} \,dx =", latex(sol))

8
5
2 3/2
∫0 𝑥 (1 − 𝑥 ) 𝑑𝑥 = 315
1

2.4.6 B(s, 1/2)の級数展開−1/2( 𝑛 ) は次を満たしている:ゆえに,|𝑥| < 1 のとき,

−1/2 𝑛 (1/2)(3/2)⋯((2𝑛 − 1)/2) 𝑥𝑛 = 1 2𝑛 𝑥𝑛 .
( 𝑛 )(−𝑥) =𝑛!
22𝑛 ( 𝑛 )∞(1 − 𝑥)−1/2 = ∑ 212𝑛 (2𝑛𝑛)𝑥𝑛 .
𝑛=0

したがって,∞∞11
𝐵(𝑠,1/2) = ∫0 𝑥𝑠−1 (1 − 𝑥)−1/2 𝑑𝑥 = ∑ 212𝑛 (2𝑛𝑛) ∫0 𝑥𝑠+𝑛−1 𝑑𝑥 = ∑ 212𝑛 (2𝑛𝑛) 𝑠 +1 𝑛 .
𝑛=0

例えば,

𝑠 = 1/2 のとき, 𝐵(1/2,1/2) = Γ(1/2)2 = 𝜋 なので, 両辺を2で割ると,∞ 1 2𝑛 1𝜋1∑ 22𝑛 ( 𝑛 ) 2𝑛 + 1 = 2 𝐵(1/2,1/2) = 2 .

𝑛=0

𝑛=0

このような公式はベータ函数について知らないと驚くべき公式に見えてしまうが, ベータ函数について知っていれば単に二項展開
をベータ函数の被積分函数に適用しただけの公式に過ぎない.

2.5 ガンマ函数の無限積表示
2.5.1 ガンマ函数に関するGaussの公式問題(Gaussの公式): ベータ函数とガンマ函数の関係を用いて, 次の公式を示せ.

𝑛𝑠 𝑛! .
Γ(𝑠) = 𝑛→∞lim 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛)
解答例: 右辺をベータ函数と表示することを考える. 以下では 𝑛 は正の整数であるとし, 𝑠 > 0 と仮定する. ベータ函数とガンマ函数の函数等式および Γ(𝑛 + 1) = 𝑛! より,+ 1)𝑛!
𝐵(𝑠,𝑛 + 1) = Γ(𝑠)Γ(𝑛Γ(𝑠 + 𝑛 + 1) = 𝑠(𝑠 + 1)⋯(𝑠 + 𝑛) .
ゆえに

𝑛𝑠 𝑛! .
𝑛𝑠 𝐵(𝑠,𝑛 + 1) = 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛)
左辺を 𝑛 → ∞ での極限を取り易い形に変形しよう. 𝑥 = 𝑡/𝑛 と置換することによって, 𝑛 → ∞ のとき
1
𝑛𝑠 𝐵(𝑠,𝑛 + 1) = 𝑛𝑠 ∫0 𝑥𝑠−1 (1 − 𝑥)𝑛 𝑑𝑥
𝑛∞= ∫0 𝑡𝑠−1 (1 − 𝑛𝑡 )𝑛 𝑑𝑡 → ∫0 𝑡𝑠−1 𝑒−𝑡 𝑑𝑡 = Γ(𝑠).
以上をまとめると示したい結果が得られる. □2.5.2 指数函数の上からと下からの評価を用いた厳密な議論
問題: 上の問題の解答例中で極限と積分の順序を交換した. その部分の議論を指数函数に関する不等式

𝑡 𝑎 ≦ 𝑒𝑡 ≦ 1 − 𝑡 −𝑏
1
+
( 𝑎)
( 𝑏)

(−𝑎 < 𝑡 < 𝑏, 𝑎,𝑏 > 0)

𝑡 𝑎
𝑡 −𝑏
(1 + 𝑎 ) , (1 − 𝑏 ) がそれぞれ 𝑎,𝑏 について単調増加, 単調減少することを用いて正当化せよ.
解答例: 問題文の中で与えられた不等式の全体の逆数を取り, 𝑎 = 𝑚 , 𝑏 = 𝑛 とおくと,𝑡 𝑛𝑡 −𝑚 (−𝑚 < 𝑡 < 𝑛)
(1 − 𝑛 ) ≦ 𝑒−𝑡 ≦ (1 + 𝑚 )𝑡 𝑛𝑡 −𝑚 はそれぞれ 𝑛,𝑚 について単調増加, 単調減少する. ベータ函数の表式となり, (1 − ) , (1 +
𝑛
𝑚)
1
∞
𝑝−1
𝐵(𝑝,𝑞) = ∫0 𝑥𝑝−1 (1 − 𝑥)𝑞−1 𝑑𝑥 = ∫0 (1 +𝑥 𝑥)𝑝+𝑞 𝑑𝑥
において, それぞれ (𝑝,𝑞,𝑥) = (𝑠,𝑛 + 1,𝑡/𝑛), (𝑝,𝑞,𝑥) = (𝑠,𝑚 − 𝑠,𝑡/𝑚) とおくことによって, 𝑠,𝑛 > 0, 𝑚 > 𝑠 のとき,
𝑛∞𝑛𝑠 𝐵(𝑠,𝑛 + 1) = ∫0 𝑡𝑠−1 (1 − 𝑛𝑡 )𝑛 𝑑𝑡, 𝑚𝑠𝐵(𝑠,𝑚 − 𝑠) = ∫0 𝑡𝑠−1 (1 + 𝑚𝑡 )−𝑚 𝑑𝑡

(1)

と

∞

(2)

𝑛 𝑚 について単調増加, 単調減少することがわかる. これらと Γ(𝑠) = ∫0 𝑡𝑠−1 𝑒−𝑡 𝑑𝑡 を比較すると,(∗)
𝑛𝑠 𝐵(𝑠,𝑛 + 1) ≦ Γ(𝑠) ≦ 𝑚𝑠𝐵(𝑠,𝑚 − 𝑠).

が得られ, それぞれ, ,𝑛𝑠 𝐵(𝑠,𝑛 + 1), 𝑚𝑠𝐵(𝑠,𝑚 − 𝑠) はそれぞれ 𝑛, 𝑚 について単調増加, 単調減少するので, どちらも 𝑛,𝑚 → ∞ で収束する. そして,
𝑚 = 𝑛 + 𝑠 + 1 とおくと,
𝑚𝑠𝐵(𝑠,𝑚 − 𝑠) = (𝑛 + 𝑠 + 1)𝑠𝐵(𝑠,𝑛 + 1) = 1 + 𝑠 + 1 𝑠 → 1 (𝑛 → ∞)( 𝑛 )𝑛𝑠 𝐵(𝑠,𝑛 + 1)
𝑛𝑠 𝐵(𝑠,𝑛 + 1)なので, 𝑛𝑠 𝐵(𝑠,𝑛 + 1), 𝑚𝑠 𝐵(𝑠,𝑚 − 𝑠) は 𝑛,𝑚 → ∞ で同じ値に収束する. これと不等式(∗ )を合わせると, 𝑛𝑠 𝐵(𝑠,𝑛 + 1),
𝑚𝑠𝐵(𝑠,𝑚 − 𝑠) は 𝑛,𝑚 → ∞ で Γ(𝑠) に収束することがわかる. □注意: 不等式(1),(2)と 𝑎,𝑏 , 𝑚,𝑛 に関する単調性は極限で指数函数が現われる結果を初等的に正当化するために非常に便利である.
□
2.5.3 ガンマ函数に関するWeierstrassの公式問題(Weierstrassの公式): 上の問題の結果を用いて, 次の公式を示せ.

ここで

1 = 𝑒𝛾𝑠 𝑠 ∞ 1 + 𝑠 𝑒−𝑠/𝑛 .
[( 𝑛 ) ]
∏
Γ(𝑠)
𝑛=1

𝛾 はEuler定数である:(∗)

𝑛
𝛾 = 𝑛→∞lim (∑ 𝑘1 − log𝑛) = 0.5772⋯
𝑘=1

解答例:

𝑠(𝑠 + 1)⋯(𝑠 + 𝑛)
𝑛𝑠 𝑛! 𝑠= 𝑠(1 + 𝑠) (1 + 2 ) ⋯ (1 + 𝑠𝑛 ) 𝑒−𝑠 log 𝑛= 𝑠(1 + 𝑠) 𝑒−𝑠 (1 + 𝑠2 ) 𝑒−𝑠/2 ⋯ (1 + 𝑠𝑛 ) 𝑒−𝑠/𝑛 𝑒𝑠(1+ 12 +⋯+ 1𝑛 −log 𝑛)であるから, 公式(∗ )を得る. □注意:
log[(1 + 𝑠𝑛 ) 𝑒−𝑠/𝑛 ] = log(1 + 𝑠𝑛 ) − 𝑠𝑛
2= 𝑠𝑛 − 2𝑛𝑠 2 + 𝑂 ( 𝑛13 ) − 𝑠𝑛2
= − 2𝑛𝑠 2 + 𝑂 ( 𝑛13 )なので𝑠 𝑒−𝑠/𝑛 = ∞ 1 + 𝑂 1
1+∏ [( 𝑛 ) ] ∏ [ ( 𝑛2 )]∞𝑛=1となり, この無限積は任意の複素数な拡張を与える.

□𝑛=1

𝑠 について収束する. したがって, Weierstrassの公式は 1/Γ(𝑠) のすべての複素数 𝑠 への自然

2.6 sinとガンマ函数の関係
sinの無限積表示と Euler's reflection formulaの証明についてはノート「12 Fourier解析(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)」のガンマ函数とsinの関係の節も参照せよ. 以下ではsinの奇数倍角の公式を用いた証明を紹介する.

2.6.1 sinの奇数倍角の公式を用いたsinの無限積表示の導出
sinの無限積表示

sin(𝜋𝑠) = 𝑠 ∞ 1 − 𝑠2∏𝜋𝑛=1 ( 𝑛2 )を導出したい. この公式は正弦函数の奇数倍角の公式の極限としても導出されることを以下で説明しよう. (他にも様々な経路での証明がある.)
非負の整数
れる:

𝑛 に関する 𝑒𝑖𝑛𝑥 = (𝑒𝑖𝑥 )𝑛 の右辺に 𝑒𝑖𝑥 = cos𝑥 + 𝑖sin𝑥 を代入して二項定理を適用し, 両辺の虚部を取ると次が得ら

sin(𝑛𝑥) = ∑ (−1)𝑘(2𝑘 𝑛+ 1)(cos𝑥)𝑛−2𝑘−1(sin𝑥)2𝑘+1.
0≦𝑘<𝑛/2(cos𝑥)2 = 1 − (sin𝑥)2 より, 𝑛 が奇数ならば sin(𝑛𝑥) は sin𝑥 の 𝑛 次多項式で表わされることがわかる.
以下では, 𝑚 は非負の整数であるとし, 𝑛 = 2𝑚 + 1 とおき, sin(𝑛𝑥) = sin((2𝑚 + 1)𝑥) について考える. sin((2𝑚 + 1)𝑥) は2𝜋 を持ち,sin𝑥 の 2𝑚 + 1 次の多項式で表わされ, 周期 2𝑚+1
𝑥𝑘 = 2𝑚𝑘𝜋+ 1 , 𝑘 = 0,±1,…,±𝑚
で 0 になり,−𝜋/2 < 𝑥−𝑚 < 𝑥−𝑚+1 < ⋯ < 𝑥𝑚−1 < 𝑥𝑚 < 𝜋/2なので, sin𝑥𝑘 は互いに異なる. これで sin((2𝑚 + 1)𝑥) の互いに異なる (2𝑚 + 1) 個の零点 sin𝑥𝑘 が判明したことになる.
sin((2𝑚 + 1)𝑥) は sin𝑥 の 2𝑚 + 1 次の多項式で表われるので, 0 でないある定数 𝐶 が存在して,𝑚sin((2𝑚 + 1)𝑥) = 𝐶 sin𝑥 ∏ [(sin𝑥 − sin 2𝑚𝑘𝜋+ 1 )(sin𝑥 + sin 2𝑚𝑘𝜋+ 1 )] .
𝑘=1

両辺を

𝑥 で割って, 𝑥 → 0 の極限を取ると,𝑚
2𝑚 + 1 = 𝐶 ∏ [(−sin 2𝑚𝑘𝜋+ 1 )(sin 2𝑚𝑘𝜋+ 1 )] .
𝑘=1

したがって,

sin((2𝑚 + 1)𝑥) = sin𝑥 𝑚 1 − sin𝑥 1 + sin𝑥 .
𝑘𝜋 )( sin 𝑘𝜋 )]∏2𝑚 + 1𝑘=1 [( sin 2𝑚+1
2𝑚+1
2𝑚+1
これで, sin の奇数倍角の公式の積表示が得られた. これに 𝑥 = 𝜋𝑠 を代入し, 両辺に 𝜋 をかけると
2𝑚+1
𝜋𝑠 𝑚
𝜋𝑠
𝜋𝑠
sin 2𝑚+1
sin 2𝑚+1sin(𝜋𝑠) = sin 2𝑚+1
1
−
1
+
𝜋
𝜋𝑘 )( sin 𝜋𝑘 )] .
𝜋
2𝑚+1 ∏
𝑘=1 [( sin 2𝑚+1
2𝑚+1
𝑚 → ∞ の極限を取ると正弦函数の無限積表示
sin(𝜋𝑠) = 𝑠 ∞ 1 − 𝑠 1 + 𝑠 = 𝑠 ∞ 1 − 𝑠2 .
∏ [( 𝑘 )( 𝑘 )] ∏ ( 𝑘2 )𝜋𝑘=1が得られる. ここで以下を使った:

𝑘=1

𝑡 → 0 のとき
sin(𝑎𝑡) → 𝑎,𝑡sin(𝑎𝑡) → 𝑎 .
sin(𝑏𝑡) 𝑏

以上のようにsinの無限積表示はsinの奇数倍角の公式の極限として導出される𝐶 を求めよ.
解答例: 上の議論中で得られた公式に 𝑛 = 2𝑚 + 1 を代入すると
𝑚+ 1 (cos𝑥)2(𝑚−𝑘) (sin𝑥)2𝑘+1.
sin((2𝑚 + 1)𝑥) = ∑(−1)𝑘(2𝑚2𝑘 + 1 )問題: 上の議論で現われた定数

𝑘=0(cos𝑥)2 = 1 − (sin𝑥)2 を代入すると, 右辺の sin𝑥 の多項式としての最高次の係数 𝐶 は𝑚+ 1 (−1)𝑚−𝑘 = (−1)𝑚 𝑚 2𝑚 + 1
𝐶 = ∑(−1)𝑘(2𝑚∑2𝑘 + 1 )𝑘=0
𝑘=0 ( 2𝑘 + 1 )
2𝑚+1= (−1)𝑚 12 ∑ (2𝑚𝑗+ 1) = (−1)𝑚 12 (1 + 1)2𝑚+1 = (−4)𝑚𝑗=0となることがわかる. □注意: 上の議論と問題を合わせると次の公式が証明されたことになる: 正の奇数 𝑛 に対して,
sin(𝑛𝑥) = (−4)(𝑛−1)/2 (𝑛−1)/2 sin2 𝑥 − sin2 𝑘𝜋 .
∏(
sin𝑥
𝑛)
さらに

𝑘=1

さらに, 整数

𝑗 について, 𝑛/2 < 2𝑗 < 𝑛 のとき, 𝑛 − 2𝑗 は奇数でかつ 0 < 𝑛 − 2𝑗 < 𝑛/2 を満たし,

sin 2𝑗𝜋𝑛 = sin(𝜋 − 2𝑗𝑛 ) = sin (𝑛 −𝑛2𝑗)𝜋なので次を得る:sin(𝑛𝑥) = (−4)(𝑛−1)/2 (𝑛−1)/2 sin2 𝑥 − sin2 2𝑗𝜋 .
∏
sin𝑥
𝑛)
𝑗=1 (
この公式を使って平方剰余の相互法則を証明することができる(Eisenstein (1845)). その詳細については
J.-P. セール, 数論講義, 彌永健一訳, 岩波書店, 1979年, 188頁, 第1章補遺.
G. Eisenstein, Crelle's Journal, Vo1.29, 1845. View Archive (https://gdz.sub.uni-goettingen.de/id/PPN243919689_0029?tify={%22pages%22:[183],%22view%22:%22scan%22})
を参照せよ.

□

2.6.2 Euler's reflection formula
ガンマ函数の無限積表示より

𝑠𝑠
Γ(𝑠) = 𝑛→∞lim 𝑠(1 + 𝑠)(2 𝑛+ 𝑛!𝑠)⋯(𝑛 + 𝑠) = 𝑛→∞lim 𝑠(1 + 𝑠) 1 +𝑛𝑠 ⋯ 1 + 𝑠 ,( 2) ( 𝑛)
1−𝑠
𝑛!
𝑛−𝑠
Γ(1 − 𝑠) = 𝑛→∞=lim (1 − 𝑠)(2 −𝑛𝑠)⋯(𝑛lim+ 1 − 𝑠) 𝑛→∞ (1 − 𝑠) (1 − 𝑠2 ) ⋯ (1 − 𝑠𝑛 )(1 + 1−𝑠𝑛 ) ,ゆえに,

sin の無限積表示も使うと,
1 = lim 𝑠 𝑛 1 + 𝑠 1 − 𝑠 = 𝑠 ∞ 1 − 𝑠2 = sin(𝜋𝑠) .
(( 𝑘 )( 𝑘 )) ∏Γ(𝑠)Γ(1 − 𝑠) 𝑛→∞ ∏𝜋
𝑘=1
𝑛=1 ( 𝑛2 )これで次の公式が得られた:𝜋
Γ(𝑠)Γ(1 − 𝑠) = sin(𝜋𝑠)これは Euler's reflection formula と呼ばれる.

2.6.3 cosの偶数倍角の公式を用いたcosの無限積表示の導出
この節の内容はhttps://twitter.com/genkuroki/status/1094856745485139971 (https://twitter.com/genkuroki/status/1094856745485139971)

sin の無限積表示の導出と同じ方法で∞
cos 𝜋𝑠2 = ∏ (1 − (2𝑘 𝑠−2 1)2 ) = (1 − 1𝑠22 )(1 − 3𝑠22 )(1 − 5𝑠22 ) ⋯の詳述になっている. 上における

𝑘=1を示そう. 𝑒𝑖𝑛𝑥 = (𝑒𝑖𝑥 ) 𝑛 の右辺に 𝑒𝑖𝑥 = cos𝑥 + 𝑖sin𝑥 を代入して二項定理を適用し, 両辺の実部を取ることによって,cos(𝑛𝑥) = ∑ (−1)𝑘(2𝑘𝑛 )(cos𝑥)𝑛−2𝑘(sin𝑥)2𝑘.
0≦𝑘≦𝑛/2(cos𝑥)2 = 1 − (sin𝑥)2 より, 𝑛 が偶数ならば cos(𝑛𝑥) は sin𝑥 の 𝑛 次多項式で表わされることがわかる. 以下では 𝑚 は非負の整数であるとし, 𝑛 = 2𝑚 とおき, cos(𝑛𝑥) = cos(2𝑚𝑥) について考える. cos(2𝑚𝑥) は sin𝑥 の 2𝑚 次の多項式で表わされ, 周期2𝜋2𝑚 を持ち,±𝑥𝑘 = ± (2𝑘4𝑚− 1)𝜋 , $𝑘 = 1,2,…,𝑚$
で 0 になり,−𝜋/2 < −𝑥𝑚 < ⋯ < −𝑥1 < 0 < 𝑥1 < ⋯ < 𝑥𝑚 < 𝜋/2なので, 2𝑚 個の sin(±𝑥𝑘 ) は互いに異なる. 0 でないある定数 𝐶 が存在して,𝑚cos(2𝑚𝑥) = 𝐶 ∏ [(sin𝑥 − sin (2𝑘4𝑚− 1)𝜋 )(sin𝑥 + sin (2𝑘4𝑚− 1)𝜋 )] .
𝑘=1

この等式の両辺に

𝑥 = 0 を代入すると,
1 = 𝐶 ∏ 𝑚 [(−sin (2𝑘4𝑚− 1)𝜋 )(sin (2𝑘4𝑚− 1)𝜋 )] .
𝑘=1

この等式の両辺で上の等式の両辺をそれぞれ割ると,これに

𝑥 = 4𝑚𝜋𝑠 を代入すると,

これの両辺の𝑚cos(2𝑚𝑥) = ∏ [(1 − sin𝑥
1 + sin𝑥.
(2𝑘−1)𝜋)()]
sin 4𝑚sin (2𝑘−1)𝜋
𝑘=1
4𝑚
𝜋𝑠
𝑚
sin 4𝑚𝜋𝑠 .
4𝑚cos 𝜋𝑠2 = ∏ [(1 − sin(2𝑘−1)𝜋1+
sin 4𝑚 )( sin (2𝑘−1)𝜋
𝑘=1
4𝑚 )]

𝑚 → ∞ の極限を取ると余弦函数の無限積表示∞∞2
cos 𝜋𝑠2 = ∏ [(1 − 2𝑘 𝑠− 1 )(1 + 2𝑘 𝑠− 1 )] = ∏ (1 − (2𝑘 𝑠− 1)2 )𝑘=1を得る. この等式の両辺の𝑘=1

𝑠2 の係数の −1 倍を比較すると
𝜋2 = ∞ 1 = 1 + 1 + 1 + ⋯
8 ∑ (2𝑘 − 1)2 12 32 52
𝑘=1

ゆえに

∞
∞
∞
𝜁(2) = ∑ 𝑛12 = ∑ (2𝑘)1 2 + ∑ (2𝑘 −1 1)2 = 14 𝜁(2) + 𝜋82
𝑛=1

𝑘=0

となるので

𝑘=1

2
𝜁(2) = 𝜋6も得られる. この公式は

sin(𝜋𝑠) = ∞ 1 − 𝑠2𝜋𝑠 ∏𝑛=1 ( 𝑛2 )𝑠2 の係数の −1 倍を比較しても得られる.
問題: 上の議論で現われた定数 𝐶 を求めよ.
の両辺の

解答例:

𝑚
2𝑚−2𝑘
2𝑘
cos(2𝑚𝑥) = ∑(−1)𝑘(2𝑚2𝑘 )(cos𝑥) (sin𝑥)
𝑘=0

の右辺に

(cos𝑥)2 = 1 − (sin𝑥)2 を代入すると, 右辺の sin𝑥 の多項式としての最高次の係数 𝐶 は𝑚
𝑚 2𝑚
𝑚−𝑘 = (−1)𝑚𝐶 = ∑(−1)𝑘(2𝑚
(−1
)
∑
2𝑘 )
𝑘=0
𝑘=0 ( 2𝑘 )𝑚
− 1 + 𝑚−1 2𝑚 − 1= (−1)𝑚 (∑ (2𝑚
𝑘=1 2𝑘 − 1 ) ∑𝑘=0 ( 2𝑘 ))2𝑚−1𝑚= (−1)𝑚 ∑ (2𝑚𝑗− 1) = (−1)𝑚(1 + 1)2𝑚−1 = (−4)2となることがわかる.

□

𝑗=0

𝑛 に対して,𝑛/2 𝑛/2cos(𝑛𝑥) = (−4)2 ∏ (sin2 𝑥 − sin2 (2𝑘 2𝑛− 1)𝜋 ) .

注意: これで次が示された: 非負の偶数

𝑘1

2.7 Wallisの公式
2.7.1 2種類のWallisの公式の同値性□

互いに同じ深さにある次の2つの公式の両方をWallisの公式と呼ぶ.

(2𝑛)(2𝑛) = 𝜋 ,∏(2𝑛−1)(2𝑛 + 1) 2𝑛=1∞

1 2𝑛 = (2𝑛)! ∼ 1⎯⎯⎯⎯ .
22𝑛 ( 𝑛 ) 22𝑛 (𝑛!)2 √𝜋𝑛問題: 前者のWallisの公式から後者のWallisの公式を導け.
解答例: 前者のWallisの公式とより,

1 ⋅ 3⋯(2𝑛 − 1) = (2𝑛)!
2𝑛 𝑛!

2 ∼ 1 ⋅ 3⋯(2𝑛 − 1) × 3 ⋅ 5⋯(2𝑛 + 1) = (2𝑛)! 2 (2𝑛 + 1) = 1 2𝑛 2 (2𝑛 + 1).
( 22𝑛 (𝑛!)2 )( 22𝑛 ( 𝑛 ))𝜋
2 ⋅ 4⋯(2𝑛) × 2 ⋅ 4⋯(2𝑛)

ゆえに,(2𝑛)! 2 = 1 2𝑛 2 ∼ 1( 22𝑛 (𝑛!)2 ) ( 22𝑛 ( 𝑛 )) 𝜋𝑛全体の平方根を取れば, 後者のWallisの公式が得られる. □問題: 後者のWallisの公式から前者のWallisの公式を導け.

𝑁 個の因子の積は𝑁(2𝑛)(2𝑛) = 22𝑁 (𝑁!)2
1 = 22𝑁 (𝑁!)2 1∏ (2𝑛 − 1)(2𝑛 + 1) (1 ⋅ 3⋯(2𝑁 − 1)) 2𝑁 + 1 ( (2𝑁)! ) 2𝑁 + 1

解答例: 前者のWallisの公式の無限積の最初の𝑛=1であり, 後者のWallisの公式より,

𝑁 → ∞ において,22𝑁 (𝑁!)2 1 ∼ 𝜋𝑁 ∼ 𝜋( (2𝑁)! ) 2𝑁 + 1 2𝑁 + 1 2となる. ゆえに𝑁(2𝑛)(2𝑛) = 𝜋 .
lim
𝑁→∞ ∏
(2𝑛
−
1)(2𝑛 + 1) 2
𝑛=1
これで後者のWallisの公式から前者のWallisの公式を導けた. □2.7.2 sinの無限積表示を用いたWallisの公式の証明
問題(Wallisの公式の証明1):

sin の無限積表示∞2𝑠 ∏ (1 − 𝑛𝑠2 ) = sin(𝜋𝑠)𝜋𝑠(1)(2𝑛)(2𝑛) = 𝜋 .
∏
𝑛=1 (2𝑛 − 1)(2𝑛 + 1) 2
𝜋 を代入すれば(2)がただちに得られる. □解答例: (1)に 𝑠 =
2

(2)

𝑛=1

を用いて, 次の公式を証明せよ:

In [18]:

Out[18]:∞1 n = symbols("n")
2 sol = 1/factor(1-1/(2n)^2)
3 latexstring(raw"\ds \frac{1}{1-1/(2n)^2} =", latex(sol))

4𝑛2
1 =1 − 1/(2𝑛)2 (2𝑛 − 1)(2𝑛 + 1)

2.7.3 ベータ函数の極限でガンマ函数が得らえることを用いWallisの公式の証明
問題(Wallisの公式の証明2): 前節のガンマ函数のGaussの公式の問題の解答例の中で次を示した:

lim 𝑛𝑠 𝐵(𝑠,𝑛 + 1) = Γ(𝑠)
𝑛→∞

(1)

これは

𝑛 が整数以外の実数を動いても成立している. この公式を用いて次の公式を証明せよ.
∞(2𝑛)(2𝑛)𝜋∏ (2𝑛 − 1)(2𝑛 + 1) = 2 .
𝑛=1

(2)

解答例: ベータ函数とガンマ函数の関係とガンマ函数の特殊値に関する結果より,+ 1/2) 1 ⋅ 3⋯(2𝑛 − 1)
𝐵(1/2,𝑛 + 1/2) = Γ(1/2)Γ(𝑛Γ(𝑛 + 1) = 𝜋 2 ⋅ 4⋯(2𝑛) ,+ 1) = 2 2 ⋅ 4⋯(2𝑛) ,𝐵(1/2,𝑛 + 1) = Γ(1/2)Γ(𝑛Γ(𝑛 + 1 + 1/2) 3 ⋅ 5⋯(2𝑛 + 1)

ゆえに,𝐵(1/2,𝑛 + 1) = 2 2 ⋅ 4⋯(2𝑛) × 2 ⋅ 4⋯(2𝑛) = 2 𝑛 (2𝑘)(2𝑘)𝐵(1/2,𝑛 + 1/2) 𝜋 1 ⋅ 3⋯(2𝑛 − 1) × 3 ⋅ 5⋯(2𝑛 + 1) 𝜋 ∏
𝑘=1 (2𝑘 − 1)(2𝑘 + 1)

一方,

(𝑛 + 𝑎 − 1)𝑠 = 1
lim𝑛→∞ (𝑛 + 𝑏 − 1)𝑠と公式(1)より,

𝐵(𝑠,𝑛 + 𝑎) = lim (𝑛 + 𝑎 − 1)𝑠𝐵(𝑠,𝑛 + 𝑎) = Γ(𝑠) = 1
lim𝑛→∞ 𝐵(𝑠,𝑛 + 𝑏) 𝑛→∞ (𝑛 + 𝑏 − 1)𝑠 𝐵(𝑠,𝑛 + 𝑏) Γ(𝑠)この等式の 𝑠 = 1/2, 𝑎 = 1/2 , 𝑏 = 1 の場合と上の結果を合わせると, (2)が得られる. □
注意:

𝜋/2

𝐵(𝑝,𝑞) = 2 ∫0 (cos𝜃)2𝑝−1 (sin𝜃)2𝑞−1 𝑑𝜃 より,
𝜋/2

𝜋/2

𝐵(1/2,𝑛 + 1/2) = 2 ∫0 sin2𝑛 𝜃𝑑𝜃, 𝐵(1/2,𝑛 + 1) = 2 ∫0 sin2𝑛+1 𝜃𝑑𝜃であることに注意せよ. 巷でよく見るWallisの公式の証明は右辺のsinのべきの積分を部分積分によって計算することによって行われている. その正体はベータ函数の特殊値であり, 結局のところ得られているのである.

□

𝐵(𝑠,𝑛 + 𝑎 + 1)

lim 𝐵(𝑠,𝑛 + 𝑏 + 1) = 1
𝑛→∞の特別な場合として, Wallisの公式は

2.7.4 Wallisの公式からGauss積分の値を得る方法
問題(Wallisの公式からGauss積分の値を方法): 問題(Wallisの公式の証明2)の解答例を続けることによって, Gauss積分∞ 2−𝑥 𝑑𝑥 = Γ 1 を計算してみよ.
𝑒
∫−∞
(2)
解答例: 上の解答例より,

𝑛1/2 𝐵(1/2,𝑛 + 1/2) ⋅ 𝑛1/2 𝐵(1/2,𝑛 + 1) = 2𝑛2𝑛𝜋+ 1 .
⎯⎯左辺は 𝑛 → ∞ で Γ(1/2) 2 に収束し, 右辺は 𝜋 に収束する. このことから Γ(1/2) = √ 𝜋 であることがわかる. □2.8 Legendre's duplication formula問題(Legendre's duplication formula): 次を示せ:

Γ(𝑠)Γ(𝑠 + 1/2) = 21−2𝑠 √⎯⎯𝜋 Γ(2𝑠).

解答例1: 次の公式を示そう:

1
2𝑠−1
2 𝑠−1
∫−1 (1 − 𝑥 ) 𝑑𝑥 = 2 𝐵(𝑠,𝑠) = 𝐵(1/2,𝑠).
まず, (1 − 𝑥2 ) 𝑠−1 = (1 − 𝑥) 𝑠−1 (1 + 𝑥) 𝑠−1 であることに注意し, 𝑥 = 1 − 2𝑡 とおくと,
1
1
𝑠−1
𝑠−1
2𝑠−1
2 )𝑠−1 𝑑𝑥 = 22𝑠−1
(1
−
𝑥
∫−1
∫0 𝑡 (1 − 𝑡) 𝑑𝑡 = 2 𝐵(𝑠,𝑠).
以上とは別に, 偶函数の積分であることを使って,

𝑥 = √𝑡 とおくと,

1112 )𝑠−1 𝑑𝑥 = 2 (1 − 𝑥2 )𝑠−1 𝑑𝑥 = (1 − 𝑡)𝑠−1𝑡−1/2 𝑑𝑡 = 𝐵(1/2,𝑠).
(1
−
𝑥
∫−1
∫0
∫0
2𝑠−1 𝐵(𝑠,𝑠) の両辺をガンマ函数を使って表すと,
これで上の公式が示された. 𝐵(1/2,𝑠) = 2

ゆえにΓ(1/2) = √⎯⎯𝜋 を使うと,

Γ(𝑠)Γ(1/2)=
22𝑠−1 Γ(𝑠)Γ(𝑠)Γ(2𝑠) Γ(𝑠 + 1/2)

Γ(𝑠)Γ(𝑠 + 1/2) = 21−2𝑠 Γ(1/2)Γ(2𝑠) = 21−2𝑠 √⎯⎯𝜋 Γ(2𝑠).□

解答例2: ガンマ函数の函数等式とこのノートの下の方で証明されているStirlingの近似公式を使っても証明できる. 実はLegendre's duplication formula を Gauss's multiplication formula に一般化しても証明の方針は完全に同様であるので, 一般化した場合の証明のみを書いておくことにする. このノートの下の方を見よ.

□

2.9 sinとガンマ函数の関係の再証明
2.9.1 Legendre's duplication formula を用いた Euler's reflection formula の再証明
Legendre's reflection formulaで

𝑠 = 𝑡/2 とおいて得られる

Γ(𝑠)Γ(𝑠 + 1/2) = 21−2𝑠 √⎯⎯𝜋 Γ(2𝑠)𝑡−1
Γ(𝑡) = 2 ⎯⎯𝜋 Γ ( 2𝑡 ) Γ ( 𝑡 +2 1 )√を用いた Euler's reflection formula の証明を紹介しよう. 以下の方法はE. Artin, The Gamma Function (https://www.google.co.jp/search?q=Artin+The+Gamma+Function)の第4節に書いてある.
函数

𝑓(𝑡) を𝑓(𝑡) = Γ(𝑡)Γ(1 − 𝑡) sin(𝜋𝑡)𝜋0 < 𝑡 < 1 において 𝑓(𝑡) が正値 𝐶 2 級(実際には解析的)であることがわかる. さらに Γ(𝑡) = Γ(1 + 𝑡)/𝑡,Γ(1 − 𝑡) = Γ(2 − 𝑡)/(1 − 𝑡), sin(𝜋𝑡) = sin(𝜋(1 − 𝑡)) より,
sin(𝜋(1 − 𝑡))𝑓(𝑡) = Γ(1 + 𝑡)Γ(1 − 𝑡) sin(𝜋𝑡)𝜋𝑡 = Γ(𝑡)Γ(2 − 𝑡) 𝜋(1 − 𝑡)なので, この前者の表示より 𝑡 = 0 の十分近くで, 後者の表示より 𝑡 = 1 の近くで, 𝑓(𝑡) は正値でかつ 𝐶 2 級(実際には解析的)であることがわかる. 特に, 前者より 𝑓(0) = 1 であることがわかり, 後者より 𝑓(1) = 1 であることがわかる.
と定める.

Legendre's duplication formula とを使うと,sin(𝜋𝑡) = 2sin 𝜋𝑡2 cos 𝜋𝑡2 = 2sin 𝜋𝑡2 sin 𝜋(𝑡 2+ 1)

𝑡−1−𝑡𝑓(𝑡) = 2√⎯⎯𝜋 Γ ( 2𝑡 ) Γ ( 𝑡 +2 1 ) √2 ⎯⎯𝜋 Γ ( 1 −2 𝑡 ) Γ ( 2 −2 𝑡 ) 𝜋2 sin 𝜋𝑡2 sin 𝜋(𝑡 2+ 1)
𝑡 + 1 Γ 1 − 𝑡 sin(𝜋(𝑡 + 1)/2)= Γ ( 2𝑡 ) Γ ( 2 −2 𝑡 ) sin(𝜋𝑡/2)Γ
𝜋 ( 2 ) ( 2 ) 𝜋sin(𝜋𝑡/2)𝑡𝑡= Γ ( 2 ) Γ (1 − 2 ) 𝜋 Γ ( 𝑡 +2 1 ) Γ (1 − 𝑡 +2 1 ) sin(𝜋(𝑡𝜋+ 1)/2)= 𝑓 ( 2𝑡 ) 𝑓 ( 𝑡 +2 1 ) .
これより, 𝑔(𝑡) = log𝑓(𝑡) とおくと, 𝑔(0) = 𝑔(1) = log1 = 0 でかつ,𝑔(𝑡) = 𝑔 ( 2𝑡 ) + 𝑔 ( 𝑡 +2 1 ) .

ゆえに,

0 ≦ 𝑡 ≦ 1 において,となるので,

𝑀 = 0≦𝑡≦1
max |𝑔″ (𝑡)| とおくと,

𝑔″ (𝑡) = 14 (𝑔″ ( 2𝑡 ) + 𝑔″ ( 𝑡 +2 1 )) ,|𝑔″ (𝑡)| ≦ 14 (|||𝑔″ ( 2𝑡 )||| + ||||𝑔″ ( 𝑡 +2 1 ))||||

𝑀 ≦ 14 (𝑀 + 𝑀) = 𝑀2となることがわかる. ゆえに 𝑀 = 0 である. これで 0 ≦ 𝑡 ≦ 1 において 𝑔″ (𝑡) = 0 となることがわかった. 𝑔(0) = 𝑔(1) = 0 より, 恒等的に 𝑔(𝑡) = 0 となる. これで 𝑓(𝑡) = 1 すなわち𝜋Γ(𝑡)Γ(1 − 𝑡) = sin(𝜋𝑡)が成立することが示された. この公式は Euler's reflection formula と呼ばれているのであった.
2.9.2 sinの無限積表示の再証明
Euler's reflection formulaとガンマ函数の無限積表示𝑠𝑠
Γ(𝑠) = 𝑛→∞lim 𝑠(1 + 𝑠)(2 𝑛+ 𝑛!𝑠)⋯(𝑛 + 𝑠) = 𝑛→∞lim 𝑠(1 + 𝑠) 1 +𝑛𝑠 ⋯ 1 + 𝑠 ,( 2) ( 𝑛)1−𝑠 𝑛!
−𝑠𝑛Γ(1 − 𝑠) = 𝑛→∞lim (1 − 𝑠)(2 − 𝑠)⋯(𝑛 + 1 − 𝑠) = 𝑛→∞lim (1 − 𝑠) 1 − 𝑠 ⋯𝑛 1 − 𝑠 1 + 1−𝑠 ,( 2 ) ( 𝑛 )( 𝑛 )より,

sin(𝜋𝑡) = 1 = lim 𝑠 𝑛 1 + 𝑠 1 − 𝑠 = 𝑠 ∞ 1 − 𝑠2 .
(( 𝑘 )( 𝑘 )) ∏𝜋 Γ(𝑡)Γ(1 − 𝑡) 𝑛→∞ ∏𝑘=1
𝑛=1 ( 𝑛2 )まとめ: ガンマ函数とベータ函数をEuler型の積分表示式に基いて, ガンマ函数の函数等式やガンマ函数とベータ函数の関係を証明できる.
からガンマ函数の無限積表示が得られ, 同じ積分の2通りの計算

lim 𝑛𝑠 𝐵(𝑠,𝑛 + 1) = Γ(𝑠)𝑛→∞12∫−1 (1 − 𝑥 )𝑠−1 𝑑𝑥 = 22𝑠−1 𝐵(𝑠,𝑠) = 𝐵(1/2,𝑠) から Legendre's duplication formula が得られる. これだけの準備のもとで

Euler's reflection formula が得られ, sin の無限積表示も得られるというのが以上の筋道である. E. Artinの有名なガンマ函数の本ではガンマ函数は函数等式と対数凸性で定数倍を除いて一意に特徴付けられるという結果を全般的に用いてガンマ函数に関する様々な公式を証明している. そのような対数凸性に頼らなくても, Euler型積分表示式だけを使っても主要な公式を示せることが以上の議論を見ればわかる□

ガンマ函数についてはさらに
黒木玄, ガンマ分布の中心極限定理とStirlingの公式 (https://genkuroki.github.io/documents/20160501StirlingFormula.pdf)の第8節を参照せよ.

2.10 Lerchの定理とゼータ正規化積
2.10.1 Lerchの定理 (Hurwitzのゼータ函数とガンマ函数の関係)
Lerchの定理: Hurwitzのゼータ函数

𝜁(𝑠,𝑥) からガンマ函数が
𝜁𝑠 (0,𝑥) = log √Γ(𝑥)⎯2𝜋⎯⎯⎯ , Γ(𝑥) = √⎯2𝜋⎯⎯⎯ exp(𝜁𝑠 (0,𝑥))𝜁𝑠 (𝑠,𝑥) は 𝜁(𝑠,𝑥) の 𝑠 に関する偏導函数である.
⎯⎯⎯⎯
証明: 𝐹(𝑥) = 𝜁𝑠 (0,𝑥) − logΓ(𝑥) とおく. 𝐹(𝑥) = −log √ 2𝜋 であることを示せば十分である.
(1) (𝜁𝑠 (0,𝑥)) ″ = (logΓ(𝑥)) ″ を示そう. ここで ′ は 𝑥 による微分を表わす. まずHurwitzのゼータ函数∞
𝜁(𝑠,𝑥) = ∑ (𝑥 +1 𝑘)𝑠によって得られる. ここで

𝑘=0

については

𝜁𝑥 (𝑠,𝑥) = −𝑠𝜁(𝑠 + 1,𝑥)が成立しているので,これより,

𝜁𝑥𝑥 (𝑠,𝑥) = 𝑠(𝑠 + 1)𝜁(𝑠 + 2,𝑥).
(𝜁𝑠 (0,𝑥))″ = 𝜁𝑥𝑥𝑠 (0,𝑥) = 𝜁(2,𝑥).

一方, ガンマ函数

𝑛!𝑛𝑥
Γ(𝑥) = lim→∞ 𝑥(𝑥 + 1)⋯(𝑥 + 𝑛)については,logΓ(𝑥) = 𝑛→∞lim (log𝑛! + 𝑥log𝑛 − log𝑥 − log(𝑥 + 1) − ⋯ − log(𝑥 + 𝑛)),(logΓ(𝑥))′ = 𝑛→∞lim (log𝑛 − 𝑥1 − 𝑥 +1 1 − ⋯ − 𝑥 +1 𝑛 ) ,(logΓ(𝑥))″ = 𝑛→∞lim ( 𝑥12 + (𝑥 +1 1)2 + ⋯ + (𝑥 +1 𝑛)2 ) = 𝜁(2,𝑥).
これで (𝜁𝑠 (0,𝑥)) ″ = (logΓ(𝑥)) ″ が示された.
(2) 上の結果より, 𝐹(𝑥) = 𝜁𝑠 (0,𝑥) − logΓ(𝑥) は 𝑥 の一次函数である.
(3) 𝜁𝑠 (0,𝑥) と logΓ(𝑥) がどちらも同一の函数等式 𝑓(𝑥 + 1) = 𝑓(𝑥) + log𝑥 を満たすことを示そう.
𝜁(𝑠,𝑥 + 1) = 𝜁(𝑠,𝑥) − 𝑥1𝑠 , ∴ 𝜁𝑠 (0,𝑥 + 1) = 𝜁𝑠 (0,𝑥) + log𝑥.
logΓ(𝑥 + 1) = log(𝑥Γ(𝑥)) = logΓ(𝑥) + log𝑥.
(4) 𝐹(𝑥) = 𝜁𝑠 (0,𝑥) − logΓ(𝑥) は 𝑥 の一次函数だったので, 上の結果より 𝐹(𝑥) は定数になる.
⎯⎯(5) 𝜁𝑠 (0,1/2) = −log √ 2 を示そう.
𝜁(𝑠) − 2−𝑠 𝜁(𝑠) = ( 11𝑠 + 21𝑠 + 31𝑠 + 41𝑠 + ⋯) − ( 21𝑠 + 41𝑠 + ⋯)∞= 11𝑠 + 31𝑠 + ⋯ = ∑ (2𝑘 +1 1)𝑠
𝑘=0

なので

∞
∞
𝜁(𝑠,1/2) = ∑ (𝑘 +11/2)𝑠 = 2𝑠 ∑ (2𝑘 +1 1)𝑠 = 2𝑠 (𝜁(𝑠) − 2−𝑠 𝜁(𝑠)) = (2𝑠 − 1)𝜁(𝑠),𝑘=0
𝑘=0∴ 𝜁𝑠 (0,1/2) = 𝜁(0)log2 = − 12 log2 = −log √⎯⎯2.
⎯⎯⎯⎯⎯⎯(6) logΓ(1/2) = log √ 𝜋 なので, 上の結果より, 𝐹(𝑥) = −log √ 2𝜋 であることがわかる. □2.10.2 digamma, trigamma, polygamma 函数
上のLerchの定理の証明中に出て来た対数ガンマ函数
はそれぞれdigamma函数, trigamma函数と呼ばれる:

logΓ(𝑥) の導函数達をpolygamma函数と呼ぶ. 例えば, 以下の 𝜓(𝑥), 𝜓 ′(𝑥)logΓ(𝑥) = 𝑛→∞lim (log𝑛! + 𝑥log𝑛 − log𝑥 − log(𝑥 + 1) − ⋯ − log(𝑥 + 𝑛)),𝜓(𝑥) = (logΓ(𝑥))′ = 𝑛→∞lim (log𝑛 − 𝑥1 − 𝑥 +1 1 − ⋯ − 𝑥 +1 𝑛 ) ,𝜓 ′(𝑥) = (logΓ(𝑥))″ = 𝑛→∞lim ( 𝑥12 + (𝑥 +1 1)2 + ⋯ + (𝑥 +1 𝑛)2 ) = 𝜁(2,𝑥).
これらの式を見ればわかるように, 𝑚 ≧ 3 に対するtrigamma函数以降の 𝑚 -th polygamma函数 𝜓 (𝑚−2) (𝑥) = (logΓ(𝑥)) (𝑚−1) は
Hurwitzのゼータ函数の特別な場合 𝜁(𝑚 − 1,𝑥) に一致する.
調和級数 1 + 1/2 + ⋯ + 1/𝑛 と log𝑛 の差が 𝑛 → ∞ で収束し, その収束先はEuler定数と呼ばれ, 𝛾 = 0.5772⋯ と書かれる.
その事実はdigamma函数を使うと−𝜓(1) = 𝛾 = 0.5772⋯と表わされる. digamma函数の −1 倍 −𝜓(𝑥) は一般化された調和級数 1/𝑥 + 1/(𝑥 + 1) + ⋯ + 1/(𝑥 + 𝑛) と log𝑛 の差の極限に等しいので, digamma函数の −1 倍はEuler定数の一般化であるとも考えられる.

digamma函数

𝜓(𝛼) は′ (𝛼)1 ∞ 𝑒−𝑥 𝑥𝛼−1 log𝑥𝑑𝑥
𝜓(𝛼) = ΓΓ(𝛼)= Γ(𝛼)∫0とも書ける. これはパラメーター (𝛼, 𝜃 = 1) のガンマ分布に従う確率変数 𝑋 の対数 log𝑋 の期待値に等しい. 統計学におけるガンマ分布の取り扱いではdigamma函数などが必要になる. Lerchの定理の証明を通して, 対数ガンマ函数の導函数の様子がよくわかるという感覚を身に付けておくと, その感覚はガンマ分布の統計学でも役に立つことになる.
2.10.3 ゼータ正規化積
数列

𝑎𝑛 に対して,𝑁
𝑓(𝑠) = ∑ 𝑎1𝑠𝑛𝑛=1

とおくとき,𝑁𝑓 ′ (0) = − ∑ log 𝑎𝑛
𝑛=1

なので,

𝑁

exp(−𝑓 ′ (0)) = ∏ 𝑎𝑛𝑛=1∞∞
𝑁 = ∞ のときの ∏ 𝑎𝑛 が発散していても, 𝑓(𝑠) = ∑ 𝑎1𝑠𝑛 の解析接続によって, 左辺の exp(−𝑓 ′ (0))
𝑛=1
𝑛=1はwell-definedになる可能性がある. そのとき, exp(−𝑓 ′ (0)) を∞exp(−𝑓 ′ (0)) = ∏∐ 𝑎𝑛が成立している. もしも

𝑛=1

𝑎𝑛 達のゼータ正規化積と呼ぶ.
√⎯2𝜋⎯⎯⎯ になる. 特に 𝑥 = 1 のときの 1,2,3,4,… のゼ
例えば 𝑥,𝑥 + 1,𝑥 + 2,𝑥 + 3,… のゼータ正規化積はLerchの定理より,
Γ(𝑥)
⎯⎯⎯⎯
ータ正規化積は √ 2𝜋 になる:∞⎯⎯⎯⎯
"1 × 2 × 3 × 4 × ⋯"= ∏∐ 𝑛 = exp(−𝜁 ′(0)) = √2𝜋.
と書き,

𝑛=1

これは

"1 + 2 + 3 + 4 + ⋯"= 𝜁(−1) = − 121の積バージョンである.

2.10.4 Lerchの定理を用いたBinetの公式の証明
上でLerchの定理を示した.
Lerchの定理:

𝜁𝑠 (0,𝑥) = log √Γ(𝑥)⎯2𝜋⎯⎯⎯ . □これを用いて次のBinetの公式を示そう.
Binetの公式:

𝑥 > 0 のとき,

ここで

証明:

𝑥 > 0 と仮定する.

logΓ(𝑥 + 1) = 𝑥log𝑥 − 𝑥 + 12 log𝑥 + log √⎯2𝜋⎯⎯⎯ + 𝜑(𝑥).
∞𝜑(𝑥) = ∫0 ( 𝑒𝑡 1− 1 − 1𝑡 + 12 ) 𝑒−𝑥𝑡 𝑡−1 𝑑𝑡.

□

1 ∞ 𝑒−𝑎𝑡 𝑡𝑠−1 𝑑𝑡 より,
Re𝑠 > 1 のとき, 𝑎 > 0 について 𝑎1𝑠 = Γ(𝑠)∫0∞
1 ∞ ∞ 𝑒−(𝑥+𝑘)𝑡 𝑡𝑠−1 𝑑𝑡 = 1 ∞ 𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡.
𝜁(𝑠,𝑥) = ∑ (𝑥 +1 𝑘)𝑠 = Γ(𝑠)∑
Γ(𝑠) ∫0 1 − 𝑒−𝑡𝑘=0
𝑘=0 ∫0ゆえに

1 ∞ 𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡.
𝜁(𝑠,𝑥 + 1) = Γ(𝑠)∫0 𝑒𝑡 − 1

𝐹(𝑠,𝑥) を

1 ∞ 1 − 1 + 1 𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡
𝐹(𝑠,𝑥) = Γ(𝑠)∫0 ( 𝑒𝑡 − 1 𝑡 2 )と定めると,1

1 1

𝑒𝑡 − 1 − 𝑡 + 2 = 𝑂(𝑡)なので,(𝑡 → 0)𝐹(𝑠,𝑥) の定義式は Re𝑠 > −1 で収束している. Re𝑠 > 1 のとき
1 ∞ 1 𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡 = Γ(𝑠 − 1) 1 = 𝑥1−𝑠 ,Γ(𝑠) ∫0 ∞ 𝑡
Γ(𝑠) 𝑥𝑠−1 𝑠 − 11
1 𝑒−𝑥𝑡 𝑡𝑠−1 𝑑𝑡 = − 𝑥−𝑠−Γ(𝑠) ∫0 ( 2 )2であるから,

𝜁(𝑠,𝑥 + 1) = 𝑠𝑥−1−𝑠1 − 𝑥2−𝑠 + 𝐹(𝑠,𝑥).
この等式は Re𝑠 > −1 でも解析接続によって成立している. そこで以下では Re𝑠 > −1 と仮定する.
1 より, 𝐹(0,𝑥) = 0 となるので,
lim
𝑠→0 Γ(𝑠) = 0∂ ||| 𝑥1−𝑠 = −𝑥1−𝑠 log𝑥 − 𝑥1−𝑠 || = 𝑥log𝑥 − 𝑥,∂𝑠 |𝑠=0 𝑠 − 1 ( 𝑠 − 1 (𝑠 − 1)2 )||𝑠=0∂ ||| − 𝑥−𝑠 = 𝑥−𝑠 log𝑥 || = 1 log𝑥,∂𝑠 |𝑠=0 ( 2 ) ( 2 )||𝑠=0 2 ∞𝐹(𝑠,𝑥)∂|
1
1 1 1 −𝑥𝑡 𝑠−1
𝑠→0 𝑠 = lim
𝑠→0 Γ(𝑠 + 1) ∫0 ( 𝑒𝑡 − 1 − 𝑡 + 2 ) 𝑒 𝑡 𝑑𝑡
∂𝑠 |||𝑠=0𝐹(𝑠,𝑥)∞ = lim= ∫0 ( 𝑒𝑡 1− 1 − 1𝑡 + 12 ) 𝑒−𝑥𝑡 𝑡−1 𝑑𝑡 = 𝜑(𝑥).
ゆえに,𝜁𝑠 (0,𝑥 + 1) = 𝑥log𝑥 − 𝑥 + 12 log𝑥 + 𝜑(𝑥).

したがって, Lerchの定理より,

logΓ(𝑥 + 1) = 𝜁𝑠 (0,𝑥 + 1) + log √⎯2𝜋⎯⎯⎯ = 𝑥log𝑥 − 𝑥 + 12 log𝑥 + log √⎯2𝜋⎯⎯⎯ + 𝜑(𝑥).
これで, Lerchの定理からBinetの公式が導かれることがわかった. □Binetの公式は本質的にHurwitzのゼータ函数 𝜁(𝑠,𝑥) の 𝑠 に関する偏微分係数 𝜁𝑠 (0,𝑥) に関する公式であるとみなせる. Binetの公3 Stirlingの公式とLaplaceの方法
一般に数列

𝑎𝑛 , 𝑏𝑛 についてが成立するとき,

lim 𝑎𝑏𝑛𝑛 = 1
𝑛→∞𝑎𝑛 ∼ 𝑏𝑛

と書く

とにする

3.1 Stirlingの公式
Stirlingの(近似)公式:

𝑛 → ∞ のとき,⎯⎯⎯⎯⎯.
𝑛! ∼ 𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛𝑛 → ∞ のとき,
log𝑛! = 𝑛log𝑛 − 𝑛 + 12 log𝑛 + log √⎯2𝜋⎯⎯⎯ + 𝑜(1).

さらに, 両辺の対数を取ることによって,Stirlingの公式の「物理学的」もしくは「情報理論的」な応用については
黒木玄, Kullback-Leibler情報量とSanovの定理 (https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)の第1節を参照せよ.
Stirlingの公式の証明:∞

𝑛! = Γ(𝑛 + 1) = ∫0 𝑒−𝑥 𝑥𝑛 𝑑𝑥

𝑥 = 𝑛 + √⎯𝑛 𝑦 = 𝑛(1 + 𝑦/√⎯𝑛) と置換すると,
𝑛∞∞𝑛! = 𝑛𝑛 𝑒−𝑛 √⎯𝑛 ∫− 𝑛 𝑒−√𝑛 𝑦 (1 + √𝑦⎯𝑛 ) 𝑑𝑦 = 𝑛𝑛 𝑒−𝑛 √⎯𝑛 ∫− 𝑛 𝑓𝑛 (𝑦)𝑑𝑦.
√√
ここで, 被積分函数を 𝑓𝑛 (𝑦) と書いた. そのとき 𝑛 → ∞ で
2
log 𝑓𝑛 (𝑦) = −√⎯𝑛 𝑦 + 𝑛log(1 + √𝑦⎯𝑛 ) = −√⎯𝑛 𝑦 + 𝑛 ( √𝑦⎯𝑛 − 𝑦2𝑛 + 𝑂 ( 𝑛√1 ⎯𝑛 ))22= − 𝑦2 + 𝑂 ( √1⎯𝑛 ) → − 𝑦2 .
2すなわち 𝑓𝑛 (𝑦) → 𝑒−𝑦 /2 となる. ゆえに𝑛! ⎯⎯⎯⎯⎯⎯ = 1⎯⎯⎯⎯ ∞ 𝑓𝑛 (𝑦)𝑑𝑦 → 1⎯⎯⎯⎯ ∞ 𝑒−𝑦2/2 𝑑𝑦 = 1.
𝑛𝑛 𝑒−𝑛 √2𝜋𝑛 √2𝜋 ∫−√𝑛√2𝜋 ∫−∞∞ 2⎯⎯⎯⎯
最後の等号でGauss積分の公式 ∫−∞ 𝑒−𝑦 /𝑎 𝑑𝑦 = √ 𝑎𝜋 を用いた. □⎯Stirlingの公式の証明の解説: 上の証明のポイントは 𝑥 = 𝑛 + √ 𝑛 𝑦 という積分変数変換である. この変数変換の「正体」は∞
Γ(𝑛 + 1) = ∫0 𝑒−𝑥 𝑥𝑛 𝑑𝑥 の被積分函数 𝑓(𝑥) = 𝑒−𝑥 𝑥𝑛 のグラフを描いてみれば見当がつく.
𝑔(𝑥) = log𝑓(𝑥) = 𝑛log𝑥 − 𝑥 の導函数は 𝑔′ (𝑥) = 𝑛/𝑥 − 1 は 𝑥 について単調減少であり, 𝑥 = 𝑛 で 0 になる. ゆえに𝑔(𝑥)= log𝑓(𝑥) は 𝑥 = 𝑛 で最大になる. そこで 𝑥 = 𝑛 における 𝑔(𝑥) = log𝑓(𝑥) のTaylor展開を求めてみよう.
𝑔″ (𝑥) = −𝑛/𝑥2 , 𝑔‴ (𝑥) = 2𝑛/𝑥3 なので, 𝑔(𝑛) = 𝑛log𝑛 − 𝑛, 𝑔′ (𝑛) = 0, 𝑔″ (𝑛) = −1/𝑛, 𝑔‴ (𝑛) = 2/𝑛2 なので,
23𝑔(𝑥) = 𝑛log𝑛 − 𝑛 − (𝑥 −2𝑛𝑛) + (𝑥3𝑛− 2𝑛) + ⋯⎯
これの2次の項が −𝑦2 /2 になるような変数変換がちょうど 𝑥 = 𝑛 + √ 𝑛 𝑦 になっている. これが上の証明で用いた変数変換の「正体」である. □でIn [19]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

In [20]:

1 plot(PP[1:2]..., size=(700, 200))# y = f(x) = e^{-x} x^n / (n^n * e^{-n}) のグラフは n が大きなとき,# Gauss近似 y = e^{-(x-n)^2/(2n)} のグラフにほぼ一致する.
​
f(n,x) = e^(-x + n*log(x) - (n*log(n) - n))g(n,x) = e^(-(x-n)^2/(2n))
PP = []
for n in [10, 30, 100, 300]
x = 0:2.5n/400:2.5nn ≤ 20 && (x = 0:3n/400:3n)
P = plot()plot!(title="n = $n", titlefontsize=9)
plot!(x, g.(n,x), label="Gaussian")
plot!(x, f.(n,x), label="approx.", ls=:dash)push!(PP, P)
end

Out[20]:In [21]:

1 plot(PP[3:4]..., size=(700, 200))

Out[21]:𝑛 が整数であることは使っていない. ゆえに正の実数 𝑠 について⎯⎯⎯⎯⎯ (𝑠 → ∞)Γ(𝑠 + 1) ∼ 𝑠𝑠 𝑒−𝑠 √⎯2𝜋𝑠

注意(ガンマ函数のStirlingの近似公式): 上の証明でが証明されている. これの両辺を𝑠 で割ると,Γ(𝑠) ∼ 𝑠𝑠 𝑒−𝑠 𝑠−1/2 √⎯2𝜋⎯⎯⎯ (𝑠 → ∞)が得られる. これらをもStirlingの近似公式と呼ぶ. □Stirlingの公式の重要な応用については
黒木玄, 11 Kullback-Leibler情報量 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/11%20KullbackLeibler%20information.ipynb)も参照せよ. 「Stirlingの公式」とその応用としての「KL情報量に関するSanovの定理」についてはできるだけ早く理解しておいた方がよい.

□
問題: 𝑛 = 1,2,…,10 について Stirling の公式の相対誤差⎯⎯⎯⎯⎯
𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛𝑛! − 1を求めよ.
解答例: 以下のセルを参照せよ.

𝑛 = 5 で相対誤差は2%を切っている. □In [22]:

1 f(n) = factorial(n)2 g(n) = n^n * exp(-n) * √(2π*n)
3 [(n, f(n), g(n), g(n)/f(n)-1) for n in 1:10]

Out[22]: 10-element Vector{Tuple{Int64, Int64, Float64, Float64}}:(1, 1, 0.9221370088957891, -0.07786299110421091)(2, 2, 1.9190043514889832, -0.04049782425550841)(3, 6, 5.836209591345864, -0.027298401442355957)(4, 24, 23.50617513289329, -0.02057603612944625)(5, 120, 118.01916795759008, -0.01650693368674927)(6, 720, 710.0781846421849, -0.013780299108076544)(7, 5040, 4980.395831612461, -0.01182622388641652)(8, 40320, 39902.3954526567, -0.010357255638474672)(9, 362880, 359536.87284194824, -0.00921276223008094)(10, 3628800, 3.5986956187410364e6, -0.008295960443938433)⎯⎯⎯⎯⎯ は 𝑛! よりも微小に小さいことがわかる. その分を補正したより精密な近似式
𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛⎯⎯⎯⎯⎯ 1 + 1 + 𝑂 1
𝑛! = 𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛( 12𝑛 ( 𝑛2 ))が成立している. (実際には 𝑂(1/𝑛2 ) の部分についてもっと詳しいことがわかる.)
1/(12𝑛) で補正した近似式の相対誤差は 𝑛 = 1 ですでに0.1%程度と非常に小さくなる. 次のセルを見よ. □参考: 上の計算を見れば,

In [23]:

1 f(n) = factorial(n)2 g1(n) = n^n * exp(-n) * √(2π*n) * (1+1/(12n))
3 [(n, f(n), g1(n), g1(n)/f(n)-1) for n in 1:10]

Out[23]: 10-element Vector{Tuple{Int64, Int64, Float64, Float64}}:(1, 1, 0.9989817596371048, -0.0010182403628952175)(2, 2, 1.9989628661343577, -0.0005185669328211517)(3, 6, 5.998326524438804, -0.000278912593532632)(4, 24, 23.995887114828566, -0.0001713702154764185)(5, 120, 119.98615409021657, -0.00011538258152854475)(6, 720, 719.9403816511041, -8.280326235543534e-5)(7, 5040, 5039.686258179276, -6.225036125484529e-5)(8, 40320, 40318.04540528855, -4.847705137533964e-5)(9, 362880, 362865.9179608552, -3.880632480379731e-5)(10, 3628800, 3.6286847488972116e6, -3.1760114304502096e-5)

3.2 Wallisの公式のStirlingの公式を使った証明問題(Wallisの公式): Stirlingの公式を用いて次を示せ:

解答例:

1 2𝑛 122𝑛 ( 𝑛 ) ∼ √⎯𝜋𝑛⎯⎯⎯ .
⎯⎯⎯⎯⎯ 1
1 2𝑛 = (2𝑛)! ∼ (2𝑛)2𝑛 𝑒−2𝑛 √⎯4𝜋𝑛22𝑛 ( 𝑛 ) 22𝑛 (𝑛!)2 22𝑛 𝑛2𝑛 𝑒−2𝑛 2𝜋𝑛 = √⎯𝜋𝑛⎯⎯⎯ .

□注意: この形のWallisの公式は1次元の単純ランダムウォークの逆正弦法則に関係している.
黒木玄, 単純ランダムウォークの逆正弦法則 (https://genkuroki.github.io/documents/#2016-11-02) (手描きのノートのPDF(https://genkuroki.github.io/documents/20161102ArcSineLawForSimpleRandomWalks.pdf))を参照せよ. 特に手描きのノートのPDFファイルの12頁以降にまとまった解説がある. 1次元の単純ランダムウォークの場合には
高校数学レベルの組み合わせ論的な議論とWallisの公式から逆正弦法則を導くことができる. 1次元の一般ランダムウォークの場
合にはTauber型定理を使ってWallisの公式に対応する漸近挙動を証明することになる.

□In [24]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# Wallisの公式より## [ 2^{2n} (n!)^2 / ((2n)! √n) ]^2 ---→ π## 以下はこれの数値的確認## log n! を log lgamma(n+1) で計算している. ここで lgamma(x) = log(Γ(x)).
# lgamma(x) は対数ガンマ函数を巨大な x についても計算してくれる.
​
f(n) = exp((2n)*log(typeof(n)(2)) + 2lgamma(n+1) - lgamma(2n+1) - log(n)/2)^2
Wallis_pi = f(big"10.0"^40)
Exact__pi = big(π)@show Wallis_pi@show Exact__pi
Wallis_pi - Exact__pi

Wallis_pi = 3.14159265358979323846264338327950280112510935008936482449955348608333403219364
Exact__pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286198
Out[24]: -8.307206004928574099647539110622448237409255782069327815244440488293374992724481e-35

3.3 Gauss's multiplication formula𝑛 に対して,Γ(𝑠)Γ (𝑠 + 1𝑛 ) ⋯Γ (𝑠 + 𝑛 −𝑛 1 ) = 𝑛1/2−𝑛𝑠 (2𝜋)(𝑛−1)/2Γ(𝑛𝑠).

問題(Gauss's multiplication formula): 次を示せ: 正の整数

解答例: 函数𝑓(𝑠) を次のように定める:

1 ⋯Γ (𝑠 + 𝑛−1 )𝑛𝑓(𝑠) = Γ(𝑠)Γ (𝑠 +𝑛−𝑛𝑠𝑛 )Γ(𝑛𝑠)𝑓(𝑠) = 𝑛1/2 (2𝜋)(𝑛−1)/2 を示せばよい.
ガンマ函数の函数等式だけを使って, 𝑓(𝑠 + 1) = 𝑓(𝑠) を示せる:
𝑠 (𝑠 + 1𝑛 ) ⋯ (𝑠 + 𝑛−1𝑛 ) = 𝑓(𝑠).
𝑓(𝑠 + 1) = 𝑓(𝑠) 𝑛−𝑛 (𝑛𝑠+ 𝑛 − 1)⋯(𝑛𝑠 + 1)(𝑛𝑠)上で証明されているStirlingの近似公式

Γ(𝑠) ∼ 𝑠𝑠 𝑒−𝑠 𝑠−1/2 √⎯2𝜋⎯⎯⎯ (𝑠 → ∞)𝑎 𝑠 𝑎を使って, 𝑠 → ∞ のときの 𝑓(𝑠) の極限を求めよう. 𝑠 → ∞ のとき, (1 + ) → 𝑒 なので, 𝑠 → ∞ において,𝑠Γ(𝑠 + 𝑎) ∼ (𝑠 + 𝑎)𝑠+𝑎−1/2 𝑒−𝑠−𝑎 √⎯2𝜋⎯⎯⎯= 𝑠𝑠+𝑎−1/2 𝑒−𝑠 √⎯2𝜋⎯⎯⎯ (1 + 𝑎𝑠 )𝑠+𝑎−1/2 𝑒−𝑎∼ 𝑠𝑠+𝑎−1/2 𝑒−𝑠 √⎯2𝜋⎯⎯⎯.
𝑛−1 𝑛−1
1 2となる. ゆえに, 𝑛 + 𝑛 + ⋯ + 𝑛 = 2 なので, 𝑠 → ∞ において,
Γ(𝑠) ∼ 𝑠𝑠−1/2 𝑒−𝑠 √⎯2𝜋⎯⎯⎯,Γ (𝑠 + 1𝑛 ) ∼ 𝑠𝑠+1/𝑛−1/2 𝑒−𝑠 √⎯2𝜋⎯⎯⎯,⋯⋯⋯⋯⋯Γ (𝑠 + 𝑛 −𝑛 1 ) ∼ 𝑠𝑠+(𝑛−1)/𝑛−1/2 𝑒−𝑠 √⎯2𝜋⎯⎯⎯∴ Γ(𝑠)Γ (𝑠 + 1𝑛 ) ⋯Γ (𝑠 + 𝑛 −𝑛 1 ) ∼ 𝑠𝑛𝑠−1/2 𝑒−𝑛𝑠 (2𝜋)𝑛/2
𝑛−𝑛𝑠 Γ(𝑛𝑠) ∼ 𝑛−𝑛𝑠 (𝑛𝑠)𝑛𝑠−1/2𝑒−𝑛𝑠 √⎯2𝜋⎯⎯⎯ = 𝑛−1/2 𝑠𝑛𝑠−1/2 𝑒−𝑛𝑠 (2𝜋)1/2となり,

𝑛𝑠−1/2 −𝑛𝑠 𝑛/2
𝑓(𝑠) ∼ 𝑛−1/2𝑠 𝑠𝑛𝑠−1/2𝑒 𝑒−𝑛𝑠(2𝜋(2𝜋) )1/2 = 𝑛1/2 (2𝜋)(𝑛−1)/2.
ゆえに整数 𝑁 について, 𝑓(𝑠 + 𝑁) = 𝑓(𝑠) なので, 𝑁 → ∞ のとき 𝑓(𝑠) = 𝑓(𝑠 + 𝑁) → 𝑛1/2 (2𝜋) (𝑛−1)/2 となる. これで𝑓(𝑠) = 21/2 (2𝜋)(𝑛−1)/2 が示された. □𝑛=2

問題: Gauss's multiplication formula のの場合である Legendre's duplication formula は定積分の計算だけで証明できるのであった. 上の解答例は本質的にStirlingの近似公式を使っている. Gauss's multiplication formula にも定積分の計算だけで証明する
方法がないだろうか. 以下の方針で Gauss's multiplication formula を証明せよ. ただし, (3)の証明には Euler's reflection formula は使ってよいことにする.

𝑡 > 0 に対する 𝑛 − 1 重積分 𝐼(𝑡) を次のように定める:∞∞
𝐼(𝑡) = ∫0 ⋯ ∫0 𝑒−(𝑡𝑛/(𝑥2⋯𝑥𝑛)+𝑥2+⋯+𝑥𝑛)𝑥−(𝑛−1)/𝑛⋯ 𝑥−1/𝑛𝑥−(𝑛−2)/𝑛𝑛 𝑑𝑥2 ⋯𝑑𝑥𝑛 .
23以下を示せ:

𝐼(𝑡) = Γ ( 1𝑛 ) Γ ( 2𝑛 ) ⋯Γ ( 𝑛 −𝑛 1 ) 𝑒−𝑛𝑡 .
𝑛 − 1 1−𝑛𝑠𝑛−112
1−𝑛𝑠 1(2) Γ(𝑠)Γ 𝑠 +( 𝑛 ) ⋯Γ (𝑠 + 𝑛 ) = 𝑛 𝐼(0)Γ(𝑛𝑠) = 𝑛 Γ ( 𝑛 ) Γ ( 𝑛 ) ⋯Γ ( 𝑛 ) Γ(𝑛𝑠).
𝑛−1
1 2(𝑛−1)/2 −1/2
(3) 𝐼(0) = Γ( 𝑛 ) Γ ( 𝑛 ) ⋯Γ ( 𝑛 ) = (2𝜋) 𝑛 .
(1)

注意: (1), (2) の方針の証明はAndrews, G.E., Askey,R., and Roy, R. Special functions. Encyclopedia of Mathematics and its Applications, Vol. 71,
Cambridge University Press, 1999, 2000, 681 pages.
のpp.24-25で解説されている. その方法はLiouville, J. Sur un théorème relatif à l’intégrale eulérienne de seconde espèce. Journal de mathématiques pures etappliquées 1re série, tome 20 (1855), p. 157-160. PDF (http://sites.mathdoc.fr/JMPA/PDF/JMPA_1855_1_20_A15_0.pdf)の方法の再構成ということらしい.

𝑡 = 0 のとき, 𝐼(0) の積分は変数分離形になって,𝐼(0) = Γ ( 1𝑛 ) Γ ( 2𝑛 ) ⋯Γ ( 𝑛 −𝑛 1 )𝑡𝑛 によって積分変数 𝑥2 を積分変数 𝑥1 に変換すると,となることがすぐにわかる. 𝐼(𝑡) を 𝑡 で微分して, 𝑥2 =𝑥3 ⋯ 𝑥𝑛 𝑥1∞∞ 𝑛𝑛−1 −(𝑛−1)/𝑛 −(𝑛−2)/𝑛 −1/𝑛
𝐼 ′(𝑡) = ∫0 ⋯ ∫0 𝑒−(𝑡 /(𝑥2⋯𝑥𝑛)+𝑥2+⋯+𝑥𝑛) 𝑥−𝑛𝑡
𝑥 𝑥3 ⋯ 𝑥𝑛 𝑑𝑥2 ⋯𝑑𝑥𝑛
2 ⋯ 𝑥𝑛 2∞∞= −𝑛 ∫0 ⋯ ∫0 𝑒−(𝑡𝑛/(𝑥2⋯𝑥𝑛)+𝑥2+⋯+𝑥𝑛)𝑡𝑛−1 𝑥−(𝑛−1)/𝑛−1⋯ 𝑥−1/𝑛−1
𝑑𝑥2 ⋯𝑑𝑥𝑛𝑥−(𝑛−2)/𝑛−1
𝑛
2
3
∞
∞
= −𝑛 ∫0 ⋯ ∫0 𝑒−(𝑥1+𝑡𝑛/(𝑥3⋯𝑥𝑛𝑥1)+𝑥3+⋯+𝑥𝑛)−(2𝑛−1)/𝑛𝑛𝑛𝑡−(𝑛+1)/𝑛× 𝑡𝑛−1 ( 𝑥3 ⋯𝑡 𝑥𝑛 𝑥1 )⋯𝑑𝑥3 ⋯𝑑𝑥𝑛 𝑑𝑥1
𝑥−(2𝑛−2)/𝑛𝑥
𝑛3𝑥
3 ⋯ 𝑥𝑛 𝑥21∞∞= −𝑛 ∫0 ⋯ ∫0 𝑒−(𝑥1+𝑡𝑛/(𝑥3⋯𝑥𝑛𝑥1)+𝑥3+⋯+𝑥𝑛)𝑥−(𝑛−1)/𝑛⋯ 𝑥−2/𝑛𝑛 𝑥−1/𝑛3
1 𝑑𝑥3 ⋯𝑑𝑥𝑛 𝑑𝑥1= −𝑛𝐼(𝑡)ゆえに 𝐼(𝑡) = 𝐼(0)𝑒−𝑛𝑡 . これで(1)が示された.
𝑡𝑛 とおくと,(2) 左辺をLHSと書き, 𝑥1 =𝑥2 ⋯ 𝑥𝑛∞∞𝑠−(𝑛−1)/𝑛 ⋯ 𝑥𝑠−1/𝑛
LHS = ∫0 ⋯ ∫0 𝑒−(𝑥1+⋯+𝑥𝑛)𝑥𝑠−1
𝑛 𝑑𝑥1 ⋯𝑑𝑥𝑛
1 𝑥2
𝑠−1
∞
∞
𝑛
𝑛𝑡𝑛−1
= ∫0 ⋯ ∫0 𝑒−(𝑡𝑛/(𝑥2⋯𝑥𝑛)+𝑥2⋯+𝑥𝑛)( 𝑥2 ⋯𝑡 𝑥𝑛 ) 𝑥𝑠−(𝑛−1)/𝑛⋯ 𝑥𝑠−1/𝑛𝑛 𝑥 ⋯ 𝑥 𝑑𝑡𝑑𝑥2 ⋯𝑑𝑥𝑛
2
2 𝑛
∞
∞ 𝑛
= 𝑛 ∫0 ⋯ ∫0 𝑒−(𝑡 /(𝑥2⋯𝑥𝑛)+𝑥2⋯+𝑥𝑛)𝑥−(𝑛−1)/𝑛⋯ 𝑥−1/𝑛𝑛 𝑡𝑛𝑠−1 𝑑𝑥2 ⋯𝑑𝑥𝑛 𝑑𝑡
2∞∞= 𝑛 ∫0 𝐼(𝑡)𝑡𝑛𝑠−1 𝑑𝑡 = 𝑛𝐼(0) ∫0 𝑒−𝑛𝑡 𝑡𝑛𝑠−1 𝑑𝑡 = 𝑛1−𝑛𝑠 𝐼(0)Γ(𝑛𝑠).
解答例: (1)𝐼(0) = (2𝜋)(𝑛−1)/2𝑛−1/2 を示したい. そのためには 𝐼(0)2 = (2𝜋)𝑛−1 𝑛−1 を示せばよい. Euler's reflection formula より,
𝜋 なのでΓ ( 𝑘𝑛 ) Γ ( 𝑛 −𝑛 𝑘 ) = sin(𝑘𝜋/𝑛)
𝑛−1 𝜋
𝑛−1
𝐼(0)2 = ∏ sin(𝑘𝜋/𝑛)= 𝑛−1𝜋 .
𝑘=1
sin 𝑘𝜋𝑛
∏
𝑘=1
(3)

そして,

𝑘𝜋 = 𝑛−1 𝑒𝜋𝑖𝑘/𝑛 − 𝑒−𝜋𝑖𝑘/𝑛 = 𝑒𝜋𝑖(1+2+⋯+(𝑛−1))/𝑛 𝑛−1 (1 − 𝑒−2𝜋𝑖𝑘/𝑛 ) = 1 𝑛−1 (1 − 𝑒−2𝜋𝑖𝑘/𝑛 )
sin
∏
2𝑖
𝑛 ∏
2𝑛−1 𝑖𝑛−1 ∏2𝑛−1 ∏
𝑘=1
𝑘=1
𝑘=1
𝑘=1
𝑛−1

であり,

において

𝑥𝑛 − 1 = 𝑛−1 (𝑥 − 𝑒−2𝜋𝑖𝑘/𝑛 )
𝑥−1 ∏
𝑘=1

𝑛−1

𝑥 → 1 とすると ∏(1 − 𝑒−2𝜋𝑖𝑘/𝑛 ) = 𝑛 が得られる. 以上を合わせると
𝑘=1

𝐼(0)2 = (2𝜋)𝑛 .
𝑛−1

両辺の平方根を取れば(3)が得られる.

□

3.4 Laplaceの方法
3.4.1 Laplaceの方法の解説
Laplaceの方法: Stirlingの公式の証明の解説のようにして見付かる変数変換はより一般の場合に非常に有用である. 以下では∞や ∫0 を単に ∫ と書くことにし,∫−∞∞𝑍𝑛 = ∫ 𝑒−𝑛𝑓(𝑥) 𝑔(𝑥)𝑑𝑥
とおく. ただし, 𝑓(𝑥) は実数値函数で唯一つの最小値 𝑓(𝑥0 ) を持ち, 𝑥 = 𝑥0 において,
𝑓(𝑥) = 𝑓(𝑥0 ) + 𝑎2 (𝑥 − 𝑥0 )2 + 𝑂((𝑥 − 𝑥0 )3 ), 𝑎 = 𝑓 ″ (𝑥0 ) > 0とTaylor展開されていると仮定するし, さらに, 0 以上の値を持つ実数値函数 𝑔(𝑥) は積分 𝑍𝑛 がうまく定義されるような適当な条件を満たしていると仮定し, 𝑥0 の近傍で 𝑔(𝑥) > 0 を満たしていると仮定する. (ここで, 𝑥0 の近傍で 𝑔(𝑥) > 0 が成立しているとは, ある 𝛿 > 0 が存在して, |𝑥 − 𝑥0 | < 𝛿 ならば 𝑔(𝑥) > 0 となることである.) このとき,
𝑍𝑛 = 𝑒−𝑛𝑓(𝑥0) ∫ exp(−𝑛 ( 𝑎2 (𝑥 − 𝑥0 )2 + 𝑂((𝑥 − 𝑥0 )3 ))) 𝑔(𝑥)𝑑𝑥.
𝑥 = 𝑥0 + 𝑦/√⎯𝑛 と変数変換すると−𝑛𝑓(𝑥 )
𝑍𝑛 = 𝑒 √⎯𝑛 0 ∫ exp(− 𝑎2 𝑦2 + 𝑂 ( √1⎯𝑛 )) 𝑔 (𝑥0 + √𝑦⎯𝑛 ) 𝑑𝑦.
そして, 𝑛 → ∞ で
2𝜋⎯ 𝑔(𝑥0 ).
𝑎 𝑦2 + 𝑂 1⎯ 𝑔 𝑥0 + 𝑦⎯ 𝑑𝑦 → exp − 𝑎 𝑦2 𝑔(𝑥0 )𝑑𝑦 = ⎯⎯⎯⎯⎯
exp
−
√𝑎
∫ ( 2
( √𝑛 )) ( √𝑛 ) ∫ ( 2 )𝑎 = 𝑓 ″ (𝑥0 ) とおいたことを思い出しながら, 以上をまとめると, 𝑛 → ∞ で−𝑛𝑓( ) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑍𝑛 ∼ 𝑒 √⎯𝑛𝑥0 √ 𝑓 ″2𝜋(𝑥0 ) 𝑔(𝑥0 ).
すなわち,⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯−log 𝑍𝑛 = 𝑛𝑓(𝑥0 ) + 12 log𝑛 − log(√ 𝑓 ″2𝜋(𝑥0 ) 𝑔(𝑥0 )) + 𝑜(1).

𝑍𝑛 の 𝑛 → ∞ における漸近挙動を調べるための以上の方法をLaplaceの方法(Laplace's method)と呼ぶ. □3.4.2 Laplaceの方法によるStirlingの公式の導出∞

𝑛! = ∫0 𝑒−𝑡 𝑡𝑛 𝑑𝑡 にLapalceの方法を適用して, Stirlingの公式を導出せよ.
解答例: 積分変数を 𝑡 = 𝑛𝑥 で置換すると,∞∞
𝑛! = ∫0 𝑒−𝑡+𝑛 log 𝑡 𝑑𝑡 = 𝑛𝑛+1 ∫0 𝑒−𝑛(𝑥−log 𝑥) 𝑑𝑥.
𝑓(𝑥) = 𝑥″− log𝑥, 𝑔(𝑥) = 1 とおく. 𝑓 ′ (𝑥) = 1 − 1/𝑥, 𝑓 ″ (𝑥) = 1/𝑥2 なので 𝑓(𝑥) は 𝑥0 = 1 で最小になり,
𝑓(1) = 𝑓 (1) = 1 となる. ゆえに, それらにLaplaceの方法を適用すると,⎯⎯⎯⎯⎯. □𝑛! ∼ 𝑛𝑛+1 𝑒−𝑛⎯𝑛 √⎯2𝜋⎯⎯⎯ = 𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛√問題(Stirlingの公式):

Laplaceの方法は本質的にGauss積分の応用である.
Gauss積分をガンマ函数に置き換えることによって得られる一般化されたLaplaceの方法の素描については
黒木玄, 一般化されたLaplaceの方法 (https://genkuroki.github.io/documents/20161014GeneralizedLaplace.pdf)
を参照せよ. 一般化されたLaplaceの方法は
渡辺澄夫, ベイズ統計の理論と方法 (https://www.amazon.co.jp/dp/4339024627), 2012の第4章の主結果であるベイズ統計における自由エネルギーの𝐹𝑛 = −log 𝑍𝑛 = 𝑛𝑆 + 𝜆log𝑛 − (𝑚 − 1)loglog𝑛 + 𝑂(1)の形の漸近挙動を導く議論を初等化するために役に立つ. 特異点解消は本質的に不可避だが, この形の漸近挙動だけが欲しいのであればゼータ函数を用いた精密な議論は必要ない.

3.5 Laplaceの方法の弱形
Laplaceの方法の弱形: Laplaceの方法が使える状況では,𝑍𝑛 = ∫ 𝑒−𝑛𝑓(𝑥) 𝑔(𝑥)𝑑𝑥

𝑛 → ∞ のとき,
− 1𝑛 log 𝑍𝑛 → 𝑓(𝑥0 ) = min𝑓(𝑥), i.e. 𝑍𝑛 = ∫ 𝑒−𝑛𝑓(𝑥) 𝑔(𝑥)𝑑𝑥 = exp(−𝑛min𝑓(𝑥) + 𝑜(𝑛))について, 特に,が成立している. この結論をLaplaceの方法の弱形と呼ぶことにする. Laplaceの方法のような精密な形でなくても, こちらの弱形だけで用が足りることは結構多い.

□[𝑎,𝑏] 上の実数値連続函数 𝑓(𝑥) と 0 以上の値を持つ実数値函数 𝑔(𝑥)𝑔(𝑥) > 0 を満たしていると仮定する. このとき, 𝑛 → ∞ において,問題(Laplaceの方法の弱形が明瞭に成立する場合): 閉区間は,を満たすあるの近傍で𝑓(𝑥0 ) = 𝑎≦𝑥≦𝑏
min 𝑓(𝑥)𝑥0 ∈ [𝑎,𝑏]𝑏−𝑛𝑓(𝑥)
min 𝑓(𝑥) + 𝑜(𝑛))∫𝑎 𝑒 𝑔(𝑥)𝑑𝑥 = exp(−𝑛 𝑎≦𝑥≦𝑏が成立していることを示せ. すなわち, 𝑛 → ∞ のとき,𝑏
− 1𝑛 log ∫𝑎 𝑒−𝑛𝑓(𝑥) 𝑔(𝑥)𝑑𝑥 → 𝑎≦𝑥≦𝑏
min 𝑓(𝑥)が成立していることを示せ.

𝑓0 (𝑥) = 𝑓(𝑥) − 𝑎≦𝜉≦𝑏
min 𝑓(𝜉) とおくと, 𝑓0 (𝑥) の最小値は 0 になり,𝑏𝑏
− 1𝑛 log ∫𝑎 𝑒−𝑛𝑓(𝑥) 𝑔(𝑥)𝑑𝑥 = 𝑎≦𝑥≦𝑏
min 𝑓(𝑥) − 1𝑛 log ∫𝑎 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥なので, 𝑛 → ∞ のとき
解答例:

− 1𝑛 log ∫𝑎 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥 → 0𝑏となることを示せばよい.

𝜀 > 0 を任意に取って固定し, 𝐴 = {𝑥 ∈ [𝑎,𝑏] ∣ 𝑓0 (𝑥) ≦ 𝜀} とおき, その [𝑎,𝑏] での補集合を 𝐴𝑐 と書き,
𝑏𝑍0,𝑛 = ∫𝑎 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥 = 𝐼𝑛 + 𝐽𝑛 , 𝐼𝑛 = ∫𝐴 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥, 𝐽𝑛 = ∫𝐴𝑐 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥.
1
とおく. 𝑛 → ∞ のとき − 𝑛 log 𝑍0,𝑛 → 0 となることを示したい.
𝑥 ∈ 𝐴 について 𝜀 ≧ 𝑓0 (𝑥) ≧ 0 なので, 𝑒−𝑛𝜀 ≦ 𝑒−𝑛𝑓0(𝑥) ≦ 1 となるので,
𝑒−𝑛𝜀 ∫𝐴 𝑔(𝑥)𝑑𝑥 ≦ 𝐼𝑛 = ∫𝐴 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥 ≦ ∫𝐴 𝑔(𝑥)𝑑𝑥.

𝑓(𝑥0 ) = 𝑎≦𝑥≦𝑏
min 𝑓(𝑥) を満たすある 𝑥0 ∈ [𝑎,𝑏] の近傍で 𝑔(𝑥) > 0 となっていると仮定したことより, ∫𝐴 𝑔(𝑥)𝑑𝑥 > 0 となることにも注意せよ.

𝑥 ∈ 𝐴𝑐 について 𝑓0 (𝑥) > 𝜀 なので, 0 < 𝑒−𝑛𝑓0(𝑥) < 𝑒−𝑛𝜀 となるので,
0 ≦ 𝐽𝑛 = ∫𝐴𝑐 𝑒−𝑛𝑓0(𝑥) 𝑔(𝑥)𝑑𝑥 ≦ 𝑒−𝑛𝜀 ∫𝐴𝑐 𝑔(𝑥)𝑑𝑥.
以上をまとめると,

𝑒−𝑛𝜀 ∫𝐴 𝑔(𝑥)𝑑𝑥 ≦ 𝑍0,𝑛 ≦ ∫𝐴 𝑔(𝑥)𝑑𝑥 + 𝑒−𝑛𝜀 ∫𝐴𝑐 𝑔(𝑥)𝑑𝑥.

−1/𝑛 倍すると,
𝜀 − 1𝑛 log ∫𝐴 𝑔(𝑥)𝑑𝑥 ≧ − 1𝑛 log 𝑍0,𝑛 ≧ − 1𝑛 log(∫𝐴 𝑔(𝑥)𝑑𝑥 + 𝑒−𝑛𝜀 ∫𝐴𝑐 𝑔(𝑥)𝑑𝑥).

これの全体の対数を取ってしたがって,

𝑛 → 0 とすると,

𝜀 ≧ lim𝑛→∞sup (− 1𝑛 log 𝑍0,𝑛 ) ≧ lim𝑛→∞inf (− 1𝑛 log 𝑍0,𝑛 ) ≧ 0.

𝜀 > 0 は幾らでも小さくできるので, 下極限と上極限が等しくなることがわかり,
lim (− 1𝑛 log 𝑍0,𝑛 ) = 0𝑛→∞が得られる □

11 Kullback-Leibler情報量
黒木玄2018-06-24～2019-04-03, 2023-06-22
Copyright 2018,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/11%20Kullback-Leibler%20information.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/11%20Kullback-Leibler%20information.ipynb)
https://genkuroki.github.io/documents/Calculus/11%20Kullback-Leibler%20information.pdf(https://genkuroki.github.io/documents/Calculus/11%20Kullback-Leibler%20information.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 Kullback-Leibler情報量の基本性質
1.1 KL情報量の定義
1.2 KL情報量の正値性
1.3 KL情報量の凸性
1.4 KL情報量がノルムの2乗を上から押さえること
1.5 KL情報量の使われ方
 2 多項分布のSanovの定理
2.1 Sanovの定理とその証明
2.2 Sanovの定理の使い方1
2.3 二項分布の場合2.4 Sanovの定理の使い方22.5 連続的な確率分布の場合
2.6 正規分布による近似
2.7 多項分布の中心極限定理

𝐿1

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 Kullback-Leibler情報量の基本性質
1.1 KL情報量の定義
一般の確率分布についても定義可能だが, このノートでは簡単のため, 有限集合

Ω = {1,2,…,𝑟}の上の確率分布のみを扱う. 𝑝 = (𝑝1 ,…, 𝑝𝑟 ) が Ω = {1,2,…,𝑟} 上の確率分布であるとは𝑟𝑝𝑖 ≧ 0 (𝑖 = 1,2,…,𝑟) ∑ 𝑝𝑖 = 1
𝑖=1が成立していることであると定める.

Ω = {1,2,…,𝑟} 上の確率分布 𝑞,𝑝 に対して, (𝑞,𝑝) のKullback-Leibler情報量 𝐷(𝑞||𝑝) を𝑟𝑟𝑟
𝐷(𝑞||𝑝) = ∑ 𝑞𝑖 log 𝑝𝑞𝑖𝑖 = (− ∑ 𝑞𝑖 log 𝑝𝑖 ) − (− ∑ 𝑞𝑖 log 𝑞𝑖 )
𝑖=1

𝑖=1

𝑖=1

𝑥log𝑦 は 𝑥 = 0 のとき 0 になり, log0 = −∞ であると約束しておく. Kullback-Leibler情報量の −1 倍を相と定める. ただし,
対エントロピーと呼ぶ.

記述の簡単のため以下ではKullback-LeiblerをKLと略記することにする. さらに,と仮定する

𝑞,𝑝 は Ω = {1,2,…,𝑟} 上の確率分布である

1.2 KL情報量の正値性

𝐷(𝑞||𝑝) ≧ 0.
証明: 𝑥 ≧ 0 に対して 𝑓(𝑥) = 𝑥log𝑥 とおく. ただし, 𝑓(0) = lim𝑥↘0 𝑓(𝑥) = 0 と約束しておく. 𝑓 ′ (𝑥) = log𝑥 + 1 ,
𝑓 ″ (𝑥) = 1/𝑥 > 0 なので 𝑓(𝑥) は下に凸な函数である. 期待値汎函数 𝑔(𝑥) ↦ 𝐸[𝑔(𝑥)] を𝑟
𝐸[𝑔(𝑥)] = ∑ 𝑝𝑖 𝑔(𝑞𝑖 /𝑝𝑖 )KL情報量の正値性:

𝑖=1と定めることができる. ゆえにJensenの不等式より,

そして,𝐸[𝑓(𝑥)] ≧ 𝑓(𝐸[𝑥]).

𝑟𝑟𝑟𝐸[𝑓(𝑥)] = ∑ 𝑝𝑖 𝑝𝑞𝑖𝑖 log 𝑝𝑞𝑖𝑖 = 𝐷(𝑞||𝑝), 𝐸[𝑥] = ∑ 𝑝𝑖 𝑝𝑞𝑖𝑖 = ∑ 𝑞𝑖 = 1, 𝑓(𝐸[𝑥]) = 𝑓(1) = 0
𝑖=1

なので

𝑖=1

𝐷(𝑞||𝑝) ≧ 0 を得る. □𝑖=1

1.3 KL情報量の凸性

𝐷(𝑞||𝑝) は 𝑞 の函数として下に凸である.
証明: Ω 上の確率分布 𝑞,𝑞 ′ と 0 < 𝑡 < 1 が任意に与えられているとする. 𝑓(𝑥) = 𝑥log𝑥 とおくと, 𝑓(𝑥) は下に凸な函数であKL情報量の凸性:

る. ゆえに𝐷((1 − 𝑡)𝑞 + 𝑡𝑞 ′||𝑝) = ∑ 𝑝𝑖 𝑓 ( (1 − 𝑡)𝑝𝑞𝑖𝑖 + 𝑡𝑞𝑖 )𝑖=1𝑟′≦ ∑ 𝑝𝑖 ((1 − 𝑡)𝑓 ( 𝑝𝑞𝑖𝑖 ) + 𝑡𝑓 ( 𝑞𝑝𝑖𝑖 ))
𝑖=1= (1 − 𝑡)𝐷(𝑞||𝑝) + 𝑡𝐷(𝑞 ′||𝑝). □注意: 𝑓(𝑥) は強い意味で下に凸なので 𝐷(𝑞||𝑝) も 𝑞 の函数として強い意味で下に凸になる. このことより, 𝑞 の函数としての
𝐷(𝑞||𝑝) の最小値を与える 𝑞 = 𝑝 とは異なる 𝑞 ≠ 𝑝 において 𝐷(𝑞||𝑝) > 0 となることがわかる. より精密な結果については次の節を見よ. □1.4 KL情報量が𝑟′

𝐿1 ノルムの2乗を上から押さえること

𝑞 = 𝑝 ならば 𝑞𝑖 log(𝑞𝑖 /𝑝𝑖 ) = 0 より, 𝐷(𝑞||𝑝) = 0 となる.

黒木玄, Kullback-Leibler情報量とSanovの定理 (https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)の第5.3節で次の不等式が証明されている:

2
𝑟
1
𝐷(𝑞||𝑝) ≧ 2 (∑ |𝑞𝑖 − 𝑝𝑖 |) .
𝑖=1
これより, 𝑞 ≠ 𝑝 ならば 𝐷(𝑞||𝑝) > 0 となることがわかる. 特に 𝐷(𝑞||𝑝) = 0 と 𝑝 = 𝑞 が同値であることがわかる.
さらに, 確率分布の列 𝑞 (1) , 𝑞 (2) ,… について, 𝑘 → ∞ で 𝐷(𝑞 (𝑘) ||𝑝) → 0 ならば 𝑞 (𝑘) → 𝑝 となり, 確率分布の列 𝑝(1) , 𝑝(2) ,…
について, 𝑘 → ∞ で 𝐷(𝑞||𝑝(𝑘) ) → 0 ならば 𝑝(𝑘) → 𝑞 となることもわかる. □1.5 KL情報量の使われ方

𝐷(𝑞||𝑝)𝑞𝑝𝐷(𝑞||𝑝) ≠ 𝐷(𝑝||𝑞)KL情報量
は確率分布 と確率分布 の違いの大きさを表す指標としてよく使われる. 一般にであるが, そうなることには必然性がある. 「KL情報量の意味」は下の方で説明するSanovの定理を見ればわかる. Sanovの定理はStirlingの公式を知っていれば容易に証明可能である. Stirlingの公式を理解しておけば「情報理論」「統計力学」「統計学」などなどで基本的なSanovの定理をすぐに理解できるようになる.

階乗に関するStirlingの近似公式⟶ KL情報量に関するSanovの定理という経路をできるだけ早く踏破しておいた方が数学の応用について楽に考えることができるようになると思う.
統計学へのSanovの定理の応用については赤池弘次氏による以下の2つの論説を参照せよ:
赤池弘次, エントロピーとモデルの尤度(〈講座〉物理学周辺の確率統計)(https://www.jstage.jst.go.jp/article/butsuri1946/35/7/35_7_608/_article/-char/ja/), 日本物理学会誌, 35巻 (1980) 7号, 608-614
赤池弘次, 統計的推論のパラダイムの変遷について (https://ismrepo.ism.ac.jp/?
action=pages_view_main&active_action=repository_view_main_item_detail&item_id=32568&item_no=1&page_id=13&block_
統計数理研究所彙報, 27巻, 1号, 5-12, 1980-03
さらに黒木玄, Kullback-Leibler情報量とSanovの定理 (https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)
も参照して欲しい. 「Kullback-Leibler情報量とSanovの定理(https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)」の第10節には平均符号長とKL情報量の関係も解説してある 「情報量」という呼び方の由来はそちらを見た方が分かり易いかもしれない□

2 多項分布のSanovの定理

Ω = {1,2,…,𝑟} から 𝑖 を取り出す確率は 𝑝𝑖 であるとし, 𝑘𝑖 は非負の整数であり, 𝑘1 + 𝑘2 + ⋯ + 𝑘𝑟 = 𝑛 を満
𝑛 回の独立試行で 1,2,…,𝑟 のそれぞれが 𝑘1 , 𝑘2 ,…, 𝑘𝑟 回取り出される確率は𝑛! 𝑝𝑘11 𝑝𝑘22 ⋯ 𝑝𝑘𝑟 𝑟(∗)
𝑘1 !𝑘2 !⋯ 𝑘𝑟 !になる. この式における階乗の分数の因子はそれぞれ 𝑘𝑖 個の 𝑖 達を全部で 𝑛 個順番に並べる方法の総数に等しいので, 多項係数と呼ばれる. (𝑘1 ,…, 𝑘𝑟 ) 全体の集合上の確率分布 (∗ ) は多項分布と呼ばれる.
1回の試行でたしているとする. このとき2.1 Sanovの定理とその証明
Sanovの定理:

𝑛 → ∞ で 𝑘𝑖 達が 𝑘𝑖 /𝑛 ∼ 𝑞𝑖 (𝑖 = 1,…,𝑟) のように振る舞うならば, 𝑛 → ∞ で𝑛! 𝑝𝑘11 𝑝𝑘22 ⋯ 𝑝𝑘𝑟 𝑟 = exp(−𝑛𝐷(𝑞||𝑝) + 𝑜(𝑛)).
𝑘1 !𝑘2 !⋯ 𝑘𝑟 !

すなわち−log( 𝑘1 !𝑘2𝑛!!⋯ 𝑘𝑟 ! 𝑝𝑘11 𝑝𝑘22 ⋯ 𝑝𝑘𝑟 𝑟 ) = 𝑛𝐷(𝑞||𝑝) + 𝑜(𝑛).
証明: 𝑘𝑖 /𝑛 ∼ 𝑞𝑖 という仮定より, 𝑘𝑖 = 𝑛𝑞𝑖 + 𝑜(𝑛) である. 𝑞𝑖 は固定されているので, 𝑛 が大きくなると 𝑘𝑖 も 𝑂(𝑛) のオーダー
で大きくなる. だから, Stirlingの公式⎯⎯⎯⎯⎯, 𝑘𝑖 ! ∼ 𝑘𝑘𝑖 𝑖 𝑒−𝑘𝑖 √⎯2𝜋𝑘⎯⎯⎯⎯⎯𝑖⎯𝑛! ∼ 𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛を使用できる. ゆえに, 𝑘1 + ⋯ + 𝑘𝑟 = 𝑛 を使うと,⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑟 𝑘 𝑘𝑟 
𝑟 𝑘 ⎯ −1
𝑛𝑛 𝑒−𝑛 √⎯2𝜋𝑛
𝑛! ∼

𝑖
𝑟−1
(2𝜋𝑛) ∏ 𝑛𝑖 .
⎯⎯⎯⎯⎯⎯1⎯ ⋯ 𝑘𝑘𝑟 𝑟 𝑒−𝑘𝑟 √⎯2𝜋𝑘⎯⎯⎯⎯⎯⎯𝑟⎯ = (∏()
𝑘1 !𝑘2 !⋯ 𝑘𝑟 ! 𝑘𝑘11 𝑒−𝑘1 √⎯2𝜋𝑘
𝑛
𝑖=1
𝑖=1 )

したがって,⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑟 𝑘 ⎯ −1
𝑛! 𝑝𝑘11 𝑝𝑘22 ⋯ 𝑝𝑘𝑟 𝑖 ∼ 𝑟 𝑘𝑖 /𝑛 𝑘𝑖 𝑟−1(2𝜋𝑛) ∏ 𝑛𝑖 )()(∏
𝑘1 !𝑘2 !⋯ 𝑘𝑟 !
𝑝
𝑖
𝑖=1
𝑖=1

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑟
𝑟 𝑘⎯

/𝑛
𝑘

𝑖
𝑟−1

= exp(− ∑ 𝑘𝑖 log 𝑝𝑖 − (𝑟 − 1)log𝑛 − log (2𝜋) ∏ 𝑛𝑖 ).
𝑖=1
𝑖=1

これに 𝑘𝑖 /𝑛 = 𝑞𝑖 + 𝑜(1) , 𝑘𝑖 = 𝑛𝑞𝑖 + 𝑜(𝑛) を代入すれば示したい結果が得られる. log𝑛 や定数の項は 𝑛 で割って 𝑛 → ∞ とす
ると 0 に収束するので, それらは 𝑜(𝑛) の項にまとめられることに注意せよ. さらにKL情報量の定義が𝑟
𝐷(𝑞||𝑝) = ∑ 𝑞𝑖 log 𝑝𝑞𝑖𝑖であったことも思い出して計算せよ.

□

要するに多項分布にStirlingの近似公式と

𝑖=1

𝑘𝑖 = 𝑛𝑞𝑖 + 𝑜(𝑛) を単純に代入するだけで, Sanovの定理が得られる.

2.2 Sanovの定理の使い方1Ω = {1,2,…,𝑟} から確率 𝑝𝑖 で 𝑖 を選ぶ独立試行を 𝑛 回行った結果, 𝑖 が 𝑘𝑖 回取り出されたとき,
Ω = {1,2,…,𝑟} 上の確率分布 (𝑘1 /𝑛,…, 𝑘𝑟 /𝑛) を経験分布と呼ぶ. Sanovの定理における 𝑘𝑖 /𝑛 ∼ 𝑞𝑖 (𝑛 → ∞) という条件は,𝑛 を大きくしたとき経験分布が確率分布 𝑞 に近いことを意味している. だから, Sanovの定理は 𝑛 が大きなとき(確率分布 𝑝 のもとでの独立試行の経験分布が確率分布 𝑞 に近い確率) ∼ exp(−𝑛𝐷(𝑞||𝑝) + 𝑜(𝑛)) .
有限集合が成立することを意味している.

𝑜(𝑛) は 𝑛 で割ると 0 に収束する量なので, 𝑛 が十分に大きなとき −𝑛𝐷(𝑞||𝑝) と比較すると無視できるほど小さな量になる. ゆ
えに, 𝑛 を十分に大きくすると, 異なる 𝑞 ごとの「経験分布が 𝑞 に近くなる確率」の大小関係をKL情報量 𝐷(𝑞||𝑝) の大小関係で測って良い状況になる. 𝐷(𝑞||𝑝) が小さな 𝑞 ほど相対的に経験分布が近くなる確率は高くなる.
経験分布が確率分布 𝑞 ∗ に近くなる確率で経験分布が確率分布 𝑞 に近くなる確率を割った結果はexp(−𝑛 (𝐷(𝑞||𝑝) − 𝐷(𝑞 ∗||𝑝)) + 𝑜(𝑛))のように振る舞う. 𝐷(𝑞||𝑝) > 𝐷(𝑞 ∗ ||𝑝) ならばこの確率の商は 𝑛 → ∞ で 0 に収束する. そのとき, 経験分布が 𝑞 に近くなる確率は経験分布が 𝑞 ∗ に近くなる確率と比較すると相対的に無視できるくらい小さくなる.
確率分布の集合 𝐴 が与えられているとする. ただし, 𝐴 の内部の閉包が 𝐴 閉包に一致するような「良い集合」のみを考える. 例
えば 𝑟 = 2 (二項分布のとき)で 0 ≦ 𝑎 < 𝑏 ≦ 1 のとき 𝐴 = {(𝑞1 ,1 − 𝑞1 ) ∣ 𝑎 ≦ 𝑞1 ≦ 𝑏} はそのような「良い集合」の例になっている. (「内部」「閉包」の意味を知らない人はこの例を思い浮かべておけばよい.)𝑞 が 𝐴 上を動くとき, 𝐷(𝑞||𝑝) を最小にする 𝑞 ∈ 𝐴 を 𝑞 ∗ と書く.
このとき, 経験分布が 𝐴 に入るという条件のもとでの条件付き確率分布を考えると, 𝑞 ∗ 以外の 𝑞 ∈ 𝐴 に経験分布が近くなる確率は 𝑛 → ∞ で 0 に近付く. これは、経験分布が 𝐴 に入るという条件のもとでの条件付き確率分布が 𝑛 → ∞ で 𝑞 ∗ に台を持
つデルタ分布に近付くことを意味している.

2.3 二項分布の場合

𝑟 = 2 の二項分布の場合を考える. このとき, 𝑞1 = 𝑞, 𝑞2 = 1 − 𝑞, 𝑝1 = 𝑝, 𝑝2 = 1 − 𝑝 と書くと,
𝐷(𝑞||𝑝) = 𝑞log 𝑞𝑝 + (1 − 𝑞)log 11 −− 𝑞𝑝 .
問題: この函数は 𝑞 = 𝑝 で最小値 0 になることを自分で確認してみよ. □次のセルのプロットを見ればわかるように 𝐷(𝑞||𝑝) は 𝑞 の函数として 𝑞 = 𝑝 で最小になり, 下に凸な函数になる.

In [3]:Out[3]:

1
2
3
4
5
6
7
8
9
10
11

D(q,p) = q*log(q/p) + (1-q)*log((1-q)/(1-p))q = 0:0.01:1
PP = []
for p in [0.2, 0.4, 0.6, 0.8]
P = plot(legend=false)plot!(title="y = D(q, $(round(p,digits=3)))", titlefontsize=10)
plot!(xlabel="q_1", ylabel="y")plot!(q, D.(q, p))
push!(PP, P)
endplot(PP..., size=(700, 500))

In [4]:



1
2
3
4
5
6
7
8
9
10
11

D(q,p) = q*log(q/p) + (1-q)*log((1-q)/(1-p))p = 0:0.01:1
PP = []
for q in [0.2, 0.4, 0.6, 0.8]
P = plot(legend=false)plot!(title="y = D($(round(q,digits=3)), p)", titlefontsize=10)
plot!(xlabel="p_1", ylabel="y")plot!(p, D.(q, p))
push!(PP, P)
endplot(PP..., size=(700, 500))

Out[4]:問題(Laplaceの方法の弱形の一種): 実数

𝐸1 ,…, 𝐸𝑁 について, 𝑛 → ∞ のとき,𝑁
− 1𝑛 log ∑ 𝑒−𝑛𝐸𝑖 → min{𝐸1 ,⋯, 𝐸𝑁 }

(∗)

𝑖=1

となることを示せ.
解答例:

𝐸1 = ⋯ = 𝐸𝑘 < 𝐸𝑘+1 ≦ ⋯ ≦ 𝐸𝑁 と仮定してよい. このとき,
𝑁𝑛𝑛− 1𝑛 log ∑ 𝑒−𝑛𝐸𝑖 = − 1𝑛 log(𝑒−𝑛𝐸1 (𝑘 + ∑ 𝑒−𝑛(𝐸𝑖−𝐸1))) = 𝐸1 − 1𝑛 log(𝑘 + ∑ 𝑒−𝑛(𝐸𝑖−𝐸1)).
∗𝑖=1

これより, ( )が成立することがわかる.
注意: 上の問題の結果の

max 版

□

𝑖=𝑘+1

𝑖=𝑘+1

1 log 𝑁 𝑒𝑛𝐸𝑖 → max{𝐸1 ,⋯, 𝐸𝑁 }𝑛 ∑𝑖=1

はトロピカル幾何 (https://www.google.co.jp/search?
q=%E3%83%88%E3%83%AD%E3%83%94%E3%82%AB%E3%83%AB%E5%B9%BE%E4%BD%95)における max-plus 代数(https://www.google.co.jp/search?q=max-plus%E4%BB%A3%E6%95%B0)の max が極限で出て来る仕組みとしても現われる.

□

注意: コンピューターによる統計がらみの数値計算ではlogsumexp (https://www.google.co.jp/search?q=logsumexp)という函数を適切に定義して使うことがある.

□

確率𝑝 で当たるくじを引く独立試行を 𝑛 回繰り返したとき, 当たりが 𝑘 回出る確率は𝑛! 𝑘 𝑛−𝑘𝑛 𝑘 𝑛−𝑘(𝑘)𝑝 (1 − 𝑝) = 𝑘!(𝑛 − 𝑘)! 𝑝 (1 − 𝑝)

になる.

0 ≦ 𝑎 < 𝑏 ≦ 1 であるとする. このとき当たりが出た回数の割合 𝑘/𝑛 が 𝑎 以上 𝑏 以下になる確率は𝑛∑ (𝑘)𝑝𝑘 (1 − 𝑝)𝑛−𝑘になる. この確率の対数の−1/𝑛 倍𝑎≦𝑘/𝑛≦𝑏− 1𝑛 log ∑ (𝑘𝑛)𝑝𝑘 (1 − 𝑝)𝑛−𝑘𝑎≦𝑘≦𝑏𝑛 → ∞ でどうなるかについて考えよう.
Sanovの定理より, 𝑘/𝑛 ∼ 𝑞 のとき,
𝑛 𝑘 𝑛−𝑘(𝑘)𝑝 (1 − 𝑝) = exp(−𝑛𝐷(𝑞|𝑝) + 𝑜(𝑛)).
したがって, 上の問題の結果の一般化によって, 𝑛 → ∞ で0(𝑎 ≦ 𝑝 ≦ 𝑏)
− 1𝑛 log ∑ (𝑘𝑛)𝑝𝑘 (1 − 𝑝)𝑛−𝑘 → 𝑎≦𝑞≦𝑏
max 𝐷(𝑞||𝑝) =  𝐷(𝑏||𝑝) (𝑏 < 𝑝)𝑎≦𝑘≦𝑏
 𝐷(𝑎||𝑝) (𝑝 < 𝑎)となると考えられる. 要するに 𝑎 以上 𝑏 以下の 𝑘/𝑛 で 𝑝 に最も近いものが生じる確率の寄与だけが, 効いて来るということであがる. (前節の説明も再読せよ.)

以上の議論は少々厳密さに欠けた荒い議論だが, 結論は正しい. 正確な議論の仕方については
黒木玄, Kullback-Leibler情報量とSanovの定理 (https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)の第3節を参照せよ.

2.4 Sanovの定理の使い方2

𝐷(𝑞||𝑝) は, Sanovの定理によって, 確率分布 𝑝 の試行を独立に 𝑛 回繰り返したとき, 経験分布として 𝑞 に近い分布がexp(−𝑛𝐷(𝑞||𝑝) + 𝑜(𝑛)) になるという性質を持っているのであった.
これより, 確率分布 𝑝 の独立試行によって確率分布 𝑞 をシミュレートしたときの, 予測誤差の大きさが 𝐷(𝑞||𝑝) で測られること
KL情報量
出て来る確率がを意味していると考えることができる.

𝑞 = 𝑝 と 𝐷(𝑞||𝑝) = 0 が同値であることも, この解釈をサポートしている.

𝑝

さらに, 最も簡単(で極端)な次の場合について考えてみよう. 毎日雨が確実に降る地域で, 毎日確率 で「明日は雨が降ります」と予報を出し, 確率で「明日は雨が降りません」と予報を出すことを 回繰りかすとき, 予報の出し方が間違っていたことがばれずにすむ確率はになる. そして, この場合のKL情報量は

1−𝑝 𝑛𝑛𝑝 = exp(−𝑛(−log𝑝))
𝐷(1||𝑝) = 1log 1𝑝 + (1 − 1)log 11 −− 1𝑝 = −log𝑝となる(二項分布の場合の記号法をそのまま使った). 予報の出し方が間違っていたことがばれずにすむ確率が下がる速さはで決まっている. ゆえに, KL情報量
は予報の出し方が間違っていたことが確率的にばれる速さを表していると考えられる. この極端で単純な場合も, KL情報量
を確率分布 による確率分布 のシミュレーションの予測誤差を表しているという解釈をサポートしている.

𝐷(1||𝑝) = −log𝑝𝐷(1||𝑝)𝐷(𝑞||𝑝)𝑝より一般の場合には, Sanovの定理は𝑞𝑝 の独立試行の経験分布が 𝑞 に近い確率) = exp(−𝑛𝐷(𝑞||𝑝) + 𝑜(𝑛))と要約でき, 確率分布 𝑝 の独立試行の経験分布が 𝑞 に近いことは, 確率分布 𝑝 の独立試行により確率分布 𝑞 の予測が間違っていることがばれずに済んでいることを意味していると解釈できるので, やはり 𝐷(𝑞||𝑝) は予測が間違っていたことがばれるまでの(確率分布速さになっていると解釈できる.

KL情報量は以上の意味で予測誤差になっていると考えられる:

𝐷(𝑞||𝑝) = (確率分布 𝑝 の独立試行による確率分布 𝑞 のシミュレーションの予測誤差).

2.5 連続的な確率分布の場合
連続的な確率分布の場合であっても, 確率密度函数

𝑞(𝑥), 𝑝(𝑥) に対するKL情報量が𝐷(𝑞||𝑝) = ∫ 𝑞(𝑥)log 𝑞(𝑥)𝑝(𝑥) 𝑑𝑥∫ は定積分を意味する), 適当な条件と適切な定式化のもとでSanovの定理が成立していることが知られている:
𝐷(𝑞||𝑝) = (確率分布 𝑝 の独立試行による確率分布 𝑞 のシミュレーションの予測誤差).

と定義され(

正確な内容については「大偏差原理 Sanovの定理 (https://www.google.co.jp/search?
q=%E5%A4%A7%E5%81%8F%E5%B7%AE%E5%8E%9F%E7%90%86+Sanov%E3%81%AE%E5%AE%9A%E7%90%86)」
について検索して欲しい. (連続的な 軸を 個に区切れば, 軸上の確率分布は有限集合上の確率分布で近似できることに注意せよ.)

𝑥

確率分布

𝑟

𝑥

Ω = {1,…,𝑟}𝑝 による独立試行で確率分布 𝑞 をシミュレートする状況を考えよう. ∫−∞∞ を単に ∫ と書くことにすると, その場合の予測誤差は𝐷(𝑞|𝑝) = ∫ 𝑞(𝑥)log 𝑞(𝑥)𝑝(𝑥) 𝑑𝑥 = 𝐺(𝑞||𝑝) − 𝑆(𝑞).

ここで𝐺(𝑞||𝑝) = − ∫ 𝑞(𝑥)log𝑝(𝑥)𝑑𝑥, 𝑆(𝑞) = − ∫ 𝑞(𝑥)log𝑞(𝑥)𝑑𝑥
2.6 正規分布による近似例として, 正規分布

1 ⎯ 𝑒−(𝑥−𝜇)2/(2𝜎2)𝑝(𝑥) = 𝑝𝑁 (𝑥|𝜇,𝜎) = ⎯⎯⎯⎯⎯⎯⎯√2𝜋𝜎 2𝑞(𝑥) をシミュレートする場合について考えよう. 予測誤差を小さくするためには, パラメーター 𝜇,𝜎𝐺(𝑞||𝑝) を小さくすればよい. 𝑝 が正規分布の場合には2
𝐺(𝑞||𝑝) = ∫ 𝑞(𝑥) ( (𝑥2−𝜎 2𝜇) + 12 log 𝜎 2 + log √⎯2𝜋⎯⎯⎯) 𝑑𝑥= 𝜎12 ∫ 𝑞(𝑥)(𝑥 − 𝜇)2 𝑑𝑥 + 12 log 𝜎 2 + log √⎯2𝜋⎯⎯⎯.

による独立試行で確率分布を調節して汎化誤差

𝑞(𝑥) の平均と分散を

𝜇𝑞 = ∫ 𝑞(𝑥)𝑥𝑑𝑥, 𝜎𝑞2 = ∫ 𝑞(𝑥)(𝑥 − 𝜇𝑞)2 𝑑𝑥と書くと,∫ 𝑞(𝑥)(𝑥 − 𝜇) 𝑑𝑥 = ∫ 𝑞(𝑥)((𝑥 − 𝜇𝑞) − (𝜇 − 𝜇𝑞)) 𝑑𝑥 = 𝜎𝑞2 + (𝜇 − 𝜇𝑞)
2

2

2

なので

− 𝜇𝑞)2 + 𝜎𝑞2 + 1 log 𝜎 2 + log √⎯2𝜋⎯⎯⎯.
𝐺(𝑞||𝑝) = (𝜇 2𝜎22𝜎 2 2
これより, 𝐺(𝑞||𝑝) を最小にする 𝜇,𝜎 は 𝜇 = 𝜇𝑞 , 𝜎 = 𝜎𝑞 となることがわかる.
すなわち, 正規分布による確率分布 𝑞(𝑥) のシミュレーションの予測誤差を最小にするためには, 正規分布の平均と分散を確率分
布 𝑞(𝑥) の平均と分散に一致させればよいことがわかった.
この結果は未知の確率分布 𝑞(𝑥) のサンプルに基いてその平均と分散の両方を推定することは, 未知の確率分布 𝑞(𝑥) を最も小さな予測誤差でシミュレートできる正規分布を推定することと同じことであることがわかる.

平均と分散に関する統計学は, KL情報量のSanovの定理の立場から見ると, 本質的に正規分布の統計学であるということがわかった.
以上のように, KL情報量のSanovの定理は, 「パラメーターの推定」という考え方をより普遍的な「確率分布の推定」という考え方に高めるため役に立つ.
問題: 上の計算で省略した部分を埋めよ.
解答例:

𝜎 を固定したときの 𝐺(𝑞||𝑝) の最小値は 𝜇 = 𝜇𝑞 で与えられることは明らか.
𝑓(𝑠) = 𝑎𝑠 + log𝑠とおくと,𝑓 ′ (𝑠) = − 𝑠𝑎2 + 1𝑠 = 𝑠 𝑠−2 𝑎
なので 𝑓(𝑠) は 𝑠 = 𝑎 で最小になることがわかる. これより, 𝐺(𝑞||𝑝) は 𝜇 = 𝜇𝑞 , 𝜎 = 𝜎𝑞 のときに最小になることがわかる. □問題: 次の確率密度函数で定義される分布をロジスティック分布と呼ぶ:

𝑞(𝑥) = 4𝑠1 sech2 ( 𝑥 2𝑠− 𝜇 ).

ここで

1 , cosh𝑥 = 𝑒𝑥 + 𝑒−𝑥 .
sech𝑥 = cosh𝑥
2

ロジスティック分布の平均と分散はそれぞれ

22𝜇𝑞 = 𝜇, 𝜎𝑞2 = 𝜋 3𝑠 .

ロジスティック分布を最もよくシミュレートする正規分布の確率密度函数ともとのロジスティック分布の確率密度函数を同時にプロットしてみよ.

□

In [5]:



1
2
3
4
5
6
7
8
9
10
11

pdflogistic(μ,s,x) = 1/(4s)*sech((x-μ)/(2s))^2
pdfnormal(μ,σ,x) = exp(-(x-μ)^2/(2*σ^2))/√(2π*σ^2)​
μ = 0.0s = 1.0σ = π*s/√3
x = -10:0.02:10​
P = plot(legend=:topleft, ylims=(0, 0.26))
plot!(x, pdflogistic.(μ,s,x), label="logistic", lw=2)
plot!(x, pdfnormal.(μ,σ,x),label="normal",
lw=2, ls=:dash)Out[5]:

ロジスティック分布の正規分布による近似に関しては
黒木玄, ロジスティック分布の2通りの正規分布近似の比較(http://nbviewer.jupyter.org/gist/genkuroki/96b0508a5773035e3a5247beff1d4f99)
も参照せよ.

2.7 多項分布の中心極限定理

𝑘𝑖 /𝑛 ∼ 𝑞𝑖 (𝑛 → ∞) のとき, 𝑛 → ∞ で,⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑟 𝑘 ⎯ −1
𝑛! 𝑝𝑘11 𝑝𝑘22 ⋯ 𝑝𝑘𝑟 𝑟 ∼ 𝑟 𝑘𝑖 /𝑛 𝑘𝑖 
𝑟−1(2𝜋𝑛) ∏ 𝑛𝑖 .
()
𝑘1 !𝑘2 !⋯ 𝑘𝑟 !
𝑝
(∏
𝑖
𝑖=1
𝑖=1 )


Sanovの定理の証明によって,これを

𝑘𝑖 = 𝑝𝑖 + 𝑥𝑖⎯ + 𝜀𝑖 , 𝜀𝑖 = 𝑜 1⎯𝑛
( √𝑛 )√𝑛の場合に適用すると,

𝑥𝑖⎯ + 𝜀𝑖 = 𝑟 𝑘𝑖 − 𝑟 𝑝𝑖 = 0,∑𝑖=1 ( √𝑛 ) ∑𝑖=1 𝑛 ∑
𝑖=1𝑘2
𝑟log ( 𝑘𝑝𝑖 /𝑛𝑖 ) = 𝑛𝑝𝑖 (1 + 𝑥⎯𝑛𝑖 𝑝 + 𝜀𝑝𝑖𝑖 ) log(1 + 𝑥⎯𝑛𝑖 𝑝 + 𝜀𝑝𝑖𝑖 ) = 𝑛 ( 𝑥𝑖⎯𝑛 + 𝜀𝑖 ) + 12 𝑥𝑝𝑖𝑖 + 𝑜(1),
√ 𝑖
√ 𝑖
√
𝑟 𝑘 /𝑛 𝑘𝑖 𝑟
𝑘𝑟
2𝑖∴ log ∏ ( 𝑝𝑖 𝑖 ) = ∑ log ( 𝑘𝑝𝑖 /𝑛𝑖 ) = 12 ∑ 𝑥𝑝𝑖𝑖 + 𝑜(1),
𝑖=1
𝑖=1
𝑖=1
𝑟 𝑘
𝑖
∏ 𝑛 = 𝑝1 ⋯ 𝑝𝑟 (1 + 𝑜(1))
𝑟

𝑖=1

なので

exp(− 12 ∑ 𝑥𝑝𝑖𝑖 )𝑛! 𝑘1 𝑘2 𝑘𝑟
𝑖=1⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑟−1
𝑘1 !𝑘2 !⋯ 𝑘𝑟 ! 𝑝1 𝑝2 ⋯ 𝑝𝑟 ∼ √⎯(2𝜋𝑛) 𝑝1 ⋯ 𝑝𝑟⎯ .
⎯⎯両辺に 𝑑𝑘1 ⋯ 𝑘𝑟−1 = √ 𝑛 𝑑𝑥1 ⋯ √ 𝑛 𝑑𝑥𝑟−1 をかけると,
𝑟 2exp(− 12 ∑ 𝑥𝑝𝑖𝑖 )𝑛! 𝑝𝑘11 𝑝𝑘22 ⋯ 𝑝𝑘𝑟 𝑟 𝑑𝑘1 ⋯𝑑𝑘𝑟−1 ∼ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑖=1
𝑑𝑥 ⋯𝑑𝑥 .
𝑟−1
𝑘1 !𝑘2 !⋯ 𝑘𝑟 !
√(2𝜋) 𝑝1 ⋯ 𝑝𝑟⎯ 1 𝑟−1
𝑘1 + ⋯ + 𝑘𝑟 = 𝑛 より 𝑥1 + ⋯ + 𝑥𝑟 = 𝑜(1) であることに注意せよ. 右辺は (𝑥1 ,…, 𝑥𝑟−1 ) の多変量正規分布の確率密度函数𝑟の形になっている.

以上の結果は多項分布が
理と呼ぶ.

2

𝑛 が大きなときに多変量正規分布で近似できることを意味している. この結果を多項分布の中心極限定

𝑟 = 2 のとき, 0 ≦ 𝑝 ≦ 1, 𝑘/𝑛 = 𝑝 + 𝑥/√⎯𝑛 + 𝑜(1/√⎯𝑛) のとき,
1 𝑥2 + (−𝑥)2
𝑥2
exp
−
exp
−
𝑝 1 − 𝑝 )) 𝑑𝑥 = ( 2𝑝(1 − 𝑝) ) 𝑑𝑥.
𝑛 𝑝𝑘 (1 − 𝑝)𝑛−𝑘 𝑑𝑘 ∼ ( 2 (⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
(𝑘)
− 𝑝)⎯
√2𝜋𝑝(1 − 𝑝)⎯√⎯2𝜋𝑝(1
この結果を二項分布の中心極限定理と呼ぶ. □二項分布の中心極限定理:

より一般の場合の中心極限定理の証明については
黒木玄, 確率論入門 (https://genkuroki.github.io/documents/IntroProbability.pdf)の第2.4節を参照せよ. 本質的にTaylorの定理のみを使って中心極限定理は証明される. (積率母函数や特性函数の理論(本質的にFourier-Laplace解析の理論)を使わなくても証明できる.)
問題: 二項分布の中心極限定理を実際にグラフをプロットすることによって確認せよ.
次のセルを見よ.

□In [6]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

binomcoeff(n,k) = exp(lgamma(n+1)-lgamma(k+1)-lgamma(n-k+1))
pdfbinom(n,p,k) = 0 ≤ k ≤ n ? binomcoeff(n,k)*p^k*(1-p)^(n-k) : 0.0
pdfnormal(n,p,x) = exp(-x^2/(2p*(1-p)))/√(2π*n*p*(1-p))​
PP = []for (n,p,l) in [(6, 0.4, :bottom), (12, 0.4, :topright), (25, 0.4, :topright), (50, 0.4,
k = 0:nkk = 0:n/400:n
x = (kk .- n*p)./√n
P = plot(legend=l, legendfontsize=7, xlabel="k")scatter!(k, pdfbinom.(n,p,k), label="Bin($n, $p)", markersize=2.5)
plot!(kk, pdfnormal.(n,p,x), label="Normal dist", lw=1.5, ls=:dash)push!(PP, P)
endplot(PP..., size=(800, 600))

Out[6]:In [ ]:

1 ​12 Fourier解析
黒木玄2018-06-28～2019-06-16, 2023-06-22
Copyright 2018,2019,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)
https://genkuroki.github.io/documents/Calculus/12%20Fourier%20analysis.pdf(https://genkuroki.github.io/documents/Calculus/12%20Fourier%20analysis.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 Riemann-Lebesgueの定理
1.1 階段函数
1.2 Riemann-Lebesgueの定理とその証明
 2 Fourier変換の逆変換の収束
2.1 Fourier変換とFourier逆変換の定義
2.2 Dirichlet核
2.3 Dirichlet積分の公式
2.4 Riemannの局所性定理
2.5 Fourier変換の逆変換の収束性 (Diniの条件)
 3 たたみ込み積と総和核
3.1 たたみ込み積
3.2 微分やたたみ込み積とFourier変換の関係
3.3 総和核
3.4 総和核とFourier展開の関係
 3.5 総和核の例
3.5.1 Dirichlet核は総和核ではない
3.5.2 Fejér核3.5.3 Poisson核3.5.4 Gauss核
 4 Fourier級数の収束
4.1 Fourier級数の定義
4.2 Fourier級数展開のDirichlet核
4.3 Fourier級数に関するRiemannの局所性定理
4.4 Fourier級数の収束 (Diniの条件)
4.5 Besselの不等式
4.6 区分的に連続微分可能な連続函数の場合
4.7 一点でLipschitz条件を満たす函数の場合
4.8 局所的に一様Lipschitz条件を満たす函数の場合
4.9 Gibbs現象
 4.10 Fourier級数の総和核
4.10.1 Fourier級数の総和核の定義
4.10.2 Fourier級数のDirichlet核は総和核ではない
4.10.3 Fourier級数のFejér核4.10.4 Fourier級数のPoisson核

4.10.5 Fourier級数のGauss核
 5 三角函数へのFourier級数論の応用
5.1 cosecとcotの部分分数展開
5.2 sinの無限積表示
5.3 ガンマ函数とsinの関係
5.4 Wallisの公式
5.5 Stirlingの近似公式
5.6 ゼータ函数の正の偶数での特殊値
5.7 多重ゼータ値 ζ(2,2,...,2)
5.8 Lobachevskyの公式 (Dirichlet積分の公式の一般化の1つ)
 6 Poissonの和公式
6.1 Poissonの和公式とその証明
6.2 Theta zero value Θ(t) のモジュラー変換性
 6.3 Lerchの超越函数へのPoissonの和公式の応用
6.3.1 Lerchの超越函数
6.3.2 Lipschitzの和公式＝Lerchの函数等式
6.3.3 Hurwitzの函数等式
6 3 4 Riemannのゼ タ函数の函数等式
In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop=stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fr
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]
end
print(io, as_markdown(toeqnarray(x)))
end1 Riemann-Lebesgueの定理
1.1 階段函数
空でない区間 𝐼 上の函数で部分集合 𝐴 上で 1, その外で 0 になる函数を 𝜒𝐴 (𝑥) と書く:

1{0

𝜒𝐴 (𝑥) =(𝑥 ∈ 𝐴)(𝑥 ∉ 𝐴).

区間 𝐼 に含まれる長さが有限の区間 𝐼1 , … , 𝐼𝑛 と数 𝛼1 , … , 𝛼𝑛 によって定まる函数∑𝑛𝑠(𝑥) =𝑖=1

𝛼𝑖 𝜒𝐴 (𝑥)(𝑥 ∈ 𝐼)

を区間 𝐼 上の階段函数と呼ぶことにする.

𝑓 は区間 𝐼 上の函数であるとする. 任意の 𝜀 > 0 に対してある階段函数 𝑠(𝑥) で‖𝑓 − 𝑠‖1 =∫𝐼|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 < 𝜀を満たすものが存在するとき, 𝑓 は階段函数で 𝐿1 近似可能であるということにする. ここで 𝐼 = [𝑎, 𝑏], [𝑎, 𝑏), (𝑎, 𝑏], (𝑎, 𝑏) の𝑏とき, ∫𝐼 の意味は ∫𝐼 = ∫𝑎 であるとする. 𝑎 = −∞ であっても 𝑏 = ∞ であっても構わないものとする.
問題: ℝ = (−∞, ∞) 上の連続函数 𝑓(𝑥) で∫−∞∞|𝑓(𝑥)| 𝑑𝑥 < ∞ を満たすものは階段函数で 𝐿1 近似可能であることを示せ.

∞

解答例: 任意に 𝜀 > 0 を取る ∫−∞ |𝑓(𝑥)| 𝑑𝑥 < ∞ より, 十分に 𝑅 > 0 を大きくすると,

∫−∞

−𝑅

|𝑓(𝑥)| 𝑑𝑥 +

∫𝑅

∞

∫−∞

∞

|𝑓(𝑥)| 𝑑𝑥 =|𝑓(𝑥)| 𝑑𝑥 −∫−𝑅𝑅|𝑓(𝑥)| 𝑑𝑥 <𝜀.
2𝑓(𝑥) は [−𝑅, 𝑅] 上で一様連続なので, 正の整数 𝑁 を十分に大きくして, 区間 [−𝑅, 𝑅] を 𝑁 等分したものを 𝐼1 , … , 𝐼𝑁 として, 𝑥𝑖 ∈ 𝐼𝑖 を任意に取ると,|𝑓(𝑥) − 𝑓(𝑥𝑖 )| <𝜀
4𝑅(𝑥 ∈ 𝐼𝑖 , 𝑖 = 1, … , 𝑁).

ここで, 例えば Δ = 2𝑅/𝑁 , 𝑎𝑖 = 𝑅 + 𝑖Δ, 𝐼1 = [𝑎0 , 𝑎1 ), … , 𝐼𝑁−1 = [𝑎𝑁−2 , 𝑎𝑁−1 ]) , 𝐼𝑁 = [𝑎𝑁−1 , 𝑎𝑁 ] とおいたと考えてよい. このとき階段函数 𝑠(𝑥) を𝑠(𝑥) =∑𝑁𝑖=1

𝑓(𝑥𝑖 )𝜒𝐼𝑖 (𝑥)と定めると,|𝑓(𝑥) − 𝑓(𝑥𝑖 )| <𝜀
4𝑅(−𝑅 ≦ 𝑥 ≦ 𝑅).

このとき

∫−𝑅

𝑅

|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 ≦𝜀𝜀2𝑅 = .
4𝑅
2

したがって,‖𝑓 − 𝑠‖1 =
=

∫−∞

∞

∫−∞

|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥−𝑅|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 +∫−∞𝜀𝜀
< + = 𝜀.
22=−𝑅|𝑓(𝑥)| 𝑑𝑥 +

∫−𝑅

𝑅

∫−𝑅

𝑅

|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 +|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 +

∫𝑅

∞

∫𝑅

∞

|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥|𝑓(𝑥)| 𝑑𝑥

これで示すべきことが示された. □注意: この注意はLebesgue積分論の知識を前提とする. 一般に区間上の可測函数 𝑓(𝑥) で∫𝐼|𝑓(𝑥)| 𝑑𝑥 < ∞を満たすものを, 𝐼 上の 𝐿1 函数 または可積分函数(もしくは積分可能函数)と呼ぶ. 𝐼 上 𝐿1 函数は 𝐼 上の階段函数で 𝐿1 近似
可能であることが知られている □補題(階段函数に関するRiemann-Lebesgueの定理): 区間 𝐼 上の階段函数 𝑠(𝑥) について∫𝐼

𝑠(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥 → 0(|𝑝| → ∞).

証明: −∞ < 𝑎𝑗 ≦ 𝑏𝑗 < ∞ , 𝐼𝑗 = [𝑎𝑗 , 𝑏𝑗 ], [𝑎𝑗 , 𝑏𝑗 ), (𝑎𝑗 , 𝑏𝑗 ], (𝑎𝑗 , 𝑏𝑗 ) だとすると, |𝑝| → ∞ のとき,∫𝐼𝜒𝐼𝑗 (𝑥)𝑒𝑖𝑝𝑠 𝑑𝑥 =

∫ 𝑎𝑗

𝑏𝑗

𝑒𝑖𝑝𝑥 𝑑𝑥 =𝑗𝑒𝑖𝑝𝑥
𝑒𝑖𝑝𝑏𝑗 − 𝑒𝑖𝑝𝑎𝑗=→ 0.
[ 𝑖𝑝 ]𝑥=𝑎
𝑖𝑝
𝑗

𝑥=𝑏

階段函数は 𝜒𝐼𝑗 (𝑥) の有限一次結合なので補題の結果が成立することもわかる. □問題 𝑝 ≠ 0 のとき, −∞ < 𝑎 ≦ 𝑏 < ∞ を満たす実数 𝑎, 𝑏 の取り方によらずに不等式

| 𝑏
|
2
||
𝑒𝑖𝑝𝑥 𝑑𝑥|| ≦
|∫𝑎
| |𝑝|
|
|
が成立することを示し, このようなことが起こる理由について考えよ.
解答例:

| 𝑏
| | 𝑒𝑖𝑝𝑏 − 𝑒𝑖𝑝𝑎 | |𝑒𝑖𝑝𝑏 | + |𝑒𝑖𝑝𝑎 |
2
||
|≦
=
.
𝑒𝑖𝑝𝑥 𝑑𝑥|| = ||
|
|∫𝑎
| |
𝑖𝑝
|𝑝|
|𝑝|
|
|
|

ただし, ≦ では三角不等式を使った.

𝑒𝑖𝑝𝑥 は周期 2𝜋/|𝑝| を持つ函数であり, ちょうど周期分だけ積分すると 0 になる性質を持っている:∫𝑐𝑐+2𝜋/|𝑝|𝑒𝑖𝑝𝑥 𝑑𝑥 = 0.

ゆえに, 整数 𝑛 で 𝑎 + 2𝜋𝑛/|𝑝| ≦ |𝑏| となる最大のものを 𝑁 と書くと,∫𝑎𝑏𝑒𝑖𝑝𝑥 𝑑𝑥 =∫𝑎+2𝜋𝑁/|𝑝|𝑏𝑒𝑖𝑝𝑥 𝑑𝑥,

2𝜋𝑁
2𝜋
𝑏− 𝑎+
<
.
(
|𝑝| )
|𝑝|

これより,
𝑏
𝑏
| 𝑏
| | 𝑏
|
2𝜋
||
|𝑒𝑖𝑝𝑥 | 𝑑𝑥 =𝑑𝑥 <.
𝑒𝑖𝑝𝑥 𝑑𝑥|| = ||𝑒𝑖𝑝𝑥 𝑑𝑥|| ≦|∫𝑎| |∫𝑎+2𝜋𝑛/|𝑝|| ∫𝑎+2𝜋𝑛/|𝑝|∫|𝑝|𝑎+2𝜋𝑛/|𝑝||| ||これは上の問題の結果よりは荒い結果だが, この方法ではどのような仕組みで積分の絶対値の値が小さくなるかはよくわかる.
振動によってほとんど打ち消しあって消えて, 積分区間の端の部分で打ち消し合いが起こらない分だけ積分の値が生き残る. 打
ち消し合いが不完全な積分区間の幅は小さくなり, 打ち消し合わずに生き残った積分の値の絶対値も小さくなる.

| 𝑏
|
2𝜋
2
|
𝑒𝑖𝑝𝑥 𝑑𝑥|| の評価を上よりも繊細に行えば解消できる. 次数 𝛼, 𝛽 に対して, 𝑒𝑖𝛼 と 𝑒𝑖𝛽 の距離が最との違いは |
|
|
∫
|𝑝|
|𝑝|
| 𝑎+2𝜋𝑛/|𝑝||2
大で 2 にしかならないことが,の分子の 2 が出て来る理由になっている. □|𝑝|

In [3]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# e^{ipx} を sin(px) に置き換えた場合の図​
a = 0.0
b = 10.0f(p,x) = sin(p*x)
maxa(a,b,p) = a + 2π/abs(p)*fld(b-a, 2π/abs(p))
x = a:0.01:b
PP = []
for p in [5, 20]
xx = maxa(a,b,p):0.001:b
P = plot(title="p = $p", titlefontsize=10)
plot!(legend=false, ylims=(-1.05,1.05))
plot!(x, f.(p,x))
hline!([0], color=:cyan, ls=:dot)
plot!(xx, f.(p,xx), color=:red, fill=(0, 0.5, :red))
push!(PP, P)
endplot(PP..., size=(700, 250))

Out[3]:

問題: 𝑝 ≧ 1 であるとし, 𝑓 は ℝ 上の連続函数で数 𝑠 で ‖𝑓 − 𝑠‖𝑝 =

(∫−∞

∞

|𝑓(𝑥) − 𝑠(𝑥)|𝑝 𝑑𝑥

∫−∞

∞

)

1/𝑝

|𝑓(𝑥)|𝑝 𝑑𝑥 < ∞ を満たすものであるとする. このとき, ℝ 上の階段函< 𝜀 を満たすものが存在することを示せ.

解答例: 任意に 𝜀 > 0 を取る.

𝑅 > 0 に対して, 𝑓𝑅 (𝑥) を |𝑥| ≦ 𝑅 のとき 𝑓(𝑥) と定め, |𝑥| > 𝑅 のとき 0 と定める. このとき,(‖𝑓 − 𝑓𝑅 ‖𝑝 )𝑝 =∫−∞∞|𝑓(𝑥) − 𝑓𝑅 (𝑥)|𝑝 𝑑𝑥 =∫|𝑥|>𝑅|𝑓(𝑥)|𝑝 𝑑𝑥

より, 𝑅 → ∞ で ‖𝑓 − 𝑓𝑅 ‖𝑝 → 0 となることがわかる. ゆえに 𝑅 > 0 を十分に大きくすると, ‖𝑓 − 𝑓𝑅 ‖𝑝 <

𝜀
となる.
2

区間 [𝑅, −𝑅] 上の連続函数 𝑓𝑅 (𝑥) は階段函数 𝑠 で一様近似される. すなわち, ある階段函数 𝑠 が存在して,sup |𝑓(𝑥) − 𝑠(𝑥)| <

|𝑥|≦𝑅

と,

𝜀
となる. このとき, 𝑠 を ℝ 全体に [−𝑅, 𝑅] の外で 0 になるように拡張したものも 𝑠 と書く
2(2𝑅)1/𝑝‖𝑓𝑅 − 𝑠‖𝑝 =

(∫−𝑅

𝑅

|𝑓(𝑥) − 𝑠(𝑥)|𝑝

)

1/𝑝

≦

𝜀𝑝
2𝑅
𝑝
( 2 (2𝑅) )=𝜀𝜀+ = 𝜀.
2
2

□

1/𝑝

𝜀
.
2

Minkowskiの不等式より,‖𝑓 − 𝑠‖𝑝 ≦ ‖𝑓 − 𝑓𝑅 ‖𝑝 + ‖𝑓𝑅 − 𝑠‖𝑝 <注意: 上の問題は連続な 𝐿𝑝 函数が階段函数で 𝐿𝑝 近似されるということを意味する. 実際には任意の 𝐿𝑝 函数が階段函数で𝐿𝑝 近似されることが示される. □問題: 𝑓 が 𝐿𝑝 函数であるとき, 𝑦 → 0 ならば ‖𝑓(⋅ − 𝑦) − 𝑓 ‖𝑝 → 0 となることを示せ.
略解例: 𝑓 は階段函数で 𝐿𝑝 近似され, 𝑓 が階段函数ならばこの問題の結論が成立することは容易に示されることから, 𝑓 が一般の 𝐿𝑝 函数の場合に関するこの問題の結論が成立することが示される. □1.2 Riemann-Lebesgueの定理とその証明
Riemann-Lebesgueの定理: 𝑓 は区間 𝐼 上の階段函数で 𝐿1 近似可能な函数であるとする. (Lebesgue積分論を知っている人は, 𝑓(𝑥) は区間 𝐼 上の 𝐿1 函数であると仮定してもよい.) このとき,∫𝐼𝑓(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥 → 0(|𝑝| → ∞).

証明: 任意に 𝜀 > 0 を取る. 𝑓(𝑥) は階段函数で 𝐿1 近似可能なので, ある階段函数 𝑠(𝑥) =‖𝑓 − 𝑠‖1 =∫𝐼|𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 <𝑎 𝜒 (𝑥) で∑ 𝑖 𝐼𝑖𝑛𝑖=1𝜀2を満たすものが存在する. 階段函数に関する前節の補題より, ある 𝑅 > 0 が存在して, |𝑝| ≧ 𝑅 ならば||| 𝑠(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥| < 𝜀 .
|∫
| 2
| 𝐼
|
そのとき,

これで |𝑝| → ∞ で

∫𝐼

|
| |
|
| 𝑓(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥| = | (𝑓(𝑥) − 𝑠(𝑥))𝑒𝑖𝑝𝑥 𝑑𝑥 + 𝑠(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥|
|∫
| |∫
|
∫
𝐼
| 𝐼
| | 𝐼
|
|
|
|
|
𝑖𝑝𝑥
𝑖𝑝𝑥
≦ || (𝑓(𝑥) − 𝑠(𝑥))𝑒 𝑑𝑥|| + || 𝑠(𝑥)𝑒 𝑑𝑥||
|∫𝐼
| |∫𝐼
|
|
|
𝑖𝑝𝑥
≦ |𝑓(𝑥) − 𝑠(𝑥)| 𝑑𝑥 + || 𝑠(𝑥)𝑒 𝑑𝑥||
∫𝐼
|∫𝐼
|
|
|
𝜀
𝜀
= ‖𝑓 − 𝑠‖1 + || 𝑠(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥|| < + = 𝜀.
2
|∫𝐼
| 2
𝑓(𝑥)𝑒𝑖𝑝𝑥 𝑑𝑥 → 0 となることがわかった. □解説: Riemann-Lebesgueの定理(リーマン・ルベーグの定理)は |𝑝| を大きくすると, 𝑒𝑖𝑝𝑥 が 𝑥 についてより細かく振動するよ
うになるので, 𝑒𝑖𝑝𝑥 と積を取ってから積分すると, 実部と虚部それぞれの正の成分と負の成分が互いに打ち消され易くなって,積分の絶対値の値が小さくなることを意味している. □2 Fourier変換の逆変換の収束
2.1 Fourier変換とFourier逆変換の定義
̂ を次のように定義する:ℝ 上の函数 𝑓(𝑥) のFourier変換 𝑓 (𝑝)
̂ =
𝑓 (𝑝)

∫ℝ

𝑓(𝑥)𝑒−2𝜋𝑖𝑝𝑥 𝑑𝑥.

さらに ℝ 上の函数 𝑔(𝑝) のFourier逆変換 𝑔ˇ(𝑥) を次のように定義する:

𝑔ˇ(𝑥) =∫ℝ

𝑔(𝑝)𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝.

̂ は 𝑝 の連続函数になり, Riemann-Lebegueの定理より
𝑓(𝑥) が ℝ 上の 𝐿1 函数ならば, Lebesgueの収束定理より 𝑓 (𝑝)̂|𝑝| → ∞ で 𝑓 (𝑝) → 0 となる.
注意: Fourier変換とFourier逆変換を, 上の公式における 𝑝 を 𝑝/(2𝜋) で置き換えることによって,

̂ =
𝑓 (𝑝)

∫ℝ

𝑓(𝑥)𝑒−𝑖𝑝𝑥 𝑑𝑥,

𝑔ˇ(𝑝) =

1𝑔(𝑝)𝑒𝑖𝑝𝑥 𝑑𝑝
2𝜋 ∫ℝと定義するスタイルもよく使われている. 他にも

̂ =
𝑓 (𝑝)

1
𝑓(𝑥)𝑒−𝑖𝑝𝑥 𝑑𝑥,⎯⎯⎯⎯√2𝜋 ∫ℝと定義するスタイルも使われることがある. □以下の節では, 𝐿1 函数 𝑓(𝑥) に対して,

𝑔ˇ(𝑝) =

1𝑔(𝑝)𝑒𝑖𝑝𝑥 𝑑𝑝⎯⎯⎯⎯√2𝜋 ∫ℝ𝑁→∞ ∫−𝑁𝑁

𝑓(𝑥) = lim̂ 𝑒𝑖𝑝𝑥 𝑑𝑝
𝑓 (𝑝)がいつ成立しているかを調べる.

2.2 Dirichlet核
Dirichlet核 𝐷𝑁 (𝑥) を𝐷𝑁 (𝑥) =∫−𝑁𝑁

𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =sin(2𝜋𝑁𝑥)𝑒2𝜋𝑖𝑝𝑥𝑒𝑒𝜋𝑖𝑁𝑥 − 𝑒−2𝜋𝑖𝑁𝑥==[ 2𝜋𝑖𝑥 ] 𝑝=−𝑁
2𝜋𝑖𝑥
𝜋𝑥
𝑝=𝑁

と定める. ただし, 𝐷𝑁 (0) = 2𝑁 と定めておく. 𝐷𝑁 (𝑥) は有界な偶函数になる.
このとき

∫−𝑁

𝑁

̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =𝑓 (𝑝)=𝑓(𝑦)𝑒−2𝜋𝑖𝑝𝑦 𝑑𝑦 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =𝑓(𝑦)𝑒2𝜋𝑖𝑝(𝑥−𝑦) 𝑑𝑝 𝑑𝑦∫−𝑁 (∫ℝ
)
∫ℝ
(∫−𝑁
)
𝑁

∫ℝ

𝑁

𝑓(𝑦)𝐷𝑁 (𝑥 − 𝑦) 𝑑𝑦 =∫ℝ𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦.

最後の等号で 𝑦 を 𝑥 + 𝑦 で置き換えて, 𝐷𝑁 (−𝑦) = 𝐷𝑁 (𝑦) を使った.
問題: Dirichlet核のグラフを描け. □解説: 𝑁 が大きくなると, Dirichelt核 𝐷𝑁 (𝑥) のグラフの振動の仕方は細かくなり, 𝑥 = 0 の近くでの値も大きくなる.
以下のセルを見よ. □In [4]:



1
2
3
4
5
6
7
8
9
10

# ディリクレ核 D_N(x) のグラフ​
D(N,x) = iszero(x) ? 2N : sin(2π*N*x)/(π*x)
PP = []
for N in [1,2,3,4,5,6]
x = -6:0.01:6
P = plot(x, D.(N,x), title="N=$N", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[4]:

In [5]:



1 plot(PP[4:6]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[5]:

2.3 Dirichlet積分の公式
条件収束する広義積分に関する公式

∫0

∞

sin 𝑡
𝜋
𝑑𝑡 =
𝑡
2

より

∫−∞

∞

𝐷𝑁 (𝑥) 𝑑𝑥 =∞∞sin(2𝜋𝑁𝑥)
sin 𝑡
2
2
2𝜋
𝑑𝑥 =
𝑑𝑡 =
= 1.
∫
∫
𝜋 0
𝜋 0
𝜋 2
𝑥
𝑡

2番目の等号で 𝑥 = 𝑡/(2𝜋𝑁) と置換して計算した. この公式は条件収束する積分の公式であることに注意せよ.
上の公式(Dirichlet積分の公式と呼ばれる)については
09 積分 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/09%20integration.ipynb)のDirichlet積分とその一般化(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/09%20integration.ipynb#Dirichlet積分とその一般化)の解説を参照せよ.
Dirichlet積分の公式補足: 条件収束する広義積分に関する次の公式が成立している:1
sin(𝑎𝑥)𝑑𝑥 = sign(𝑎) =  0∫−∞ 𝜋𝑥 −1∞(𝑎 < 0)(𝑎 = 0)(𝑎 > 0).

証明: 𝑎 = 0 のとき, 被積分函数が恒等的に 0 になるので, 積分も 0 になる. 𝑎 ≠ 0 と仮定する.
∞
sin(𝑎𝑥)sin(𝑎𝑥)2𝑑𝑥 =𝑑𝑥∫−∞ 𝜋𝑥𝜋 ∫0𝑥∞であるから, 𝑥 = 𝑡/|𝑎| と置換すると, 𝑎/|𝑎| = sign(𝑎) なので,∞∞sign(𝑎) sin(𝑡)222𝜋sin(𝑎𝑥)𝑑𝑥 =𝑑𝑡 = sign(𝑎)= sign(𝑎).
𝑥
𝑡
𝜋 ∫0
𝜋 ∫0
𝜋 2

□

2.4 Riemannの局所性定理
Riemannの局所性定理: 𝑓 は ℝ 上の 𝐿1 函数であるとし, 𝛿 > 0 であるとする. このとき,𝑁→∞ ∫−∞

limとなる. これより,

∫−𝑁

𝑁

−𝛿

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 0,

̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =
𝑓 (𝑝)

∫ℝ

𝑁→∞ ∫𝛿

lim∞

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 0

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 が 𝑁 → ∞ で収束することと,∫−𝛿𝛿

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 が𝑁 → ∞ で収束することは同値であり, 収束する場合には同じ値に収束することがわかる. 後者が収束するか否かおよび収束するとしたらどこに収束するかは 𝑥 の近くでの函数 𝑓 の様子だけで決まることに注意せよ.
証明:

∫−∞

−𝛿

∫−∞

−𝛿

𝑓(𝑥 + 𝑦)sin(2𝜋𝑁𝑦) 𝑑𝑦,𝑦−𝛿
∞𝑓(𝑥 + 𝑦)𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 =sin(2𝜋𝑁𝑦) 𝑑𝑦.
∫𝛿∫−∞𝑦𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 =であり, 区間 (−∞, −𝛿) と (𝛿, ∞) のそれぞれの上で函数 𝑓(𝑥 + 𝑦)/𝑦 は 𝐿1 函数なので, Riemann-Lebesgueの定理より, これ
らは 𝑁 → ∞ で 0 に収束する. □2.5 Fourier変換の逆変換の収束性 (Diniの条件)
補題: 𝛿 > 0 のとき,
𝑁→∞ ∫−∞−𝛿lim

𝐷𝑁 (𝑦)𝑑𝑦 = 0,𝑁→∞ ∫𝛿lim∞

𝐷𝑁 (𝑦)𝑑𝑦 = 0.

注意: 条件収束する広義積分の極限に関する結果なのでRiemann-Lebesgueの定理を直接使用できない. □𝑁→∞ ∫0

証明: 𝐷𝑁 (𝑦) は偶函数なので後者のみを示せば十分である. Dirichlet積分の公式より lim
𝑁→∞ ∫2𝜋𝑁𝛿

lim

∞

sin 𝑡
𝑑𝑡 = 0 となることがわかる. ゆえに, 𝑦 = 𝑡/(2𝜋𝑁) とおくと,
𝜋𝑡
∫𝛿

∞

𝐷𝑁 (𝑦)𝑑𝑦 =

∫𝛿

∞

∞
sin(2𝜋𝑁𝑦)
sin 𝑡
𝑑𝑦 =
𝑑𝑡 → 0∫𝜋𝑦2𝜋𝑁𝛿 𝜋𝑡

2𝜋𝑁𝛿(𝑁 → ∞).

sin 𝑡
𝜋𝑑𝑡 = なので,𝑡2□定理(Diniの条件): 𝑓 は ℝ 上の 𝐿1 函数であり, 𝑥 ∈ ℝ であるとする.とする. さらに, ある 𝛿 > 0 が存在して,∫0𝛿

|(𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥)|𝑑𝑦 < ∞
𝑦(∗)

が成立していると仮定する. この条件(∗ )をDiniの条件と呼ぶ. このとき,𝑁→∞ ∫−𝑁

lim

∫−𝑁

𝑁

証明:

𝑁

𝑁→∞ ∫ℝ̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 = lim𝑓 (𝑝)𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 𝑓(𝑥).

̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 − 𝑓(𝑥) が 𝑁 → ∞ で 0 に収束することを示せばよい.
𝑓 (𝑝)
∫−𝑁

𝑁

̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 − 𝑓(𝑥) =
𝑓 (𝑝)
=
=
=
=
=

∫ℝ

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 − 𝑓(𝑥)

∫−∞
∫0
∫0
∫0
∫0

∞

∞
∞
∞
∞

∫−∞

∞

𝐷𝑁 (𝑦) 𝑑𝑦(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦 +(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦 +

∫−∞
0

∫0

(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦∞(𝑓(𝑥 − 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦(𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥) sin(2𝜋𝑁𝑦)
𝑑𝑦 = 𝐼𝑁 + 𝐽𝑁 .
𝜋𝑦

ここで, 𝐼𝑁 , 𝐽𝑁 を次のように定義した:∫0𝛿

𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥) sin(2𝜋𝑁𝑦)
𝑑𝑦,
𝜋
𝑦
∞
𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥) sin(2𝜋𝑁𝑦)
𝑑𝑦.
𝐽𝑁 =
∫𝛿
𝜋
𝑦
𝐼𝑁 =

𝑁 → ∞ のとき, Riemannの局所性定理とすぐ上の補題より 𝐽𝑁 → 0 となり, Diniの条件の仮定とRiemann-Lebesgueの定理
より 𝐼𝑁 → 0 となる. これで示したいことが示せた. □̂ が両方可積分でかつ, 𝑓(𝑥) が 𝑥 におけるDiniの条件を満たしているならば,
補足: もしも 𝑓(𝑥) とそのFourier変換 𝑓 (𝑝)∫−∞∞̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 = 𝑓(𝑥)𝑓 (𝑝)は絶対収束する積分の公式として成立している. □例: 𝑓 は ℝ 上の 𝐿1 函数であるとする. 𝑦 ↘ 0 のとき 𝑓(𝑥 + 𝑦), 𝑓(𝑥 − 𝑦) は収束していると仮定し, それぞれの収束先を

𝑓(𝑥 + 0), 𝑓(𝑥 − 0) と書くことにする. さらに 𝑦 ↘ 0 で

𝑓(𝑥 + 𝑦) − 𝑓(𝑥 + 0)𝑓(𝑥 − 𝑦) − 𝑓(𝑥 − 0)とが収束していると𝑦𝑦仮定する. 特に 𝑓 が 𝑥 で微分可能ならばそれらの条件が成立している.
このとき, 十分小さな 𝛿 > 0 を取ると,
こで可積分になる. ゆえに𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − (𝑓(𝑥 + 0) + 𝑓(𝑥 − 0))
は 0 < 𝑦 < 𝛿 で有界になり, 特にそ𝑦𝑓(𝑥) =

𝑓(𝑥 + 0) + 𝑓(𝑥 − 0)2ならば, Diniの条件が満たされており, 上の定理より,
𝑁→∞ ∫−𝑁lim

𝑁

𝑁→∞ ∫ℝ̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 = lim𝑓 (𝑝)𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 𝑓(𝑥)

̂ が可積分ならばとなる. さらにもしも 𝑓 (𝑝)∫ℝ̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 = 𝑓(𝑥)𝑓 (𝑝)となる. □
例: 𝑎 > 0 であるとし, 𝑓(𝑥) を1

𝑓(𝑥) =  1/20と定める. このとき, Diniの条件が満たされているので,(−𝑎 < 𝑥 < 𝑎)(𝑎 = ±𝑎)(otherwise)𝑁→∞ ∫−𝑁𝑁lim

̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 = 𝑓(𝑥)
𝑓 (𝑝)

(∗)

が成立している. これを直接の計算で確認してみよう.

̂ =
𝑓 (𝑝)

∫−𝑎

𝑎

𝑒−2𝜋𝑖𝑝𝑥 𝑑𝑥 =sin(2𝜋𝑎𝑝)
𝑒−2𝜋𝑖𝑝𝑎 − 𝑒2𝜋𝑖𝑝𝑎
=
.
−2𝜋𝑖𝑝
𝜋𝑝

ゆえに,

∫−𝑁

𝑁

𝑁
sin(2𝜋𝑎𝑝) 2𝜋𝑖𝑝𝑥
sin(2𝜋𝑎𝑝) cos(2𝜋𝑥𝑝)
𝑑𝑝 =
𝑑𝑝
𝑒
∫−𝑁
∫
𝜋𝑝
𝜋𝑝
−𝑁
𝑁
sin(2𝜋(𝑎 + 𝑥)𝑝) + sin(2𝜋(𝑎 − 𝑥)𝑝)
1
=
𝑑𝑝.
𝜋𝑝
2 ∫−𝑁
𝑁

̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =𝑓 (𝑝)sin(2𝜋𝑎𝑝) sin(2𝜋𝑥𝑝)
が 𝑝 の奇函数であることを用いた. 3つ目の等号𝜋𝑝では三角函数の加法公式を使って示される 2 sin 𝛼 cos 𝛽 = sin(𝛼 + 𝛽) + sin(𝛼 − 𝛽) を用いた.
2𝜋𝑖𝑝𝑥

2つ目の等号で 𝑒= cos(2𝜋𝑥𝑝) + 𝑖 sin(2𝜋𝑥𝑝) とそして, Dirichlet積分の公式より,

 1/2
𝑁sin(2𝜋(𝑎 + 𝑥)𝑝)1
𝑑𝑝 =  0∫

𝑁→∞ 2 −𝑁𝜋𝑝
 −1/2
 1/2
𝑁sin(2𝜋(𝑎 − 𝑥)𝑝)1
𝑑𝑝 =  0lim
𝑁→∞ 2 ∫−𝑁𝜋𝑝
 −1/2(𝑥 > −𝑎)(𝑥 = 𝑎)(𝑥 < −𝑎),(𝑥 < 𝑎)(𝑥 = 𝑎)(𝑥 > 𝑎).

lim

以上を合わせると 式( )が成立しるとがわかる □

3 たたみ込み積と総和核
3.1 たたみ込み積ℝ 上の函数 𝑓 , 𝑔 のたたみ込み積(convolution) 𝑓 ∗ 𝑔 が次のように定義される:𝑓 ∗ 𝑔(𝑥) =∫−∞∞𝑓(𝑥 − 𝑦)𝑔(𝑦) 𝑑𝑦 =∫−∞∞𝑓(𝑦)𝑔(𝑥 − 𝑦) 𝑑𝑦.

たたみ込み積は函数と函数から函数を作る操作であることに注意せよ.
問題: 𝑓 と 𝑔 が ℝ 上の可積分函数ならば
解答例:

∫ℝ

|𝑓 ∗ 𝑔(𝑥)| 𝑑𝑥 =≦=∫ℝ|𝑓 ∗ 𝑔(𝑥)| 𝑑𝑥 < ∞ となることを示せ.

||| 𝑓(𝑥 − 𝑦)𝑔(𝑦) 𝑑𝑦| 𝑑𝑥 ≦|𝑓(𝑥 − 𝑦)||𝑔(𝑦)| 𝑑𝑦 𝑑𝑥|∫ℝ ||∫ℝ∫ ℝ (∫ ℝ)|∫ ℝ (∫ ℝ∫ℝ|𝑓(𝑥 − 𝑦)| 𝑑𝑥 |𝑔(𝑦)| 𝑑𝑦 =|𝑓(𝑥)| 𝑑𝑥 |𝑔(𝑦)| 𝑑𝑦)∫ ℝ (∫ ℝ)|𝑓(𝑥)| 𝑑𝑥∫ℝ|𝑔(𝑦)| 𝑑𝑦 < ∞.

□注意: ‖𝑓 ∗ 𝑔‖1 ≦ ‖𝑓 ‖1 ‖𝑔‖1 を示せた. □問題: 𝑝, 𝑝′ , 𝑞, 𝑞 ′ , 𝑟 ≧ 1 が

1
1+ ′ = 1,𝑝𝑝

1
1+ ′ = 1,𝑞𝑞

1
1
1
+ ′ + ′ =1𝑞𝑟𝑝を満たしているならば,‖𝑓 ∗ 𝑔‖𝑟 ≦ ‖𝑓 ‖𝑝 ‖𝑔‖𝑞となることを示せ.
解答例: 𝑓 , 𝑔 のそれぞれをする. このとき,

𝑓𝑔,で置き換えることによって, ‖𝑓 ‖𝑝 = ‖𝑔‖𝑞 = 1 と仮定できるので, そのように仮定‖𝑓‖𝑝 ‖𝑔‖𝑞

𝑝 ′
1
1
1
′
′
(1 − 𝑟 ) 𝑞 = 𝑝 ( 𝑝 − 𝑟 ) 𝑞 = 𝑝 (1 − 𝑞 ) 𝑞 = 𝑝,
1
1
1
𝑞 ′
′
′
(1 − 𝑟 ) 𝑝 = 𝑞 ( 𝑞 − 𝑟 ) 𝑝 = 𝑞 (1 − 𝑝 ) 𝑝 = 𝑞なので, Hölderの不等式と ‖𝑓 ‖𝑝 = ‖𝑔‖𝑞 = 1 より,|||𝑓 ∗ 𝑔(𝑥)| = || 𝑓(𝑥 − 𝑦)𝑔(𝑦) 𝑑𝑦|| ≦|𝑓(𝑥 − 𝑦)||𝑔(𝑦)| 𝑑𝑦
∫
| ℝ
| ∫ℝ
≦
=
≦
=

∫ℝ
∫ℝ

|𝑓(𝑥 − 𝑦)|𝑝/𝑟 |𝑔(𝑦)|𝑞/𝑟 ⋅ |𝑓(𝑥 − 𝑦)|1−𝑝/𝑟 ⋅ |𝑔(𝑦)|1−𝑞/𝑟 𝑑𝑦|𝑓(𝑥 − 𝑦)|𝑝/𝑟 |𝑔(𝑦)|𝑞/𝑟 ⋅ |𝑓(𝑥 − 𝑦)|𝑝/𝑞 ⋅ |𝑔(𝑦)|𝑞/𝑝 𝑑𝑦

(∫ ℝ
(∫ ℝ

′

𝑞

𝑝

|𝑓(𝑥 − 𝑦)| |𝑔(𝑦)| 𝑑𝑦|𝑓(𝑥 − 𝑦)|𝑝 |𝑔(𝑦)|𝑞 𝑑𝑦) (∫ ℝ
1/𝑟

)

1/𝑟

′

𝑝

|𝑓(𝑥 − 𝑦)| 𝑑𝑦

)

1/𝑞 ′

(∫ ℝ

𝑞

|𝑔(𝑦)| 𝑑𝑦

)

1/𝑝′

.

したがって,(‖𝑓 ∗ 𝑔‖𝑟 )𝑟 ==∫ℝ

|𝑓 ∗ 𝑔(𝑥)|𝑟 𝑑𝑥 ≦∫ ℝ (∫ ℝ∫ ℝ (∫ ℝ|𝑓(𝑥 − 𝑦)|𝑝 |𝑔(𝑦)|𝑞 𝑑𝑦)𝑑𝑥|𝑓(𝑥 − 𝑦)|𝑝 𝑑𝑥 |𝑔(𝑦)|𝑞 𝑑𝑦 = (‖𝑓 ‖𝑝 )𝑝 (‖𝑔‖𝑞 )𝑞 = 1.
)

問題: たたみ込み積が結合法則を満たしていることを積分の形式的計算で確認せよ.
解答例: 𝜑 ∗ 𝜓(⋅) =∫ℝ

𝜑(𝜉)𝜓(⋅ − 𝜉) 𝑑𝜉 を繰り返し使うと,(𝑓 ∗ 𝑔) ∗ ℎ(𝑥) ===∫ ℝ (∫ ℝ∫ ℝ (∫ ℝ∫ ℝ (∫ ℝ

𝑓(𝑦)𝑔(𝑧 − 𝑦)ℎ(𝑥 − 𝑧) 𝑑𝑦)

𝑓(𝑦)𝑔(𝑧 − 𝑦)ℎ(𝑥 − 𝑧) 𝑑𝑧
𝑓(𝑦)𝑔(𝑧)ℎ(𝑥 − 𝑦 − 𝑧) 𝑑𝑧

)
)

𝑑𝑧
𝑑𝑦
𝑑𝑦 = 𝑓 ∗ (𝑔 ∗ ℎ)(𝑥).

2つ目の等号で積分順序を交換し, 3つ目の等号で 𝑧 を 𝑦 + 𝑧 で置換した. □3.2 微分やたたみ込み積とFourier変換の関係
以下に登場するFourier変換と逆変換ℱ[𝑓](𝑝) =∫−∞∞𝑒−2𝜋𝑖𝑝𝑥 𝑓(𝑥) 𝑑𝑥,ℱ−1 [𝑓](𝑥) =∫−∞∞𝑒2𝜋𝑖𝑝𝑥 𝑓(𝑝) 𝑑𝑝

は適切な意味で収束していると仮定する. すなわち, 𝑓(𝑥), 𝑔(𝑥), … はその導函数とともに絶対値が 𝑥 → ±∞ で十分速く 0 に収束していると仮定する.
定理: 以下の公式が成立している:ℱ[𝑓 ′ ](𝑝) = 2𝜋𝑖𝑝 ℱ[𝑓](𝑝),ℱ[𝑓 ∗ 𝑔] = ℱ[𝑓] ℱ[𝑔],1 𝑑ℱ[𝑓](𝑝),2𝜋𝑖 𝑑𝑝ℱ[𝑓𝑔] = ℱ[𝑓] ∗ ℱ[𝑔].
ℱ[𝑥𝑓](𝑝) = −Fourier逆変換についても同様の公式が成立している. (これらの公式も空気のごとくよく使われる.)
証明: 以下, 記号の簡単のため, ∫ℝ を ∫ と書く. 部分積分によって,𝑑(𝑒−2𝜋𝑖𝑝𝑥 )𝑓(𝑥) 𝑑𝑥 = 2𝜋𝑖𝑝 𝑒−2𝜋𝑖𝑝𝑥 𝑓(𝑥) 𝑑𝑥,∫∫
𝑑𝑥′ℱ[𝑓 ](𝑝) = 2𝜋𝑖𝑝 ℱ[𝑓](𝑝),∫∴𝑑ℱ[𝑓](𝑝) = −2𝜋𝑖 𝑥𝑒−2𝜋𝑖𝑝𝑥 𝑓(𝑥) 𝑑𝑥 = −2𝜋𝑖 ℱ[𝑥𝑓](𝑝),∫𝑑𝑝
1 𝑑∴ ℱ[𝑥𝑓](𝑝) = −ℱ[𝑓](𝑝).
2𝜋𝑖 𝑑𝑝𝑒−2𝜋𝑖𝑝𝑥 𝑓 ′ (𝑥) 𝑑𝑥 = −たたみ込み積とFourier変換の定義より,ℱ[𝑓 ∗ 𝑔](𝑝) =
=
=
=

∫
∫
∫
∫

𝑒−2𝜋𝑖𝑝𝑥(∫𝑓(𝑦)𝑔(𝑥 − 𝑦) 𝑑𝑦

𝑒−2𝜋𝑖𝑝𝑦 𝑒−2𝜋𝑖𝑝(𝑥−𝑦)𝑒−2𝜋𝑖𝑝𝑦 𝑓(𝑦)𝑒−2𝜋𝑖𝑝𝑦 𝑓(𝑦)

(∫
(∫

(∫

)

𝑑𝑥
)

𝑑𝑥

𝑒−2𝜋𝑖𝑝(𝑥−𝑦) 𝑔(𝑥 − 𝑦) 𝑑𝑥

𝑑𝑦𝑓(𝑦)𝑔(𝑥 − 𝑦) 𝑑𝑦

𝑒−2𝜋𝑖𝑝𝑥 𝑔(𝑥) 𝑑𝑥

)

)

𝑑𝑦

= ℱ[𝑓](𝑝) ℱ[𝑔](𝑝).
−1すなわち ℱ[𝑓 ∗ 𝑔] = ℱ[𝑓] ℱ[𝑔] . 同様にして ℱがそれぞれ ℱ[𝑓] , ℱ[𝑔] の場合に適用すると[𝑓 ∗ 𝑔] = ℱ−1 [𝑓] ℱ−1 [𝑔] も成立していることを示せる. これを 𝑓, 𝑔ℱ−1 [ℱ[𝑓] ∗ ℱ[𝑔]] = ℱ−1 [ℱ[𝑓]] ℱ−1 [ℱ[𝑔]] = 𝑓𝑔.
両辺に ℱ を作用させれば ℱ[𝑓] ∗ ℱ[𝑔] = ℱ[𝑓𝑔] を得る. もしくは∫

𝑒2𝜋𝑖𝑝𝑥(∫𝑒−2𝜋𝑖𝑝𝑦 𝑔(𝑦) 𝑑𝑦)

𝑑𝑝 = 𝑔(𝑥)を使うと, 途中の計算で 𝑒−2𝜋𝑖𝑞𝑥 = 𝑒−2𝜋𝑖𝑝𝑥 𝑒−2𝜋𝑖(𝑝−𝑞)𝑥 を使うことによって,(ℱ[𝑓] ∗ ℱ[𝑔])(𝑝) =
=
=
=

∫

ℱ[𝑓](𝑞) ℱ[𝑔](𝑝 − 𝑞) 𝑑𝑞∫ (∫∫𝑒−2𝜋𝑖𝑞𝑥 𝑓(𝑥) 𝑑𝑥

𝑒−2𝜋𝑖𝑝𝑥 𝑓(𝑥)

∫

(∫

) (∫

𝑒2𝜋𝑖(𝑝−𝑞)𝑥𝑒−2𝜋𝑖(𝑝−𝑞)𝑦 𝑔(𝑦) 𝑑𝑦
(∫

)

𝑑𝑞

𝑒−2𝜋𝑖(𝑝−𝑞)𝑦 𝑔(𝑦) 𝑑𝑦

)

𝑑𝑞

)

𝑑𝑥

𝑒−2𝜋𝑖𝑝𝑥 𝑓(𝑥)𝑔(𝑥) 𝑑𝑥 = ℱ[𝑓𝑔](𝑝).

このようにして ℱ[𝑓] ∗ ℱ[𝑔] = ℱ[𝑓𝑔] を得ることもできる. □3.3 総和核𝛿 > 0 に対して,∫|𝑥|>𝛿

𝑓(𝑥) 𝑑𝑥 を∫|𝑥|>𝛿

𝑓(𝑥) 𝑑𝑥 =∫−∞−𝛿𝑓(𝑥) 𝑑𝑥 +∫𝛿∞𝑓(𝑥) 𝑑𝑥と定義しておく. この記号法を使うと, 次の定義の記述を少し簡潔にできる.
定義: 以下の条件を満たす満たす ℝ 乗の可積分函数の族 𝜌𝑡 (𝑥), 𝑡 > 0 を総和核(summability kernel)と呼ぶ:
(S1)

∫ℝ

𝜌𝑡 (𝑥) 𝑑𝑥 = 1 .

(S2) ある正の定数 𝐶 が存在して, 任意の 𝑡 > 0 に対して
(S3) 任意の 𝛿 > 0 に対して, 𝑡 ↘ 0 のとき∫|𝑥|>𝛿

∫ℝ|𝜌𝑡 (𝑥)| 𝑑𝑥 ≦ 𝐶 .

|𝜌𝑡 (𝑥)| 𝑑𝑥 → 0 . □この定義は, 猪狩惺著『実解析入門』岩波書店(1996年)の§6.5に書いてあるものに等しい.
注意: 大雑把に言えば, 総和核とはDiracのデルタ函数に「収束」するような函数族のことである. Diracのデルタ函数 𝛿(𝑥) とは
𝑓 ∗ 𝛿 = 𝑓 すなわち∫ℝ

𝑓(𝑥 − 𝑦)𝛿(𝑦) 𝑑𝑦 =∫ℝ𝑓(𝑦)𝛿(𝑥 − 𝑦) 𝑑𝑦 = 𝑓(𝑥)を満たす「函数」のことである. 実際にはこのような「函数」は通常の函数としては存在しない. 所謂超函数として定義される. しかし, 𝜌𝑡 を総和核とすれば, 𝑡 ↘ 0 のとき適当な意味で 𝑓 ∗ 𝜌𝑡 → 𝑓 となることを示せる. より正確な内容については以下を参照せよ. □例: 𝜌(𝑥) が ℝ 上の可積分函数で∫ℝ

𝜌(𝑥) 𝑑𝑥 = 1 を満たしているならば,
𝜌𝑡 (𝑥) =

1
𝑥
𝜌( ),
𝑡
𝑡

𝑡>0

によって総和核 𝜌𝑡 (𝑥) を構成できる. (S1)は 𝑥 = 𝑡𝑦 と置換すれば得られる:∫ℝ∫ℝ(S2)は 𝑥 = 𝑡𝑦, 𝐶 =𝜌𝑡 (𝑥) 𝑑𝑥 =

𝑥 𝑑𝑥
𝜌
=
𝜌(𝑦) 𝑑𝑦 = 1.
∫ℝ ( 𝑡 ) 𝑡∫ℝ|𝜌(𝑦)| 𝑑𝑦 とおくと得られる:∫ℝ|𝜌𝑡 (𝑥)| 𝑑𝑥 =| 𝑥 | 𝑑𝑥=
|𝜌(𝑦)| 𝑑𝑦 = 𝐶.
|𝜌|∫ ℝ | ( 𝑡 )| 𝑡∫ℝ

(S3)を示そう. この場合も 𝑥 = 𝑡𝑦 と変換する. 𝑅 → ∞ のとき∫|𝑥|>𝛿

|𝜌𝑡 (𝑥)| 𝑑𝑥 =∫|𝑦|>𝛿/𝑡∫−𝑅𝑅|𝜌(𝑦)| 𝑑𝑦 → 𝐶 なので, 𝑡 ↘ 0 のとき,

|𝜌(𝑦)| 𝑑𝑦 = 𝐶 −

∫−𝛿/𝑡

𝛿/𝑡

|𝜌(𝑦)| 𝑑𝑦 → 0.

これで 𝜌𝑡 (𝑥) が総和核であることがわかった. □問題: 𝜌𝑡 (𝑥) は総和核であると仮定し, 𝑓 は ℝ 上の連続函数であり、|𝑥| → ∞ のとき 𝑓(𝑥) → 0 となるものであると仮定す
る. このとき, 𝑡 ↘ 0 で 𝑓 と総和核 𝜌𝑡 たたみ込み積 𝑓 ∗ 𝜌𝑡 が 𝑓 に一様収束することを示せ.
解答例: 𝜀 > 0 であるとする.

|||𝑓 ∗ 𝜌𝑡 (𝑥) − 𝑓(𝑥)| = || (𝑓(𝑥 − 𝑦) − 𝑓(𝑥))𝜌𝑡 (𝑦) 𝑑𝑦|| ≦|𝑓(𝑥 − 𝑦) − 𝑓(𝑥)||𝜌𝑡 (𝑦)| 𝑑𝑦 = 𝐼 + 𝐽.
∫
| ℝ
| ∫ℝ
1つ目の等号で(S1)を使った. 最後の等号では𝐼=∫|𝑦|≦𝛿

|𝑓(𝑥 − 𝑦) − 𝑓(𝑥)||𝜌𝑡 (𝑦)| 𝑑𝑦,𝐽=∫|𝑦|>𝛿

|𝑓(𝑥 − 𝑦) − 𝑓(𝑥)||𝜌𝑡 (𝑦)| 𝑑𝑦

とおいた. 𝑓 は ℝ 上の一様連続函数になるので, (S2)を満たす正の定数 𝐶 を取ると, ある 𝛿 > 0 が存在して, |𝑦 − 𝑥| ≦ 𝛿 ならば |𝑓(𝑦) − 𝑓(𝑥)| <𝜀となる. このとき,
2𝐶

𝐼≦

𝜀
𝜀
𝜀
|𝜌𝑡 (𝑦)| 𝑑𝑦 ≦𝐶≦ .
2𝐶 ∫|𝑦|<𝛿
2𝐶2

𝑓 は有界な函数になるので, ある正の定数 𝑀 で |𝑓(𝑥)| ≦ 𝑀 (𝑥 ∈ ℝ) を満たすものが存在する. (S3)より, ある 𝜏 > 0 が存在
𝜀
して, 0 < 𝑡 < 𝜏 ならばとなる. このとき, |𝑓(𝑥 − 𝑦) − 𝑓(𝑥)| ≦ 2𝑀 となるので,|𝜌 (𝑥)| 𝑑𝑥 <∫|𝑥|>𝛿 𝑡
4𝑀
𝐽 ≦ 2𝑀∫|𝑦|>𝛿

|𝜌𝑡 (𝑦)| 𝑑𝑦 < 2𝑀

𝜀
𝜀
= .
4𝑀
2

したがって, そのとき,|𝑓 ∗ 𝜌𝑡 (𝑥) − 𝑓(𝑥)| = 𝐼 + 𝐽 <𝜀𝜀+ = 𝜀.
2
2

これで 𝑡 ↘ 0 のとき, 𝑓 ∗ 𝜌𝑡 が 𝑓 に一様収束することがわかった. □問題: 𝑝 ≧ 1 であるとし, 𝑓 は 𝐿𝑝 函数であるとする. このとき, 𝑡 ↘ 0 のとき ‖𝑓 ∗ 𝜌𝑡 − 𝑓 ‖𝑝 → 0 となることを示せ.
解答例: 𝑡 ↘ 0 で (‖𝑓 ∗ 𝜌𝑡 − 𝑓 ‖𝑝 ) 𝑝 → 0 となることを示せばよい. 𝑝′ をより,

1
1
+ ′ = 1 という条件で定める. Hölderの不等式
𝑝
𝑝

𝑝
|
|𝑝
|𝑓 ∗ 𝜌𝑡 (𝑥) − 𝑓(𝑥)|𝑝 = || (𝑓(𝑥 − 𝑦) − 𝑓(𝑦))𝜌𝑡 (𝑦) 𝑑𝑦|| ≦|𝑓(𝑥 − 𝑦) − 𝑓(𝑦)||𝜌𝑡 (𝑦)| 𝑑𝑦
(∫ ℝ
)
|∫ℝ
|

=
≦

(∫ ℝ
∫ℝ

′

|𝑓(𝑥 − 𝑦) − 𝑓(𝑦)||𝜌𝑡 (𝑦)|1/𝑝 ⋅ |𝜌𝑡 (𝑦)|1/𝑝 𝑑𝑦|𝑓(𝑥 − 𝑦) − 𝑓(𝑦)|𝑝 |𝜌𝑡 (𝑦)| 𝑑𝑦≦ 𝐶 𝑝/𝑝

′

∫ℝ

(∫ ℝ

)

|𝜌𝑡 (𝑦)| 𝑑𝑦

𝑝

)

𝑝/𝑝′

|𝑓(𝑥 − 𝑦) − 𝑓(𝑦)|𝑝 |𝜌𝑡 (𝑦)| 𝑑𝑦.

これを 𝑥 で積分すると,(‖𝑓 ∗ 𝜌𝑡 − 𝑓 ‖𝑝 )𝑝 ≦ 𝐶 𝑝/𝑝′∫ ℝ (∫ ℝ|𝑓(𝑥 − 𝑦) − 𝑓(𝑥)|𝑝 𝑑𝑥 |𝜌𝑡 (𝑦)| 𝑑𝑦 = 𝐼 + 𝐽.
)

ここで, 𝐼, 𝐽 はそれぞれ |𝑦| > 𝛿 と |𝑦| ≦ 𝛿 における積分である. 𝑦 → 0 のとき ‖𝑓(⋅ − 𝑦) − 𝑓 ‖𝑝 → 0 となることより, 𝐶 を条件(S2)の 𝐶 であるとすると, ある 𝛿 > 0 が存在して, |𝑦| ≦ 𝛿 のとき𝐽=∫−𝛿 (∫ℝ
𝛿∫ℝ|𝑓(𝑥 − 𝑦) − 𝑓(𝑥)| 𝑑𝑥 ≦

𝜀
となり,
2𝐶

𝜀
𝜀
|𝑓(𝑥 − 𝑦) − 𝑓(𝑥)|𝑝 𝑑𝑥 |𝜌𝑡 (𝑦)| 𝑑𝑦 ≦
𝐶≦ .
)
2𝐶
2

𝑀 = ‖𝑓‖𝑝 とおくと, ‖𝑓(⋅ − 𝑦) − 𝑓 ‖𝑝 ≦ 2𝑀 となる. (S3)より, ある 𝜏 > 0 が存在して, 0 < 𝑡 < 𝜏 のとき,𝜀|𝜌𝑡 (𝑦) 𝑑𝑦 <となるので,∫|𝑦|>𝛿
2(2𝑀)𝑝∫(∫)

3.4 総和核とFourier展開の関係𝜀𝜀

仮に総和核 𝜌𝑡 (𝑥) が𝜌𝑡 (𝑥) =∫ℝ

𝑊𝑡 (𝑝)𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝と重み 𝑊𝑡 (𝑝) によって表示されていたとする. このとき, 重み 𝑊𝑡 (𝑝) によって制限された函数 𝑓(𝑥) のFourier展開∫ℝ̂ 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 は次のように表わされる:𝑊 (𝑝)𝑓 (𝑝)∫ℝ̂ 𝑒2𝜋𝑖𝑝𝑥 𝑊𝑡 (𝑝) 𝑑𝑝 =
𝑓 (𝑝)
=
=

∫ ℝ (∫ ℝ
∫ℝ
∫ℝ

𝑓(𝑦)

𝑓(𝑦)𝑒−2𝜋𝑖𝑝𝑦 𝑑𝑦(∫ ℝ)

𝑒2𝜋𝑖𝑝𝑥 𝑊𝑡 (𝑝) 𝑑𝑝

𝑊𝑡 (𝑝)𝑒2𝜋𝑖𝑝(𝑥−𝑦) 𝑑𝑝)

𝑑𝑦𝑓(𝑦)𝜌𝑡 (𝑥 + 𝑦) 𝑑𝑦 = 𝑓 ∗ 𝜌𝑡 (𝑥)このように, 「重み 𝑊𝑡 (𝑝) によってFourier展開された総和核と函数 𝑓 のたたみ込み積」は「重み 𝑊𝑡 (𝑝) で制限された函数 𝑓のFourier展開」になっている.

3.5 総和核の例
3.5.1 Dirichlet核は総和核ではない
Dirichlet核 𝐷𝑁 (𝑥) は区間 [−𝑁, 𝑁] 上で 1 でそれ以外の場所で 0 になるような重み函数によるFourier展開で定義されていた:

𝐷𝑁 (𝑥) =

∫−𝑁

𝑁

𝑒

𝑁 = 1/𝑡 とおく. Dirichlet核 𝐷1/𝑡 (𝑥) =
∫−∞

∞

2𝜋𝑖𝑝𝑥

𝑝=𝑁

sin(2𝜋𝑁𝑥)𝑒2𝜋𝑖𝑝𝑥𝑒𝑒𝜋𝑖𝑁𝑥 − 𝑒−2𝜋𝑖𝑁𝑥
𝑑𝑝 =
=
=
.
[ 2𝜋𝑖𝑥 ] 𝑝=−𝑁
2𝜋𝑖𝑥𝜋𝑥sin(2𝜋𝑥/𝑡)はDirichlet積分の公式より, 任意の 𝛿 > 0 について,
𝜋𝑥

𝐷1/𝑡 (𝑥) 𝑑𝑥 = 1,∫𝛿∞

𝐷1/𝑡 (𝑥) 𝑑𝑥 → 0,∫−∞

を満たしているが, これらは条件収束する広義積分であり,∫ℝ|𝐷1/𝑡 (𝑥)| 𝑑𝑥 = ∞−𝛿

𝐷1/𝑡 (𝑥) 𝑑𝑥 → 0(𝑡 ↘ 0)となっているので, このノートの意味での総和核ではない. Dirichlet核は足し上げる 𝑝 の範囲を区間 [−𝑁, 𝑁] に単純に制限するという素朴で分かり易い考え方に基いて得られるが, 可積分函数にならない. このことがDirichlet核を用いたFourier解析を難しくしていると考えられる. 足し上げる 𝑝 の範囲を単純に制限するのではなく, 適当な重みを付けて制限するという一般化を考えると, 様々な総和核が得られる.
3.5.2 Fejér核
重み函数 Δ𝑁 (𝑝) をΔ𝑁 (𝑝) = max

{

1−

|𝑝|
,0
𝑁 }

と定め, 𝑁 > 0 に対して, Fejér核 𝐹𝑁 (𝑥) を次のように定める:

𝐹𝑁 (𝑥) =∫ℝ=2

Δ𝑁 (𝑝)𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =

∫0

𝑁

(1 −

= 2𝑁 (1 − 𝑡)
[

∫−𝑁 (
𝑁

1−

|𝑝|
𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝
𝑁)1𝑝cos(2𝜋𝑝𝑥)𝑑𝑝=2𝑁(1 − 𝑡) cos(2𝜋𝑁𝑡𝑥) 𝑑𝑡∫0𝑁)sin(2𝜋𝑁𝑡𝑥)+ 2𝑁∫0
2𝜋𝑁𝑥 ]𝑡=0
𝑡=1

1

sin(2𝜋𝑁𝑡𝑥)
𝑑𝑡
2𝜋𝑁𝑥

𝑡=1
1 sin(𝜋𝑁𝑥)cos(2𝜋𝑁𝑡𝑥)
1 − cos(2𝜋𝑁𝑥)= 2𝑁 −==.
[ (2𝜋𝑁𝑥)2 ]𝑡=0)𝑁(𝜋𝑥2𝑁(𝜋𝑥)2
2

2
5つ目の等号で部分積分を行い, 最後の等号で倍角の公式 cos(2𝑋) = 1 − 2 sin 𝑋 を使った. 特にFejér核は正値函数である.
そして, Dirichlet積分の公式より,

∫0

∞

∞
sin 𝑥
1 − cos 2𝑥
𝑑𝑥 =
𝑑𝑥
( 𝑥 )
∫0
2𝑥2
∞
∞
−1
−1
=
(1 − cos 2𝑥) −(2 sin 2𝑥) 𝑑𝑥
[ 2𝑥
]0
∫0 2𝑥
∞
∞
sin 2𝑥
sin 𝑡
𝜋
=
𝑑𝑥 =
𝑑𝑡 = .
∫0
∫
𝑥
𝑡
2
0
2

(最後から2番目の等号で 𝑥 = 𝑡/2 とおいた)を使えば,∫ℝ

𝐹𝑁 (𝑥) 𝑑𝑥 = 1 であることも容易に確認できる.

Fejér核 𝐹1/𝑡 (𝑥) は総和核である.
In [6]:



1
2
3
4
5
6
7
8
9
10
11
12

# Δ_N(p) のグラフ#
# N を大きくすると足し上げる p の範囲が拡大する.
​Δ(N,p) = max(1-abs(p)/N, zero(p))
PP = []
for N in [1,3,8]
p = -10:0.01:10
P = plot(p, Δ.(N,p), title="N=$N", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[6]:(最後から2番目の等号で 𝑥 = 2𝑡 とおいた)を使えば,Fejér核 𝐹1/𝑡 (𝑥) は総和核である.

∫ℝ

𝐹𝑁 (𝑥) 𝑑𝑥 = 1 であることも容易に確認できる.

In [7]:



1
2
3
4
5
6
7
8
9
10
11
12

# Fejér核のグラフ## Dirichlet核よりも x=0 から離れた部分の値が急速に 0 に収束することがわかる.
​
F(N,x) = iszero(x) ? N : (sin(π*N*x)/(π*x))^2/N
PP = []
for N in [1,2,3,4,5,6]
x = -6:0.01:6
P = plot(x, F.(N,x), title="N=$N", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[7]:

In [8]:



1 plot(PP[4:6]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[8]:

3.5.3 Poisson核𝑡 > 0 に対して, Poisson核 𝑃𝑡 (𝑥) を次のように定める:𝑃𝑡 (𝑥) =

1
𝑡
1
1
=
.
𝜋 𝑡2 + 𝑥2
𝜋𝑡 1 + (𝑥/𝑡)2

これも総和核であり, 次のようにFourier展開される:

𝑃𝑡 (𝑥) =∫ℝ

𝑃 𝑡̂ (𝑝)𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝,

𝑃 𝑡̂ (𝑝) = 𝑒−2𝜋𝑡|𝑝| .

この公式を証明するためには,∫0∞

𝑒−2𝜋𝑡𝑝 cos(2𝜋𝑝𝑥) 𝑑𝑝 =1𝑡
2𝜋 𝑡2 + 𝑥2

を示せばよい. この公式は次の結果の実部に等しい:∫0∞𝑒−2𝜋𝑡𝑝 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝 =∫0∞𝑒−2𝜋(𝑡−𝑖𝑥)𝑝 𝑑𝑝 =𝑝=∞𝑒−2𝜋(𝑡−𝑖𝑥)𝑝1=.
[ −2𝜋(𝑡 − 𝑖𝑥) ]𝑝=02𝜋(𝑡 − 𝑖𝑥)

注意: Poisson核はCauchy分布の確率密度函数に等しい. 重み函数 𝑃 𝑡̂ (𝑝) はCauchy分布の特性函数とも呼ばれる. 確率論では確率分布の特性函数の形でFourier解析が利用されている. □In [9]:



1
2
3
4
5
6
7
8
9
10
11
12

# Phat_t(p) のグラフ#
# t > 0 を小さくすると足し上げる p の範囲が拡大する.
​
Phat(t,p) = exp(-2π*t*abs(p))
PP = []
for t in [0.5, 0.1, 0.05]
p = -10:0.01:10
P = plot(p, Phat.(t,p), title="t=$t", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))

1
2
3
4
5
6
7
8
9
10
11
12

# Poisson核のグラフ## t > 0 を小さくすると x 軸上での広がりの範囲が狭くなる.
​
Poisson(t,x) = t/(t^2+x^2)/π
PP = []
for t in [0.5, 0.1, 0.05]
x = -1:0.001:1
P = plot(x, Poisson.(t,x), title="t=$t", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[9]:

In [10]:Out[10]:3.5.4 Gauss核
Gauss核 𝐺𝑡 (𝑥) を次のように定める:

1 −𝑥 2 /(2𝑡)⎯⎯⎯⎯⎯⎯ 𝑒√2𝜋𝑡

𝐺𝑡 (𝑥) =これは総和核であり, 次のようにFourier展開される:

𝐺𝑡 (𝑥) =∫ℝ

𝐺𝑡̂ (𝑝) 𝑒2𝜋𝑖𝑝𝑥 𝑑𝑝,

2
2 2
𝐺𝑡̂ (𝑝) = 𝑒−𝑡(2𝜋𝑝) /2 = 𝑒−2𝑡𝜋 𝑝

注意: Gauss核は期待値0の分散 𝑡 の正規分布の確率密度函数に等しい. □問題: Gauss核 𝑢 = 𝑢(𝑡, 𝑥) = 𝐺𝑡 (𝑥) が熱方程式 𝑢𝑡 =1
𝑢𝑥𝑥 の解になっていることを示せ.
2

解答例: 𝑢 を 𝑥 で2回偏微分すると,

𝑥
𝑢𝑥 = − ,
𝑡

𝑢𝑥𝑥 =

1
𝑥2
+ 2 𝑢.
( 𝑡𝑡 )−∂ −1/2
1= − 𝑡−1/2 などを使うと,
𝑡
∂𝑡
2𝑡
𝑢𝑡 =
以上を比較すれば 𝑢𝑡 =1
𝑢𝑥𝑥 が得られる. □2

1𝑥2+ 2 𝑢.
( 2𝑡
2𝑡 )−注意: 𝑡 ↘ 0 のとき 𝐺𝑡 (𝑥) → 𝛿(𝑥) なので, Gauss核は熱方程式の基本解 (https://www.google.co.jp/search?
q=%E7%86%B1%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AE%E5%9F%BA%E6%9C%AC%E8%A7%A3)になっている. □In [11]:

1
2
3
4
5



x = symbols("x", real=true)
p = symbols("p", real=true)t = symbols("t", positive=true)W(t,p) = simplify(integrate(exp(-x^2/(2t))*exp(-2*Sym(π)*im*p*x), (x,-oo,oo)))/sqrt(2*Sy
W(t,p)

Out[11]: 𝑒−2𝜋 2 𝑝2 𝑡
In [12]:

Out[12]:

In [13]:

1 G(t,x) = simplify(integrate(W(t,p)*exp(2*Sym(π)*im*p*x), (p,-oo,oo)))
2 G(t,x)⎯⎯ 𝑥2√2𝑒− 2𝑡⎯⎯2√ 𝜋 √ 𝑡
1 integrate(G(t,x), (x,-oo,oo))Out[13]: 1
In [14]:

Out[14]: 

1 [
2
3
4 ]

factor(diff(G(t,x), x, x))/2
factor(diff(G(t,x), t))

𝑥2
⎯⎯
−
2
 √2 (−𝑡 + 𝑥 ) 𝑒 2𝑡⎯⎯ 5
4√ 𝜋 𝑡 2

𝑥2
 ⎯⎯
−
2
 √2 (−𝑡 + 𝑥 ) 𝑒 2𝑡⎯⎯ 54√ 𝜋 𝑡 2
In [15]:

Out[15]:

1
2
3
4
5
6
7
8
9
10
11
12











# Ghat_t(p) のグラフ#
# t > 0 を小さくすると足し上げる p の範囲が拡大する.
​
Ghat(t,p) = exp(-2t*π^2*p^2)
PP = []
for t in [0.1, 0.01, 0.004]
p = -10:0.01:10
P = plot(p, Ghat.(t,p), title="t=$t", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))In [16]:



1
2
3
4
5
6
7
8
9
10
11
12

# Gauss核のグラフ## t > 0 を小さくすると x 軸上での広がりの範囲が狭くなる.
​
G(t,x) = exp(-x^2/(2t))/√(2π*t)
PP = []
for t in [0.1, 0.01, 0.004]
x = -1:0.001:1
P = plot(x, G.(t,x), title="t=$t", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[16]:

4 Fourier級数の収束
Fourier変換の逆変換の収束の議論とほぼ同じ議論を以下では行う.
以下の内容を超えるFourier級数論については, 猪狩惺著『実解析入門』岩波書店(1996)の第8.5節以降などを参照せよ.

4.1 Fourier級数の定義
𝑓(𝑥) は周期 1 を持つ ℝ 上の函数であり(𝑓(𝑥 + 1) = 𝑓(𝑥)),𝑘 ∈ ℤ に対して, 𝑓(𝑥) のFourier係数 𝑎𝑘 (𝑓) を𝑎𝑘 (𝑓) =と定める. そして,

∫0

∫0

1

1

|𝑓(𝑥)| 𝑑𝑥 < ∞ を満たしていると仮定する. このとき, 整数

𝑓(𝑥)𝑒−2𝜋𝑖𝑘𝑥 𝑑𝑥

𝑎 (𝑓)𝑒2𝜋𝑖𝑘𝑥
∑ 𝑘

𝑘∈ℤ

を 𝑓(𝑥) のFourier級数展開と呼ぶ.

4.2 Fourier級数展開のDirichlet核
Dirichlet核 𝐷𝑁 (𝑥) を∑𝑁

𝐷𝑁 (𝑥) =𝑘=−𝑁

𝑒2𝜋𝑖𝑘𝑥 = 𝑒−2𝜋𝑖𝑁𝑥sin(𝜋(2𝑁 + 1)𝑥)𝑒2𝜋𝑖(2𝑁+1)𝑥 − 1=2𝜋𝑖𝑥
sin(𝜋𝑥)−1𝑒と定める. ただし, 𝑥 ∈ ℤ のときには 𝐷𝑁 (𝑥) = 2𝑁 + 1 と定めておく. 𝐷𝑁 (𝑥) は有界な偶函数で周期 1 を持つ.
このとき,

∑
𝑁

𝑘=−𝑁

𝑎𝑘 (𝑓)𝑒2𝜋𝑖𝑘𝑥 ==∑ (∫ 0
𝑁

𝑘=−𝑁
1

∫0

1

𝑓(𝑦)𝑒2𝜋𝑖𝑘𝑦 𝑑𝑦 𝑒2𝜋𝑖𝑘𝑥 =𝑓(𝑦)𝑒2𝜋𝑖𝑘(𝑥−𝑦) 𝑑𝑥 𝑑𝑦
∑
)
∫0
(𝑘=−𝑁
)
𝑁

1

𝑓(𝑦)𝐷𝑁 (𝑥 − 𝑦) 𝑑𝑦 =

∫−1/2

1/2

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦.

最後の等号で 𝑦 を 𝑥 + 𝑦 で置換し, 𝐷𝑁 (−𝑦) = 𝐷𝑁 (𝑦) と 𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) が 𝑦 について周期 1 を持つ函数になることを用い
た.

∫0

1

𝐷𝑁 (𝑦) 𝑑𝑦 =問題: Fourier級数のDirichlet核のグラフを描け. □

∑ ∫0
𝑁

𝑘=−𝑁

1

𝑒2𝜋𝑖𝑘𝑦 𝑑𝑦 =∫01

1 𝑑𝑦 = 1.

解説: 上の 𝐷𝑁 (𝑥) は 𝐷𝑁 (𝑥 + 1) = 𝐷𝑁 (𝑥) を満たしているので, −1/2 ≦ 𝑥 ≦ 1/2 でグラフを描けば十分である. 𝐷𝑁 (𝑥) のグラフは 𝑁 個の山を持ち, 振動が細かくなり, 𝑁 が大きくなると, 𝑥 = 0 の近くでは(より正確には整数の近くの 𝑥 においては) 𝐷𝑁 (𝑥) の値が大きくなり, 他での値は小さくなる.
次のセルを見よ □In [17]:



1
2
3
4
5
6
7
8
9
10

# フーリエ級数のディリクレ核 D_N(x) のグラフ​
D(N,x) = iszero(x) ? 2N+1 : sin(π*(2N+1)*x)/(sin(π*x))
PP = []
for N in [1:6; 10; 20; 30]
x = -0.5:0.001:0.5
P = plot(x, D.(N,x), title="N=$N", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[17]:

In [18]:

1 plot(PP[4:6]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[18]:In [19]:

1 plot(PP[7:9]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[19]:問題: Fourier級数のDirichlet核 𝐷𝑁 (𝑥) =sin(𝜋(2𝑁 + 1)𝑥)1は上の方で示したように, ∫0 𝐷𝑁 (𝑥) 𝑑𝑥 = 1 を満たしている. しsin(𝜋𝑥)

かし, その絶対値 |𝐷𝑁 (𝑥)| の積分については,∫0

1|𝐷𝑁 (𝑥)| 𝑑𝑥 → ∞(𝑁 → ∞)

が成立していることを示せ.
解答例: | sin(𝜋𝑥)| ≦ 𝜋|𝑥| なので,

∫0

1

|𝐷𝑁 (𝑥)| 𝑑𝑥 = 2

∫0

1/2

|𝐷𝑁 (𝑥)| 𝑑𝑥 ≧ 2

∫0

1/2

| sin(𝜋(2𝑁 + 1)𝑥)|𝑑𝑥.
𝜋𝑥𝑥 = 𝑡/(π(2𝑁 + 1)) と置換すると,
2

∫0

1/2

≧

そして,

𝜋(2𝑁+1)/2
𝑘𝜋/2| sin(𝜋(2𝑁 + 1)𝑥)|| sin 𝑡|| sin 𝑡|
2
2
𝑑𝑥 =
𝑑𝑡 =
𝑑𝑡
∑
𝜋𝑥
𝜋 ∫0
𝜋 𝑘=1 ∫(𝑘−1)𝜋/2
𝑡
𝑡
2𝑁+1

𝑘𝜋/2
𝜋/2
| sin 𝑡|
2
2
1
2
1
𝑑𝑡 =
sin 𝑡 𝑑𝑡=.
∑ 𝑘 (𝜋) ∑ 𝑘∫(𝑘−1)𝜋/2 𝑘𝜋/2
( 𝜋 ) ∫0
𝜋 ∑
𝑘=1
𝑘=1
𝑘=1
2𝑁+1

1
∼ log(2𝑁 + 1). 以上をまとめると,
∑ 𝑘

2𝑁+1
𝑘=1

2

2𝑁+1

2 2𝑁+1∫0

1|𝐷𝑁 (𝑥)| 𝑑𝑥 ≧2
1
∼ log(2𝑁 + 1).
(𝜋) ∑ 𝑘𝑘=1
2 2𝑁+1

これより, 左辺は 𝑁 → ∞ のとき log 𝑁 以上のオーダーで無限大に発散することがわかる. □解説: 𝑁 → ∞ のとき,

∫0

1

𝐷𝑁 (𝑥) 𝑑𝑥 = 1 の左辺の積分はそれぞれ ∞, −∞ に発散する正と負の成分が互いにキャンセルすることによって有限の値が残るという計算になる. これが, Fourier級数の収束の理論がややこしくなる理由の1つであると考えられる. □
In [20]:



1
2
3
4
5
6
7
8

# |sin πx| ≤ π|x| の確認​
f(x) = abs(sin(π*x))g(x) = π*abs(x)x = -1/2:0.002:1/2
plot(size=(400, 250), legend=:top)
plot!(x, f.(x), label="|sin(pi x)|")plot!(x, g.(x), label="pi |x|")

1
2
3
4
5
6
7
8
9

# |D_N(x)| の積分の漸近挙動の確認​
D(N,x) = iszero(x) ? π*(2N+1) : sin(π*(2N+1)*x)/sin(π*x)F(N) = quadgk(x-> abs(D(N,x)), 0, 1)[1]G(N) = (2/π)^2*log(2N+1)+1
n = [1,2,3,6,10,20,30,60,100,200,300,600]
plot(size=(400,250), legend=:topleft, xlabel="N", xscale=:log)
plot!(n, F.(n), label="integal of |D_N(x)| from x=0 to 1", lw=2)
plot!(n, G.(n), label="(2/pi)^2*log(2N+1)+1", lw=2, ls=:dash)Out[20]:In [21]:

Out[21]:

4.3 Fourier級数に関するRiemannの局所性定理
Riemannの局所性定理: 𝑓 は ℝ 上の周期 1 を持つ函数であり, [0, 1) 上で可積分であると仮定し, 0 < 𝛿 < 1/2 であるとする.
このとき,𝑁→∞ ∫−1/2

lim

∑
𝑁

これより,

𝑘=−𝑁

𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑘𝑥 =−𝛿

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 0,

∫−1/2

1/2

𝑁→∞ ∫𝛿

lim

1/2

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 0.

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 が 𝑁 → ∞ で収束することと,∫−𝛿𝛿

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 が𝑁 → ∞ で収束することは同値であり, 収束する場合には同じ値に収束することがわかる. 後者が収束するか否かは 𝑥 の近くでの函数 𝑓 の様子だけで決まることに注意せよ.
証明:∫−1/2𝑓(𝑥 + 𝑦)sin(𝜋(2𝑁 + 1)𝑦 𝑑𝑦,∫−1/2 sin(𝜋𝑦)1/2
1/2
𝑓(𝑥 + 𝑦)𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 =sin(𝜋(2𝑁 + 1)𝑦 𝑑𝑦.
∫𝛿∫𝛿sin(𝜋𝑦)−𝛿𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 =であり, 区間 (−1/2, −𝛿) , (𝛿, 1/2) で
束する □

−𝛿

𝑓(𝑥 + 𝑦)は可積分なので, Riemann-Lebesgueの定理より, これらは 𝑁 → ∞ で 0 に収
sin(𝜋𝑦)4.4 Fourier級数の収束 (Diniの条件)定理(Diniの条件): 𝑓 は ℝ 上の周期 1 を持つ函数であり, 区間 [0, 1) 上で可積分であると仮定し, 𝑥 ∈ ℝ であるとする. さらに,
0 < 𝛿 < 1/2 を満たすある実数 𝛿 が存在して,∫0𝛿

|(𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥)|𝑑𝑦 < ∞
𝑦(∗)

が成立していると仮定する. この条件(∗ )をDiniの条件と呼ぶ. このとき,

lim

𝑁→∞

∑
𝑁

𝑘=−𝑁

𝑁→∞ ∫−1/2𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑘𝑥 = lim

1/2

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 𝑓(𝑥).

証明: Fourier変換の場合と同様に計算すると,

∑
𝑁

𝑘=−𝑁

𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑛𝑥 − 𝑓(𝑥) =
=
=
=
=

∫−1/2

1/2

∫−1/2

1/2

∫0
∫0
∫0

1/2

1/2

1/2

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 − 𝑓(𝑥)

∫−1/2

1/2

𝐷𝑁 (𝑦) 𝑑𝑦(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦 +(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦 +

∫−1/2
0

∫0

(𝑓(𝑥 + 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦

1/2(𝑓(𝑥 − 𝑦) − 𝑓(𝑥))𝐷𝑁 (𝑦) 𝑑𝑦𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥)𝑦sin(𝜋(2𝑁 + 1)𝑦) 𝑑𝑦.
sin(𝜋𝑦)𝑦Diniの条件より, Riemann-Lebesgueの定理を使用できるので, これは 𝑁 → ∞ で 0 に収束することがわかる. □例: 𝑓(𝑥) は周期 1 を持つ ℝ 上の函数であり,∫01|𝑓(𝑥)| 𝑑𝑥 < ∞ を満たしていると仮定し, 実数 𝑥 を任意に取る. 𝑦 ↘ 0 の

とき 𝑓(𝑥 + 𝑦), 𝑓(𝑥 − 𝑦) は収束していると仮定し, それぞれの収束先を 𝑓(𝑥 + 0), 𝑓(𝑥 − 0) と書くことにする. さらに

𝑦↘0で𝑓(𝑥 + 𝑦) − 𝑓(𝑥 + 0)𝑓(𝑥 − 𝑦) − 𝑓(𝑥 − 0)とが収束していると仮定する. 特に 𝑓 が 𝑥 で微分可能ならばそれら
𝑦𝑦の条件が成立している.

このとき, 十分小さな 𝛿 > 0 を取ると,
こで可積分になる. ゆえに𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − (𝑓(𝑥 + 0) + 𝑓(𝑥 − 0))
は 0 < 𝑦 < 𝛿 で有界になり, 特にそ𝑦𝑓(𝑥) =

𝑓(𝑥 + 0) + 𝑓(𝑥 − 0)2ならば, Diniの条件が満たされており, 上の定理より,

lim

𝑁→∞

∑
𝑁

𝑘=−𝑁

𝑁→∞ ∫−1/2𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑘𝑥 = lim

1/2

𝑓(𝑥 + 𝑦)𝐷𝑁 (𝑦) 𝑑𝑦 = 𝑓(𝑥).

となる. □

4.5 Besselの不等式
定理: 𝑎𝑛 =∫01

𝑓(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 とおくとき, 整数 𝑎 < 𝑏 に対して,∫01|𝑓(𝑥)|2 𝑑𝑥 ≧

∑
𝑏

𝑛=𝑎

|𝑎𝑛 |2 .

証明: 複素数値函数の内積 (𝑓, 𝑔) を (𝑓, 𝑔) =∫01(𝑒2𝜋𝑖𝑚𝑥 , 𝑒2𝜋𝑖𝑛𝑥 ) =なので, 𝑠(𝑥) =⎯⎯⎯⎯⎯⎯⎯⎯⎯
𝑓(𝑥)𝑔(𝑥) 𝑑𝑥 と定め, ‖𝑓‖ = √(𝑓, 𝑓) とおくと, 整数 𝑚, 𝑛 に対して,⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯∫01𝑒2𝜋𝑖(𝑛−𝑚)𝑥 𝑑𝑥 = 𝛿𝑚,𝑛 =1{0(𝑚 = 𝑛)(𝑚 ≠ 𝑛)𝑎 𝑒2𝜋𝑖𝑛𝑥 とおくと,
∑ 𝑛
𝑏

𝑛=𝑎

(𝑓, 𝑓) =∫0

1|𝑓(𝑥)|2 𝑑𝑥(𝑠, 𝑓) =∑⎯⎯⎯⎯⎯⎯
𝑎𝑛(𝑠, 𝑠) =∑⎯⎯⎯⎯⎯⎯
𝑎𝑚 𝑎𝑛 (𝑒2𝜋𝑖𝑚𝑥 , 𝑒2𝜋𝑖𝑛𝑥 ) =

𝑏

𝑛=𝑎
𝑏

𝑚,𝑛=𝑎

∫0

1

∑

⎯⎯⎯⎯⎯⎯𝑎𝑛 𝑎𝑛 =∑⎯⎯⎯⎯⎯⎯
𝑎𝑚 𝑎𝑛 𝛿𝑚,𝑛 =𝑏𝑒−2𝜋𝑖𝑛𝑥 𝑓(𝑥) 𝑑𝑥 =

𝑛=𝑎
𝑏

𝑚,𝑛=𝑎

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

0 ≦ ‖𝑓 − 𝑠‖2 = ‖𝑓 ‖2 − (𝑠, 𝑓) − (𝑓, 𝑠) + ‖𝑠‖2 =

∑
𝑏

𝑛=𝑎

∫0

|𝑎𝑛 |2 ,
∑
𝑏

𝑛=𝑎

1

|𝑎𝑛 |2 ,|𝑓(𝑥)|2 𝑑𝑥 −

∑
𝑏

𝑛=𝑎

|𝑎𝑛 |2 .

これより, 示したい不等式が得られる. □注意: Besselの不等式は内積に関する平易な線形代数に過ぎない. □4.6 区分的に連続微分可能な連続函数の場合
𝑓(𝑥) は周期1を持つ ℝ 上の連続函数であり, 0 ≦ 𝑥1 < 𝑥1 < ⋯ < 𝑥𝑟 < 1 , 𝑥0 = 𝑥𝑟 − 1 でかつ 𝑥𝑗 と整数の和になっていな
い 𝑥 で 𝑓 は 𝐶 1 級(すなわち微分可能で導函数が連続)になっていると仮定する. さらに, ℎ ↘ 0 のとき,
𝑓(𝑥𝑗 + ℎ) − 𝑓(𝑥𝑗 )→ 𝑓 ′ (𝑥𝑗 + 0) ← 𝑓 ′ (𝑥𝑗 + ℎ),ℎ𝑓(𝑥𝑗 − ℎ) − 𝑓(𝑥𝑗 )→ 𝑓 ′ (𝑥𝑗 − 0) ← 𝑓 ′ (𝑥𝑗 − ℎ).
−ℎと収束していると仮定する. この仮定は 𝑓 の導函数の開区間 (𝑥𝑗−1 , 𝑥𝑗 ) への制限が自然に閉区間 [𝑥𝑗−1 , 𝑥𝑗 ] 上に連続に拡張されることを意味している. このとき, 𝑓(𝑥) は区分的に連続微分可能もしくは区分的に 𝐶 1 級であるということにする.

𝑎𝑛 =

∫0

1

𝑓(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 とおく.

このとき, 𝑓(𝑥) はすべての実数 𝑥 についてDiniの条件を満たしているので,

lim

𝑁→∞

∑
𝑁

𝑛=−𝑁

𝑎𝑛 𝑒2𝜋𝑖𝑛𝑥 = 𝑓(𝑥)となる. そして, この場合にはより強く次が成立している.
定理: 𝑓(𝑥) が上の条件を満たしているとき, Fourier級数∑∞

𝑎𝑛 𝑒2𝜋𝑖𝑛𝑥 は 𝑓 に一様絶対収束している.

𝑛=−∞

証明: 𝑏𝑛 =∫01

𝑓 ′ (𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 とおく. ここで, 𝑥 が 𝑥𝑗 と整数の和のとき 𝑓 ′ (𝑥) の値は定義されていないが, 区間に分けて積分することによって 𝑏𝑛 がwell-definedであることに注意せよ. このとき, 次のように部分積分を実行できることがわかる:𝑛 ≠ 0 のとき,
11𝑒−2𝜋𝑖𝑛𝑥𝑒−2𝜋𝑖𝑛𝑥𝑏−𝑓 ′ (𝑥)𝑑𝑥 = 𝑛 ,𝑎𝑛 = 𝑓(𝑥)[−2𝜋𝑖𝑛 ]0 ∫0
−2𝜋𝑖𝑛
2𝜋𝑖𝑛

Besselの不等式より,

∑
∞

𝑛=−∞

一般に非負の実数 𝛼, 𝛽 について 𝛼𝛽 ≦|𝑏𝑛 |2 ≦|𝑓 ′ (𝑥)|2 𝑑𝑥 < ∞.

𝛼2 + 𝛽 2なので, 𝑛 ≠ 0 のとき,
2|𝑎𝑛 | = |𝑛||𝑎𝑛 | ⋅したがって,

∫0

1

1
1
1
≦
|𝑛|2 |𝑎𝑛 |2 +.
|𝑛|2(|𝑛|2 )|𝑎𝑛 | =|𝑏 𝑛 |
2𝜋|𝑛|

∑
∞

𝑛=−∞

|𝑎𝑛 | = |𝑎0 | +≦ |𝑎0 | +

∑
∞

𝑛≠0

|𝑎𝑛 | ≦ |𝑎0 | +1
1|𝑛|2 |𝑎𝑛 |2 +(2∑
|𝑛|2 )𝑛≠0∞

1
1|𝑏𝑛 |2+< ∞.
∑2(
2 𝑛≠0 (2𝜋)|𝑛|2 )∞∞

これで, ∑𝑛=−∞ 𝑎𝑛 𝑒2𝜋𝑖𝑛𝑥 が一様絶対収束していることがわかった. この級数は 𝑓 に各点収束しているので, 𝑓 に一様絶対収束
していることが示されたことになる. □4.7 一点でLipschitz条件を満たす函数の場合
定義: 函数 𝑓(𝑥) が 𝑥 = 𝑥0 で指数 𝛼 > 0 のLipschitz条件を満たすとは, ある 𝐶 > と 𝛿 > 0 が存在して, |𝑥 − 𝑥0 | < 𝛿 ならば |𝑓(𝑥) − 𝑓(𝑥0 )| ≦ 𝐶|𝑥 − 𝑥0 |𝛼 が成立することであると定める. □𝑓(𝑥) が 𝑥 = 𝑥0 でLipschitz条件を満たしているならば, 𝑓(𝑥) は 𝑥 = 𝑥0 で連続になる.
函数 𝑓(𝑥) が 𝑥 = 𝑥0 で連続でかつ ℎ ↘ 0 における極限達

𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 )→ 𝑓 ′ (𝑥0 + 0),ℎ𝑓(𝑥0 − ℎ) − 𝑓(𝑥0 )→ 𝑓 ′ (𝑥0 − 0)−ℎを持つならば, 𝑥 = 𝑥0 において指数 𝛼 = 1 のLipschitz条件を満たす. 特に, 𝑓(𝑥) が 𝑥 = 𝑥0 で微分可能ならば指数 𝛼 = 1 のLipschitz条件を満たす.
1

𝑓(𝑥) は周期1を持つ ℝ 上の函数で ∫0 |𝑓(𝑥)| 𝑑𝑥 < ∞ を満たしており, 𝑥 = 𝑥0 で指数 𝛼 > 0 のLipschitz条件を満たしていると仮定し, 𝑎𝑛 =∫01

𝑓(𝑥) 𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 とおく.
𝛼

このとき, ある 𝐶 > 0 と 𝛿 > 0 が存在して, |𝑥 − 𝑥0 | < 𝛿 ならば |𝑓(𝑥) − 𝑓(𝑥0 )| ≦ 𝐶|𝑥 − 𝑥0 | となるので, 0 < 𝑦 < 𝛿 ならば|𝑓(𝑥0 + 𝑦) + 𝑓(𝑥0 − 𝑦) − 2𝑓(𝑥0 )|≦ 2𝐶 𝑦𝛼−1𝑦となる. ゆえに∫0

𝛿
|𝑓(𝑥0 + 𝑦) + 𝑓(𝑥0 − 𝑦) − 2𝑓(𝑥0 )|2𝐶𝛿𝛼𝑑𝑦 ≦ 2𝐶<∞𝑦𝛼−1 𝑑𝑦 =
∫0
𝛼
𝑦

𝛿

となって, 𝑥 = 𝑥0 におけるDiniの条件を満たしている. ゆえに

lim

∑
𝑁

𝑁→∞

𝑛=−𝑁

𝑎𝑛 𝑒2𝜋𝑖𝑛𝑥 0 = 𝑓(𝑥0 )が成立する.

4.8 局所的に一様Lipschitz条件を満たす函数の場合
1

補題: 𝑓 は ℝ 上の周期 1 を持つ函数で ∫0 |𝑓(𝑥)| 𝑑𝑥 < ∞ を満たすものであり, 𝑔 は区間 [𝑎, 𝑏] 上の 𝐶 1 級函数であるとする. このとき, |𝑝| → ∞ のとき, 次の積分 𝐽 は 𝑥 について一様に 0 に収束する:

𝐽=

∫𝑎

𝑏

𝑓(𝑥 + 𝑦)𝑔(𝑦)𝑒𝑖𝑝𝑦 𝑑𝑦.

証明: 任意に 𝜀 > 0 を取る.

𝑀 = sup |𝑔(𝑦)| とおく. 𝑓(𝑥) を周期 1 を持つ 𝐶 1 級函数 𝑓 ̃ で近似することによって,
𝑎≦𝑦≦𝑏

∫0

1

̃
|𝑓(𝑥) − 𝑓 (𝑥)|
𝑑𝑥 <

𝜀
とな
2𝑀

るようにできる. このとき,
1
| 𝑏
|
||
̃ + 𝑦))𝑔(𝑦)𝑒𝑖𝑝𝑥 || ≦ 𝑀̃ 𝑑𝑡 < 𝜀 .
(𝑓(𝑥 + 𝑦) − 𝑓 (𝑥|𝑓(𝑡) − 𝑓 (𝑡)|
|∫𝑎
|
∫
2
0
|
|

∂
̃ は 𝐶 1 級の周期函数なので有界函数になる. 𝐾 = sup |𝑓 (𝑥)|̃
̃ + 𝑦)𝑔(𝑦)) は連続函数でかつ 𝑥 について
𝑓 (𝑥)
(𝑓 (𝑥
とおく.
∂𝑦
𝑥∈ℝ
周期的なので (𝑥, 𝑦) ∈ ℝ × [𝑎, 𝑏] において, その絶対値は最大値 𝐿 を持つ.
̃ + 𝑦)𝑔(𝑦) は 𝑦 に関して 𝐶 1 級なので, 部分積分を行うと,
𝑓 (𝑥

∫𝑎
なので, |𝑝| >𝑏𝑖𝑝𝑥
̃ + 𝑦)𝑔(𝑦)𝑒𝑖𝑝𝑥 𝑑𝑥 = 𝑓 (𝑥
̃ + 𝑦)𝑔(𝑦) 𝑒𝑓 (𝑥−[𝑖𝑝 ]𝑦=𝑎 ∫𝑎
𝑦=𝑏

𝑏

𝑖𝑝𝑥
∂
̃ + 𝑦)𝑔(𝑦)) 𝑒 𝑑𝑥
(𝑓 (𝑥
∂𝑦
𝑖𝑝

𝜀/2
とすると,
2𝐾𝑀 + 𝐿(𝑏 − 𝑎)| 𝑏|||
̃ + 𝑦)𝑔(𝑦)𝑒𝑖𝑝𝑥 𝑑𝑥|| ≦ 2𝐾𝑀 + 𝐿(𝑏 − 𝑎) = 2𝐾𝑀 + 𝐿(𝑏 − 𝑎) < 𝜀 .
𝑓 (𝑥
|∫𝑎
|
|𝑝|
𝑝
𝑝
2
|
|

そのとき,

| 𝑏
| | 𝑏
|
̃ + 𝑦))𝑔(𝑦)𝑒𝑖𝑝𝑥 || + ||
̃ + 𝑦)𝑔(𝑦)𝑒𝑖𝑝𝑥 𝑑𝑥|| < 𝜀 + 𝜀 = 𝜀.
|𝐽| ≦ ||
(𝑓(𝑥 + 𝑦) − 𝑓 (𝑥
𝑓 (𝑥
|∫𝑎
| |∫𝑎
| 2
2
|
| |
|
定義: 函数 𝑓(𝑥) が区間 𝐼 において指数 𝛼 > 0 の一様Lipschitz条件を満たすとは, ある 𝐶 > と 𝛿 > 0 が存在して, 𝑥, 𝑥′ ∈ 𝐼
かつ |𝑥 − 𝑥′ | < 𝛿 ならば |𝑓(𝑥) − 𝑓(𝑥′ )| ≦ 𝐶|𝑥 − 𝑥′ |𝛼 が成立することであると定める. □𝐶 1 函数は閉区間上で指数 𝛼 = 1 の一様Lipschitz条件を満たす.
函数 𝑓(𝑥) が区間 (𝑎, 𝑥0 ) と (𝑥0 , 𝑏) 上で 𝐶 1 級でかつ 𝑥 = 𝑥0 で連続であり, ℎ ↘ 0 における極限達

𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 )→ 𝑓 ′ (𝑥0 + 0) ← 𝑓 ′ (𝑥0 + ℎ),ℎ𝑓(𝑥0 − ℎ) − 𝑓(𝑥0 )→ 𝑓 ′ (𝑥0 − 0) ← 𝑓 ′ (𝑥0 − ℎ)−ℎが存在するならば, 𝑓(𝑥) は区間 (𝑎, 𝑏) に含まれる任意の閉区間上で一様Lipschitz条件を満たす.
1

定理: 𝑓(𝑥) は周期1を持つ ℝ 上の函数で ∫0 |𝑓(𝑥)| 𝑑𝑥 < ∞ を満たしてるとし, 𝑎𝑛 =∫01

𝑓(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 とおく. さらに

𝑓(𝑥) は開区間 𝐼 上で一様Liptschitz条件を満たしていると仮定する. このとき, 𝑁 → ∞ とすると上で 𝑓(𝑥) に一様収束する.

∑
𝑁

𝑎𝑛 𝑒2𝜋𝑖𝑛𝑥 は開区間 𝐼

𝑛=−𝑁

証明: 𝑓 の 𝐼 上における一様Lipschitz性より, ある 𝛼 > 0 と 𝐶 > 0 と 𝜂 > 0 が存在して, 𝑥, 𝑥′ ∈ 𝐼 かつ |𝑥 − 𝑥′ | < 𝜂 なら𝛼ば |𝑓(𝑥) − 𝑓(𝑥′ )| ≦ 𝐶|𝑥 − 𝑥′ | となる.
一般に 0 < 𝛿 <

1
のとき,
2
∑
𝑁

𝑘=−𝑁

𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑛𝑥 − 𝑓(𝑥) = 𝐼 + 𝐽,∫0

𝛿𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥)𝑦sin(𝜋(2𝑁 + 1)𝑦) 𝑑𝑦,sin(𝜋𝑦)𝑦
1/2
1𝐽=(𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥))sin(𝜋(2𝑁 + 1)𝑦) 𝑑𝑦.
∫𝛿sin(𝜋𝑦)𝐼=が成立しているのであった.

0<𝑦<1のとき, 𝑁 によらずに
2
1
𝑦
1
<
< ,
𝜋
sin(𝜋𝑦)2| sin(𝜋(2𝑁 + 1)𝑦)| ≦ 1

が成立しているので, 𝑥 ∈ 𝐼 のとき, 𝑥 から 𝐼 の両端までの距離の小さい方を 𝑑 とし, 0 < 𝛿 < minの 𝐼 上における一様Lipschitz性より,|𝑓(𝑥 + 𝑦) + 𝑓(𝑥 − 𝑦) − 2𝑓(𝑥)|≦ 2𝐶 𝑦𝛼−1𝑦となるので,|𝐼| ≦ 𝐶∫0𝛿𝑦𝛼−1 𝑑𝑦 =𝐶𝛿𝛼.
𝛼(0 < 𝑦 < 𝛿)1
, 𝑑, 𝜂 とすると, 𝑓{2}

𝜀となるようにできる. 上の補題によって, 𝐽 は 𝑁 → ∞2𝜀で 0 に一様収束することがわかる. ゆえに(𝑥 と無関係の)ある 𝑁0 が存在して 𝑁 ≧ 𝑁0 ならば |𝐽| <となるようにできる.
2ゆえに, 必要なら 𝛿 > 0 をさらに小さくすることによって, |𝐼| <

そのとき,

| 𝑁
|
|
|
| ∑ 𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑛𝑥 − 𝑓(𝑥)| = |𝐼| + |𝐽| < 𝜀.
|𝑘=−𝑁
|
|
|

4.9 Gibbs現象
周期 1 を持つ函数 𝑏(𝑥) を次のように定める:

𝑏(𝑥) =1− (𝑥 − ⌊𝑥⌋).
2

ここで ⌊𝑥⌋ は 𝑥 以下の最大の整数を表わす. 𝑏(𝑥) のグラフの形はのこぎり波(sawtooth wave)と呼ばれることがある.

1を用いると, 𝑏(𝑥) = −𝐵1 (𝑥 − ⌊𝑥⌋) と書ける. 𝐵1 (𝑥 − ⌊𝑥⌋) はEulerMaclaurinの和公式
2の 𝑛 = 1 の場合に出て来る. この意味でのこぎり波はEuler-Maclaurinの和公式とも関係がある. □注意: Bernoulli多項式 𝐵1 (𝑥) = 𝑥 −

𝑎𝑛 =

∫0

1

𝑏(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 とおくと, 𝑎0 = 0 であり, 𝑛 ≠ 0 のとき, 部分積分によって,
𝑎𝑛 = −∫01−2𝜋𝑖𝑛𝑥𝑥𝑒1𝑒−2𝜋𝑖𝑛𝑥
𝑑𝑥 = − 𝑥+[ −2𝜋𝑖𝑛 ]0 ∫011𝑒−2𝜋𝑖𝑛𝑥
𝑑𝑥 =
.
−2𝜋𝑖𝑛
2𝜋𝑖𝑛

部分積分後の積分項は 𝑛 ≠ 0 なので消える. 𝑏(𝑥) のFourier級数の部分和は𝑆𝑁 (𝑥) =と書ける. ここで sinc 𝑥 =

∑
𝑁

𝑛=−𝑁

𝑎𝑛 𝑒2𝜋𝑖𝑛𝑥 =sin(2𝜋𝑛𝑥)
𝑒2𝜋𝑖𝑛𝑥== 2𝑥
sinc(2𝜋𝑛𝑥)∑ 2𝜋𝑖𝑛
∑
∑
𝜋𝑛
𝑛=−𝑁
𝑛=1
𝑛=1
𝑁

𝑁

𝑁

sin 𝑥
という記号法を用いた.
𝑥

𝑥 が 𝑏(𝑥) の不連続点である整数に近いところのどこかで 𝑏(𝑥) の値との違いがある値以上になってしまう(overshootしてしまう)という現象をGibbs現象と呼ぶ.

1
1における値は 𝑁 → ∞ のとき 𝑏(𝑥 + 0) =の 1.178979744 ⋯ 倍に収束する. (同様に 𝑆𝑁 (𝑥)
2𝑁
2
1
1
の𝑥 =
における値は 𝑁 → ∞ のとき 𝑏(𝑥 − 0) = − の 1.178979744 ⋯ 倍に収束する.) このことは以下のようにし2𝑁2て示される. 𝑁 → ∞ のとき,
実際, 𝑆𝑁 (𝑥) の 𝑥 =

𝑆𝑁

𝜋𝑛
𝜋𝑛 𝜋
1
1
1
=
sinc( ) =sinc( )∑
( 2𝑁 ) 𝑁 ∑
𝑁
𝜋 𝑛=1
𝑁 𝑁
𝑛=1
𝑁

→

𝑁

𝜋
𝜋
sin 𝑥
1
1
sinc(𝑥) 𝑑𝑥 =
𝑑𝑥
𝜋 ∫0
𝜋 ∫0
𝑥

= 0.5894898722 ⋯ = 1.178979744 ⋯ ×

1
.
2

1
を選んだのは以下のような理由からである. 上と同様にして, 任意の 𝑎 > 0 に対して
2𝑁
とおいた場合を考えると, 𝑁 → ∞ のとき,

注意: 0 に近い正の実数として 𝑥 =

𝑥=

𝑎
2𝜋𝑁

𝑆𝑁 (

𝑎𝜋𝑛
𝑎𝜋𝑛 𝑎𝜋
𝑎
𝑎
1
=
sinc(
=
sinc(
)
)
∑
∑
2𝑁
𝑁 𝑛=1
𝑁
𝜋 𝑛=1
𝑁 ) 𝑁
𝑁

→

𝑁

𝑎𝜋
𝑎𝜋
sin 𝑥
1
1
sinc(𝑥) 𝑑𝑥 =
𝑑𝑥
∫
∫
𝜋 0
𝜋 0
𝑥

となる. この積分は 𝑎 = 1 のときに最大になる. □注意(一般の場合): 𝑓 は ℝ 上の周期1を持つ函数でで 𝑓 は 𝐶 1 級であり, ℎ ↘ 0 における極限達∫01|𝑓(𝑥)| 𝑑𝑥 < ∞ を満たすものであるとする. 区間 [𝑎, 𝑥0 ) と (𝑥0 , 𝑏] 上

𝑓(𝑥0 + ℎ) → 𝑓(𝑥0 + 0),𝑓(𝑥0 − ℎ) → 𝑓(𝑥0 − 0),𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 0)
→ 𝑓 ′ (𝑥0 + 0) ← 𝑓 ′ (𝑥0 + ℎ)ℎ𝑓(𝑥0 − ℎ) − 𝑓(𝑥0 − 0)
→ 𝑓 ′ (𝑥0 − 0) ← 𝑓 ′ (𝑥0 − ℎ)−ℎが存在すると仮定する. さらに 𝑓(𝑥0 + 0) > 𝑓(𝑥0 − 0) であり, 𝑓(𝑥0 ) =𝑓(𝑥0 + 0) + 𝑓(𝑥0 − 0)であると仮定する.
2

このとき, 𝑓 のFourier級数の部分和も 𝑥 = 𝑥0 の近くでGibbs現象を引き起こす.
なぜならば, 函数 𝑔(𝑥) を𝑔(𝑥) = 𝑓(𝑥) − (𝑓(𝑥0 + 0) − 𝑓(𝑥0 − 0))𝑠(𝑥 − 𝑥0 )とおくと,

𝑓(𝑥0 + 0) − 𝑓(𝑥0 − 0)𝑓(𝑥0 + 0) + 𝑓(𝑥0 − 0)=
= 𝑓(𝑥0 ),2
2
𝑓(𝑥0 + 0) − 𝑓(𝑥0 − 0)𝑓(𝑥0 + 0) + 𝑓(𝑥0 − 0)𝑔(𝑥0 − 0) = 𝑓(𝑥0 − 0) +== 𝑓(𝑥0 )2
2
𝑔(𝑥0 + 0) = 𝑓(𝑥0 + 0) −となり, 𝑔 は 𝑥0 を含むある開区間 𝐼 で指数 1 の一様Lipschitz条件を満たすことがわかる. ゆえに, 𝑔 のFourier級数の部分和は𝐼 上で 𝑔 に一様収束する. そして,

𝑓(𝑥) = (𝑓(𝑥0 + 0) − 𝑓(𝑥0 − 0))𝑠(𝑥 − 𝑥0 ) + 𝑔(𝑥)であり, (𝑓(𝑥0 + 0) − 𝑓(𝑥0 − 0))𝑠(𝑥 − 𝑥0 ) のFourier級数の部分和が 𝑥 = 𝑥0 の近くでGibbs現象を引き起こすことが上の方
In [22]:



1
2
3
4
5
6
7
8

# (1/π)∫_0^{aπ} sinc(x) dx のグラフ​
f(a) = quadgk(x->sin(x)/x, eps(), a*π)[1]/πa = 0.2:0.01:6
plot(size=(400,250), legend=false, xlims=(0,maximum(a)))
plot!(title="(1/pi) int_0^{a pi} sin(x)/x dx", titlefontsize=11)
plot!(xlabel="a")plot!(a, f.(a))

1
2
3
4
5
6

# のこぎり波のグラフ​
sawtooth(x) = 1/2 - (x - floor(x))
x = -2:0.01:1.99
plot(x, sawtooth.(x), legend=false, size=(400, 150))
hline!([0], ls=:dot, color=:black)Out[22]:

In [23]:

Out[23]:

In [24]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# のこぎり波のGibbs現象## Fourier級数の部分和が不連続点で上下にオーバーシュートしている.
​
sawtooth(x) = 1/2 - (x - floor(x))
S(N,x) = sum(n->sin(2π*n*x)/(π*n), 1:N)
PP = []
for N in [10, 20, 50, 100]
x = -1:0.0005:0.99
P = plot(legend=false, ylims=(-0.61, 0.61))
plot!(x, sawtooth.(x))
plot!(x, S.(N, x))
plot!(title="N=$N", titlefontsize=10)
push!(PP, P)
x = -0.01:0.0005:0.2
P = plot(legend=false, ylims=(0.28, 0.61))
plot!(x, sawtooth.(x))
plot!(x, S.(N, x))
plot!(title="N=$N", titlefontsize=10)
push!(PP, P)
end​plot(PP[1:2]..., size=(500, 200), layout=@layout([a b{0.3w}]))Out[24]:

In [25]:

1 plot(PP[3:4]..., size=(500, 200), layout=@layout([a b{0.3w}]))Out[25]:

In [26]:

Out[26]:

1 plot(PP[5:6]..., size=(500, 200), layout=@layout([a b{0.3w}]))

In [27]:



1 plot(PP[7:8]..., size=(500, 200), layout=@layout([a b{0.3w}]))Out[27]:

例(矩形波): 矩形波 𝑓(𝑥) を

0
1
𝑓(𝑥) = 0 −1(𝑥 − ⌊𝑥⌋ = 0)(0 < 𝑥 − ⌊𝑥⌋ < 1/2)
(𝑥 − ⌊𝑥⌋ = 1/2)
(1/2 < 𝑥 − ⌊𝑥⌋ < 1)と定めると,

4∑∞sin(2𝜋(2𝑘 − 1)𝑥)
= 𝑓(𝑥).
𝜋(2𝑘 − 1)
𝑘=1

以下のセルにおけるプロットを見よ. □In [28]:

Out[28]:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 矩形波のGibbs現象## Fourier級数の部分和が不連続点で上下にオーバーシュートしている.
​
squarewave(x) = (x - floor(x) ≤ 1/2) ? one(x) : -one(x)S(K,x) = 4*sum(k->sin(2π*(2k-1)*x)/(π*(2k-1)), 1:K)
PP = []
for K in [5, 10, 25, 50]
x = -1:0.0005:0.99
P = plot(legend=false, ylims=(-1.22, 1.22))
plot!(x, squarewave.(x))
plot!(x, S.(K, x))
plot!(title="K=$K", titlefontsize=10)
push!(PP, P)
x = -0.01:0.0005:0.2
P = plot(legend=false, ylims=(0.7, 1.22))
plot!(x, squarewave.(x))
plot!(x, S.(K, x))
plot!(title="K=$K", titlefontsize=10)
push!(PP, P)
end​plot(PP[1:2]..., size=(500, 200), layout=@layout([a b{0.3w}]))

In [29]:



1 plot(PP[3:4]..., size=(500, 200), layout=@layout([a b{0.3w}]))Out[29]:In [30]:

1 plot(PP[5:6]..., size=(500, 200), layout=@layout([a b{0.3w}]))Out[30]:In [31]:

1 plot(PP[7:8]..., size=(500, 200), layout=@layout([a b{0.3w}]))Out[31]:

例: 周期1を持つ函数 𝑓(𝑥) を次のように定める:

 1/4

 1/2
0
𝑓(𝑥) =  −1/2
 −1/40(𝑥 − ⌊𝑥⌋ = 0)(0 < 𝑥 − ⌊𝑥⌋ < 1/4)
(𝑥 − ⌊𝑥⌋ = 1/4)
(1/4 < 𝑥 − ⌊𝑥⌋ < 1/2)
(𝑥 − ⌊𝑥⌋ = 1/2)
(1/2 < 𝑥 − ⌊𝑥⌋ < 1).

このとき,

∑
∞

𝑘=1

(−1)𝑘−1cos(2𝜋(2𝑘 − 1)𝑥)sin(2𝜋(4𝑙 − 2)𝑥)+
= 𝑓(𝑥).
∑𝜋(2𝑘 − 1)𝜋(2𝑙 − 1)
𝑙=1∞

部分和 𝑆𝑀,𝑁 (𝑥) を

𝑆𝑀,𝑁 (𝑥) = ∑(−1)𝑘−1
𝑀

𝑘=1

cos(2𝜋(2𝑘 − 1)𝑥)sin(2𝜋(4𝑙 − 2)𝑥)+∑𝜋(2𝑘 − 1)𝜋(2𝑙 − 1)𝑙=1𝑁と定める. このとき, 𝑆𝑁,𝑁 (𝑥) として, cos と sin の和の個数を同じにすると, 𝑥 − ⌊𝑥⌋ = 3/4 にノイズが出てしまう. 正しい部
分和は 𝑆2𝑁,𝑁 (𝑥) の方である. 以下のセルのプロットを見よ. □In [32]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

function f(x)xx = x - floor(x)xx == 0 && return 1/4
0 < xx < 1/4 && return 1/2
xx == 1/2 && return 0.0
1/4 < xx < 1/2 && return -1/2
xx == 1/2 && return -1/4
1/2 < xx && return 0.0
end
S(M,N,x) = sum(m->(-1)^(m-1)*cos(2π*(2m-1)x)/(π*(2m-1)), 1:M) + sum(n->sin(2π*(4n-2)*x)​
PP = []
for N in [15, 45]
M = N
x = -1.0:0.0005:0.9995
P = plot(legend=false)#, ylims=(-0.61, 0.61))
plot!(x, f.(x))
plot!(x, S.(M, N, x))
plot!(title="(M,N)=($M,$N)", titlefontsize=10)
push!(PP, P)​
x = 0.6:0.0005:0.9
P = plot(legend=false, ylims=(-0.2, 0.2))
plot!(x, f.(x))
plot!(x, S.(M, N, x))
plot!(title="(M,N)=($M,$N)", titlefontsize=10)
push!(PP, P)​
x = -0.01:0.0005:0.26
P = plot(legend=false, ylims=(0.35, 0.61))
plot!(x, f.(x))
plot!(x, S.(M, N, x))
plot!(title="(M,N)=($M,$N)", titlefontsize=10)
push!(PP, P)
end​plot(PP[1:3]..., size=(640, 200), layout=@layout([a b{0.2w} c{0.3w}]))Out[32]:

In [33]:Out[33]:

1 plot(PP[4:6]..., size=(640, 200), layout=@layout([a b{0.2w} c{0.3w}]))

In [34]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

PP = []
for N in [10, 30]
M = 2Nx = -1.0:0.0005:0.9995
P = plot(legend=false)#, ylims=(-0.61, 0.61))
plot!(x, f.(x))
plot!(x, S.(M, N, x))
plot!(title="(M,N)=($M,$N)", titlefontsize=10)
push!(PP, P)​
x = 0.6:0.0005:0.9
P = plot(legend=false, ylims=(-0.2, 0.2))
plot!(x, f.(x))
plot!(x, S.(M, N, x))
plot!(title="(M,N)=($M,$N)", titlefontsize=10)
push!(PP, P)​
x = -0.01:0.0005:0.26
P = plot(legend=false, ylims=(0.35, 0.61))
plot!(x, f.(x))
plot!(x, S.(M, N, x))
plot!(title="(M,N)=($M,$N)", titlefontsize=10)
push!(PP, P)
end​plot(PP[1:3]..., size=(640, 200), layout=@layout([a b{0.2w} c{0.3w}]))Out[34]:

In [35]:

1 plot(PP[4:6]..., size=(640, 200), layout=@layout([a b{0.2w} c{0.3w}]))Out[35]:4.10 Fourier級数の総和核
4.10.1 Fourier級数の総和核の定義
1ℝ 上の周期 1 を持つ周期的函数(正確には周期的可測函数) 𝑓(𝑥) でその絶対値の周期分の定積分 ∫0 |𝑓(𝑥)| 𝑑𝑥 が有限の値になるものを1次元トーラス(もしくは円周) 𝕋 上の可積分函数もしくは 𝐿1 函数と呼び, それら全体の集合を 𝐿1 (𝕋 ) と書くことにする. 同様に, 絶対値の 𝑝 上の周期分の積分が有限の値になるものを 𝐿𝑝 函数と呼び, それら全体の集合を 𝐿𝑝 (𝕋 ) と書く.
𝑓 ∈ 𝐿𝑝 (𝕋 ) の 𝐿𝑝 ノルムが‖𝑓 ‖𝑝 =(∫ 0

1

|𝑓(𝑥)|𝑝 𝑑𝑥)1/𝑝と定義される.
定義: 𝜌𝑡 ∈ 𝐿1 (𝕋 ) (𝑡 > 0) で以下の条件を満たすものをFourier級数に関する総和核(summability kernel)と呼ぶ:

∫−1/2

1/2

(s1)

𝜌𝑡 (𝑥) 𝑑𝑥 = 1.

(s2) ある 𝐶 > 0 が存在して, すべての 𝑡 > 0 について𝑡↘0 ∫𝛿<|𝑥|<1/2(s3) 0 < 𝛿 < 1/2 ならば, lim

∫−1/2

1/2

|𝜌𝑡 (𝑥)| 𝑑𝑥 ≦ 𝐶 .

|𝜌𝑡 (𝑥)| 𝑑𝑥 = 0 . □この定義は, 猪狩惺著『実解析入門』岩波書店(1996年)の§8.5(b)に書いてあるものに等しい.
大雑把に言えば, Fourier級数の総和核は周期 1 を持つデルタ函数∑

𝑚∈ℤ

𝛿(𝑥 − 𝑚) に「収束」するような函数族のことである.

総和核の作り方: 𝜌𝑡 ∈ 𝐿1 (𝕋 ) (𝑡 > 0) が(s1)と以下の条件を満たしていればFourier級数の総和核である.
(s2') ある 𝐶1 > 0 が存在して, すべての 𝑡 > 0 について sup |𝜌𝑡 (𝑥)| ≦|𝑥|<1/2

𝐶1.
𝑡(s3') ある 𝐶2 > 0 と 𝜂 > 0 が存在して, すべての 𝑡 > 0 と |𝑥| < 1/2 について |𝜌𝑡 (𝑥)| ≦ 𝐶2𝑡𝜂
|𝑥|𝜂+1.

証明: (s2)と(s3)を示せばよい. (s2)の積分を |𝑥| < 𝑡 と |𝑥| > 𝑡 に分割して, (s2'), (s3')を使うと,∫−1/2|𝜌𝑡 (𝑥)| 𝑑𝑥 ≦ 𝐼 + 𝐽,

min{𝑡,1/2}
𝐶1𝐶
𝑑𝑥 ≦ 1 2𝑡 = 2𝐶1 ,
𝑡 ∫0
𝑡
1/2
∞
∞
𝜂
𝑑𝑦
2𝐶2
𝑡
𝑡𝜂
𝐽 = 2𝐶2
𝑑𝑥
≦
2
𝐶
𝑑𝑥
=
2
𝐶
=
.
2
2
∫𝑡
∫𝑡
∫1 𝑦 𝜂+1
𝜂
𝑥𝜂+1
𝑥𝜂+1

𝐼=2

これで(s2)が示された. 0 < 𝛿 < 1/2 であるとする. このとき, (s3') を使うと, 上と同様にして,∫𝛿<|𝑥|<1/2|𝜌𝑡 (𝑥)| 𝑑𝑥 ≦ 2𝐶2

∫𝛿

∞

∞
𝑑𝑦
2𝐶2 𝛿
𝑡𝜂
𝑑𝑥
=
2
𝐶
=
2
𝜂+1
𝜂+1
∫𝛿/𝑡 𝑦
𝜂 (𝑡)
𝑥

−𝜂

→0

(𝑡 ↘ 0).

これで(s3)も示された. □𝑓, 𝑔 ∈ 𝐿1 (𝕋 ) の畳み込み積を次のように定義しておく:𝑓 ∗ 𝑔(𝑥) =∫01

𝑓(𝑦)𝑔(𝑥 − 𝑦) 𝑑𝑦 =∫01𝑓(𝑥 − 𝑦)𝑔(𝑦) 𝑑𝑦.

このとき, Fourier変換の場合と同様にして以下を示すことができる.
定理: 𝜌𝑡 (𝑥) はFourier級数の総和核であり, 𝑓 は周期1を持つ ℝ 上の連続函数であるとする. このとき, 𝑡 ↘ 0 のとき 𝜌𝑡 ∗ 𝑓 は𝑓 に一様収束する. □定理: 𝜌𝑡 (𝑥) はFourier級数の総和核であり, 𝑝 ≧ 1 であるとし, 𝑓 ∈ 𝐿𝑝 (𝕋 ) であるとする. このとき, 𝑡 ↘ 0 のとき‖𝜌𝑡 ∗ 𝑓 − 𝑓 ‖𝑝 → 0 となる. □4.10.2 Fourier級数のDirichlet核は総和核ではない
上の方で示したようにFourier級数のDirichlet核 𝐷𝑁 (𝑥) =

∫0

1

∑
𝑁

𝑛=−𝑁

𝑒2𝜋𝑖𝑛𝑥 =|𝐷𝑁 (𝑥)| 𝑑𝑥 ∼ log(2𝑁 + 1)

sin(𝜋(2𝑁 + 1)𝑥)はsin(𝜋𝑥)(𝑁 → ∞)

を満たしているので, 𝐷1/𝑡 (𝑥) は条件(s2)を満たしていない.

4.10.3 Fourier級数のFejér核
Dirichlet核の加法平均

𝐹𝑁 (𝑥) =|𝑛|
11−
𝐷𝑛 (𝑥) =𝑒2𝜋𝑖𝑛𝑥
∑ (
)
𝑁+1 ∑
𝑁
+
1
𝑛=0
𝑛=−𝑁

をFourier級数のFejér核と呼ぶ.
このとき, 𝑎𝑛 =∫01𝑓(𝑦)𝑒−2𝜋𝑖𝑛𝑦 𝑑𝑦 とおくと,

𝑁

𝑁

1
1
𝐷𝑛 ∗ 𝑓(𝑥) =𝑎 𝑒2𝜋𝑖𝑚𝑥 .
∑∑ 𝑚
𝑁 + 1 𝑛=0
𝑁+1 ∑𝑛=0 𝑚=−𝑛𝑁

𝐹𝑁 ∗ 𝑓(𝑥) =𝑁𝑛ゆえに, 𝐹𝑁 ∗ 𝑓(𝑥) が 𝑁 → ∞ で収束することと, 𝐷𝑛 ∗ 𝑓(𝑥) が 𝑛 → ∞ でCesàro総和可能(すなわちFourier級数がCesàro総
和可能)であることは同値であり, その収束先はCesàro和になる. 𝐷𝑛 ∗ 𝑓(𝑥) が 𝑛 → ∞ で収束するならばCesàro総和可能になるが, 逆は成立しない. Cesàro和は通常の無限和よりも収束し易い.
Fourier級数のFejér核は𝐹𝑁 (𝑥) =sin(𝜋(𝑁 + 1)𝑥)
1
)
𝑁 +1(
sin(𝜋𝑥)2と書ける. この表示は一般に

𝑧(𝑁+1)/2 − 𝑧−(𝑁+1)/2
2= (𝑧−𝑁/2 + 𝑧−𝑁/2+1 + ⋯ + 𝑧𝑁/2−1 + 𝑧𝑁/2 ) =(𝑁 + 1 − |𝑛|)𝑧𝑛
1/2
−1/2
∑
(
)
𝑧 −𝑧
𝑛=−𝑁
2

𝑁

であることを, 𝑧 = 𝑒2𝜋𝑖𝑥 に適用すれば得られる. 例えば,

𝑧4/2 − 𝑧−4/22= (𝑧−3/2 + 𝑧−1/2 + 𝑧1/2 + 𝑧3/2 ) = 𝑧−3 + 2𝑧−2 + 3𝑧−1 + 4 + 3𝑧 + 2𝑧2 + 𝑧3 .
( 𝑧1/2 − 𝑧−1/2 )2

上の表示より, Fourier級数のFejér核は 𝑁 + 1 = 𝑡−1/2 とおくことによってFourier級数の総和核とみなせることがわかる.
In [36]:



1
2
3
4
5
6
7
8
9
10

# Fourier級数のFejer核のプロット​
Fejer(N,x) = 1/(N+1)*(sin(π*(N+1)*x)/sin(π*x))^2
PP = []
for N in [10; 20; 30]
x = -0.5:0.001:0.5
P = plot(x, Fejer.(N,x), title="N=$N", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[36]:4.10.4 Fourier級数のPoisson核0 ≦ 𝑟 < 1 に対する𝑃𝑟 (𝑥) =∑𝑛∈ℤ

𝑟|𝑛| 𝑒2𝜋𝑖𝑛𝑥 =1 − 𝑟2
1 − 2𝑟 cos(2𝜋𝑥) + 𝑟2

はFourier級数のPoisson核と呼ばれる. このとき, 𝑃𝑟 (𝑥) > 0 でかつ∫0
𝑃𝑟 (𝑥) の最大値は 𝑥 = 0 のときの1

𝑃𝑟 (𝑥) 𝑑𝑥 =

∑

𝑛∈ℤ

𝑟|𝑛|

∫0

1

𝑒2𝜋𝑖𝑛 𝑑𝑥 = 1.

1+𝑟
1+𝑟
2
≦
であり,
.
1−𝑟
1−𝑟
1−𝑟

さらに, −1/2 ≦ 𝑥 ≦ 1/2 のとき, cos(2𝜋𝑥) ≦ 1 − 8𝑥2 となることより,

𝑃𝑟 (𝑥) ≦2(1 − 𝑟)2(1 − 𝑟)
1 1−𝑟
=
≦
.
2
2
2
2
8 𝑥2
1 − 2𝑟(1 − 8𝑥 ) + 𝑟(1 − 𝑟) + 16𝑥

ゆえにFourier級数のPoisson核は 𝑡 = 1 − 𝑟 とおくことによってFourier級数の総和核とみなされる.

In [37]:



1
2
3
4
5

x = -1/2:0.005:1/2
f(x) = 1 - 8*x^2
P = plot(size=(400,230), legend=:bottom)
plot!(x, cos.(2π.*x), label="cos(2pi x)")plot!(x, f.(x), label="1 - 8x^2")

1
2
3
4
5
6
7
8

Poisson(r,x) = (1-r^2)/(1-2r*cos(2π*x)+r^2)
g(r,x) = 1/8*(1-r)/x^2
x = -1/2:0.005:1/2
r = 0.8plot(size=(400,230), ylim=(0, 1.01*(1+r)/(1-r)))
plot!(title="r = $r", titlefontsize=10)
plot!(x, Poisson.(r, x), label="P_r(x)")
plot!(x, g.(r,x), label="(1/8)(1-r)/x^2")Out[37]:

In [38]:

Out[38]:

注意: Fourier級数のPoisson核は本質的に絶対値が 1 未満の複素数 𝑧 = 𝑟𝑒2𝜋𝑖𝑥 に関する次の等比級数の実部に等しい(正確に言えば実部の2倍から1を引いたものに等しい):

1 + 𝑧 + 𝑧2 + 𝑧3 + ⋯ =

1
.
1−𝑧

実際,

1 − 𝑟𝑒−2𝜋𝑖𝑥
1 − 𝑟 cos(2𝜋𝑥) + 𝑟 sin(2𝜋𝑥)
1
1
=
=
=
2𝜋𝑖𝑥
2𝜋𝑖𝑥
−2𝜋𝑖𝑥
1−𝑧
1 − 𝑟𝑒(1 − 𝑟𝑒 )(1 − 𝑟𝑒)1 − 2𝑟 cos(2𝜋𝑥) + 𝑟2
でかつ2

1 − 𝑟 cos(2𝜋𝑥)1 − 𝑟2−
1== 𝑃𝑟 (𝑥).
1 − 2𝑟 cos(2𝜋𝑥) + 𝑟2
1 − 2𝑟 cos(2𝜋𝑥) + 𝑟2

このようにFourier級数のPoisson核の理論は本質的に複素数の等比級数の理論である. □注意: −1/2 ≦ 𝑥 ≦ 1/2 のとき, cos(2𝜋𝑥) ≦ 1 − 8𝑥2 となることは以下のようにして証明される.

𝑓(𝑥) = cos(2𝜋𝑥), 𝑓1 (𝑥) = −4𝑥 + 1, 𝑔(𝑥) = 1 − 8𝑥2 , 𝑔1 (𝑥) = −6𝑥 + 2 とおく. |𝑥| ≦ 1/2 において 𝑓(𝑥) ≦ 𝑔(𝑥) となることを示したい. 𝑓(𝑥) も 𝑔(𝑥) も偶函数なので, 0 ≦ 𝑥 ≦ 1/2 の範囲でその不等式を示せば十分である.
𝑓 ′ (𝑥) = −2𝜋 sin(2𝜋𝑥), 𝑔′ (𝑥) = −16𝑥 であり, 0 ≦ 𝑥 ≦ 1/2 において 𝑓(𝑥) は下に凸であり, 𝑓 ′ (0) = 𝑔′ (0) = 0 ,𝑓 ′ (1/4) = −2𝜋 < −4 = 𝑔′ (1/4) なので, 0 ≦ 𝑥 ≦ 1/4 において 𝑓 ′ (𝑥) ≦ 𝑔′ (𝑥) となる. そして, 𝑓(0) = 𝑔(0) = 1 なので
0 ≦ 𝑥 ≦ 1/4 ⟹ 𝑓(𝑥) ≦ 𝑔(𝑥).
1/4 ≦ 𝑥 ≦ 1/2 において, 𝑓(𝑥) は下に凸であり, 𝑔(𝑥) は上に凸なので, 𝑓(1/4) = 𝑓1 (1/4) = 0 < 1/2 = 𝑔1 (1/4) = 𝑔(1/4) と𝑓(1/2) = 𝑓1 (1/2) = 𝑔1 (1/2) = 𝑔(1/2) = −1 より,
1/4 ≦ 𝑥 ≦ 1/2 ⟹ 𝑓(𝑥) ≦ 𝑓1 (𝑥) ≦ 𝑔1 (𝑥) ≦ 𝑔(𝑥).

以上を合わせると目的の結果が得られる.
以上のような証明は以下のような図を描けば容易に発見できる. □In [39]:



1
2
3
4
5
6
7
8
9
10
11
12

x = 0:0.005:1/2
x_1 = 1/4:0.005:1/2
f(x) = cos(2π*x)f_1(x) = -4x + 1
g(x) = 1 - 8*x^2
g_1(x) = -6x + 2​
P1 = plot(size=(400,240), legend=:bottomleft)
plot!(x,g.(x),
label="g(x)=1-8x^2")
plot!(x_1, g_1.(x_1), label="g_1(x)=-6x+2", ls=:dash)plot!(x_1, f_1.(x_1), label="f_1(x)=-4x+1", ls=:dash)plot!(x,f.(x),
label="f(x)=cos(2pi x)")

1
2
3
4
5
6
7

x = 0:0.005:1/2
df(x) = -2π*sin(2π*x)dg(x) = -16x​
P2 = plot(size=(400,240), legend=:topright)
plot!(x, dg.(x), label="g'(x)=-16x")
plot!(x, df.(x), label="f'(x)=-2pi cos(2pi x)")

1
2
3
4
5
6
7
8
9
10

# Fourier級数のPoisson核のプロット​
Poisson(r,x) = (1-r^2)/(1-2r*cos(2π*x)+r^2)
PP = []
for r in [0.3; 0.8; 0.9]
x = -0.5:0.001:0.5
P = plot(x, Poisson.(r,x), title="r = $r", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[39]:In [40]:Out[40]:In [41]:Out[41]:4.10.5 Fourier級数のGauss核

Fourier級数のGauss核を, Fourier変換のGauss核を周期的に足し上げて,𝐺𝑡 (𝑥) =∑2𝑒−𝜋(𝑥−𝑚) /𝑡

=

√𝑡

𝑚∈ℤ

∑

𝑛∈ℤ

2

𝑒−𝜋𝑛 𝑡+2𝜋𝑖𝑛𝑥 .

と定める. 後者の等号は後で示すPoissonの和公式より示される. Gauss核もFourier級数の総和核である.
In [42]:



1
2
3
4
5
6
7
8
9
10

# Fourier級数のGauss核のプロット​
Gauss(t,x; N=100) = (1/√t)*sum(m->e^(-π*(x-m)^2/t), -N:N)
PP = []
for t in [0.1; 0.01; 0.004]
x = -0.5:0.001:0.5
P = plot(x, Gauss.(t,x), title="t = $t", titlefontsize=10)
push!(PP, P)
endplot(PP[1:3]..., size=(750, 150), legend=false, layout=@layout([a b c]))Out[42]:

注意: Fourier級数のDirichlet核 𝐷𝑁 (𝑥), Fejér核 𝐹𝑁 (𝑥), Poisson核 𝑃𝑟 (𝑥), Gauss核 𝐺𝑡 (𝑥) はそれぞれ以下のようなFourier級数で表わされる:

𝐷𝑁 (𝑥) =𝐹𝑁 (𝑥) =𝑃𝑟 (𝑥) =𝐺𝑡 (𝑥) =∑𝑁

𝑒2𝜋𝑖𝑛𝑥

=

𝑛=−𝑁

∑ (
𝑁

𝑛=−𝑁

1−

|𝑛|
sin(𝜋(𝑁 + 1)𝑥)1,𝑒2𝜋𝑖𝑛𝑥 =
)
𝑁 +1)
𝑁 +1(
sin(𝜋𝑥)2∑𝑒−𝛼|𝑛| 𝑒2𝜋𝑖𝑛𝑥∑−𝜋𝑡𝑛2 2𝜋𝑖𝑛𝑥

=

𝑛∈ℤ

𝑒

sin(𝜋(2𝑁 + 1)𝑥),sin(𝜋𝑥)=𝑒𝑛∈ℤ

1 − 𝑟2
1 − 2𝑟 cos(2𝜋𝑥) + 𝑟2∑

(𝑟 = 𝑒−𝛼 < 1),2𝑒−𝜋(𝑥−𝑚) /𝑡(𝑡 > 0).

√𝑡𝑚∈ℤ

𝑛 = 0 を中心に上下対象に適当に重みを付けて足し上げている. 足し上げる範囲で同じ重みにするとDirichlet核になり, 𝑛 の絶対値に比例して重みを減少させるとFejér核になり, 𝑛 の絶対値の負の定数倍の指数函数で重みを減少させるとPoisson核になり, 𝑛 の2乗の負の定数倍の指数函数で重みを減少させるとGauss核になる. もちろん, これら以外にもたくさんの変種を考える
ことができる. □5 三角函数へのFourier級数論の応用
5.1 cosecとcotの部分分数展開
整数ではない実数 𝑡 に対して, −1/2 ≦ 𝑥 < 1/2 上の函数 𝑓(𝑥) を𝑓(𝑥) = 𝑒2𝜋𝑖𝑡𝑥(−1/2 ≦ 𝑥 < 1/2)と定め, 周期 1 で ℝ 上の函数に拡張したものを 𝑓(𝑥) と書くことにする.
このとき, 𝑓(𝑥) のFourier係数は次のように計算される:

𝑎𝑛 (𝑓) =

∫−1/2

1/2

𝑒2𝜋𝑖𝑡𝑥 𝑒−2𝜋𝑛𝑥 𝑑𝑥 =𝑥=1/2

sin(𝜋(𝑡 − 𝑛))sin(𝜋𝑡)𝑒2𝜋𝑖(𝑡−𝑛)𝑥== (−1)𝑛.
[ 2𝜋𝑖(𝑡 − 𝑛) ]𝑥=−1/2𝜋(𝑡 − 𝑛)𝜋(𝑡 − 𝑛)

したがって, −1/2 < 𝑥 < 1/2 のとき, 次の等式が成立している:

𝑒2𝜋𝑖𝑡𝑥 = lim

𝑁→∞

=

∑
𝑁

𝑛=−𝑁

𝑎𝑛 (𝑓)𝑒2𝜋𝑖𝑛𝑥 =sin(𝜋𝑡)(−1)𝑛 𝑒2𝜋𝑖𝑛𝑥
lim∑
𝜋 𝑁→∞ 𝑛=−𝑁𝑡−𝑛𝑁sin(𝜋𝑡) 1𝑒2𝜋𝑖𝑛𝑥𝑒−2𝜋𝑖𝑛𝑥
+
(−1)𝑛
+
.
(𝑡−𝑛
𝜋 [𝑡 ∑
𝑡 + 𝑛 )]𝑛=1∞

この等式の両辺の実部と虚部を比較することによって, −1/2 < 𝑥 < 1/2 のとき,

cos(2𝜋𝑡𝑥) =sin(2𝜋𝑡𝑥) =sin(𝜋𝑡) 1
cos(2𝜋𝑛𝑥)
cos(2𝜋𝑛𝑥)
+
(−1)𝑛
+
,
( 𝑡−𝑛
𝜋 [𝑡 ∑
𝑡 + 𝑛 )]𝑛=1∞

sin(𝜋𝑡)sin(2𝜋𝑛𝑥)sin(2𝜋𝑛𝑥)
(−1)𝑛
−
.
( 𝑡−𝑛
𝜋 ∑
𝑡+𝑛 )
𝑛=1
∞

前者で 𝑥 = 0, 𝑥 → 1/2 とすると, 以下の結果が得られる:

𝜋 cosec(𝜋𝑡) =𝜋 cot(𝜋𝑡) =

1
1
1
𝜋
= +
(−1)𝑛
+
,
∑
(
𝑡
sin(𝜋𝑡)
𝑡−𝑛
𝑡+𝑛)
𝑛=1
∞

1
1
1
𝜋 cos(𝜋𝑡)
= +
+
.
∑
(
𝑡
sin(𝜋𝑡)
𝑡−𝑛
𝑡+𝑛)
1
∞

5.2 sinの無限積表示𝑑𝑑1
log sin(𝜋𝑡) = 𝜋 cot(𝜋𝑡) と log(𝜋𝑡) = と 𝜋 cot(𝜋𝑡) の部分分数展開の公式より,
𝑑𝑡𝑑𝑡𝑡sin(𝜋𝑡)
−1/𝑛
1/𝑛
𝑑
1
1
log
=
+
=
+
.
∑(𝑡 − 𝑛) ∑ ( 1 − 𝑡/𝑛
𝑑𝑡
𝜋𝑡
𝑡
+
𝑛
1
+ 𝑡/𝑛 )
𝑛=1
𝑛=1
∞

∞

両辺を 𝑡 = 0 から 𝑡 = 𝑠 まで積分すると, 𝑡 ↘ 0 で loglog

sin(𝜋𝑡)→ log 1 = 0 となることより,
𝜋𝑡sin(𝜋𝑠)
𝑠
𝑠
𝑠2
=
log
1
−
+
log
1
+
=
log
1
−
.
(
∑( (
(
𝜋𝑠
𝑛)
𝑛 )) ∑
𝑛2 )
𝑛=1
𝑛=1
∞

∞

すなわち,

sin(𝜋𝑠)
𝑠2
=
1−
.
∏(
𝜋𝑠
𝑛2 )
𝑛=1
∞

この公式をsinの無限積表示, sinの無限乗積展開などと呼ぶことにする.

5.3 ガンマ函数とsinの関係
ガンマ函数は次の表示を持つのであった:

𝑛𝑠 𝑛!
𝑛𝑠
= lim
,
𝑛→∞ 𝑠(1 + 𝑠)(2 + 𝑠) ⋯ (𝑛 + 𝑠)
𝑛→∞ 𝑠 (1 + 𝑠) 1 + 𝑠 ⋯ 1 + 𝑠
(
) (
𝑛)

Γ(𝑠) = lim

2𝑛1−𝑠 𝑛!
𝑛−𝑠
Γ(1 − 𝑠) = lim
= lim
,
1−𝑠
𝑠
𝑠
𝑛→∞ (1 − 𝑠)(2 − 𝑠) ⋯ (𝑛 + 1 − 𝑠)𝑛→∞ (1 − 𝑠) 1 −() ⋯ (1 − ) (1 +
)
2

𝑛

𝑛

ゆえに, sin の無限積表示も使うと,

1𝑠𝑠sin(𝜋𝑠)𝑠2= lim 𝑠1 + ) (1 − )) = 𝑠
1−
=
.
((
∏
∏
2
(
)
𝑘
𝑘
Γ(𝑠)Γ(1 − 𝑠) 𝑛→∞ 𝑘=1
𝜋
𝑛
𝑛=1
𝑛

さらに Γ(𝑠)Γ(1 − 𝑠) = 𝐵(𝑠, 1 − 𝑠) =

∫0

∞

∞
𝑑𝑢
𝑡𝑠−1 𝑑𝑡1=なので以下の総まとめ的な公式が得られる:
1+𝑡𝑠 ∫0 1 + 𝑢1/𝑠

Γ(𝑠)Γ(1 − 𝑠) = 𝐵(𝑠, 1 − 𝑠) =Γ(𝑠)Γ(1 − 𝑠) =

∞

∫0

∞

∞
𝑑𝑢
𝜋
𝑡𝑠−1 𝑑𝑡
1
=
=
1/𝑠
∫
1+𝑡
sin(𝜋𝑠)𝑠 0 1+𝑢𝜋
は Euler's reflection formula と呼ばれる. これより, 例えば,
sin(𝜋𝑠)(0 < 𝑠 < 1).

∞

5.4 Wallisの公式
sin の無限乗積展開
sin(𝜋𝑠)𝑠2=
1− 2 .
∏(
𝜋𝑠
𝑛 )
𝑛=1
∞

で 𝑠 = 1/2 とおくと,(2𝑛 − 1)(2𝑛 + 1)
2
1
=
1−
=
.
2)
∏(
∏
𝜋
(2𝑛)(2𝑛)
(2𝑛)
𝑛=1
𝑛=1
∞

∞

すなわち,

2 ⋅ 2 ⋅ 4 ⋅ 4 ⋯ (2𝑛)(2𝑛)(2𝑛)(2𝑛)𝜋== .
∏𝑛→∞ 1 ⋅ 3 ⋅ 3 ⋅ 5 ⋯ (2𝑛 − 1)(2𝑛 + 1)
(2𝑛 − 1)(2𝑛 + 1)
2
𝑛=1
∞

lim

これをWallisの公式と呼ばれる. さらに, これ

2 ⋅ 4 ⋯ (2𝑛) = 2𝑛 𝑛!,

(2𝑛)!
,
2𝑛 𝑛!

1 ⋅ 3 ⋯ (2𝑛 − 1) =3 ⋅ 5 ⋯ (2𝑛 + 1) = (2𝑛 + 1)

(2𝑛)!
2𝑛 𝑛!

より

2 ⋅ 2 ⋅ 4 ⋅ 4 ⋯ (2𝑛)(2𝑛)122𝑛 (𝑛!)2=
1 ⋅ 3 ⋅ 3 ⋅ 5 ⋯ (2𝑛 − 1)(2𝑛 + 1)
2𝑛 + 1 ( (2𝑛)! )これが𝜋に収束することとWallisの公式は同値である. そして, これは
2
(2𝑛)!

2𝑛

2

(𝑛!)2

∼

1
⎯⎯⎯⎯
√𝑛𝜋

と同値であることもわかる. これもWallisの公式と呼ばれる.

5.5 Stirlingの近似公式
log 𝑛! = log 1 + log 2 + ⋯ + log 𝑛 の log 𝑥 の積分による近似を精密に実行すればStirlingの公式
log 𝑛! = 𝑛 log 𝑛 − 𝑛 +
⎯⎯⎯⎯

1
⎯⎯⎯⎯
log 𝑛 + log √2𝜋 + 𝑜(1)2(∗)

が得られることを説明しよう. log √ 2𝜋 の定数項を得るためにWallisの公式を使うことになる.
正の整数 𝑘 に対して,

𝑎2𝑘−1 =

𝑘
1
log 𝑘 −
log 𝑥 𝑑𝑥,∫𝑘−1/2
2

𝑎2𝑘 =

∫𝑘

𝑘+1/2

log 𝑥 𝑑𝑥 −

1
log 𝑘
2

とおく. log 𝑥 が単調増加函数であることより, 𝑎𝑛 > 0 となり, さらに log 𝑥 が上に凸な函数であることより, 𝑎𝑛 が単調減少す
ることがわかる. log 𝑥 の導函数 1/𝑥 は 𝑥 → ∞ で 0 に収束することから 𝑎𝑛 → 0 となることもわかる. ゆえに 𝑎𝑛 達から作られる交代級数は収束する. そして, そのとき,

log 𝑘 =

∫𝑘−1/2

𝑘+1/2

log 𝑥 𝑑𝑥 + 𝑎2𝑘−1 − 𝑎2𝑘なのでlog 𝑛! =∑𝑛

𝑘=1

log 𝑘 =𝑛1
1
log 1 +
log 𝑥 𝑑𝑥 + log 𝑛 +(−1)𝑗−1 𝑎𝑗
∑
∫1
2
2
𝑗=2

= 𝑛 log 𝑛 − 𝑛 + 1 +ゆえに 𝑐𝑛 = 1 +

∑

2𝑛−1
𝑗=2

2𝑛−1

1
log 𝑛 +(−1)𝑗−1 𝑎𝑗 .
∑
2
𝑗=2
2𝑛−1

(−1)𝑗−1 𝑎𝑗 とおくと,log 𝑛! = 𝑛 log 𝑛 − 𝑛 +1
log 𝑛 + 𝑐𝑛 .
2

𝑐𝑛 は上で述べたことより, 収束する交代級数として, 𝑛 → ∞ で収束する. その収束先 𝑐 を求めよう. Wallisの公式
(2𝑛)!

2𝑛

2
⎯⎯⎯⎯

∼

(𝑛!)2

1
⎯⎯⎯⎯
√𝑛𝜋

⎯⎯

に (2𝑛)! = (2𝑛) 2𝑛 𝑒−2𝑛 √ 2𝑛 𝑒𝑐2𝑛 , 𝑛! = 𝑛𝑛 𝑒−𝑛 √ 𝑛 𝑒𝑐𝑛 を代入すると

⎯⎯⎯⎯
⎯⎯⎯⎯
(2𝑛)2𝑛 𝑒−2𝑛 √2𝑛 𝑒𝑐2𝑛(2𝑛)!
1
2 𝑐2𝑛 −2𝑐𝑛
∼
=
=
𝑒
⎯𝑛𝜋
⎯⎯⎯
2𝑛
2𝑛 2𝑛 −2𝑛
√
2
2
𝑐
𝑛
𝑛
2 (𝑛!)
2 𝑛 𝑒 𝑛𝑒√なので, 両辺を⎯⎯⎯⎯2で割って, 𝑛 → ∞ とすると,
√𝑛
𝑒−𝑐 =

1
⎯⎯⎯⎯ .
√2𝜋⎯⎯⎯⎯

すなわち, 𝑐 = log √ 2𝜋 であることがわかった. これで, Stirlingの公式(∗ )が証明された.
In [43]:

1 n = big"1000000"
2 Float64(factorial(n)/(n^n*e^(-n)*√n)), √(2π)

Out[43]: (2.5066284835166988, 2.5066282746310002)
In [44]:Out[44]: 

1 u = symbols("u", positive=true)
2 [integrate(k/(1+u^k), (u, 0, oo)) for k in 2:6]

𝜋

⎯⎯ 
2√3𝜋 



3 

⎯⎯

√2𝜋 


⎯⎯
 2√2𝜋  ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯  √5 − √ 5 



2𝜋 

5.6 ゼータ函数の正の偶数での特殊値
問題: sin の無限乗積展開を用いて, 𝜁(2) =

1
を求めよ.
∑ 𝑛2
∞

𝑛=1

解答例: sin のMaclaurin展開を使うと,sin(𝜋𝑥)𝜋2 2=1−
𝑥 + 𝑂(𝑥4 ).
𝜋𝑥6
sin の無限乗積展開を使うと,sin(𝜋𝑥)1=1−𝑥2 + 𝑂(𝑥4 ).
∑𝜋𝑥( 𝑛=1 𝑛2 )∞これらを比較すると,

𝜁(2) =

問題: sin の無限乗積展開を用いて, 𝜁(4) =

1
𝜋2
=
.
∑ 𝑛2
6
𝑛=1
∞

□

1
を求めよ.
∑ 𝑛4
∞

𝑛=1

解答例: sin のMaclaurin展開を使うと,sin(𝜋𝑥) sin(𝜋𝑖𝑥)
𝜋2 2
𝜋4 4
𝜋2 2
𝜋4 4
= 1−
1+
𝑥 +
𝑥 + 𝑂(𝑥6 )𝑥 +𝑥 + 𝑂(𝑥6 )
(
)(
)
𝜋𝑥
𝜋(𝑖𝑥)
6
120
6
120
4
𝜋 4
=1−
𝑥 + 𝑂(𝑥6 ).
90
sin の無限乗積展開を使うと,

sin(𝜋𝑥) sin(𝜋𝑖𝑥)
𝑥2
𝑥2
𝑥4
=
1−
1+
=
1−
∏(
(
(
𝜋𝑥
𝜋(𝑖𝑥)
𝑛2 ) ∏𝑛2 ) ∏
𝑛4 )
𝑛=1
𝑛=1
𝑛=1
∞

∞

=1−

∞

1
𝑥4 + 𝑂(𝑥8 ).
∑
(
𝑛4 )
∞

𝑛=1

これらを比較すると,

𝜁(4) =
In [45]:

Out[45]:

Out[46]:1−

𝜋 2 𝑥2𝜋 4 𝑥4𝜋 6 𝑥6𝜋 8 𝑥8+−++ 𝑂 (𝑥10 )
6
120
5040
362880Out[47]:𝜋2を示せる. □
6

1 x = symbols("x")
2 f(x) = sin(π*x)/(π*x)
3 series(f(x)*f(im*x), x, n=12)1−

𝜋 4 𝑥4𝜋 8 𝑥8++ 𝑂 (𝑥12 )
90
113400

注意: 上のセルの計算結果を使うと, 𝜁(4) =In [47]:□

1 x = symbols("x")
2 f(x) = sin(π*x)/(π*x)
3 series(f(x), x, n=10)

注意: 上のセルの計算結果を使うと, 𝜁(2) =In [46]:

𝜋4
1
=
.
∑ 𝑛4
90
𝑛=1
∞

1
2
3
4

1−

𝜋4
を示せる. □
90x = symbols("x")f(x) = sin(π*x)/(π*x)ω = exp(im*Sym(π)/4)
series(f(x)*f(ω*x)*f(ω^2*x)*f(ω^3*x), x, n=24)

𝜋 8 𝑥859𝜋 16 𝑥16++ 𝑂 (𝑥24 )
9450
1302566265000

注意: 上のセルの計算結果を使うと, 𝜁(8) =𝜋8を示せる. □
9450

注意: より一般に

𝜁(2𝑘) =

1
22𝑘−1 (−1)𝑘−1𝐵2𝑘 2𝑘
=
𝜋
2𝑘
∑𝑛
(2𝑘)!
𝑛=1
∞

を示せる. 実は sin の無限乗積展開を用いるよりも, cot の部分分数展開を用いた方がこの公式を得ることは易しい(少し下の方にある問題の解答例を見よ). ここで, 𝐵𝑛 は次のように定義されるBernoulli数である:

𝑧
𝑧𝑛
=
.
𝐵
𝑛
𝑛!
𝑒𝑧 − 1 ∑𝑛=0∞

𝑛 が 3 以上の奇数ならば 𝐵𝑛 = 0 となり, 例えば,
𝐵0 = 1, 𝐵1 = −1/2,
11
11, 𝐵8 = − ,𝐵2 = , 𝐵4 = − , 𝐵6 =
6
30
42
30
5
691
7
3617
, 𝐵12 = −, 𝐵14 = , 𝐵16 = −
, …
𝐵10 =
66
2730
6
510
これより,

2(1/6) 2
𝜋2
𝜋 =
,
2!
6
𝜋4
22 (1/30) 4
𝜁(4) =
,
𝜋 =
90
4!
𝜋6
23 (1/42) 6
𝜁(6) =
,
𝜋 =
945
6!
𝜋8
24 (1/30) 8
𝜁(8) =
,
𝜋 =
9450
8!
𝜋 10
25 (5/66) 8
𝜁(10) =
,
𝜋 =
93555
10!
𝜁(2) =

In [48]:

Out[48]: 

1 BernoulliNumber(n) = sympy.bernoulli(n)2 [BernoulliNumber(n) for n in 0:8]1
 −1 

2

1


6


0
 1 
−

 30 

0


 1 
 42 

0


 1 
 − 30 

In [49]:Out[49]: 

1 BernoulliNumber(n) = sympy.bernoulli(n)2 B = [BernoulliNumber(2k) for k in 1:8]

1


6

 − 1 

30 

1 

42 


1 
 −

30 

5 


66 


 − 691 
 2730 

7


6

 3617  − 510 

In [50]:Out[50]: 

𝜋2 


6 

𝜋4 


90 


𝜋6 


945 


𝜋8 


9450 

𝜋 10 

93555 
691𝜋 12 
638512875 



2𝜋 14


18243225

3617𝜋 16
 325641566250 

Out[51]: In [51]:

1 BernoulliNumber(n) = sympy.bernoulli(n)2 Z = [2^(2k-1)*(-1)^(k-1)*BernoulliNumber(2k)*PI^(2k)/factorial(2k) for k in 1:8]



𝜋2 


6 


𝜋4 

90 

𝜋6 


945 


𝜋8 


9450 

𝜋 10 

93555 
691𝜋 12 
638512875 



2𝜋 14


18243225 
3617𝜋 16
 325641566250 

1 [zeta(Sym(2k)) for k in 1:8]

問題: 𝜋𝑧 cot(𝜋𝑧) の部分分数展開と 𝜋𝑧 cot(𝜋𝑧) のMaclaurine展開を比較して, 𝑘 = 1, 2, … に対する 𝜁(2𝑘) の値をBernoulli数
で表す公式を得よ.
解答例: 𝜋 cot(𝜋𝑡) の部分分数展開の公式より,

𝜋𝑧 cot(𝜋𝑧) = 1 + 𝑧

𝑧
𝑧
𝑧2
+
=
1
+
2
.
∑(𝑧−𝑛
∑ 𝑧2 − 𝑛2
𝑧 + 𝑛)
𝑛=1
𝑛=1
∞

∞

そして,

𝑧2
𝑧2 /𝑛2
𝑧2𝑘
=
−
=
−
∑ 𝑛2𝑘
1 − 𝑧2 /𝑛2𝑧2 − 𝑛2
𝑘=1
∞

なので,

𝜋𝑧 cot(𝜋𝑧) = 1 − 2

1
𝜁(2𝑘)𝑧2𝑘 .
𝑧2𝑘 = 1 − 2∑ (∑ 𝑛2𝑘 )
∑
𝑘=1
𝑛=1
𝑘=1
∞

∞

∞

一方, 𝑥 cot 𝑥 のMaclaurin展開が

𝑥 cot 𝑥 =

∑
∞

𝑘=0

(−1)𝑘

22𝑘 𝐵2𝑘 2𝑘
22𝑘−1 (−1)𝑘−1𝐵2𝑘 2𝑘
𝑥 =1−2
𝑥
∑
(2𝑘)!
(2𝑘)!
𝑘=0
∞

であることより(これを 𝐵2𝑘 の定義だと思ってもよい), 𝑥 = 𝜋𝑧 を代入すると,

𝜋𝑧 cot(𝜋𝑧) = 1 − 2

22𝑘−1 (−1)𝑘−1𝐵2𝑘 2𝑘 2𝑘
𝜋 𝑧 .
∑
(2𝑘)!
𝑘=0
∞

以上を比較すると,

𝜁(2𝑘) =

22𝑘−1 (−1)𝑘−1𝐵2𝑘 2𝑘𝜋(2𝑘)!

(𝑘 = 1, 2, 3, …)

5.7 多重ゼータ値 ζ(2,2,...,2)
sin の無限積表示
sin(𝜋𝑥)
𝑥2
=
1− 2
∏(
𝜋𝑥
𝑘 )
𝑘=1
∞

の両辺を別々に展開すると,sin(𝜋𝑥)𝜋 2𝑛
𝜋 2𝑛=(−𝑥2 )𝑛 ,∑ (2𝑛 + 1)! (2𝑛 + 1)!
𝜋𝑥
𝑛=0
∞

∏(
∞

𝑚=1

1−

𝑥2
1
=
(−𝑥2 )𝑛 .
2
2
2
2 )
)
∑
∑
(
𝑚
⋯
𝑚
𝑚
𝑚
𝑛
𝑛=1 𝑚 >𝑚 >⋯>𝑚 ≧1 1 2
∞

1

2

𝑛

ゆえに係数を比較して,

1
𝜋 2𝑛
=
∑
(2𝑛 + 1)!
𝑚2 𝑚2 ⋯ 𝑚2𝑛
𝑚 >𝑚 >⋯>𝑚 ≧1 1 2
12𝑛を得る. より一般に多重ゼータ値 𝜁(𝑘1 , 𝑘2 , … , 𝑘𝑛 ) が𝜁(𝑘1 , 𝑘2 , … , 𝑘𝑛 ) =

∑

1

𝑘1 𝑘2
𝑘𝑛
𝑚1 >𝑚2 >⋯>𝑚𝑛 ≧1 𝑚1 𝑚2 ⋯ 𝑚𝑛

によって定義される. 上の結果は

𝜋 2𝑛𝜁(2, 2, … , 2) =
(2𝑛 + 1)!
𝑛 timesを意味している.
多重ゼータ値については例えば次の文献を参照せよ:
荒川恒男(立教大), 金子昌信(九州大), 多重ゼータ値入門, 2010, 2016. PDF (http://www2.math.kyushuu.ac.jp/~mkaneko/papers/MZV_LectureNotes.pdf)

5.8 Lobachevskyの公式 (Dirichlet積分の公式の一般化の1つ)
この節の内容は
Hassan Jolany, An extension of Lobachevsky formula (https://hal.archives-ouvertes.fr/hal-01539895v3), 2017 (arXiv版(https://arxiv.org/abs/1004.2653))の第2節の引き写しである.

𝜋 cosec(𝜋𝑡) = 𝜋/ sin(𝜋𝑡) の部分分数展開の公式に 𝑡 = 𝑥/𝜋 を代入すると,
1
1
1
1
= +
(−1)𝑘
+
.
∑
(
sin 𝑥
𝑥 − 𝑘𝜋𝑥 + 𝑘𝜋 )𝑥 𝑘=1∞

𝜋 cot(𝜋𝑡) の部分分数展開の公式に 𝑡 = 𝑥/𝜋 を代入すると,
cot(𝑥) =これの両辺に −𝑑/𝑑𝑥 を作用させると,

1
1
1
+
+
.
( 𝑥 − 𝑘𝜋
𝑥
+
𝑘𝜋 )
𝑥 ∑
𝑘=1
∞

1

∑(
∞

1

Lobachevskyの公式: 𝑓 は

1

𝑓(𝑥 + 𝜋) = 𝑓(𝑥)1)𝑓(𝜋 − 𝑥) = 𝑓(𝑥)を満たす ℝ 上の連続函数であると仮定する. このとき,

∫0

∞

𝜋/2
∞
sin 𝑥
sin2 𝑥
𝑓(𝑥)
𝑑𝑥
=
𝑓(𝑥)
𝑑𝑥
=
𝑓(𝑥) 𝑑𝑥.
∫0
∫0
𝑥
𝑥2

注意: 特に 𝑓(𝑥) = 1 のとき,

∫0

∞

∞
sin 𝑥
𝜋
sin2 𝑥
𝑑𝑥
=
𝑑𝑥 =
2
∫
𝑥
2
𝑥
0

なので, Lobachevskyの公式はDirichlet積分の公式の一般化になっている.
証明: 0 から ∞ のあいだを長さ 𝜋/2 の区間で区切って整理し直して, 1/ sin 𝑥 と 1/ sin 2 𝑥 の部分分数展開を使えばこの公式が得られる. 詳しい計算の手順は以下の通り.
整数 𝑘 に対して, 𝑓(𝑥 + 𝜋) = 𝑓(𝑥), 𝑓(𝜋 − 𝑥) = 𝑓(𝑥) という仮定より,
𝜋/2
𝜋/2
sin 𝑥
sin(−𝑥)
sin 𝑥
𝑓(𝑥) 𝑑𝑥 = (−1)𝑘𝑓(𝑥) 𝑑𝑥 = (−1)𝑘𝑓(𝑥) 𝑑𝑥,∫(2𝑘−1)𝜋/2 𝑥∫0∫−𝑥 + 𝑘𝜋𝑥 − 𝑘𝜋02𝑘𝜋/2∫2𝑘𝜋/2(2𝑘+1)𝜋/2

𝜋/2
sin 𝑥
sin 𝑥
𝑓(𝑥) 𝑑𝑥 = (−1)𝑘𝑓(𝑥) 𝑑𝑥.
∫0𝑥 + 𝑘𝜋
𝑥

ゆえに,

∫0

∞

(𝑛+1)𝜋/2
sin 𝑥
sin 𝑥
𝑓(𝑥) 𝑑𝑥 =𝑓(𝑥) 𝑑𝑥∑ ∫𝑛𝜋/2
𝑥
𝑥
𝑛=0
∞

=

∫0

𝜋/2

=

∫0

𝜋/2

=

∫0

𝜋/2

𝜋/2
sin 𝑥
sin 𝑥
sin 𝑥
𝑓(𝑥) 𝑑𝑥 +(−1)𝑘+𝑓(𝑥) 𝑑𝑥∑∫0 ( 𝑥 − 𝑘𝜋
𝑥+ 𝑘𝜋 )
𝑥
𝑘=1
∞

sin 𝑥
sin 𝑥

1
1
1
+
(−1)𝑘
+
𝑓(𝑥) 𝑑𝑥∑( 𝑥 − 𝑘𝜋𝑥 + 𝑘𝜋 )][ 𝑥 𝑘=1∞𝜋/2
1𝑓(𝑥) 𝑑𝑥 =𝑓(𝑥) 𝑑𝑥.
∫0
sin 𝑥

終わりから2番目の等号で 1/ sin 𝑥 の部分分数展開を使った.
整数 𝑘 に対して, 𝑓(𝑥 + 𝜋) = 𝑓(𝑥), 𝑓(𝜋 − 𝑥) = 𝑓(𝑥) という仮定より,
𝜋/2
𝜋/2
sin2 𝑥sin2 (−𝑥)sin2 𝑥
𝑓(𝑥)
𝑑𝑥
=
𝑓(𝑥)
𝑑𝑥
=
𝑓(𝑥) 𝑑𝑥,∫(2𝑘−1)𝜋/2 𝑥2∫0∫0(−𝑥 + 𝑘𝜋)2(𝑥 − 𝑘𝜋)22𝑘𝜋/2∫2𝑘𝜋/2(2𝑘+1)𝜋/2

𝜋/2
sin2 𝑥sin2 𝑥𝑓(𝑥)𝑑𝑥=𝑓(𝑥) 𝑑𝑥.
∫0(𝑥 + 𝑘𝜋)2
𝑥2

ゆえに,

∫0

∞

(𝑛+1)𝜋/2
sin2 𝑥sin2 𝑥𝑓(𝑥)𝑑𝑥=𝑓(𝑥) 𝑑𝑥∑ ∫𝑛𝜋/2
𝑥2
𝑥2
𝑛=0
∞

=

∫0

𝜋/2

=

∫0

𝜋/2

=

∫0

𝜋/2

𝜋/2
sin 𝑥2sin2 𝑥sin2 𝑥𝑓(𝑥)𝑑𝑥++𝑓(𝑥) 𝑑𝑥∑ ∫0 ( (𝑥 − 𝑘𝜋)2(𝑥 + 𝑘𝜋)2 )
𝑥2
𝑘=1
∞

sin2 𝑥sin2 𝑥1
1
1++𝑓(𝑥) 𝑑𝑥22∑([𝑥(𝑥 − 𝑘𝜋)(𝑥 + 𝑘𝜋)2 )]
𝑘=1
∞

1

sin2 𝑥𝑓(𝑥) 𝑑𝑥 =2
終わりから2番目の等号で 1/ sin 𝑥 の部分分数展開を使った. □

∫0

𝜋/2

𝑓(𝑥) 𝑑𝑥.

6 Poissonの和公式
6.1 Poissonの和公式とその証明
Fourier級数の収束とFourier変換の定義から, Poissonの和公式が得られることを説明しよう.
定義(急減少函数): ℝ 上の 𝐶 ∞ 函数 𝑓 で, 任意の非負の整数 𝑚, 𝑛 に対して, |𝑥| → ∞ のとき 𝑓 (𝑚) (𝑥)𝑥𝑛 → 0 となるものを急減少函数と呼ぶ. □定理(Poissonの和公式) 𝑓 は ℝ 上の急減少函数であると仮定する. このとき, 次の公式が成立している:∑

略証: 𝑔(𝑥) =

∑

𝑚∈ℤ

𝑚∈ℤ

𝑓(𝑚) =

∑

𝑛∈ℤ

̂
𝑓 (𝑛)

𝑓(𝑥 + 𝑚) とおくと, 𝑔(𝑥) は周期 1 を持つ 𝐶 ∞ 函数になる. ゆえに,
𝑔(𝑥) =∑𝑛∈ℤ𝑎𝑛 (𝑔)𝑒2𝜋𝑖𝑛𝑥(𝑥 ∈ ℝ).

そして,𝑎𝑛 (𝑔) =
=

∫0

1

∑

𝑚∈ℤ
𝑚+1

∑ ∫𝑚

𝑚∈ℤ

以上をまとめると,

𝑔(𝑥) =∑ ∫0𝑓(𝑥 + 𝑚)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 =𝑓(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 =∑𝑓(𝑥 + 𝑚) =

𝑚∈ℤ

∑

𝑛∈ℤ

1

𝑚∈ℤ
∞

∫−∞

𝑓(𝑥 + 𝑚)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥

̂𝑓(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 = 𝑓 (𝑛).

̂ 𝑒2𝜋𝑖𝑛𝑥𝑓 (𝑛)(𝑥 ∈ ℝ).

この等式で 𝑥 = 0 をおけば欲しい公式が得られる. □6.2 Theta zero value Θ(t) のモジュラー変換性
問題: 𝑡 > 0 に対して, 次の公式を示せ:∑

2𝑒−𝜋(𝑥−𝑚) /𝑡
√𝑡

𝑚∈ℤ

=

∑

𝑛∈ℤ

2

𝑒−𝜋𝑛 𝑡+2𝜋𝑖𝑛𝑥 .

注意: この問題の左辺と右辺は楕円テータ函数と呼ばれる特殊函数の特別な場合になっている. 左辺は熱方程式の基本解を周期函数になるように足し上げたものになっている. そのことから, この公式の両辺は周期境界条件のもとでの熱方程式の基本解になっていることがわかる. 楕円テータ函数についてはDavid Mumford, Tata Lectures on Theta I (http://www.dam.brown.edu/people/mumford/alg_geom/papers/Tata1.pdf),
Reprint of the 1983 Edition
が非常に面白くてかつ読み易い教科書であり, 論文などでもよく引用されている. □解答例: 𝑓(𝑥) =2𝑒−𝜋𝑥 /𝑡√𝑡

とおくと, 𝑓(𝑥) が偶函数であることと, Poissonの和公式の証明より,

∑

𝑚∈ℤ

2

𝑒−𝜋(𝑥−𝑚) /𝑡
√𝑡

=

∑

𝑚∈ℤ

𝑓(𝑥 − 𝑚) =∑𝑚∈ℤ𝑓(𝑥 + 𝑚) =∑𝑛∈ℤ

̂ 𝑒2𝜋𝑖𝑛𝑥 .
𝑓 (𝑛)そして, 公式∫−∞∞より, 𝑥 = 𝑦/(2𝜋) とおくと,

̂ =
𝑓 (𝑛)

2
⎯⎯⎯𝑒−𝑎𝑝2 /4
𝑒−𝑦 /𝑎 𝑒−𝑖𝑝𝑦 𝑑𝑦 = √⎯𝜋𝑎⎯⎯⎯⎯⎯⎯⎯⎯
2∞ −𝑦2 /(4𝜋𝑡)√4𝜋𝑡 𝜋 −4𝜋𝑡𝑛2 /4𝑒−𝜋𝑥 /𝑡 −2𝜋𝑖𝑛𝑥𝑒2−𝑖𝑛𝑦 𝑑𝑦𝑑𝑥 === 𝑒−𝜋𝑛 𝑡 .
𝑒𝑒𝑒∫−∞ √𝑡
∫−∞
2𝜋
2𝜋√𝑡
√𝑡
∞

問題(Theta zero value のモジュラー変換性): 𝑡 > 0 に対して, Θ(𝑡) =Θ(𝑡) =

1
√𝑡

Θ

1
(𝑡)

すなわち

∑

𝑛∈ℤ

Θ

2

𝑒−𝜋𝑛 𝑡 = 1 + 2∑∞

2𝑒−𝜋𝑛 𝑡 とおくと,

𝑛=1

1= 𝑡 Θ(𝑡)(𝑡) √が成立することを示せ. この結果を Θ(𝑡) のモジュラー変換性と呼ぶ.
注意: Θ(𝑡) の定義式を見ると, 𝑡 > 0 が大きなときに Θ(𝑡) がほぼ 1 になることはすぐに確認できるが, 𝑡 > 0 が小さいときにはどのような様子になっているかはよくわからない. しかし, モジュラー変換性を使うと, Θ(𝑡) は, 𝑡 > 0 が小さいときにはほぼ

1に等しいことがわかる. このようにモジュラー変換性は「よくわからない量」を「よくわかる量」に関係付ける公式で

√𝑡
ある. □

注意: 超弦理論や共形場理論 (https://www.google.co.jp/search?
q=%E5%85%B1%E5%BD%A2%E5%A0%B4%E7%90%86%E8%AB%96+%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%
ではモジュラー変換性が重要な意味を持つ. □注意: 上の問題の公式はRiemannのゼータ函数の函数等式を証明するときに使われる. 上の問題の結果は楕円テータ函数のモジュラー変換性の特別な場合になっている. モジュラー変換性を持つ函数は数論的にも極めて重要な数学的対象である. □解答例1: 𝑓(𝑥) =2𝑒−𝜋𝑥 /𝑡√𝑡にPoissonの和公式を適用すればこの公式が得られる. すなわち, 上の問題の結果で 𝑥 = 0 とおけば示したい公式が得られる. □̂ =解答例2: 𝑓(𝑥) = 𝑒−𝜋𝑡𝑥 について 𝑓 (𝑝)2

問題: 上の問題の結論を Θ(𝑡) と重なるはずである. □

1
√𝑡

Θ

2

𝑒−𝜋𝑝 /𝑡√𝑡なので, Poissonの和公式より, 示したい公式が得られる. □1のグラフを重ねてプロットすることによって確認せよ. 2つのグラフはぴったり(𝑡)

次のセルを見よ.
In [52]:



1
2
3
4
5
6
7

Theta(t; N=20) = iszero(N) ? one(t) : 1 + 2*sum(n->e^(-π*n^2*t), 1:N)
t = 0.2:0.05:2.0
A = Theta.(t)B = @. 1/√(t)*Theta(1/t)
plot(size=(500, 350))
plot!(t, B, label="Theta(t)",lw=2)
plot!(t, A, label="(1/sqrt(t)) Theta(1/t)", lw=2, ls=:dash)Out[52]:

問題: 𝑡 = 0.1 のとき, まず

1
√𝑡

Θ

1
の近似値を
(𝑡)
√𝑡 (
1

1+2

∑
𝑁

𝑛=1

2

𝑒−𝜋𝑛 /𝑡)

の 𝑁 = 1 の場合を用いて計算せよ. そして, Θ(𝑡) を

1+2

∑
𝑁

2

𝑒−𝜋𝑛 𝑡𝑛=1で近似するとき, 𝑁 ≧ 10 としなければ, 上と同じ精度が得られないことを確認せよ. 𝑡 > 0 が小さいときには Θ(𝑡) の定義に基いて直接的に数値計算するより, モジュラー変換を経由して数値計算した方が効率的である. □次のセルを見よ.
In [53]:



1
2
3
4
5
6
7
8

Theta(t; N=20) = iszero(N) ? one(t) : 1 + 2*sum(n->e^(-π*n^2*t), 1:N)
t = 0.1@show 1/√t*Theta(1/t; N=0)
@show 1/√t*Theta(1/t; N=1)
@show 1/√t*Theta(1/t; N=2)
@show Theta(t; N=9);@show Theta(t; N=10);@show Theta(t; N=11);(1 / √t) * Theta(1 / t; N = 0) = 3.162277660168379(1 / √t) * Theta(1 / t; N = 1) = 3.162277660168523(1 / √t) * Theta(1 / t; N = 2) = 3.162277660168523
Theta(t; N = 9) = 3.1622776601684772
Theta(t; N = 10) = 3.1622776601685225
Theta(t; N = 11) = 3.1622776601685225

6.3 Lerchの超越函数へのPoissonの和公式の応用
6.3.1 Lerchの超越函数
以下では 𝑎 ≠ 0, −1, −2, … であると仮定する.
定義: Lerchの超越函数 Φ(𝑧, 𝑠, 𝑎) をΦ(𝑧, 𝑠, 𝑎) =𝑧𝑘.
∑ (𝑎 + 𝑘)𝑠𝑘=0

𝐿(𝜏, 𝑎, 𝑠) = Φ(𝑒2𝜋𝑖𝜏 , 𝑠, 𝑎) =𝑒2𝜋𝑖𝑘𝜏
,∑ (𝑎 + 𝑘)𝑠𝑘=0∞と定義する. 次の記号法も使われる:∞

𝑧 = 𝑒2𝜋𝑖𝜏 .

これはLerchのゼータ函数(レルヒのゼータ函数)と呼ばれる. 引数の順序が変わっていることに注意せよ. |𝑧| < 1 ならば右辺の級数は絶対収束し, |𝑧| = 1 であっても右辺の級数は Re 𝑠 > 1 ならば絶対収束する. さらに,

Φ(𝑧, 𝑠, 𝑎) =∂+ 𝑎 Φ(𝑧, 𝑠 + 𝑚, 𝑎)
( ∂𝑧
)
𝑧

𝑚

を使って, |𝑧| = 1 であっても, Re 𝑠 > 1 − 𝑚 まで Φ(𝑧, 𝑠, 𝑎) を解析接続できる.
Lerchのゼータ函数は, 𝜏 = 0 (𝑧 = 1) とするとHurwitzのゼータ函数になり, 𝑎 = 1 としてから 𝑧 倍すると(𝑠 が正の整数の場合には)polylogarithmになり, 𝜏 = 0 (𝑧 = 1), 𝑎 = 1 とするとRiemannのゼータ函数になる. 𝑧 = 𝑒2𝜋𝑖𝜏 のとき,

𝐿(0, 𝑎, 𝑠) = Φ(1, 𝑠, 𝑎) = 𝜁(𝑠, 𝑧) =1,
∑ (𝑘 + 𝑎)𝑠∞𝑘=0𝑒2𝜋𝑖𝜏 𝐿(𝜏, 1, 𝑠) = 𝑧Φ(𝑧, 𝑠, 1) = Li𝑠 (𝑧) =𝐿(0, 1, 𝑠) = Φ(1, 𝑠, 1) = 𝜁(𝑠) =

1
.
∑ 𝑛𝑠
∞

𝑧𝑛
,
∑ 𝑛𝑠
𝑛=1
∞

𝑛=1

Lerchの超越函数の基本性質についてはJesus Guillera and Jonathan Sondow. Double integrals and infinite products for some classical constants via analytic
continuations of Lerch's transcendent. arXiv:math/0506319 (https://arxiv.org/abs/math/0506319)
Jeffrey C. Lagarias and Wen-Ching Winnie Li. Mathematics > Number Theory The Lerch Zeta Function I, II, III, IV.
arXiv:1005.4712 (https://arxiv.org/abs/1005.4712), arXiv:1005.4967 (https://arxiv.org/abs/1005.4967), arXiv:1506.06161(https://arxiv.org/abs/1506.06161), arXiv:1511.08116 (https://arxiv.org/abs/1511.08116)
を参照せよ.

6.3.2 Lipschitzの和公式＝Lerchの函数等式
Lipschitzの和公式: Re 𝑠 > 1, Im 𝜏 > 0, 0 < 𝑎 < 1 のとき,

Γ(𝑠)𝑒2𝜋𝑖𝜏(𝑘+𝑎)𝑒−2𝜋𝑖𝑛𝑎=.
∑ (𝑘 + 𝑎)1−𝑠∑ (𝑛 + 𝜏)𝑠(−2𝜋𝑖)𝑠 𝑛∈ℤ
𝑘=0
∞

すなわち
[Math Processing Error]
注意: この結果はLerchの函数等式とも呼ばれる.
証明: 函数 𝑓(𝑥) を次のように定める:

𝑓(𝑥) =

𝑒2𝜋𝑖𝜏(𝑥+𝑎) (𝑥 + 𝑎)𝑠−1{0(𝑥 > −𝑎)(𝑥 < −𝑎).

このとき,

∑

𝑘∈ℤ

𝑓(𝑘) =

𝑒2𝜋𝑖𝜏(𝑘+𝑎)= 𝑒2𝜋𝑖𝜏𝑎 Φ(𝑒2𝜋𝑖𝜏 , 1 − 𝑠, 𝑎).
∑ (𝑘 + 𝑎)1−𝑠
𝑘=0∞

一方, 𝑝 ∈ ℝ に対して,∫−𝑎𝑒2𝜋𝑖𝜏(𝑥+𝑎) (𝑥 + 𝑎)𝑠−1 𝑒−2𝜋𝑖𝑝𝑥 𝑑𝑥 == 𝑒2𝜋𝑖𝑝𝑎

𝑒2𝜋𝑖(𝜏−𝑝)𝑥 𝑥𝑠−1 𝑑𝑥 = 𝑒2𝜋𝑖𝑝𝑎

̂ =
𝑓 (𝑝)

∞

∫0

∞

∫0

∞

𝑒2𝜋𝑖𝜏𝑥 𝑥𝑠−1 𝑒−2𝜋𝑖𝑝(𝑥−𝑎) 𝑑𝑥

Γ(𝑠)
Γ(𝑠)
𝑒2𝜋𝑖𝑝𝑎=.
(−2𝜋𝑖(𝜏 − 𝑝))𝑠(−2𝜋𝑖)𝑠 (𝜏 − 𝑝)𝑠

4番目の等号で, Cauchyの積分定理より, 𝑦 = −2𝜋𝑖(𝜏 − 𝑝)𝑥 とおいて 𝑦 に関する積分に書き換えた後に, 積分経路を (0, ∞) に置き換えても値が変わらないことを用いた.
したがって, Poissonの和公式∑

𝑚∈ℤ

𝑓(𝑚) =

∑𝑓

𝑛∈ℤ

̂ =
(𝑛)

∑𝑓

𝑛∈ℤ

̂
(−𝑛)
より, 示したい前者の公式

Γ(𝑠)𝑒2𝜋𝑖𝜏(𝑘+𝑎)𝑒−2𝜋𝑖𝑛𝑎=∑ (𝑘 + 𝑎)1−𝑠∑ (𝑛 + 𝜏)𝑠(−2𝜋𝑖)𝑠 𝑛∈ℤ
𝑘=0∞が得られる. 後者の公式は以下のように右辺の和を 𝑛 < 0 (𝑛 = −(𝑘 + 1), 𝑘 = 0, 1, 2, … ) と 𝑛 ≧ 0 に分けることによって得られる.

𝑒2𝜋𝑖𝜏𝑎 𝐿(𝜏, 𝑎, 1 − 𝑠) =Γ(𝑠)𝑒2𝜋𝑖𝜏(𝑘+𝑎)𝑒−2𝜋𝑖𝑛𝑎=∑ (𝑘 + 𝑎)1−𝑠∑ (𝑛 + 𝜏)𝑠(−2𝜋𝑖)𝑠 𝑛∈ℤ
𝑘=0
∞

=

Γ(𝑠)
𝑒2𝜋𝑖(𝑘+1)𝑎𝑒−2𝜋𝑖𝑛𝑎+𝑠𝑠∑∑(−2𝜋) ( 𝑘=0 (−(𝑘 + 1 − 𝜏))(𝑛 + 𝜏)𝑠 )𝑛=0=

Γ(𝑠) −𝜋𝑖𝑠/2
𝑒2𝜋𝑖𝑘𝑎𝑒−2𝜋𝑖𝑛𝑎
𝜋𝑖𝑠 2𝜋𝑖𝑎+𝑒𝑒𝑒∑ (𝑘 + 1 − 𝜏)𝑠 ∑ (𝑛 + 𝜏)𝑠 )
(2𝜋)𝑠
(
𝑘=0
𝑛=0

=

∞

∞

∞

∞

Γ(𝑠) −𝜋𝑖𝑠/2 2𝜋𝑖𝑎
𝑒 𝐿(𝑎, 1 − 𝜏, 𝑠) + 𝑒𝜋𝑖𝑠/2 𝐿(−𝑎, 𝜏, 𝑠)) .
(𝑒
(2𝜋)𝑠

□

注意: 上のPoissonの和公式を使う証明の方針はKnopp, Marvin and Robins, Sinai. Easy proofs of Riemann's functional equation for 𝜁(𝑠) and Lipschitz summation. Proc.
Amer. Math. Soc., Vol.129 (2001), No.7, 1915-1922 (https://www.ams.org/journals/proc/2001-129-07/S0002-9939-0106033-6/S0002-9939-01-06033-6.pdf)
による. この論文の説明の方がこのノートの説明より詳しい. Lerchの函数等式の別証明についてはBerndt, Bruce C. Two new proofs of Lerch's functional equation. Proc. Amer. Math. Soc., Vol.32 (1972), No.2, 403-408(https://www.ams.org/journals/proc/1972-032-02/S0002-9939-1972-0297721-3/)を参照せよ. □6.3.3 Hurwitzの函数等式

𝑧 = 𝑒2𝜋𝑖𝜏 とおくと,

1
𝑧𝑘
𝑧𝑚+1
=
+
∑ (𝑘 + 𝑎)𝑠∑ (𝑚 + 1 + 𝑎)𝑠
𝑎𝑠 𝑚=0𝑘=0
1
1= 𝑠 + 𝑧 Φ(𝑧, 𝑠, 1 + 𝑎) = 𝑠 + 𝑒2𝜋𝑖𝜏 𝐿(𝜏, 1 + 𝑎, 𝑠).
𝑎𝑎𝐿(𝜏, 𝑎, 𝑠) = Φ(𝑧, 𝑠, 𝑎) =∞∞なので, Lipschitzの和公式＝Lerchの函数等式は次のように書き直される:

𝑒2𝜋𝑖𝜏𝑎 𝐿(𝜏, 𝑎, 1 − 𝑠) =Γ(𝑠)𝑒𝜋𝑖𝑠/2−𝜋𝑖𝑠/2 2𝜋𝑖𝑎
𝜋𝑖𝑠/2 −2𝜋𝑖𝑎
𝐿(𝑎,
1
−
𝜏,
𝑠)
+
𝐿(𝑎,
1
+
𝜏,
𝑠)
+
.
𝑒
𝑒
𝑒
𝑒
(2𝜋)𝑠 (𝜏𝑠 )したがって, Re 𝑠 < 0 として 𝜏 → 0 とすると 1/𝜏 𝑠 → 0 となり, 一般に 𝐿(0, 𝑎, 𝑠) = 𝜁(𝑠, 𝑎) , 𝑒2𝜋𝑖𝜏 𝐿(𝜏, 1, 𝑠) = Li𝑠 (𝑒2𝜋𝑖𝜏 ) が成立しているので,

𝜁(1 − 𝑠, 𝑎) =Γ(𝑠) −𝜋𝑖𝑠/2
Li𝑠 (𝑒2𝜋𝑖𝑎 ) + 𝑒𝜋𝑖𝑠/2 Li𝑠 (𝑒−2𝜋𝑖𝑎 ))
(𝑒
(2𝜋)𝑠

(0 < 𝑎 < 1).

これをHurwitzの函数等式と呼ぶ. この公式は解析接続によって Re 𝑠 < 0 でなくても成立している.
Hurwitzの函数等式で, 𝑠 = 𝑚 + 1, 𝑚 ∈ ℤ≧0 とおくと,

𝜁(−𝑚, 𝑎) = 𝑚!

𝑒2𝜋𝑖𝑛𝑎∑ (2𝜋𝑖𝑛)𝑚+10≠𝑛∈ℤ(0 < 𝑎 < 1).

Hurwitzのゼータ函数 𝜁(𝑠, 𝑎) とBernoulli多項式 𝐵𝑘 (𝑥) については

𝜁(−𝑚, 𝑎) = −𝐵𝑚+1(𝑎)𝑚+1という公式がよく知られている(ノート「10 Gauss積分, ガンマ函数, ベータ函数」で示した). 以上を比較すると,

𝐵𝑚+1(𝑎) = −(𝑚 + 1)!

𝑒2𝜋𝑖𝑛𝑎∑ (2𝜋𝑖𝑛)𝑚+10≠𝑛∈ℤ(0 < 𝑎 < 1).

この結果はノート「13 Euler-Maclaurinの和公式」で示すことになる周期的Bernoulli多項式のFourier級数展開の結果と一致している. □
6.3.4 Riemannのゼータ函数の函数等式
Hurwitzの函数等式でさらに 𝑎 → 1 とすると, 𝜁(𝑠, 1) = 𝜁(𝑠) と Li𝑠 (1) = 𝜁(𝑠) より,

𝜁(1 − 𝑠) =さらに 𝑠 を 1 − 𝑠 で置き換えると,

𝜁(𝑠) =

Γ(𝑠)𝜋𝑠2 cos( ) 𝜁(𝑠).
(2𝜋)𝑠2

Γ(1 − 𝑠)𝜋𝑠𝜋𝑠2 sin( ) 𝜁(1 − 𝑠) = 2𝑠 𝜋 𝑠−1 sin( )Γ(1 − 𝑠) 𝜁(1 − 𝑠).
22(2 )1 𝑠

13 Euler-Maclaurinの和公式
黒木玄2018-07-04～2019-04-03, 2023-06-22
Copyright 2018,2019,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb)
https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf(https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf)
このファイルは Julia Box (https://juliabox.com) で利用できる.
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.
論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.

目次
 1 Bernoulli多項式
1.1 Bernoulli多項式の定義
1.2 Bernoulli多項式の基本性質
1.3 べき乗和
1.4 Bernoulli数の計算法
1.5 周期的Bernoulli多項式のFourier級数展開
 2 Euler-Maclaurinの和公式
2.1 Euler-Maclaurinの和公式の導出
2.2 Euler-Maclaurinの和公式の2つの解釈
2.3 Euler-Maclaurinの和公式の形式的導出
2.4 べき乗和(再)2.5 Stirlingの近似公式
2.6 Poissonの和公式とEuler-Maclaurinの和公式の関係
2.7 台形公式とPoissonの和公式の関係
 3 ゼータ函数への応用
3.1 解析接続
3.2 ζ(2)の近似計算
3.3 s = 1でのζ(s)の定数項がEuler定数になること
3.4 負の整数におけるゼータ函数の特殊値の計算
3.5 発散級数の有限部分と ζ(-r) の関係

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#gr(); ENV["PLOTS_TEST"] = "true"#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 Bernoulli多項式
1.1 Bernoulli多項式の定義
定義(Bernoulli多項式): Bernoulli多項式**によって定義する.

□

𝐵𝑛 (𝑥) (𝑛 = 0,1,2,…)を
𝑧𝑒𝑧𝑥 = ∞ 𝐵𝑛 (𝑥) 𝑧𝑛
𝑒𝑧 − 1 ∑ 𝑛!

1.2 Bernoulli多項式の基本性質
一般化Bernoulli多項式の基本性質: Bernoulli多項式

𝐵0 (𝑥) = 1.
1
(2)
∫0 𝐵𝑛 (𝑥)𝑑𝑥 = 𝛿𝑛,0 .
(1)

𝑛=0

𝐵𝑛 (𝑥) は以下の性質を満たしている:

(3)

𝑛
𝑛
𝐵𝑛 (𝑥 + ℎ) = ∑ (𝑘𝑛)𝐵𝑛−𝑘(𝑥)ℎ𝑘 = ∑ (𝑘𝑛)𝐵𝑘(𝑥)ℎ𝑛−𝑘 .

𝑘=0(4) 𝐵′𝑛 (𝑥) = 𝑛𝐵𝑛−1 (𝑥) .
𝑛−1 .
(5) 𝐵𝑛 (𝑥 + 1) = 𝐵𝑛 (𝑥) + 𝑛𝑥
(6) 𝐵𝑛 (1 − 𝑥) = (−1) 𝑛 𝐵𝑛 (𝑥).
(7) 𝐵𝑛 (1) = 𝐵𝑛 (0) + 𝛿𝑛,1 となる.

𝑘=0

𝐵𝑛 (0) = 1, 𝐵𝑛 (0) = − 12 とな, 𝑛 が3以上の奇数ならば 𝐵𝑛 (0) = 0 となる.
𝑒𝑧 − 1 = 1 + 𝑂(𝑧) より, 𝑧𝑒𝑧𝑥 = 1 + 𝑂(𝑧) なので 𝐵0 (𝑥) = 1.
証明: (1) 𝑒𝑧𝑥 = 1 + 𝑂(𝑧) ,𝑧𝑒𝑧 − 1(8)(2)を示そう.

なので, これらを比較して

1

1 𝑧𝑒𝑧𝑥𝑧 1 𝑒𝑧𝑥 𝑑𝑥 = 𝑧 𝑒𝑧 − 1 = 1,𝑑𝑥=
∫0 𝑒𝑧 − 1 𝑒𝑧 − 1 ∫0𝑒𝑧 − 1 𝑧∞ 𝑧𝑛 1
1 𝑧𝑒𝑧𝑥𝐵𝑛 (𝑥)𝑑𝑥∫0 𝑒𝑧 − 1 𝑑𝑥 = ∑𝑛=0 𝑛! ∫0∫0 𝐵𝑛 (𝑥)𝑑𝑥 = 𝛿𝑛,0 .

(3) 二項定理より,

𝑛 𝑛
1
𝑛−𝑘
𝑛 𝑑𝑦 =(𝑥+𝑦)𝑥∑ (𝑘) ∫0 𝑦𝑘 𝑑𝑦.
∫0
1

𝑘=0

ゆえに,

𝑥 の函数を 𝑥 の函数に移す線形写像(前方移動平均)
1𝑓(𝑥) ↦ ∫0 𝑓(𝑥 + 𝑦)𝑑𝑦は多項式を多項式に移し, 最高次の係数が1の多項式を最高次の係数が1の同次の多項式に移す. これより, 線形写像1𝑓(𝑥) ↦ ∫0 𝑓(𝑥 + 𝑦)𝑑𝑦 は多項式どうしの一対一対応を与える線形写像になっていることがわかる. そして,
∞ ∫ 1 𝐵𝑛 (𝑥 + 𝑦)𝑑𝑦
1 𝑧𝑒𝑧(𝑥+𝑦)
0
𝑑𝑥
=
𝑧𝑛 ,
∫0 𝑒𝑧 − 1 ∑𝑛!
𝑛=0
1 𝑧𝑒𝑧(𝑥+𝑦)𝑧𝑒𝑧𝑥 1 𝑒𝑧𝑦 𝑑𝑦 = 𝑧𝑒𝑧𝑥 𝑒𝑧 − 1 = 𝑒𝑧𝑥 = ∞ 𝑥𝑛 𝑧𝑛
𝑑𝑥
=
∑ 𝑛!
∫0 𝑒𝑧 − 1𝑒𝑧 − 1 ∫0𝑒𝑧 − 1 𝑧𝑛=0なので, これらを比較して,

1∫0 𝐵𝑛 (𝑥 + 𝑦)𝑑𝑦 = 𝑥𝑛が成立することがわかる. ゆえに,

𝑛 𝑛
1 𝑛 𝑛
𝑛−𝑘 ℎ𝑘 =
𝑛=
𝑘
(𝑥
+
ℎ
+
𝑦)𝑑𝑦
=
(𝑥
+
ℎ
𝐵
)
𝑥
𝑛
∑ (𝑘)
∫0
∫0 ∑ (𝑘)𝐵𝑛−𝑘(𝑥 + 𝑦)ℎ 𝑑𝑦
1

𝑘=0

より

𝑘=0

𝑛
𝐵𝑛 (𝑥 + ℎ) = ∑ (𝑘𝑛)𝐵𝑛−𝑘(𝑥)ℎ𝑘.
𝑘=0ℎ の係数を見ることによって,𝐵′𝑛 (𝑥) = 𝑛𝐵𝑛−1 (𝑥).
(5) Bernoulli多項式の母函数の 𝑥 に 𝑥 + 1 を代入すると,
𝑧𝑒𝑧(𝑥+1) = 𝑧𝑒𝑧 𝑒𝑧𝑥 = 𝑧(1 + (𝑒𝑧 − 1))𝑒𝑧𝑥 = 𝑧𝑒𝑧𝑥 + 𝑧𝑒𝑧𝑥
𝑒𝑧 − 1 𝑒𝑧 − 1
𝑒𝑧 − 1𝑒𝑧 − 1(4) すぐ上の等式の右辺の𝑧 について展開して比較すれば(5)が得られる.
(6) Bernoulli多項式の母函数の 𝑥 に 1 − 𝑥 を代入すると,
𝑧𝑒𝑧(1−𝑥) = 𝑧𝑒𝑧 𝑒−𝑧𝑥 = 𝑧𝑒−𝑧𝑥 = −𝑧𝑒−𝑧𝑥
𝑒𝑧 − 1 𝑒𝑧 − 1 1 − 𝑒−𝑧 𝑒−𝑧 − 1とBernoulli多項式の母函数の 𝑧 に −𝑧 を代入したものになるので, 両辺を 𝑧 について展開して比較すれば(5)が得られる.
(7) 上の(2)と(4)より, 𝑛 が2以上のとき,
1
1
𝐵𝑛 (1) − 𝐵𝑛 (0) = ∫0 𝐵′𝑛 (𝑥)𝑑𝑥 = 𝑛 ∫0 𝐵𝑛−1 (𝑥)𝑑𝑥 = 𝑛𝛿𝑛−1,0 = 𝛿𝑛,1
ゆえに 𝑛 が2以上のとき 𝐵𝑛 (1) = 𝐵𝑛 (0) + 𝛿𝑛,1 .
(8) 次の函数が 𝑧 の偶函数で 𝑧 → 0 で 1 になることから, (6)が得られる:
𝑧 + 𝑧 = 𝑧 𝑒𝑧/2 + 𝑒−𝑧/2 . □𝑒𝑧 − 1 2 2 𝑒𝑧/2 − 𝑒−𝑧/2
注意: 𝐵𝑛 = 𝐵𝑛 (0) はBernoulli数と呼ばれている. (3)で (𝑥,ℎ) を (0,𝑥) で置き換えると, Bernoulli多項式がBernoulli数で表わさなので両辺をれることがわかる:𝑛𝐵𝑛 (𝑥) = ∑ (𝑘𝑛)𝐵𝑘𝑥𝑛−𝑘 .
𝑘=0

𝐵 (𝑥) が 𝑛 について帰納的に一意的に決まる □𝐵0 = 1, 𝐵1 = − 12 , 𝐵2 = 16 , 𝐵3 = 0, 𝐵4 = − 301上の定理の条件(1) (2) (4)によってBernoulli多項式例:なので

In [3]:

Out[3]:𝐵0 (𝑥) = 1, 𝐵1 (𝑥) = 𝑥 − 12 , 𝐵2 (𝑥) = 𝑥2 − 𝑥 + 16 ,𝐵3 (𝑥) = 𝑥3 − 32 𝑥2 + 12 𝑥, 𝐵4 (𝑥) = 𝑥4 − 2𝑥3 + 𝑥2 − 301 .

1 BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
2 x = symbols("x", real=true)
3 [BernoulliPolynomial(n,x) for n in 0:10]


1 

𝑥 − 12 
2 − 𝑥 + 1 𝑥
6
2 𝑥 
3𝑥3𝑥 − 2 +2


1

4
3
2
𝑥 − 2𝑥 + 𝑥 − 30 

5 − 5𝑥4 + 5𝑥3 − 𝑥 𝑥

2 4 32 6 𝑥6 − 3𝑥5 + 5𝑥2 − 𝑥2 + 421 
7 − 7𝑥6 + 7𝑥5 − 7𝑥3 + 𝑥 𝑥
26 24 62 6 14𝑥
 𝑥8 − 4𝑥7 + 3 − 7𝑥3 + 2𝑥3 − 301 
85𝑥9 − 9𝑥2 + 6𝑥7 − 21𝑥5 + 2𝑥3 − 3𝑥10 
8
2 5 
15𝑥
3𝑥
10
9
6
4
 𝑥 − 5𝑥 + 2 − 7𝑥 + 5𝑥 − 2 + 66 □

In [4]:Out[4]:
In [5]:



1
2
3
4
5

# (2) ∫_0^1 B_n(x) dx = δ_{n0}​BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
x = symbols("x", real=true)[integrate(BernoulliPolynomial(n,x), (x,0,1)) for n = 0:10]'

1
2
3
4
5
6
7

# (3) B_n(x+h) = Σ_{k=0}^n binom(n,k) B_{n-k}(x) h^k​BernoulliNumber(n) = sympy.bernoulli(n)BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
BinomCoeff(n,k) = sympy.binomial_coefficients_list(n)[k+1]x, h = symbols("x h", real=true)[BernoulliPolynomial(n,x) == sum(k->BinomCoeff(n,k)*BernoulliNumber(k)*x^(n-k), 0:n) for[1 0 0 0 0 0 0 0 0 0 0]Out[5]: 1×11 adjoint(::Vector{Bool}) with eltype Bool:
1 1 1 1 1 1 1 1 1 1 1
In [6]:



1
2
3
4
5

# (4) B_n'(x) = n B_{n-1}(x)​BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
x = symbols("x", real=true)[diff(BernoulliPolynomial(n,x), x) == n*BernoulliPolynomial(n-1,x) for n = 1:10]'

Out[6]: 1×10 adjoint(::Vector{Bool}) with eltype Bool:
1 1 1 1 1 1 1 1 1 1
In [7]:

Out[7]:

In [8]:



1
2
3
4
5

# (5) B_n(x+1) = B_n(x) + n x^{n-1}​BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
x = symbols("x", real=true)[simplify(BernoulliPolynomial(n,x+1) - BernoulliPolynomial(n,x)) for n in 0:10]

1
2
3
4
5

# (6) B_n(1-x) = (-1)^n B_n(x)​BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
x = symbols("x", real=true)[expand(BernoulliPolynomial(n,1-x)) == (-1)^n*BernoulliPolynomial(n,x) for n in 0:10]'

 0 
 1 
 3𝑥2𝑥2  4𝑥3  5𝑥4  6𝑥56  7𝑥
8𝑥7 
 9𝑥8  10𝑥9 Out[8]: 1×11 adjoint(::Vector{Bool}) with eltype Bool:
1 1 1 1 1 1 1 1 1 1 1
In [9]:

Out[9]:

1
2
3
4
5# (7) B_n(1) = B_n(0) + δ_{n1}​BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
x = symbols("x", real=true)[expand(BernoulliPolynomial(n,1)) - BernoulliPolynomial(n,0) for n in 0:10]'[0 1 0 0 0 0 0 0 0 0 0]

In [10]:



1
2
3
4

# (8) B_n = B_n(0) は n が3以上の奇数ならば0になる.
​
BernoulliNumber(n) = sympy.bernoulli(n)[(n, BernoulliNumber(n)) for n in 0:10]

Out[10]: 11-element Vector{Tuple{Int64, Sym}}:(0, 1)(1, -1/2)(2, 1/6)(3, 0)(4, -1/30)(5, 0)(6, 1/42)(7, 0)(8, -1/30)(9, 0)(10, 5/66)

1.3 べき乗和

𝑚 は正の整数であるする. Bernoulli多項式について,
𝐵𝑚+1(𝑥 + 1) − 𝐵𝑚+1(𝑥) = (𝑚 + 1)𝑥𝑚 , i.e. 𝑥𝑚 = 𝐵𝑚+1(𝑥 +𝑚1)+−1 𝐵𝑚+1(𝑥)が成立しているので, これを 𝑥 = 0,1,…,𝑛 について足し上げると,𝑛
𝐵𝑚+1(𝑛 + 1) − 𝐵𝑚+1 . □∑ 𝑗𝑚 =
𝑚+1
𝑗=1

In [11]:



1
2
3
4
5

PowerSum(m, n) = sum(j->j^m, 1:n)BernoulliNumber(n) = sympy.bernoulli(n)BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)
PowerSumFormula(m, n) = (BernoulliPolynomial(m+1,n+1)-BernoulliNumber(m+1))/(m+1)[(m, PowerSum(m,10), PowerSumFormula(m, 10)) for m in 1:10]

Out[11]: 10-element Vector{Tuple{Int64, Int64, Sym}}:(1, 55, 55)(2, 385, 385)
(3, 3025, 3025)(4, 25333, 25333)(5, 220825, 220825)(6, 1978405, 1978405)(7, 18080425, 18080425)(8, 167731333, 167731333)(9, 1574304985, 1574304985)(10, 14914341925, 14914341925)

1.4 Bernoulli数の計算法
Bernoulli数

𝐵𝑛 は

𝑧 = ∞ 𝐵𝑛 𝑧𝑛
𝑒𝑧 − 1 ∑𝑛=1 𝑛!

で定義される. しかし, この展開を直接計算することによって Bernoulli 数を求めるのは効率が悪い.

𝑧 → 0 の極限を取ることによって 𝐵0 = 1 であることはすぐにわかる.
次に, 𝑛 が 3 以上の奇数のとき 𝐵𝑛 = 0 となることを(再び)示そう.
𝑧 + 𝑧 = 𝑧 𝑒𝑧 + 1 = 𝑧 𝑒𝑧/2 + 𝑒−𝑧/2
𝑒𝑧 − 1 2 2 𝑒𝑧 − 1 2 𝑒𝑧/2 − 𝑒−𝑧/2
より, 左辺は偶函数になるので, その展開の奇数次の項は消える. このことから, 𝐵1 = −1/2 でかつ, 0 = 𝐵3 = 𝐵5 = 𝐵7 = ⋯まず, 左辺のであることもわかる.

𝑧𝑒𝑧 = ∞ 𝑧𝑗 𝐵𝑘𝑧𝑘 = ∞ 𝑛 𝑛 𝐵𝑘 𝑧𝑛∑ 𝑗! 𝑘! ∑𝑒𝑧 − 1 𝑗,𝑘=0
𝑛=0 (∑
𝑘=0 (𝑘) ) 𝑛!
でかつ𝑧𝑒𝑧 = 𝑧 + 𝑧 = ∞ (𝐵𝑛 + 𝛿𝑛1 ) 𝑧𝑛∑𝑛!
𝑒𝑧 − 1 𝑒𝑧 − 1𝑛=0なので, これらを比較すると

𝑛 𝐵𝑘 = 𝛿𝑛1 .
∑
(
𝑘
𝑘=0 )
𝑛−1

ゆえに,

𝑛 を 𝑛 + 1 で置き換え, 𝑛 ≧ 1 とし, 𝐵𝑛 を他で表わす式に書き直すと
𝑛−1
𝐵𝑛 = − 𝑛 +1 1 ∑ (𝑛 +𝑘 1)𝐵𝑘 (𝑛 ≧ 1).
𝑘=0

𝐵𝑛 を求めることができる. 𝐵0 = 1, 𝐵1 = −1/2, 0 = 𝐵3 = 𝐵5 = 𝐵7 = ⋯ であることを使うと,
𝑚−1
𝐵2𝑚 = − 2𝑚1+ 1 (1 − 2𝑚2+ 1 + ∑ (2𝑚2𝑘+ 1)𝐵2𝑘) .
問題: 上の方ではSymPyにおけるBernoulli数の函数を利用した. Bernoulli数を計算するためのプログラムを自分で書け. □解答例: 次のセルの通り. □これを使えば帰納的に

In [12]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

# binomial coefficient: binom(n,k) = n(n-1)・(n-k+1)/k!
#mydiv(a, b) = a / b
mydiv(a::Integer, b::Integer) = a ÷ bfunction binom(n, k)
k < 0 && return zero(n)k == 0 && return one(n)b = one(n)for j in 1:k
b = mydiv(b*(n-k+j), j)
end
b
end
@show binom(Rational(big"100")/3, 30)​# Bernoulli numbers: B(n) = Bernoulli[n+1] = B_n#struct Bernoulli{T}
B::Array{T,1}end
function Bernoulli(; maxn=200)
B = zeros(Rational{BigInt},maxn+1)
B[1] = 1# B_0
B[2] = -1//2 # B_1
for n in big"2":2:maxn+1
B[n+1] = -(1//(n+1))*sum(j->binom(n+1,j)*B[j+1], 0:n-1)# B_n = -(1/(n+1)) Σ_{j=0}^{n-1} binom(n+1,j)*B_j
end
Bernoulli(B)end(B::Bernoulli)(n) = B.B[n+1]​maxn = 200@time B = Bernoulli(maxn=maxn) # B_n を B_{maxn} まで計算
BB(n) = float(B(n)) # B(n) = B_n である. BB(n)はその浮動小数点版​# SymPyのBernoulli数と比較して正しく計算できているかどうかを確認#
BernoulliNumber(n) = sympy.bernoulli(n)@show B_eq_B = [B(n) == BernoulliNumber(n) for n in 0:maxn]
println()@show all(B_eq_B)​
maxnprint = 30
println()for n in [0; 1; 2:2:maxnprint]
println("B($n) = ", B(n))
endprintln()for n in [0; 1; 2:2:maxnprint]
println("BB($n) = ", BB(n))
endbinom(Rational(big"100") / 3, 30) = 11240781188817808072725280//984770902183611232881
1.173728 seconds (12.36 M allocations: 261.706 MiB, 19.32% gc time, 19.96% compilation time)
B_eq_B = [B(n) == BernoulliNumber(n) for n = 0:maxn] = Bool[1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
all(B_eq_B) = true
B(0) = 1//1
B(1) = -1//2
B(2) = 1//6
B(4) = -1//30
B(6) = 1//42
B(8) = -1//30
B(10) = 5//66
B(12) = -691//2730
B(14) = 7//6
B(16) = -3617//510
B(18) = 43867//798
B(20) = -174611//330
B(22) = 854513//138
B(24) = -236364091//2730
B(26) = 8553103//6
B(28) = -23749461029//870
B(30) = 8615841276005//14322
BB(0) = 1.0
BB(1) = -0.5
BB(2) = 0.1666666666666666666666666666666666666666666666666666666666666666666666666666674
BB(4) = -0.03333333333333333333333333333333333333333333333333333333333333333333333333333359
BB(6) = 0.02380952380952380952380952380952380952380952380952380952380952380952380952380947
BB(8) = -0.03333333333333333333333333333333333333333333333333333333333333333333333333333359
BB(10) = 0.0757575757575757575757575757575757575757575757575757575757575757575757575757578
BB(12) = -0.2531135531135531135531135531135531135531135531135531135531135531135531135531131
BB(14) = 1.166666666666666666666666666666666666666666666666666666666666666666666666666661
BB(16) = -7.092156862745098039215686274509803921568627450980392156862745098039215686274513
BB(18) = 54.97117794486215538847117794486215538847117794486215538847117794486215538847111
BB(20) = -529.1242424242424242424242424242424242424242424242424242424242424242424242424247
BB(22) = 6192.123188405797101449275362318840579710144927536231884057971014492753623188388
BB(24) = -86580.25311355311355311355311355311355311355311355311355311355311355311355311313
BB(26) = 1.425517166666666666666666666666666666666666666666666666666666666666666666666661e+
06
BB(28) = -2.729823106781609195402298850574712643678160919540229885057471264367816091954032e+07
BB(30) = 6.015808739006423683843038681748359167714006423683843038681748359167714006423638e+
08

1.5 周期的Bernoulli多項式のFourier級数展開

𝐵˜𝑘(𝑥) = 𝐵𝑘(𝑥 − ⌊𝑥⌋) を周期的Bernoulli多項式と呼ぶことにする. 周期的Bernoulli多項式は 𝐵˜𝑘(𝑥 + 1) = 𝐵˜𝑘(𝑥) を満たしている.

𝑧𝑒𝑧(𝑥−⌊𝑥⌋) の 𝑥 の函数としての Fourier係数 𝑎𝑛 (𝑧) は次のように求まる:
𝑒𝑧 − 1𝑒𝑧 − 1 𝑎𝑛 (𝑧) = 1 𝑒𝑧𝑥 𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 = 𝑒(𝑧−2𝜋𝑖𝑛)𝑥 𝑥=1 = 𝑒𝑧 − 1 , 𝑎𝑛 (𝑧) = 𝑧 .
∫0[ 𝑧 − 2𝜋𝑖𝑛 ]𝑥=0 𝑧 − 2𝜋𝑖𝑛𝑧 − 2𝜋𝑖𝑛𝑧
ゆえに 𝑎0 (𝑧) = 1 であり, 𝑛 ≠ 0 のとき∞ 𝑧𝑘
𝑎𝑛 (𝑧) = − ∑ (2𝜋𝑖𝑛)𝑘𝑘=1
これより, ˜𝐵 𝑘(𝑥) のFourier係数 𝑎𝑘,𝑛 は, 𝑎0,𝑛 = 𝛿𝑛,0 , 𝑎𝑘,0 = 𝛿𝑘,0 を満たし, 𝑘 ≠ 0, 𝑛 ≧ 1 のとき
𝑘!
𝑎𝑘,𝑛 = − (2𝜋𝑖𝑛)𝑘
周期的Bernoulli多項式の母函数

となることがわかる. したがって, Fourier級数論より,
実数 について次が成立することがわかる:

𝑥

すなわち,

𝑒2𝜋𝑖𝑛𝑥 .
𝐵˜𝑘(𝑥) = 𝐵𝑘(𝑥 − ⌊𝑥⌋) = −𝑘! ∑ (2𝜋𝑖𝑛)𝑘𝑘 = 1,2,3,… について∞𝐵˜2𝑘−1(𝑥) = (−1)𝑘2(2𝑘 − 1)! ∑ sin(2𝜋𝑛𝑥)(2𝜋𝑛)2𝑘−1 ,𝑛=1

このことから,In [13]:

Out[13]:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

𝑘 = 1 のときは整数ではない実数 𝑥 について, 𝑘 ≧ 2 の場合にはすべての
𝑛≠0∞
𝐵˜2𝑘(𝑥) = (−1)𝑘−12(2𝑘)! ∑ cos(2𝜋𝑛𝑥)(2𝜋𝑛)2𝑘 .
𝑛=1

𝑘 が大きいとき(実際には 𝑘 = 5,6 程度ですでに), 周期的Bernoulli多項式は 𝑛 = 1 の項だけで𝑘−12(2𝑘)! cos(2𝜋𝑥)
˜
,
(𝑥)
≈
(−1
𝐵˜2𝑘−1(𝑥) ≈ (−1)𝑘2(2𝑘 − 1)! sin(2𝜋𝑥)
𝐵
)
2𝑘
2𝑘−1
(2𝜋)
(2𝜋)2𝑘BBB = Bernoulli(Float64.(B.B)) # Float64 Bernoulli numbers
BP(k,x) = sum(j->binom(k,j)*BBB(k-j)*x^j, 0:k) # Float64 Bernoulli polynomial
PBP(k,x) = BP(k, x - floor(x)) # periodic Bernoulli polynomial​# partial sum of Fourier series of periodic Bernoulli polynomial
function PSFS(k, N, x)
k == 0 && return zero(x)if isodd(k)return (-1)^((k+1)÷2)*2*factorial(k)*sum(n->sin(2π*n*x)/(2π*n)^k, 1:N)
else
return (-1)^(k÷2-1)*2*factorial(k)*sum(n->cos(2π*n*x)/(2π*n)^k, 1:N)
end
end
​
PP = []
x = -1.0:0.001:0.999
for (k,N) in [(1,20), (2,10), (3,3), (4,2), (5,1), (6,1)]
y = PBP.(k,x)
z = PSFS.(k, N, x)ymin = 1.2*minimum(y)ymax = 2.7*maximum(y)P = plot(legend=:topleft, size=(400, 250), ylim=(ymin, ymax))
plot!(x, y, label="B_$k(x-[x])")plot!(x, z, label="partial sum of Fourier series (N=$N)")
push!(PP, P)
end​plot(PP[1:2]..., size=(750, 280))

In [14]:

1 plot(PP[3:4]..., size=(750, 280))

Out[14]:

In [15]:

1 plot(PP[5:6]..., size=(750, 280))

Out[15]:

2 Euler-Maclaurinの和公式
2.1 Euler-Maclaurinの和公式の導出
Bernoulli多項式

𝐵𝑛 (𝑥) とBernoulli数 𝐵𝑛 について
𝐵0 (𝑥) = 1, 𝑑𝑥𝑑 𝐵𝑛𝑛!(𝑥) = 𝐵(𝑛𝑛−1− (𝑥)1)! ,𝐵1 (0) = − 12 , 𝐵1 (1) = 12 ,𝐵𝑛 (1) = 𝐵𝑛 (0) = 𝐵𝑛 (𝑛 = 0,2,3,4,5,…)
𝐵2𝑗+1 = 0 (𝑗 = 1,2,3,…)が成立している. 以下ではしばらくのあいだこれらの条件しか使わない.
部分積分を繰り返すことによって,

1

1∫0 𝑓(𝑥)𝑑𝑥 = ∫0 𝐵0 (𝑥)𝑓(𝑥)𝑑𝑥1= [𝐵1 (𝑥)𝑓(𝑥)]10 − ∫0 𝐵1 (𝑥)𝑓 ′ (𝑥)𝑑𝑥1= [𝐵1 (𝑥)𝑓(𝑥)]10 − 12 [𝐵2 (𝑥)𝑓 ′ (𝑥)]10 + ∫0 𝐵22(𝑥) 𝑓 ″ (𝑥)𝑑𝑥1= [𝐵1 (𝑥)𝑓(𝑥)]10 − 12 [𝐵2 (𝑥)𝑓 ′ (𝑥)]10 + 3!1 [𝐵3 (𝑥)𝑓 ″ (𝑥)]10 − ∫0 𝐵33!(𝑥) 𝑓 ‴ (𝑥)𝑑𝑥= ⋯⋯⋯⋯⋯𝑛1𝑘−1= ∑ (−1)𝑘! [𝐵𝑘(𝑥)𝑓 (𝑘−1) (𝑥)]10 + (−1)𝑛 ∫0 𝐵𝑛𝑛!(𝑥) 𝑓 (𝑛) (𝑥)𝑑𝑥
𝑘=1
𝑛1= 𝑓(0) +2 𝑓(1) + ∑(−1)𝑘−1 𝐵𝑘!𝑘 (𝑓 (𝑘−1) (1) − 𝑓 (𝑘−1) (0)) + (−1)𝑛 ∫0 𝐵𝑛𝑛!(𝑥) 𝑓 (𝑛) (𝑥)𝑑𝑥.
𝑘=2

𝑥

𝑥
⌊𝑥⌋ と書く. このとき, 𝑥 − ⌊𝑥⌋ は 𝑥 の「小数部分」になる. このように記号を準備し
𝑗1
𝑗+1
𝑓(𝑥)𝑑𝑥=∫𝑗∫0 𝑓(𝑥 + 𝑗)𝑑𝑥
+ 1) + 𝑛 (−1)𝑘−1 𝐵𝑘 (𝑓 (𝑘−1) (𝑗 + 1) − 𝑓 (𝑘−1) (𝑗)) + (−1)𝑛 1 𝐵𝑛 (𝑥) 𝑓 (𝑛) (𝑥 + 𝑗)𝑑𝑥
= 𝑓(𝑗) + 𝑓(𝑗
∑
∫0 𝑛!
𝑘!
2
𝑘=2
+ 1) + 𝑛 (−1)𝑘−1 𝐵𝑘 (𝑓 (𝑘−1) (𝑗 + 1) − 𝑓 (𝑘−1) (𝑗)) + (−1)𝑛 𝑗+1 𝐵𝑛 (𝑥 − ⌊𝑥⌋) 𝑓 (𝑛) (𝑥)𝑑𝑥.
= 𝑓(𝑗) + 𝑓(𝑗
∑
∫𝑗
2
𝑘!
𝑛!

実数 に対して, 以下の最大の整数をておくと, 整数 に対して,

𝑘=2

𝑎 < 𝑏 を満たす整数 𝑎,𝑏 に対して, 上の式を 𝑗 = 𝑎 から 𝑗 = 𝑏 − 1 まで足し上げると,
𝑏−1 𝑓(𝑗) + 𝑓(𝑗 + 1) 𝑛𝑏𝑏 𝐵𝑛 (𝑥 − ⌊𝑥⌋)𝑘−1 𝐵𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)) + (−1)𝑛𝑓(𝑥)𝑑𝑥=+(−1
𝑓 (𝑛) (𝑥)𝑑𝑥
)
∫𝑎
∑
∑
∫
𝑘!
𝑛!
2
𝑎
𝑗=𝑎
𝑘=2
𝑛
𝑏−1
= 𝑓(𝑎) +2 𝑓(𝑏) + ∑ 𝑓(𝑗) + ∑(−1)𝑘−1 𝐵𝑘!𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)) − 𝑅𝑛 .
𝑗=𝑎+1
𝑘=2
ここで

𝑏
𝑅𝑛 = (−1)𝑛−1 ∫𝑎 𝐵𝑛 (𝑥 𝑛!− ⌊𝑥⌋) 𝑓 (𝑛) (𝑥)𝑑𝑥
とおいた. さらい, 𝑛 が3以上の奇数のとき 𝐵𝑛 = 0 となることを使うと,
𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑏−1 𝑓(𝑗) −𝐵
𝑓(𝑥)𝑑𝑥=∑∑ (2𝑖)!2𝑖 (𝑓 (2𝑖−1) (𝑏) − 𝑓 (2𝑖−1) (𝑎)) − 𝑅𝑛 .
∫𝑎
2
𝑗=𝑎+1

この公式をEuler-Maclaurinの和公式と呼ぶ. これはる:1≦𝑖≦𝑛/2

𝑛 が3以上の奇数のとき 𝐵𝑛 = 0 となることを使うと次のように書き直され𝑓(𝑎) + 𝑓(𝑏) + 𝑏−1 𝑓(𝑗) − 𝑛 𝐵𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)) − 𝑅𝑛 .
𝑓(𝑥)𝑑𝑥
=
∑
∑ 𝑘!
∫𝑎
2
𝑏

𝑗=𝑎+1

𝑘=2

𝑛 が2以上の整数の場合の結果である. 𝑛 = 1 の場合の結果は次のようにして得られる.
1
1
1
1′ 𝑓(𝑥)𝑑𝑥 = [𝑥𝑓(𝑥)]1 − 𝑥𝑓 ′ (𝑥)𝑑𝑥 = 𝑓(1) − 𝑥𝑓 ′ (𝑥)𝑑𝑥
𝑓(𝑥)𝑑𝑥
=
𝑥
0
∫0
∫0
∫0
∫0
より, 𝑎 < 𝑏 を満たす整数 𝑎,𝑏 に対して,
𝑏−1
𝑏−1 1
𝑏
𝑓(𝑥)𝑑𝑥
=
𝑓(𝑗
+
1)
−
∑
∑ ∫0 𝑥𝑓 ′ (𝑥 + 𝑗)𝑑𝑥∫𝑎
注意: 上の公式は

𝑗=𝑎
𝑏

𝑗=𝑎

𝑏

= ∑ 𝑓(𝑗) − 𝑓(𝑎) − ∫𝑎 (𝑥 − ⌊𝑥⌋)𝑓 ′ (𝑥)𝑑𝑥
𝑗=𝑎

すなわち,

𝑏

𝑏

𝑏

𝑏

𝑏−1

′
∑ 𝑓(𝑗) = ∫𝑎 𝑓(𝑥)𝑑𝑥 + 𝑓(𝑎) + ∫𝑎 (𝑥 − ⌊𝑥⌋)𝑓 (𝑥)𝑑𝑥
𝑗=𝑎1= ∫𝑎 𝑓(𝑥)𝑑𝑥 + 𝑓(𝑎) + ∑ ∫0 𝑥𝑓 ′ (𝑥 + 𝑗)𝑑𝑥

これらのシンプルな公式も結構よく使われる.

□

𝑗=𝑎

注意: Euler-Maclaurinの和公式の証明は部分積分の繰り返しであった. それはTaylorの定理の証明とほぼ同じような議論である.
Taylorの定理も以下のような部分積分の繰り返しで証明される:

𝑝𝑛 (𝑡) = (𝑥 −𝑛! 𝑡)(𝑥 − 𝑎)𝑛 なのでとおくと, 𝑝0 (𝑡) = 1 , −𝑝′𝑛 (𝑡) = 𝑝𝑛−1 (𝑡), [𝑔(𝑡)(−𝑝𝑛 (𝑡))] 𝑥𝑎 = 𝑔(𝑎)
𝑛!
𝑛

𝑥

𝑥

𝑓(𝑥) = 𝑓(𝑎) + ∫𝑎 𝑓(𝑡)𝑑𝑡 = 𝑓(𝑎) + ∫𝑎 𝑓(𝑡)𝑝0 (𝑡)𝑑𝑡𝑥= 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + ∫𝑎 𝑓 ′ (𝑡)𝑝1 (𝑡)𝑑𝑡𝑥= 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 𝑓 ″ (𝑎) (𝑥 −2 𝑎)2 + ∫𝑎 𝑓 ″ (𝑡)𝑝2 (𝑡)𝑑𝑡𝑥= 𝑓(𝑎) + 𝑓 ′ (𝑎)(𝑥 − 𝑎) + 𝑓 ″ (𝑎) (𝑥 −2 𝑎)2 + 𝑓 ‴ (𝑎) (𝑥 −3!𝑎)3 + ∫𝑎 𝑓 ‴ (𝑡)𝑝3 (𝑡)𝑑𝑡= ⋯⋯⋯⋯⋯𝑛= ∑ 𝑓 (𝑘) (𝑎) (𝑥 −𝑘!𝑎)𝑘 + 𝑅𝑛 .
𝑘=0
ここで

𝑅𝑛 = ∫𝑎 𝑓 (𝑛) 𝑝𝑛 (𝑡)𝑑𝑡 = ∫𝑎 𝑓 (𝑛) (𝑥 −𝑛! 𝑡) 𝑑𝑡
とおいた この意味でEuler Maclaurinの和公式はTaylorの公式の「仲間」だと言える □𝑥𝑥𝑛

2.2 Euler-Maclaurinの和公式の2つの解釈
Euler-Maclaurinの和公式の解釈1:

𝑏−1 𝑓(𝑗) + 𝑓(𝑗 + 1)

は積分

𝑏

∑
𝑗=𝑎

2

= 𝑓(𝑎) +2 𝑓(𝑏) + ∑ 𝑓(𝑗)
𝑏−1

𝑗=𝑎+1

∫𝑎 𝑓(𝑥)𝑑𝑥 の近似計算に使われる台形公式である. ゆえに, Euler-Maclaurinの和公式
𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑏−1 𝑓(𝑗) −𝐵2𝑖 (𝑓 (2𝑖−1) (𝑏) − 𝑓 (2𝑖−1) (𝑎)) − 𝑅𝑛 ,𝑓(𝑥)𝑑𝑥
=
∑
∑
∫𝑎
(2𝑖)!
2
𝑗=𝑎+1
1≦𝑖≦𝑛/2𝑏 𝐵𝑛 (𝑥 − ⌊𝑥⌋)(𝑛)
𝑅𝑛 = (−1)𝑛−1 ∫𝑎𝑛! 𝑓 (𝑥)𝑑𝑥

は台形公式による積分の近似の誤差が,𝐵2𝑖 (𝑓 (2𝑖−1) (𝑏) − 𝑓 (2𝑖−1) (𝑎)) − 𝑅𝑛
− ∑ (2𝑖)!
1≦𝑖≦𝑛/2

𝑛 = 1 の場合には, 𝐵1 (𝑥) = 𝑥 − 12 なので,𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑏−1 𝑓(𝑗) − 𝑏 𝑥 − ⌊𝑥⌋ − 1 𝑓 ′ (𝑥)𝑑𝑥.
𝑓(𝑥)𝑑𝑥
=
∑
∫𝑎
∫𝑎 (
2
2)
𝑗=𝑎+1
𝑛 = 2 の場合には 𝐵2 (𝑥) = 𝑥2 − 𝑥 + 16 , 𝐵2 = 16 であり,𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑏−1 𝑓(𝑗) − 𝑓 ′ (𝑏) − 𝑓 ′ (𝑎) + 𝑏 𝐵2 (𝑥 − ⌊𝑥⌋) 𝑓 ″ (𝑥)𝑑𝑥.
𝑓(𝑥)𝑑𝑥
=
∑
∫𝑎
∫𝑎
2
12
2
𝑗=𝑎+1
となる. □になっていることを意味している. 例えば,

In [16]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# すぐ上の公式の検証​
BernoulliNumber(n) = sympy.bernoulli(n)BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)​
function EulerMaclaurinIntegral(f, a, b, n)
x = symbols("x", real=true)((f(a)+f(b))/Sym(2)+ sum(j->f(j), a+1:b-1)- sum(k -> (BernoulliNumber(k)/factorial(Sym(k))* (diff(f(x), x, k-1)(x=>b) - diff(f(x), x, k-1)(x=>a))), 2:n))end​
function EulerMaclaurinRemainder(f, a, b, n)
x = symbols("x", real=true)g = diff(f(x), x, n)(-1)^(n-1) * sum(k -> (integrate(BernoulliPolynomial(n,x)*g(x=>x+k), (x,0,1))), a:b-1)/factorial(Sym(n))
end​x = symbols("x", real=true)​[integrate(x^m, (x, 0, 10)) for m in 7:15] |> display​[
EulerMaclaurinIntegral(x->x^m, 0, 10, 5) - EulerMaclaurinRemainder(x->x^m, 0, 10, 5)
for m in 7:15
] |> display

12500000  1000000000

9
1000000000  100000000000 
11 
 250000000000

3
 10000000000000

13
 50000000000000 
7
 200000000000000

3


625000000000000 
12500000  1000000000 
9
1000000000  100000000000 
11 
 250000000000

3


 10000000000000
13
 50000000000000 
7
 200000000000000

3


625000000000000 

Euler-Maclaurinの和公式の解釈2: Euler-Maclaurinの和公式は次のように書き直される:𝑏𝑏𝑓(𝑎) + 𝑓(𝑏) +𝐵2𝑖 (𝑓 (2𝑖−1) (𝑏) − 𝑓 (2𝑖−1) (𝑎)) + 𝑅𝑛 ,𝑓(𝑗)=𝑓(𝑥)𝑑𝑥
+
∑
∑
∫
2
(2𝑖)!
𝑎
𝑗=𝑎
1≦𝑖≦𝑛/2𝑏 𝐵𝑛 (𝑥 − ⌊𝑥⌋)(𝑛)
𝑅𝑛 = (−1)𝑛−1 ∫𝑎𝑛! 𝑓 (𝑥)𝑑𝑥
これは 𝑛 が3以上の奇数のとき 𝐵𝑛 = 0 となることを使うと次のように書き直される:𝑏𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑛 𝐵𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)) + 𝑅𝑛 ,𝑓(𝑗)=𝑓(𝑥)𝑑𝑥
+
∑
∫𝑎
∑
2
𝑗=𝑎
𝑘=2 𝑘!
𝑏
𝑅𝑛 = (−1)𝑛−1 ∫𝑎 𝐵𝑛 (𝑥 𝑛!− ⌊𝑥⌋) 𝑓 (𝑛) (𝑥)𝑑𝑥𝑏𝑏𝑓(𝑗)この等式は函数 𝑓 の整数における値の和を積分∑∫𝑎 𝑓(𝑥)𝑑𝑥 で近似したときの誤差が
𝑗=𝑎𝑓(𝑎) + 𝑓(𝑏) +𝐵2𝑖 (𝑓 (2𝑖−1) (𝑏) − 𝑓 (2𝑖−1) (𝑎)) + 𝑅𝑛
∑
(2𝑖)!
2
1≦𝑖≦𝑛/2
1 なので,になっていることを意味している. 例えば, 𝑛 = 1 の場合には, 𝐵1 (𝑥) = 𝑥 −2𝑏𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑏 𝑥 − ⌊𝑥⌋ − 1 𝑓 ′ (𝑥)𝑑𝑥.
𝑓(𝑗)=𝑓(𝑥)𝑑𝑥
+
∑
∫𝑎
∫𝑎 (
2
2)
𝑗=𝑎
𝑛 = 2 の場合には 𝐵2 (𝑥) = 𝑥2 − 𝑥 + 16 , 𝐵2 = 16 であり,𝑏𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑓 ′ (𝑏) − 𝑓 ′ (𝑎) − 𝑏 𝐵2 (𝑥 − ⌊𝑥⌋) 𝑓 ″ (𝑥)𝑑𝑥.
𝑓(𝑗)=𝑓(𝑥)𝑑𝑥
+
∑
∫
∫
2
12
2

In [17]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

# すぐ上の公式を検証​
PowerSum(m, n) = sum(j->j^m, 1:n)BernoulliNumber(n) = sympy.bernoulli(n)BernoulliPolynomial(n,x) = sympy.bernoulli(n,x)​
function EulerMaclaurinSum(f, a, b, n)
x = symbols("x", real=true)(
integrate(f(x), (x, a, b))+ (f(a)+f(b))/Sym(2)+ sum(k -> (BernoulliNumber(k)/factorial(Sym(k))* (diff(f(x), x, k-1)(x=>b) - diff(f(x), x, k-1)(x=>a))), 2:n))end​
function EulerMaclaurinRemainder(f, a, b, n)
x = symbols("x", real=true)g = diff(f(x), x, n)(-1)^(n-1) * sum(k -> (integrate(BernoulliPolynomial(n,x)*g(x=>x+k), (x,0,1))), a:b-1)/factorial(Sym(n))
end​[PowerSum(m, 10) for m in 1:10] |> display​[EulerMaclaurinSum(x->x^m, 1, 10, m+1) for m in 1:10] |> display​[
EulerMaclaurinSum(x->x^m, 1, 10, m-1) + EulerMaclaurinRemainder(x->x^m, 1, 10, m-1)
for m in 3:10
] |> display​[
EulerMaclaurinSum(x->x^m, 1, 10, m-2) + EulerMaclaurinRemainder(x->x^m, 1, 10, m-2)
for m in 4:10
] |> display​[
EulerMaclaurinSum(x->x^m, 1, 10, m-3) + EulerMaclaurinRemainder(x->x^m, 1, 10, m-3)
for m in 5:10
] |> display

10-element Vector{Int64}:
55
385
3025
25333
220825
1978405
18080425
167731333
1574304985
14914341925


55 
385 

3025 

25333
 220825  1978405 
18080425  167731333
 1574304985  14914341925 3025 
25333 
220825
 1978405  18080425  167731333  1574304985 
14914341925
25333  220825  1978405 
18080425  167731333
 1574304985  14914341925  220825  1978405 
18080425  167731333
 1574304985  14914341925 
2.3 Euler-Maclaurinの和公式の形式的導出
函数

𝑓(𝑥) に対して, ある函数 𝐹(𝑥) で𝐹(𝑥 + 1) − 𝐹(𝑥) = 𝑓(𝑥 + ℎ)
∂ とおくと, 形式的にその条件はという条件を満たすものを求める問題を考える. そのとき, 𝐷 =∂𝑥(𝑒𝐷 − 1)𝐹(𝑥) = 𝑒ℎ𝐷 𝑓(𝑥) = 𝐷𝑒ℎ𝐷 ∫ 𝑓(𝑥)𝑑𝑥と書き直される. これより, 形式的には∞ 𝐵 (ℎ)∞ℎ𝐷𝑘 𝐷𝑘 𝑓(𝑥)𝑑𝑥 = 𝑓(𝑥)𝑑𝑥 + 𝐵𝑘(ℎ) 𝑓 (𝑘−1) (𝑥).
𝐹(𝑥) = 𝑒𝐷𝑒𝑓(𝑥)𝑑𝑥=𝐷 −1 ∫∑ 𝑘! ∫∑ 𝑘!
∫𝑘=0

これより, 整数𝑎 < 𝑏 について, 形式的には
𝑏−1∞ 𝐵 (ℎ)
𝑏
𝑘
𝑓(𝑗
+
ℎ)
=
𝐹(𝑏)
−
𝐹(𝑏)
=
𝑓(𝑥)𝑑𝑥+∑∑ 𝑘! (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)).
∫𝑎
𝑗=𝑎

これは

𝑘=1

𝑘=1

ℎ = 0 とおけば形式的にEuler-Maclaurinの和公式
𝑏−1
∞ 𝐵
𝑏
𝑘
𝑓(𝑗)
=
𝐹(𝑏)
−
𝐹(𝑏)
=
𝑓(𝑥)𝑑𝑥+∑∑ 𝑘! (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)).
∫𝑎
𝑗=𝑎

𝑘=1

に一致する.

2.4 べき乗和(再)𝑓 (𝑚+1) (𝑥) = 0 ならばEuler-Maclaurinの和公式における 𝑅𝑚 が消えて, 𝑓 (𝑚) (𝑥) が定数函数になるので,
𝑏𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑚+1 𝐵𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎))𝑓(𝑗)=𝑓(𝑥)𝑑𝑥
+
∑
∑ 𝑘!
∫𝑎
2
𝑗=𝑎

となる.

𝑘=2

𝑚 を正の整数であるとし, 𝑓(𝑥) = 𝑥𝑚 , 𝑎 = 0, 𝑏 = 𝑛 とすると,(𝑥𝑚 )(𝑘−1) = 𝑚(𝑚 − 1)⋯(𝑚 − 𝑘 + 2)𝑥𝑚−𝑘+1 = 𝑚 𝑘!+ 1 (𝑚 𝑘+ 1)𝑥𝑚+1−𝑘なので,𝐵0 (1) = 𝐵0 = 1, 𝐵1 (1) = 𝐵1 + 1 = 12 , 𝐵𝑛 (1) = 𝐵𝑛 + 𝛿𝑛,1 も使うと,𝑛𝑚𝑚 = 𝑛 𝑥𝑚 𝑑𝑥 + 𝑛𝑚 + 𝐵𝑘 𝑘! 𝑚 + 1 𝑥𝑚+1−𝑘
𝑗
∑
∫0
2 ∑
𝑗=1
𝑘=2 𝑘! 𝑚 + 1 ( 𝑘 )𝑛𝑚 + 1 𝑚 𝑚 + 1 𝐵𝑘𝑛𝑚+1−𝑘= 𝑚𝑛𝑚+1++1 2 𝑚+1 ∑
𝑘=2 ( 𝑘 )𝑚
= 𝑚 +1 1 ∑ (𝑚 𝑘+ 1)𝐵𝑘(1)𝑛𝑚+1−𝑘
𝑘=0
(𝑥)
𝐵
= 𝑚+1𝑚 +−1𝐵𝑚+1 .

最後の等号で

𝑚+1
𝐵𝑚+1(𝑥 + ℎ) = ∑ (𝑚 𝑘+ 1)𝐵𝑘(ℎ)𝑥𝑚+1−𝑘を使った. 以上の結果は前節で得た結果と一致する.

□

𝑘=0

2.5 Stirlingの近似公式

log𝑛! = log1 + log2 + ⋯ + log𝑛 の log𝑥 の積分による近似をEuler-Maclaurinの和公式を使って精密化すると, Stirlingの近似公式

log𝑛! = 𝑛log𝑛 − 𝑛 + 12 log𝑛 + log √⎯2𝜋⎯⎯⎯ + 𝑜(1)の精密化が得られることを説明しよう.

𝑓(𝑥) = log𝑥 にStirlingの和公式を適用すると, 𝑘 = 1,2,3,… に対して,
𝑘−1
𝑓 (𝑘) (𝑥) = (−1) 𝑥(𝑘𝑘 − 1)! .
𝐾 は3以上の奇数とする. 3以上の奇数 𝑘 について 𝐵𝑘 = 0 なので, 𝑁 > 𝑛 のとき,
𝑁

log𝑛! = log𝑁! + log𝑛 − ∑ log𝑗
𝑗=𝑛

𝐾−1
𝑁
1 + 𝑅𝐾,𝑁= log𝑁! + log𝑛 − (∫𝑛 log𝑥𝑑𝑥 + log𝑛 +2 log𝑁 + ∑ 𝑘(𝑘𝐵−𝑘 1) ( 𝑁1𝑘−1 − 𝑛𝑘−1
)
)
𝑘=2
𝐾−1
= log𝑁! − (𝑁 log𝑁 − 𝑁 + 12 log𝑁 ) − ∑ 𝑘(𝑘𝐵−𝑘 1) 𝑁1𝑘−1
𝑘=2
𝐾−1
1 + 𝑅𝐾,𝑁 ,+ 𝑛log𝑛 − 𝑛 + 12 log𝑛 + ∑ 𝑘(𝑘𝐵−𝑘 1) 𝑛𝑘−1
𝑘=2
𝑁 𝐵𝐾̃ (𝑥) (−1)𝐾−1
𝑅𝐾,𝑁 = (−1)𝐾−1 ∫𝑛 𝐾 𝑥𝐾 𝑑𝑥
ただし, 𝐵𝑛̃ (𝑥) = 𝐵𝑛 (⌊𝑥⌋) とおいた.
ここでは, 𝑁 → ∞ のとき
log𝑁! − (𝑁 log𝑁 − 𝑁 + 12 log𝑁 ) → √⎯2𝜋⎯⎯⎯となることは既知であるものとする. 例えば, ノート「10 Gauss積分, ガンマ函数, ベータ函数(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb)」「12Fourier解析 (http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)」のStirlingの近似公式の節を参照して欲しい. 以下ではそれらのノートよりも精密な結果を得る.
このとき, 上の結果で𝑁 → ∞ とすると,

𝐾−1
1 + 𝑅𝐾 ,log𝑛! = 𝑛log𝑛 − 𝑛 + 12 log𝑛 + log √⎯2𝜋⎯⎯⎯ + ∑ 𝑘(𝑘𝐵−𝑘 1) 𝑛𝑘−1
𝑘=2
∞ 𝐵̃ (𝑥) (−1)𝐾−1
1 .
𝑅𝐾 = (−1)𝐾−1 ∫𝑛 𝐾𝐾 𝑥𝐾 𝑑𝑥 = 𝑂 ( 𝑛𝐾−1)
𝐾 = 2𝐿 + 1 とおくことによって次が得られる: 正の整数 𝐿 に対して,
𝐿
1 +𝑂 1 .
log𝑛! = 𝑛log𝑛 − 𝑛 + 12 log𝑛 + log √⎯2𝜋⎯⎯⎯ + ∑ (2𝑙)(2𝑙𝐵2𝑙− 1) 𝑛2𝑙−1( 𝑛2𝐿 )
𝑙=1

これが求めていた結果である.
例えば,In [18]:

Out[18]:

𝐿 = 2 のとき, 𝐵2 = 16 , 𝐵4 = − 301 なので,
1 +𝑂 1 .
log𝑛! = 𝑛log𝑛 − 𝑛 + 12 log𝑛 + log √⎯2𝜋⎯⎯⎯ + 12𝑛1 − 360𝑛3
( 𝑛4 )

1 x = symbols("x")
2 series(exp(x/12-x^3/360), x, n=4)𝑥2 − 139𝑥3 + 𝑂 (𝑥4 )1 + 12𝑥 + 288
51840

2.6 Poissonの和公式とEuler-Maclaurinの和公式の関係
Poissonの和公式とは, 急減少函数

𝑓(𝑥) に対して,̂∑ 𝑓(𝑚) = ∑ 𝑓 (𝑛),
𝑚∈ℤ

𝑛∈ℤ

̂ = ∫ 𝑓(𝑥)𝑒2𝜋𝑖𝑝𝑥 𝑑𝑥
𝑓 (𝑝)ℝが成立するという結果であった. これの右辺は以下のように変形できる:∞̂ = ∑ ∫ 𝑓(𝑥)𝑒2𝜋𝑖𝑛𝑥 𝑑𝑥 = ∫ 𝑓(𝑥)𝑑𝑥 + 2 ∑ ∫ 𝑓(𝑥)cos(2𝜋𝑛𝑥)𝑑𝑥
𝑓 (𝑛)
∑
ℝ
𝑛∈ℤ
𝑛∈ℤ ℝ
𝑛=1 ℝ
∞
= ∫ℝ 𝑓(𝑥)𝑑𝑥 − ∑ ∫ℝ 𝑓 ′ (𝑥) sin(2𝜋𝑛𝑥)
𝜋𝑛 𝑑𝑥
𝑛=1
∞
= ∫ℝ 𝑓(𝑥)𝑑𝑥 + ∫ℝ (− ∑ sin(2𝜋𝑛𝑥)𝑓 ′ (𝑥)𝑑𝑥𝜋𝑛)𝑛=1
2つ目の等号では 𝑒2𝜋𝑖𝑛𝑥 + 𝑒−2𝜋𝑖𝑛𝑥 = 2cos(2𝜋𝑛𝑥) を用い, 3つ目の等号では部分積分を実行し, 4つ目の等号では無限和と積分の順序を交換した. それらの操作は 𝑓(𝑥) が急減少函数であれば容易に正当化される.
一方, Euler-Maclaurinの和公式のを使う場合から,𝐵1 (𝑥 − ⌊𝑥⌋) = 𝑥 − ⌊𝑥⌋ − 12
𝑓(𝑚) = ∫ℝ 𝑓(𝑥)𝑑𝑥 + ∫ℝ (𝑥 − ⌊𝑥⌋ − 12 ) 𝑓 ′ (𝑥)𝑑𝑥∑𝑚∈ℤが導かれる. これは部分積分によって得られる次の公式からただちに導かれる易しい公式であることにも注意せよ:

1 𝑓 ′ (𝑥)𝑑𝑥 = 𝑥 − 𝑛 − 1 𝑓(𝑥) 𝑛+1 − 𝑛+1 𝑓(𝑥)𝑑𝑥 − 𝑛
𝑥
−
𝑛
−
∫𝑛 (
[(
2)
2 ) ]𝑛 ∫𝑛
𝑛+1= 𝑓(𝑛 + 1)2 − 𝑓(𝑛) − ∫𝑛 𝑓(𝑥)𝑑𝑥.
以上の2つの結果を比較すると, Poissonの和公式とEuler-Maclaurinの和公式の 𝐵1 (𝑥 − ⌊𝑥⌋) を使った場合は,∞
𝑥 − ⌊𝑥⌋ − 12 = − ∑ sin(2𝜋𝑛𝑥)
𝜋𝑛
𝑛+1

𝑛=1

という公式で結び付いていることがわかる. この公式を認めれば, Euler-Maclaurinの和公式のPoissonの和公式が導かれる.

(∗)

𝐵1 (𝑥 − ⌊𝑥⌋) を使った場合から∗∗

公式( )の左辺はいわゆるのこぎり波であり, 右辺はそのFourier級数である. 公式( )はFourier級数論における非常に有名な公式
であり, 本質的にそれと同じ公式はFourier級数論について書かれた文献には例として必ず載っていると言ってよいくらいである. (Fourier級数論より, 公式( )は が整数でないときには実際に成立していることがわかる.)∗ 𝑥

このように, のこぎり波のFourier級数展開という非常に特殊な公式はPoissonの和公式という一般的な公式を導くだけの力を持っているのである.
まとめ: のこぎり波のFourier級数展開は部分積分を通してPoissonの和公式と本質的に同値である!

□

この節で解説したことは次の文献で指摘されている:
Tim Jameson, An elementary derivation of the Poisson summation formula(http://www.maths.lancs.ac.uk/jameson/poisson.pdf)
In [19]:



1
2
3
4
5
6
7
8

B_1(x) = x - 1/2
b(x) = B_1(x - floor(x))
S(N,x) = -sum(n->sin(2π*n*x)/(π*n), 1:N)
x = -2:0.001:1.999
N = 10plot(size=(400,200), ylim=(-0.6,1.2), legend=:top)
plot!(x, b.(x), label="B_1(x-[x]) = x - [x] -1/2")
plot!(x, S.(N,x), label="partial sum of Fourier series (N=$N)")

Out[19]:𝐵𝑘(𝑥 − ⌊𝑥⌋) のFourier級数展開の節を見ればわかるように,∞ cos(2𝜋𝑛𝑥) ∞ sin(2𝜋𝑛𝑥), ∑ 𝑛𝑘∑𝑛=1 𝑛𝑘𝑛=1の型のFourier級数の収束先は平行移動と定数倍の違いを除いて周期的Bernoulli多項式になる. □補足: このノートの上の方の周期的Bernoulli多項式

2.7 台形公式とPoissonの和公式の関係
簡単のため

𝑓(𝑥) は ℝ 上の急減少函数であるとし, 𝑎,𝑏 ∈ ℤ かつ 𝑎 < 𝑏 であると仮定する. このとき,
sin(2𝜋𝑛𝑥) ′ = 2cos(2𝜋𝑛𝑥)( 𝜋𝑛 )を使った部分積分とノコギリ波のFourier級数展開∞
1 = 𝐵1 (𝑥 − ⌊𝑥⌋)
− ∑ sin(2𝜋𝑛𝑥)
=
𝑥
−
⌊𝑥⌋
−
𝜋𝑛
2
𝑛=1

より,

𝑏

∞

𝑏

𝑏

𝑓(𝑥)𝑒−2𝜋𝑖𝑛𝑥 𝑑𝑥 = ∫𝑎 𝑓(𝑥)𝑑𝑥 + ∑ 2 ∫𝑎 𝑓(𝑥)cos(2𝜋𝑛𝑥)𝑑𝑥
∑
∫
𝑎
𝑛∈ℤ
𝑛=1
∞ 𝑏
𝑏
= ∫𝑎 𝑓(𝑥)𝑑𝑥 − ∑ ∫𝑎 𝑓 ′ (𝑥) sin(2𝜋𝑛𝑥)
𝜋𝑛 𝑑𝑥
𝑛=1
𝑏
𝑏
= ∫𝑎 𝑓(𝑥)𝑑𝑥 + ∫𝑎 𝑓 ′ (𝑥) (𝑥 − ⌊𝑥⌋ − 12 ) 𝑑𝑥
𝑏−1 𝑚+1𝑏= ∫𝑎 𝑓(𝑥)𝑑𝑥 + ∑ ∫𝑚 𝑓 ′ (𝑥) (𝑥 − ⌊𝑥⌋ − 12 ) 𝑑𝑥
𝑚=𝑎
𝑏−1 1
𝑏
= ∫𝑎 𝑓(𝑥)𝑑𝑥 + ∑ ∫0 𝑓 ′ (𝑡 + 𝑚) (𝑡 − 12 ) 𝑑𝑡
𝑚=𝑎
𝑏−1
1
𝑏
1
= ∫𝑎 𝑓(𝑥)𝑑𝑥 + ∑ ([𝑓(𝑡 + 𝑚) (𝑡 − 12 )] − ∫0 𝑓(𝑡 + 𝑚)𝑑𝑡)0
𝑚=𝑎𝑏−1 𝑓(𝑚) + 𝑓(𝑚 + 1)
=∑
2
𝑚=𝑎
𝑏
= ∑ 𝑓(𝑚) − 𝑓(𝑎) +2 𝑓(𝑏) .
𝑚=𝑎
要するに, ノコギリ波 𝐵1 (𝑥 − ⌊𝑥⌋) のFourier級数展開の公式を認めて使えば,
𝑏−1𝑏𝑏−2𝜋𝑖𝑛𝑥 𝑑𝑥 = 𝑓(𝑚) + 𝑓(𝑚 + 1) = 𝑓(𝑚) − 𝑓(𝑎) + 𝑓(𝑏)
𝑓(𝑥)
𝑒
∑ ∫𝑎
∑
∑
2
2
𝑛∈ℤ

𝑚=𝑎

𝑚=𝑎

という公式が得られる この公式の右辺は積分の近似計算で使われる台形公式に一致しており 途中の計算では

𝐵1 (𝑥 − ⌊𝑥⌋) を

3 ゼータ函数への応用

𝑠 > 1 のとき(より一般には Re𝑠 > 1 のとき),∞
𝜁(𝑠) = ∑ 𝑛1𝑠𝑛=1

は絶対収束しているのであった. これにEuler-Maclaurinの和公式

𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑛 𝐵𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)) + 𝑅𝑛 ,𝑓(𝑗)=𝑓(𝑥)𝑑𝑥
+
∑
∑
∫𝑎
2
𝑗=𝑎
𝑘=2 𝑘!
𝑏 𝐵𝑛 (𝑥 − ⌊𝑥⌋)(𝑛)
𝑅𝑛 = (−1)𝑛−1 ∫𝑎𝑛! 𝑓 (𝑥)𝑑𝑥𝑏を適用してみよう.

3.1 解析接続

Re𝑠 > 1 であるとし, 𝑓(𝑥) = 𝑥−𝑠 とおく. このとき,∞∞∞−𝑠 𝑑𝑥 = 𝑥−𝑠+1 = 𝑎−(𝑠−1) ,𝑓(𝑥)𝑑𝑥=𝑓(𝑏) = 𝑏−𝑠 → 0 (𝑏 → ∞).
𝑥∫𝑎∫1[ −𝑠 + 1 ]1 𝑠 − 1
𝐵𝑘 𝑓 (𝑘−1) (𝑥) = 𝐵𝑘 −𝑠 𝑥−𝑠−𝑘+1 , 𝐵𝑛 (𝑥 − ⌊𝑥⌋) 𝑓 (𝑛) (𝑥) = −𝑠 𝐵𝑛 (𝑥 − ⌊𝑥⌋)𝑥−𝑠−𝑛
(𝑛)
𝑘!
𝑛!
𝑘 (𝑘 − 1)なので, 2以上の整数 𝑛 について,𝑛𝜁(𝑠) = 𝑠 −1 1 + 12 − ∑ 𝐵𝑘𝑘 (𝑘−𝑠− 1) + 𝑅𝑛 ,𝑘=2∞−𝑠
𝑅𝑛 = (−1)𝑛−1 ( 𝑛 ) ∫1 𝐵𝑛 (𝑥 − ⌊𝑥⌋)𝑥−𝑠−𝑛 𝑑𝑥.
積分 𝑅𝑛 は Re𝑠 + 𝑛 > 1 ならば絶対収束している. ゆえに, 複素平面全体に 𝜁(𝑠) を自然に拡張する方法(解析接続する方法)が得られた.

𝑎−1 1
∞ 1
∞ 1
𝑛
=
𝑎
=
𝜁(𝑠)
−
そのものではなく,から始まる無限和𝑠𝑠𝑠 にEuler-Maclaurinの和公式を適用すると,
∑
∑
∑
𝑘=1 𝑛
𝑘=𝑎 𝑛
𝑛=1 𝑛
𝑎−1
1 − 𝑛 𝐵𝑘 −𝑠 + 𝑅𝑛,𝑎 ,𝜁(𝑠) = ∑ 𝑛1𝑠 − 1𝑎1−𝑠+− 𝑠 2𝑎𝑠 ∑𝑛=1
𝑘=2 𝑘𝑎𝑠+𝑘−1 (𝑘 − 1)∞
𝑅𝑛,𝑎 = (−1)𝑛−1 (−𝑠𝑛) ∫𝑎 𝐵𝑛 (𝑥 − ⌊𝑥⌋)𝑥−𝑠−𝑛 𝑑𝑥.
In [20]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 上の公式における ζ(s) - R_{n,a} の函数化​
# ζ(s) - R_{n,a} = Σ_{m=1}^{a-1} m^{-s} - a^{1-s}/(1-s) + 1/(2a^s)#- Σ_{k=2}^n B_k/(k a^{s+k-1}) binom(-s,k-1)(k is even)#function ApproxZeta(a, n, s)
ss = float(big(s))
z = zero(ss)z += (a ≤ 1 ? zero(ss) : sum(m->m^(-ss), 1:a-1)) # Σ_{m=1}^{a-1} m^{-s}z += -a^(1-ss)/(1-ss)# -a^{1-s}/(1-s)
n == 0 && return zz += 1/(2*a^ss)# 1/(2a^s)n == 1 && return zz -= sum(k -> BB(k)/(k*a^(ss+k-1))*binom(-ss,k-1), 2:2:n)#-Σ_{k=2}^n B_k/(k a^{s+k-1}) binom(-s,k-1)(k is even)end​
A = ApproxZeta(40, 80, big"0.5")
Z = zeta(big"0.5")@show A
@show Z;A = -1.460354508809586812889499152515298012467229331012581490542886087825530529474572
Z = -1.460354508809586812889499152515298012467229331012581490542886087825530529474503

Re𝑠 > 0 のとき,は𝑎 → ∞ で 0 に収束するので,

1 − 𝑛 𝐵𝑘 −𝑠 + 𝑅𝑛,𝑎2𝑎𝑠 ∑𝑘=2 𝑘𝑎𝑠+𝑘−1 (𝑘 − 1)𝑎−1
1−𝑠
𝜁(𝑠) = 𝑎→∞lim (∑ 𝑛1𝑠 − 1𝑎− 𝑠 ) (Re𝑠 > 0)

𝑛=1
𝑎−1 1
が成立することがわかる. これは, Dirichlet級数の部分和
𝑠 から補正項
∑
𝑛=1 𝑛
𝑎1−𝑠

1−𝑠
を引き去ってから, Dirichlet級数の総和を取れば, 0 < Re𝑠 < 1 でも収束して, 𝜁(𝑠) の正確な値が得られることを意味している.

In [21]:



1
2
3
4
5
6
7
8
9
10

# 上の結果のプロット​
ApproxZeta0(a, s) = sum(n->n^(-s), 1:a-1) - a^(1-s)/(1-s)
a = 100
s = 0.05:0.01:0.95@time z = zeta.(s)@time w = ApproxZeta0.(a, s)plot(size=(400, 250), legend=:bottomleft, xlabel="s")plot!(s, z, label="zeta(s)", lw=2)
plot!(s, w, label="Euler-Maclaurin sum for n=0, a=$a", lw=2, ls=:dash)0.191314 seconds (143.69 k allocations: 9.440 MiB, 7.58% gc time, 44.93% compilation tim
e)
0.055798 seconds (117.52 k allocations: 8.121 MiB, 98.91% compilation time)Out[21]:

In [22]:



1
2
3
4
5
6
7
8
9
10
11
12
13

# さらに項の数を1つ増やした場合のプロット​# ζ(s) - R_{1,a} = Σ_{n=1}^{a-1} n^{-s} - a^{1-s}/(1-s) + 1/(2a^s)#
ApproxZeta1(a, s) = sum(n->n^(-s), 1:a-1) - a^(1-s)/(1-s) + 1/(2*a^s)​s = -0.95:0.01:0.5
a = 10^3@time z = zeta.(s)@time w = ApproxZeta1.(a,s)
plot(size=(400, 250), legend=:bottomleft, xlabel="s")plot!(s, z, label="zeta(s)", lw=2)
plot!(s, w, label="Euler-Maclaurin sum for n=1, a=$a", lw=2, ls=:dash)0.000062 seconds (4 allocations: 1.406 KiB)
0.062979 seconds (114.81 k allocations: 7.860 MiB, 94.18% compilation time)Out[22]:

In [23]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# さらに一般の場合のプロット## Euler-Maclaurinの和公式で ζ(s) の負の s での値をぴったり近似できていることがわかる.
​[(-m, zeta(-m), Float64(ApproxZeta(2, 17, -m))) for m = 0:12] |> display​
n = 10s = -1.5:0.05:0.5
a = 10@time z = zeta.(s)@time w = ApproxZeta.(a, n, s)
P1 = plot(size=(400, 250), legend=:bottomleft, xlabel="s")plot!(s, z, label="zeta(s)", lw=2)
plot!(s, w, label="Euler-Maclaurin sum for a=$a, n=$n", lw=2, ls=:dash)​n = 17s = -16:0.05:-2.0
a = 2@time z = zeta.(s)@time w = ApproxZeta.(a, n, s)
P2 = plot(size=(400, 250), legend=:topright, xlabel="s")plot!(s, z, label="zeta(s)", lw=2)
plot!(s, w, label="Euler-Maclaurin sum for a=$a, n=$n", lw=2, ls=:dash)13-element Vector{Tuple{Int64, Float64, Float64}}:(0, -0.5, -0.5)(-1, -0.08333333333333338, -0.08333333333333333)(-2, -0.0, -1.2954252832641667e-77)(-3, 0.008333333333333344, 0.008333333333333333)(-4, -0.0, -3.454467422037778e-77)(-5, -0.0039682539682539715, -0.003968253968253968)(-6, -0.0, 0.0)(-7, 0.004166666666666669, 0.004166666666666667)(-8, -0.0, 0.0)(-9, -0.00757575757575758, -0.007575757575757576)(-10, -0.0, -4.421718300208356e-75)(-11, 0.0210927960927961, 0.021092796092796094)(-12, -0.0, 0.0)
0.000034 seconds (4 allocations: 592 bytes)
0.095275 seconds (216.85 k allocations: 13.766 MiB, 91.64% compilation time)
0.000105 seconds (4 allocations: 2.562 KiB)
0.053619 seconds (492.29 k allocations: 19.944 MiB, 27.20% gc time)Out[23]:

In [24]:

1 display(P1)上と下のグラフを見ればわかるように, Euler-Maclaurinの和公式によって負の実数でのる. 実はを実部が負の複素数まで拡張してもこの近似はうまく行っている.

𝜁(𝑠)In [25]:𝜁 函数の値を非常によく近似できてい1 display(P2)3.2 ζ(2)の近似計算∞
𝜁(2) = ∑ 𝑛12 を計算せよという問題はBasel問題と呼ばれているらしい. Basel問題はEulerによって1743年ころに解かれたら
𝑛=1

しい. Eulerがどのように考えたかについては次の文献を参照せよ.

杉本敏夫, バーゼル問題とオイラー (http://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1583-12.pdf), 2007年8月23日, 数理解析研究所講究録, 第1583巻, 2008年, pp.159-167
Eulerは

𝜁(2) の近似値を自ら開発したEuler-Maclaurinの和公式を使って精密に計算したらしい.

近似式

𝑎−1
𝑛
1−𝑠
−𝑠
𝑘
𝜁(𝑠) ≈ ∑ 𝑛1𝑠 − 1𝑎− 𝑠 + 2𝑎1𝑠 − ∑ 𝑘𝑎𝐵𝑠+𝑘−1(𝑘 − 1)
𝑛=1

を用いて,
る.

𝑘=2

𝜁(2) を計算してみよう. 3以上の奇数 𝑛 について 𝐵𝑛 = 0 となるので, 𝑛 = 2𝑚 のとき, 右辺の項数は 𝑎 + 𝑚 + 1 にな

𝑎 = 10, 𝑚 = 9 とし, 20項の和を取ると,
𝜁(2) ≈ 1.64493 40668 4749⋯
𝜋2 = 1.64493 40668 4822⋯ と小数点以下第11桁まで一致している.
となり, 正確な値
6𝜋2 を得る. Eulerは競争相手に議論に厳密性に欠けるとして様々な批判を受けたのだが, 以上のような数値
Eulerは後に 𝜁(2) =6
計算の結果を知っていたので, 正解を得たという確信は微塵も揺らがなかっただろうと思われる.
例えば,

注意: 論理的に厳密な証明の方法が発達した現代においても, 人間は常に証明を間違う可能性がある. 人間が行った証明は絶対的には信用できない. だから, たとえ証明が完成したと思っていたとしても, 可能ならば数値計算によって論理的に厳密な証明以外の証拠を作っていた方が安全だと思われる.

□

注意: 数学のノートを作りながら, 気軽に数値的証拠も同時に得るための道具として, 筆者がこのノート作成のために用いている
Julia言語 (https://julialang.org/)とJupyter (http://jupyter.org/)とNbextensions (https://github.com/ipythoncontrib/jupyter_contrib_nbextensions)のLive Markdown Previewはこれを書いている時点で相当に優秀な道具であるように思われる.

□

In [26]:



1
2
3
4
5
6
7
8
9
10
11
12

# 20項の和​N = 20[(m, N-m-1, 2m, ApproxZeta(N-m-1, 2m, 2) - big(π)^2/6) for m in 2:N÷2-1] |> display​
m = 9
a = N-m-1
Z = big(π)^2/6
A = ApproxZeta(a, m, 2)@show a,m@show Z
@show A;

8-element Vector{Tuple{Int64, Int64, Int64, BigFloat}}:(2, 17, 4, -5.7745179386347483379778894047835850369958540757839935768100161932366414526175
8e-11)(3, 16, 6, 4.80812735239562509501346011215032587838986605495815313740843048777477650932482
9e-13)(4, 15, 8, -8.6308875139430442246152364654652069706509110461365277080262921867238658169664
92e-15)(5, 14, 10, 3.1162179785273853280542355730238711734665867971863964368976627204145528522974
51e-16)(6, 13, 12, -2.200847274100542514575619216657515798396053843860275532661691594239630209744
406e-17)(7, 12, 14, 3.0352489438578151477776773837113166940196569351033194321813552488718204060625
84e-18)(8, 11, 16, -8.335321043122531064769674746337938450627967961329547742403411230422546148897
753e-19)(9, 10, 18, 4.7466018143920053127140275780279703065395409350513421647372241615147960630210
67e-19)(a, m) = (10, 9)
Z = 1.644934066848226436472415166646025189218949901206798437735558229370007470403185
A = 1.644934066847493071302595112118921642731166540690350214159737969261778785588307

3.3 s = 1でのζ(s)の定数項がEuler定数になること∞
𝜁(𝑠) = ∑ 𝑛1𝑠 にEuler-Maclaurinの和公式を使って, 2以上の 𝑛 について次の公式が得られるのであった:
𝑛=1

𝑛 = 1 の場合には𝑛𝜁(𝑠) = 𝑠 −1 1 + 12 − ∑ 𝐵𝑘𝑘 (𝑘−𝑠− 1) + 𝑅𝑛 ,𝑘=2∞−𝑠
𝑅𝑛 = (−1)𝑛−1 ( 𝑛 ) ∫1 𝐵𝑛 (𝑥 − ⌊𝑥⌋)𝑥−𝑠−𝑛 𝑑𝑥.

𝑏

𝑏

𝑏

𝑏

𝑏−1

∑ 𝑓(𝑗) = ∫𝑎 𝑓(𝑥)𝑑𝑥 + 𝑓(𝑎) + ∫𝑎 (𝑥 − ⌊𝑥⌋)𝑓 ′ (𝑥)𝑑𝑥
𝑗=𝑎1= ∫𝑎 𝑓(𝑥)𝑑𝑥 + 𝑓(𝑎) + ∑ ∫0 𝑥𝑓 ′ (𝑥 + 𝑗)𝑑𝑥
𝑗=𝑎を

𝑓(𝑥) = 𝑥−𝑠 , 𝑓 ′ (𝑥) = −𝑠𝑥−𝑠−1 , 𝑎 = 1, 𝑏 = ∞ の場合に適用して,∞ 1
𝜁(𝑠) = 𝑠 −1 1 + 1 − 𝑠 ∑ ∫0 (𝑥 +𝑥𝑗)𝑠+1 𝑑𝑥
𝑗=1を得る. したがって,

1 = 1 − ∞ 1 𝑥 𝑑𝑥.
𝜁(𝑠)
−
lim
𝑠→1 (
𝑠 − 1 ) ∑ ∫0 (𝑥 + 𝑗)2
𝑗=1

𝑥 = 𝑡 − 𝑗 と置換すると,
𝑗+1
𝑗+1
1
− ∫0 (𝑥 +𝑥 𝑗)2 𝑑𝑥 = − ∫𝑗 −(𝑡𝑡2− 𝑗) 𝑑𝑡 = −[log𝑡 + 𝑗𝑡 ]𝑗𝑗= −log(𝑗 + 1) + log𝑗 − 𝑗 + 1 + 1 = 𝑗 +1 1 + log𝑗 − log(𝑗 + 1)なので, これを 𝑗 = 1 から 𝑗 = 𝑁 − 1 まで足し上げることによって,
そして,

𝑛−1 1𝑁
1 − ∑ ∫0 (𝑥 +𝑥 𝑗)2 𝑑𝑥 = ∑ 1𝑗 − log𝑁.
𝑗=1

これの

𝑗=1

𝑁 → ∞ での極限はEuler定数 𝛾 = 0.5772⋯ の定義であった. 以上によって次が示された:
1lim
𝑠→1 (𝜁(𝑠) − 𝑠 − 1 ) = 𝛾 = 0.5772⋯.

3.4 負の整数におけるゼータ函数の特殊値の計算

3 以上の整数 𝑘 について 𝐵𝑘 = 0 なので, 以下の公式で 𝑘 は偶数のみを動くとしてよい:𝑏𝑏𝑓(𝑎) + 𝑓(𝑏) + 𝑚 𝐵𝑘 (𝑓 (𝑘−1) (𝑏) − 𝑓 (𝑘−1) (𝑎)) + 𝑅𝑚 ,𝑓(𝑛)=𝑓(𝑥)𝑑𝑥
+
∑
∑
∫𝑎
2
𝑛=𝑎
𝑘=2 𝑘!
𝑏 𝐵̃ (𝑥)𝑚 𝑓 (𝑚) (𝑥)𝑑𝑥.
𝑅𝑛 = (−1)𝑚−1 ∫𝑎 𝑚!
̃ (𝑥) = 𝐵𝑚(𝑥 − ⌊𝑥⌋) とおいた.
ここで 𝐵𝑚Euler-Maclaurinの和公式を 𝑓(𝑥) = 𝑛−𝑠 , 𝑎 = 1, 𝑏 = ∞ の場合に適用することによって 𝜁(𝑠) は次の形で ℜ𝑠 > 1 − 𝑚 まで自Euler-Maclaurinの和公式:

然に延長(解析接続)されるのであった:𝑚𝑏
𝜁(𝑠) = 𝑠 −1 1 + 12 − 1 −1 𝑠 ∑ (1 −𝑘 𝑠)𝐵𝑘 + (−1)𝑚−1 ∫𝑎 (−𝑠𝑚)𝐵𝑚̃ (𝑥)𝑥−𝑠−𝑚 𝑑𝑥.
𝑘=2

この公式と

𝑘 ≧ 2 のとき (𝑘1) = 0 となることより,

𝜁(0) = 0 −1 1 + 12 = − 12 .
𝑟 は正の整数であるとする. このとき, 𝑚 > 𝑟 とすると (𝑚𝑟 ) = 0 となるので, 𝐵0 = 1, 𝐵1 = −1/2 なので,
𝑟+1
𝜁(−𝑟) = − 𝑟 +1 1 + 12 − 𝑟 +1 1 ∑ (𝑚 𝑘+ 1)𝐵𝑘
𝑘=2
𝑟+1
= − 𝑟 +1 1 ∑ (𝑚 𝑘+ 1)𝐵𝑘 = − 𝑟𝐵+𝑟+11 .
𝑘=0
𝑟 𝑟+1
最後の等号で, Bernoulli数を帰納的に計算するために使える公式
𝐵𝑘 = 0 を用いた. 例えば, 𝑟 = 1 のとき∑
𝑘=0 ( 𝑘 )𝐵0 + 2𝐵1 = 1 + 2(−1/2) = 0 となり, 𝑟 = 2 のとき, 𝐵0 + 3𝐵1 + 3𝐵2 = 1 + 3(−1/2) + 3(1/6) = 0 となる.
以上によって次が証明された:

𝜁(0) = − 12 , 𝜁(−𝑟) = − 𝑟𝐵+𝑟+11 (𝑟 = 1,2,3,…).
これらの公式は 𝐵𝑛 (1) = 𝐵𝑛 + 𝛿𝑛,1 , 𝐵1 = −1/2 を使うと,
𝜁(−𝑟) = − 𝐵𝑟𝑟+1+(1)1 (𝑟 = 0,1,2,…)の形にまとめられる.

3.5 発散級数の有限部分と ζ(-r) の関係
前節の結果

𝜁(−𝑟) = − 𝐵𝑟𝑟+1+(1)1 (𝑟 = 0,1,2,…) は
1 + 1 + 1 + 1 + ⋯ = − 12 ,1 + 2 + 3 + 4 + ⋯ = − 121のような印象的な形式で書かれることもある. ただし, その場合には左辺が通常の無限和ではなく, ゼータ函数の意味であることを了解しておかなければいけない.

𝜁(𝑠) の解析接続

実はさらに解析接続として理解するだけではなく, 「左辺の発散する無限和から適切に無限大を引き去れば右辺に等しくなる」というようなタイプの命題をうまく作ることもできる. 以下ではそのことを解説しよう.

𝜂ℝℝ 上の急減少函数とは ℝ 上の 𝐶 ∞ 函数でそれ自身およ|𝑥| → ∞ で 0 に収束するもののことである.) さらに,
𝜂(0) = 1, 𝜂′(0) = 0

以下, は非負の実数に値を持つ上の急減少函数であると仮定する. (びそのすべての階数の導函数に任意の多項式函数をかけたものが

𝜂(𝑥) = 𝑒−𝑥2 はそのような函数の例になっている.
このとき, 𝜂(𝑥) が急減少函数であることより, 𝑁 > 0 のとき, 級数
∞
𝑟
𝑟
𝑟
𝑟
∑ 𝑛 𝜂(𝑛/𝑁) = 1 𝜂(1/𝑁) + 2 𝜂(2/𝑁) + 3 𝜂(3/𝑁) + ⋯と仮定する. 例えば

𝑟

𝑛=1

𝑁→∞
𝑁→∞

1𝑟 + 2𝑟 + 3𝑟 + ⋯𝑟+1
𝐶𝑁 𝐶 𝜂 𝑟

は常に絶対収束する. が非負の整数のとき,とすると, この級数は発散級数になってしまう. 以下の目標は, Euler-Maclaurinの和公式を使うと, そのでの発散部分が( は と で具体的に決まる定数) の形にまとまることを示すことである. そして, 残った有限部分は常にに収束することも示される.

𝜁(−𝑟)𝐵𝑛̃ (𝑥) = 𝐵𝑛 (𝑥 − ⌊𝑥⌋) と書くことにする.
このとき, 𝑓(𝑥) = 𝜂(𝑥/𝑁) にEuler-Maclaurinの和公式を適用すると, 𝑓(0) = 1, 𝑓 ′ (0) = 𝑓(∞) = 𝑓 ′ (∞) = 0 より,∞∞
1 + ∑ 𝜂(𝑥/𝑁) = ∑ 𝜂(𝑥/𝑁)
𝑛=1
𝑛=0
∞
∞
= ∫0 𝜂(𝑥/𝑁)𝑑𝑥 + 12 + 𝐵2 (𝑓 ′ (∞) − 𝑓 ′ (0)) − ∫0 𝐵2̃2!(𝑥) 𝑁12 𝜂″(𝑥/𝑁)𝑑𝑥∞∞″= 𝑁 ∫0 𝜂(𝑦)𝑑𝑦 + 12 − 𝑁1 ∫0 𝐵2̃ (𝑁𝑦)
2! 𝜂 (𝑦)𝑑𝑦.
ゆえに, 𝜁(0) = −1/2 を使うと,∞∞
𝜂(𝑥/𝑁)−𝑁∑∫0 𝜂(𝑦)𝑑𝑦 = 𝜁(0) + 𝑂(1/𝑁).
𝑛=1

∞

∞

𝑁 → ∞ で発散級数 1 + 1 + 1 + 1 + ⋯ になる無限和 ∑ 𝜂(𝑥/𝑁) から, その発散部分 𝑁 ∫0 𝜂(𝑦)𝑑𝑦 を引き去って,
𝑛=1
𝑁 → ∞ の極限を取ると, 𝜁(0) に収束することを意味している. これが欲しい結果の1つ目である.
𝑟 は正の整数であるとし, 𝑓(𝑥) = 𝑥𝑟 𝜂(𝑥/𝑁) とおく. そのとき, Leibnitz則
𝑟(𝜑(𝑥)𝜓(𝑥))(𝑚) = ∑ (𝑚𝑖)𝜑(𝑖) (𝑥)𝜓 (𝑚−𝑖)(𝑥)
これは

𝑖=0

を使うと,

𝑓 (𝑟+2) (𝑥) = 𝑁12 𝐹(𝑥/𝑁), 𝐹(𝑦) = (𝑟 +0 2)𝑦𝑟 𝜂(𝑟+2) (𝑦) + ⋯ + (𝑟 +𝑟 2)𝑟!𝜂(𝑦)その 𝑓(𝑥) にEuler-Maclaurinの和公式を適用すると, 𝑓 (𝑘) (∞) = 𝑓 (𝑘) (∞) = 0 および,
𝑓(0) = 𝑓 ′ (0) = ⋯ = 𝑓 (𝑟−1) (0) = 𝑓 (𝑟+1) (0) = 0, 𝑓 (𝑟) (0) = 𝑟!
より,∞∞
̃ (𝑥) 𝑓 (𝑟+2) (𝑥)𝑑𝑥
𝐵𝑟+1 𝑟! − 𝐵𝑟+2 0 + (−1)𝑟+1 ∞ 𝐵𝑟+2𝑟 𝜂(𝑛/𝑁) = 𝑓(𝑛) =𝑓(𝑥)𝑑𝑥−𝑛∑∑∫0∫0 (𝑟 + 2)!
(𝑟 + 1)! (𝑟 + 2)!
𝑛=1
𝑛=0
∞
∞ ̃ (𝑁𝑦)= 𝑁 𝑟+1 ∫0 𝑦𝑟 𝜂(𝑦)𝑑𝑦 − 𝑟𝐵+𝑟+11 + (−1)𝑟+1 𝑁1 ∫0 𝐵(𝑟𝑟+2
𝐹(𝑦)𝑑𝑦+2)!
∞= 𝑁 𝑟+1 ∫0 𝑦𝑟 𝜂(𝑦)𝑑𝑦 − 𝑟𝐵+𝑟+11 + 𝑂(1/𝑁).
𝐵𝑟+1
ゆえに, 𝜁(−𝑟) = −𝑟 + 1 を使うと,∞∞∞∑ 𝑛𝑟 𝜂(𝑛/𝑁) − 𝑁 𝑟+1 ∫0 𝑦𝑟 𝜂(𝑦)𝑑𝑦 = 𝜁(−𝑟) + 𝑂(1/𝑁).
𝑛=1

∞

∞

𝑁 → ∞ で発散級数 1𝑟 + 2𝑟 + 3𝑟 + 4𝑟 + ⋯ になる無限和 ∑ 𝑛𝑟 𝜂(𝑥/𝑁) から, その発散部分 𝑁 𝑟+1 ∫0 𝑦𝑟 𝜂(𝑦)𝑑𝑦1′
注意: 以上の計算のポイントは, 非負の急減少函数 𝜂(𝑥) で 𝜂(0) = 1, 𝜂 (0) = 0 を満たすもので発散級数を正則化して得られる級数の場合には, Euler-Maclaurinの和公式の「途中の項」がほとんど消えてしまうことである. 𝐶𝑁 𝑟+1 型の発散項と定数項と𝑂(1/𝑁) の部分の3つの項しか生き残らない. □これは

注意: 以上の結果に関するより進んだ解説については次のリンク先を参照せよ:
Terence Tao, The Euler-Maclaurin formula, Bernoulli numbers, the zeta function, and real-variable analytic continuation(https://terrytao.wordpress.com/2010/04/10/the-euler-maclaurin-formula-bernoulli-numbers-the-zeta-function-and-realvariable-analytic-continuation/), Blog: What's new, 10 April, 2010.
このブログ記事はかなり読み易い.

□

問題: 以上の結果を数値計算でも確認してみよ.

□𝜂(𝑥) = 𝑒−𝑥2 の場合を試してみよ. そのとき,∞∞𝑟 𝜂(𝑦)𝑑𝑦 =𝑟 𝑒−𝑦2 𝑑𝑦 = 1 Γ 𝑟 + 1
𝑦
𝑦
∫0
∫0
2 ( 2 )となっている. □ヒント:

解答例: 次のリンク先のノートを見よ.
黒木玄, ζ(s) の Re s ＜ 1 での様子 (http://nbviewer.jupyter.org/gist/genkuroki/8b13fc9c05bfd669c345b940066b896b)
In [27]:

Out[27]:

1 y = symbols("y", real=true)
2 r = symbols("r", positive=true)
3 integrate(y^r*exp(-y^2), (y, 0, oo))Γ ( 2𝑟 + 12 )2□

ディリクレ級数の滑らかなカットオフ
黒木玄2018-08-12～2019-04-03, 2020-04-25, 2023-06-22
Copyright 2018,2019,2020,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A01%20Smooth%20cutoff%20of%20Dirichlet%20series.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A01%20Smooth%20cutoff%20of%20Dirichlet%20series.ipynb)
このノートの元ネタは次のリンク先の式(26)以降の解説である:
Terence Tao, The Euler-Maclaurin formula, Bernoulli numbers, the zeta function, and real-variable analytic continuation(https://terrytao.wordpress.com/2010/04/10/the-euler-maclaurin-formula-bernoulli-numbers-the-zeta-function-and-realvariable-analytic-continuation/), What's new, 2010-04-10
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.

目次
 1 Mellin変換とその逆変換
 1.1 Mellin変換
1.1.1 exp(-x²)のMellin変換
1.1.2 exp(-x)のMellin変換
1.1.3 exp(-x^m)のMellin変換
1.1.4 急減少函数のMellin変換
1.2 逆Mellin変換
 2 Dirichlet級数の滑らかなカットオフ
2.1 滑らかなカットオフの定義
2.2 滑らかなカットオフの逆Mellin変換表示
2.3 Re s < 0 および s = 0 での様子
 3 滑らかなカットオフの例
3.1 ζ(s)の場合
 3.2 極を持たない交代Dirichlet級数の場合
3.2.1 η(x) = exp(-x^2) の場合
3.2.2 η(x) = exp(-x) の場合
3.3 -ζ'(s)の場合
3.4 -(d/ds)log ζ(s)の場合
4 Riemannのゼータ函数の非自明な零点の分布

In [1]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

using Base.MathConstants
using Base64
using Printf
using Statistics
const e = ℯ
endof(a) = lastindex(a)linspace(start, stop, length) = range(start, stop, length=length)​
using Plots#pyplot(fmt=:svg)
default(bglegend=RGBA(1.0, 1.0, 1.0, 0.5))#clibrary(:colorcet)#clibrary(:misc)
default(fmt=:png)​function pngplot(P...; kwargs...)sleep(0.1)
pngfile = tempname() * ".png"
savefig(plot(P...; kwargs...), pngfile)showimg("image/png", pngfile)end
pngplot(; kwargs...) = pngplot(plot!(; kwargs...))​
showimg(mime, fn) = open(fn) do fbase64 = base64encode(f)display("text/html", """<img src="data:$mime;base64,$base64">""")
end​
using SymPy#sympy.init_printing(order="lex") # default#sympy.init_printing(order="rev-lex")​
using SpecialFunctions
using QuadGK​
using LaTeXStrings​
using Primes
ENV["LINES"] = 100​
using HTTP

In [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

1 Mellin変換とその逆変換
以下, 収束性の詳細のこだわらずにラフに説明する.

1.1 Mellin変換函数

𝑓(𝑥) に対して,∞𝐹(𝑠) = ∫0 𝑓(𝑥)𝑥𝑠−1 𝑑𝑥
を 𝑓(𝑥) のMellin変換と呼ぶ. 𝑓(𝑥) が ℝ 上の急減少函数で Re𝑠 > 0 ならば右辺の積分は絶対収束する. 𝑓(𝑥) が ℝ 上の急減少函数で Re𝑠 > 0 のとき, 部分積分によって,∞∞∞𝐹(𝑠) = [𝑓(𝑥) 𝑥𝑠𝑠 ] − 1𝑠 ∫0 𝑓 ′ (𝑥)𝑥𝑠 𝑑𝑥 = − 1𝑠 ∫0 𝑓 ′ (𝑥)𝑥𝑠 𝑑𝑥.
0
さらに右辺の積分因子は Re𝑠 > −1 で絶対収束するので 𝐹(𝑠) は Re𝑠 > −1 に解析接続され, 𝑠 = 0 に極を持つ可能性がある.
この操作を繰り返すことによって,∞(−1)𝑛(𝑛) 𝑠+𝑛−1
𝐹(𝑠) = 𝑠(𝑠 + 1)⋯(𝑠+ 𝑛 − 1) ∫0 𝑓 (𝑥)𝑥 𝑑𝑥.
これより, 𝐹(𝑠) は複素平面全体の有理型函数に解析接続され, その極は 𝑠 = 0,−1,−2,… に含まれる.
1.1.1 exp(-x²)のMellin変換

𝑓(𝑥) = 𝑒−𝑥2 のとき, 𝑥 = 𝑦1/2 とおくと,∞∞𝐹(𝑠) = ∫0 𝑒−𝑥2𝑥𝑠−1 𝑑𝑥 = 12 ∫0 𝑒−𝑦 𝑦𝑠/2−1 𝑑𝑦 = 12 Γ ( 𝑠2 )でガンマ函数 Γ(𝑠/2) の極の全体は 𝑠/2 = 0,−1,−2,… に一致するので, 𝐹(𝑠) の極の全体は 0 以下の偶数全体に一致する. □例:

1.1.2 exp(-x)のMellin変換
例:

𝑥 > 0 のとき 𝑓(𝑥) = 𝑒−𝑥 ならば∞

𝐹(𝑠) = ∫0 𝑒−𝑥 𝑥𝑠−1 𝑑𝑥 = Γ(𝑠)で 𝐹(𝑠) の極の全体は 𝑠 = 0,−1,−2,… に一致する. □1.1.3 exp(-x^m)のMellin変換

𝑚 > 0 であるとする. 𝑥 > 0 のとき 𝑓(𝑥) = 𝑒−𝑥𝑚 のとき, 𝑥 = 𝑦1/𝑚 とおくと,∞∞𝐹(𝑠) = ∫0 𝑒−𝑥𝑚𝑥𝑠−1 𝑑𝑥 = 𝑚1 ∫0 𝑒−𝑦 𝑦𝑠/𝑚−1 𝑑𝑦 = 𝑚1 Γ ( 𝑚𝑠 )となり, 𝐹(𝑠) の極の全体は 0 以下の 𝑚 の整数倍全体に一致する. □例:

1.1.4 急減少函数のMellin変換
例:

𝑓(𝑥) は急減少函数でかつ 0 < 𝛿 < 𝛿0 であり, |𝑥| ≦ 𝛿0 ならば 𝑓(𝑥) = 1 であると仮定する. このとき, Re𝑠 > 0 ならば,∞𝐹(𝑠) = − 1𝑠 ∫𝛿 𝑓 ′ (𝑥)𝑥𝑠 𝑑𝑥.
∞∫𝛿 𝑓 (𝑥)𝑥 𝑑𝑥 は任意の複素数 𝑠 について絶対収束しているので, 𝐹(𝑠) の極になっている可能性がある点は 𝑠 = 0 の1つだけである. □でかつ右辺の積分因子

In [3]:

Out[3]:

In [4]:



′

𝑠

1
2
3
4

eta(x) = exp(-x^2)x = symbols("x", real=true)s = symbols("s", positive=true)
integrate(eta(x)*x^(s-1), (x,0,oo))

1
2
3
4
5

eta(x,m) = exp(-x^m)x = symbols("x", real=true)s = symbols("s", positive=true)m = symbols("m", positive=true)
integrate(eta(x,m)*x^(s-1), (x,0,oo))Γ ( 𝑠2 )2Γ (1 + 𝑚𝑠 )𝑠Γ (1 + 𝑚𝑠 ) = 𝑚𝑠 Γ ( 𝑚𝑠 ) に注意せよ.

Out[4]:

1.2 逆Mellin変換

𝑓(𝑥) は急減少函数でかつ 𝐹(𝑠) はそのMellin変換であるとする:∞𝑥 = 𝑒𝑦 とおくと, 𝑑𝑥/𝑥 = 𝑑𝑦 より,𝐹(𝑠) = ∫0 𝑓(𝑥)𝑥𝑠−1 𝑑𝑥.
𝐹(𝑠) = ∫ℝ 𝑓(𝑒𝑦 )𝑒𝑠𝑦 𝑑𝑦.

𝑠 = 𝑎 + 𝑖𝑡, 𝑎 > 0, 𝑡 ∈ ℝ とおくと,𝐹(𝑎 + 𝑖𝑡) = ∫ℝ 𝑓(𝑒𝑦 )𝑒(𝑎+𝑖𝑡)𝑦 𝑑𝑦 = ∫ℝ 𝑓(𝑒𝑦 )𝑒𝑎𝑦 𝑒𝑖𝑡𝑦 𝑑𝑦.
𝑦 → −∞ で 𝑓(𝑒𝑦 ) が有界で 𝑒𝑎𝑦 が急減少し,
𝑦 → ∞ で 𝑓(𝑒𝑦 ) は(その導函数も含めて)どのような 𝑒𝑘𝑦 よりも急速に 0 に収束
𝑎𝑦𝑦するので, 𝑦 ∈ ℝ の函数として 𝑓(𝑒 )𝑒 は急減少函数になることに注意せよ. ゆえに, 𝑡 ∈ ℝ の函数としてそのFourier逆変換
𝐹(𝑎 + 𝑖𝑡) も急減少函数になる(急減少函数全体の空間はFourier変換および逆変換で閉じている). さらに, そのことから部分積分によって解析接続した結果の 𝐹(𝑠) も虚軸方向について急減少函数になることがわかる.
Fourier変換とその逆変換の理論より,

すなわちしたがって,

さらに,𝑠 = 𝑎 + 𝑖𝑡 とおくと,

𝑥 = 𝑒𝑦 とおくと,

𝑓(𝑒𝑦 )𝑒𝑎𝑦 = 2𝜋1 ∫ℝ 𝐹(𝑎 + 𝑖𝑡)𝑒−𝑖𝑡𝑦 𝑑𝑡𝑓(𝑒𝑦 ) = 2𝜋1 ∫ℝ 𝐹(𝑎 + 𝑖𝑡)𝑒−(𝑎+𝑖𝑡)𝑦 𝑑𝑡.
𝑎+𝑖∞𝑓(𝑒𝑦 ) = 2𝜋𝑖1 ∫𝑎−𝑖∞ 𝐹(𝑠)𝑒−𝑠𝑦 𝑑𝑠.
𝑎+𝑖∞𝑓(𝑥) = 2𝜋𝑖1 ∫𝑎−𝑖∞ 𝐹(𝑠)𝑥−𝑠 𝑑𝑠.

𝐹(𝑠) の逆Mellin変換と呼ぶ.
𝑓(𝑥 − 0) + 𝑓(𝑥 + 0) に修正した
注意: 𝑓(𝑥) に不連続点がある場合には左辺の 𝑓(𝑥) を不連続点 𝑥 での値を片側極限の平均2𝑓∗ (𝑥) に置き換えなければいけない. 𝑓∗ (𝑥) の正確な定義は以下の通り. 詳しくはFourier変換論におけるDiniの条件について確認せよ. □
補足: 以上の状況のもとで, 𝐹(𝑠) の 𝑠 = 0 での留数を 𝑟 と書き, −1 以下の 𝐹(𝑠) の極で最大のものを 𝐵 とし, 𝐵 < 𝑏 < 0 と仮定する. このとき, 留数定理より, 𝑥 > 0 ならば
𝑏+𝑖∞𝑓(𝑥) = 𝑟 + 2𝜋𝑖1 ∫𝑏−𝑖∞ 𝐹(𝑠)𝑥−𝑠 𝑑𝑠 = 𝑟 + 𝑂(𝑥−𝑏 ) (𝑥 → ∞).
逆Mellin変換表示された函数についてこの議論はよく使われる. □右辺を2 Dirichlet級数の滑らかなカットオフ
2.1 滑らかなカットオフの定義

𝜂(𝑥) は急減少函数で 𝜂(0) = 1 を満たすものであると仮定し, Dirichlet級数∞
𝑍(𝑠) = ∑ 𝑎𝑛 𝑛−𝑠
𝑛=1
は Re𝑠 ≧ 𝑎 で絶対収束しており, 複素平面全体に有理型函数として解析接続されると仮定する.
𝑁 > 0 に対して,∞𝑍𝜂 (𝑁,𝑠) = ∑ 𝑎𝑛 𝑛−𝑠 𝜂 ( 𝑁𝑛 )𝑛=1

とおく これを Dirichlet級数

𝑍(𝑠) のカットオフ函数 𝜂(𝑥) による滑らかなカットオフと呼ぶ Re𝑠 ≧ 𝑎 ならば 𝑁 → ∞ のとき

2.2 滑らかなカットオフの逆Mellin変換表示

𝜂(𝑥) のMellin変換を 𝐻(𝑠) と書く:∞
𝐻(𝑠) = ∫0 𝜂(𝑥)𝑥𝑠−1 𝑑𝑥.
𝐻(𝑠) は虚軸方向に急減少する函数になり, 𝑎 > 0, 𝑥 > 0 ならば
𝑎+𝑖∞
𝜂(𝑥) = 2𝜋𝑖1 ∫𝑎−𝑖∞ 𝐻(𝑡)𝑥−𝑡 𝑑𝑡.
十分大きな 𝑎 > 0 について,∞∞
𝑎+𝑖∞𝑍𝜂 (𝑁,𝑠) = ∑ 𝑎𝑛 𝑛−𝑠 𝜂 ( 𝑁𝑛 ) = ∑ 𝑎𝑛 𝑛−𝑠 2𝜋𝑖1 ∫𝑎−𝑖∞ 𝐻(𝑡)( 𝑁𝑛 )−𝑡 𝑑𝑡
𝑛=1
𝑛=1
𝑎+𝑖∞
1
= 2𝜋𝑖 ∫𝑎−𝑖∞ 𝐻(𝑡)𝑁 𝑡 𝑍(𝑠 + 𝑡)𝑑𝑡.
注意: 𝜂(0) = 1 より, Re𝑠 > −1 のとき,∞∞
𝐻(𝑠) = − 1𝑠 ∫0 𝜂′(𝑥)𝑥𝑠 𝑑𝑥, − ∫0 𝜂′(𝑥)𝑑𝑥 = 𝜂(0) = 1
より, 𝐻(𝑠) の 𝑠 = 0 での留数は 1 である. □カットオフ函数

2.3 Re s < 0 および s = 0 での様子

𝑎 > 0 は十分大きいと仮定し, 𝑏 < 0 であると仮定する. 𝑏 ≦ Re𝑡 < 𝑎 における 𝐻(𝑡) の極は 𝑡 = 0 だけであり, 𝑡 の函数としての 𝑍(𝑠 + 𝑡) の同じ範囲内の極の全体は 𝑠 + 𝑡 = 𝜌1 , 𝜌2 ,… であり, どれも1位の極であり, それぞれの留数は 𝑟1 , 𝑟2 ,… であると仮定する. このとき,と留数定理より,

𝑎+𝑖∞𝑍𝜂 (𝑁,𝑠) = 2𝜋𝑖1 ∫𝑎−𝑖∞ 𝐻(𝑡)𝑁 𝑡 𝑍(𝑠 + 𝑡)𝑑𝑡,
1 𝑏+𝑖∞ 𝐻(𝑡)𝑁 𝑡 𝑍(𝑠 + 𝑡)𝑑𝑡 = 𝑂(𝑁 𝑏 ) (𝑁 → ∞)2𝜋𝑖 ∫𝑏−𝑖∞∞𝑍𝜂 (𝑁,𝑠) = ∑ 𝑎𝑛 𝑛−𝑠 𝜂 ( 𝑁𝑛 ) = 𝑍(𝑠) + ∑ 𝑟𝑗 𝐻(𝜌𝑗 − 𝑠)𝑁 𝜌𝑗−𝑠 + 𝑂(𝑁 𝑏 ).
𝑛=1

𝑗𝑏 < 0 なので 𝑂(𝑁 𝑏 ) の項は 𝑁 → 0 で 0 に収束する. 𝑁 に関する定数項は 𝑍(𝑠) になり, カットオフ函数の取り方によらない.
特に 𝑠 = 0 のとき,∞𝑍𝜂 (𝑁,0) = ∑ 𝑎𝑛 𝜂 ( 𝑁𝑛 ) = 𝑍(0) + ∑ 𝑟𝑗 𝐻(𝜌𝑗 )𝑁 𝜌𝑗 + 𝑂(𝑁 𝑏 ).
𝑛=1

𝑗

3 滑らかなカットオフの例
3.1 ζ(s)の場合∞

𝑍(𝑠) = 𝜁(𝑠) = ∑ 𝑛−𝑠 のとき, 𝑡 の函数としての 𝜁(𝑠 + 𝑡) の極は 𝑠 + 𝑡 = 1 だけであり, そこでの留数は 1 なので, ある 𝑏 < 0が存在して,

𝑛=1

𝑛−𝑠 𝜂 ( 𝑁𝑛 ) = 𝜁(𝑠) + 𝐻(1 − 𝑠)𝑁 1−𝑠 + 𝑂(𝑁 𝑏 ).
∑𝑛=1
このように, 滑らかなカットオフは 𝑁 → ∞ における定数項 𝜁(𝑠) と発散項 𝐻(1 − 𝑠)𝑁 1−𝑠 と 0 に収束する項に分解される.
1 𝑠
2
例えば 𝜂(𝑥) = 𝑒−𝑥 のとき 𝐻(𝑠) = Γ ( ) であり, 𝐻(𝑠) の極は0以下の偶数にしかないので, 𝑏 = −1 に取れる:2 2∞

−𝑠 exp − 𝑛2 = 𝜁(𝑠) + 1 Γ 1 − 𝑠 𝑁 1−𝑠 + 𝑂(𝑁 −1 ).
𝑛∑( 𝑁2 )
2 ( 2 )∞

𝜂(𝑥) 𝑥 = 0

𝑛=1

1

𝛿>0

|𝑥| ≦ 𝛿

例えば,がの近傍で になるならば(すなわち, ある
が存在して
ならば
は幾らでも小さく取れて に収束する項の部分はについて急減少することになるIn [5]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

0

𝑂(𝑁 𝑏 )

𝑁

𝜂(𝑥) = 1 となるならば), 𝑏# 実軸上のプロット​
eta(x) = exp(-x^2)
H(s) = gamma(s/2)/2
CutoffZeta(s; N=30, L=10^5) = (ss = float(s); sum(n-> n^(-ss)*eta(n/N), 1:L))
DivergentTerm(s; N=30) = (ss = float(s); H(1-ss)*N^(1-ss))
CutoffZeta0(s; N=30, L=10^5) = CutoffZeta(s; N=N, L=L) - DivergentTerm(s; N=N)​
PP = []
for s in [-6.2:0.1:-1.6, -2.0:0.05:0.95, 1.3:0.07:4.0, 3.8:0.07:10]
P = plot(title="N = 30", titlefontsize=10, xlabel="s")plot!(s, zeta.(s), label="\$\\zeta(s)\$")
plot!(s, CutoffZeta0.(s), label="\$\\sum\\,n^{-s}\\eta(n/N) - H(1-s)N^{1-s}\$", ls=:dpush!(PP, P)
endplot(PP[1:2]..., size=(720, 260), legend=:bottomleft)

Out[5]:

In [6]:



1 plot(PP[3:4]..., size=(720, 260), legend=:topright)

Out[6]:

In [7]:

Out[7]:

1
2
3
4
5
6
7
8

# ζ(0) = "1+1+1+…" = -1/2​
Ns = 0.1:0.01:1.2
y = (N->CutoffZeta0(0.0, N=N)).(Ns)plot(size=(350,200), xlabel="N", legendfontsize=9)
plot!(Ns, y, label="\$\\sum\\,\\eta(n/N) - H(1)N\$")
plot!(Ns, zeta(0.0)*fill(1,size(Ns)), label="\$\\zeta(0) = -1/2\$", ls=:dash)plot!(ylims=(-0.55,-0.05))

In [8]:



1
2
3
4
5
6
7
8

# ζ(-1) = "1+2+3+…" = -1/12​
Ns = 0.1:0.01:3.0
y = (N->CutoffZeta0(-1.0, N=N)).(Ns)P1 = plot(size=(350,200), xlabel="N", legendfontsize=9)
plot!(Ns, y, label="\$\\sum\\,n\\eta(n/N) - H(2)N^2\$")
plot!(Ns, zeta(-1.0)*fill(1,size(Ns)), label="\$\\zeta(-1) = -1/12\$", ls=:dash)plot!(ylims=(-0.13, 0))

1
2
3
4
5
6
7
8

# ζ(-2) = "1^2+2^2+3^2+…" = 0​
Ns = 0.1:0.01:1.65
y = (N->CutoffZeta0(-2.0, N=N)).(Ns)P1 = plot(size=(350,200), xlabel="N", legend=:bottomright, legendfontsize=9)
plot!(Ns, y, label="\$\\sum\\,n^2\\eta(n/N) - H(3)N^3\$")plot!(Ns, zeta(-2.0)*fill(1,size(Ns)), label="\$\\zeta(-2) = 0\$", ls=:dash)plot!(ylims=(-0.05, 0.002))

1
2
3
4
5
6
7
8

# ζ(-3) = "1^3+2^3+3^3+…" = 1/120​
Ns = 0.1:0.01:4
y = (N->CutoffZeta0(-3.0, N=N)).(Ns)P1 = plot(size=(350,200), xlabel="N", legendfontsize=9)
plot!(Ns, y, label="\$\\sum\\,n^3\\eta(n/N) - H(4)N^4\$")plot!(Ns, zeta(-3.0)*fill(1,size(Ns)), label="\$\\zeta(-3) = 1/120\$", ls=:dash)plot!(ylims=(-0.016, 0.023), legend=:bottomright)

Out[8]:

In [9]:

Out[9]:

In [10]:Out[10]:In [11]:



1
2
3
4
5
6
7
8
9
10
11
12
13

# critical line 上のプロット​#pyplot()t = 0.0:0.2:50.0
s = 0.5 .+ im .* t@time z = CutoffZeta.(s)w = z .- DivergentTerm.(s)P = plot(size=(500, 300))
plot!(legend=:topright, xlabel="t")
plot!(title="s = 0.5 + it,
N = 30", titlefontsize=10, legendfontsize=10)
plot!(t, abs.(zeta.(s)), label="\$\\left|\\zeta(s)\\right|\$")
plot!(t, abs.(z), label="\$\\left|\\sum n^{-s}\\eta(n/N)\\right|\$", ls=:dashdot)
plot!(t, abs.(w), label="\$\\left|\\sum n^{-s}\\eta(n/N) - H(1-s)N^{1-s}\\right|\$", ls=

1.458336 seconds (213.43 k allocations: 14.460 MiB, 8.14% compilation time)Out[11]:

𝐻(𝑠) (の絶対値)が虚軸方向に急減少するので,発散項 𝐻(1 − 𝑠)𝑁 1−𝑠 は 𝑠 の虚部が大きいときに無視できる. そのおかげで, 発∞𝑛−𝑠 𝜂 ( 𝑁𝑛 ) で Re𝑠 = 1/2, Im𝑠 > 10 における 𝜁(𝑠) をよく近似できる.
散項を引き去る前の滑らかなカットオフ∑
𝑛=1
3.2 極を持たない交代Dirichlet級数の場合
交代Drichlet級数

𝑍(𝑠) を𝑍(𝑠) = ∑ (−1)𝑛𝑠 = (1 − 21−𝑠 )𝜁(𝑠)
∞

𝑛−1

𝑛=1

と定める(2つ目の等号を自分で確認してみよ). たとえば,

𝜁(0) = − 12 , 𝜁(−1) = − 121 , 𝜁(−2) = 0, 𝜁(−3) = 1201 , …

より,

𝑍(0) = 12 , 𝑍(−1) = 14 , 𝑍(−2) = 0, 𝑍(−3) = − 18 , …
𝜁(𝑠) の極は 𝑠 = 1 のみであり, 𝑠 = 1 は 1 − 21−𝑠 の零点なので 𝑍(𝑠) は極を持たない. したがって, Re𝑠 ≦ 1 であっても,
𝑁→∞で
∞
𝑛−1
𝑍𝜂 (𝑁,𝑠) = ∑ (−1)𝑛𝑠 𝜂 ( 𝑁𝑛 ) = 𝑍(𝑠) + 𝑂(𝑁 −1 )𝑛=1が成立している. この場合には

3.2.1 η(x) = exp(-x^2) の場合

𝑁 → ∞ における発散項はなくなる. これを数値的に確認しよう.

In [12]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 実軸上のプロット​
Z(s) = (ss = float(s); (1 - 2^(1-ss)) * zeta(ss))
eta(x) = exp(-x^2)
H(s) = gamma(s/2)/2
CutoffZ(s; N=50, L=10^5) = (ss = float(s); sum(n->(-1)^(n-1)*n^(-ss)*eta(n/N), 1:L))​
PP = []
for s in [-6.2:0.1:-1.6, -2.0:0.05:0.95, 1.3:0.07:4.0, 3.8:0.07:10]
y = Z.(s)ymax, ymin = maximum(y), minimum(y)P = plot(title="N = 50", titlefontsize=10, xlabel="s", legend=true, legendfontsize=8
plot!(s, Z.(s), label="\$ Z(s) = \\mathrm{ana. conti. of}\\; \\sum (-1)^{n-1}n^{-s}\$lw=1.5, ylim=(ymin, ymax+0.55*(ymax-ymin)))plot!(s, CutoffZ.(s), label="\$\\sum\\,(-1)^{n-1}n^{-s}\\exp(-n^2/N^2)\$", ls=:dash)push!(PP, P)
endplot(PP[1:2]..., size=(800, 320))

Out[12]:

In [13]:

Out[13]:

1 plot(PP[3:4]..., size=(800, 320))

In [14]:



1
2
3
4
5
6
7
8

# Z(0) = "1-1+1-1+…" = 1/2​
Ns = 0.1:0.01:2.0
y = (N->CutoffZ(0, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}\\exp(-n^2/N^2)\$")
plot!(Ns, Z(0)*fill(1,size(Ns)), label="\$Z(0) = 1/2\$", ls=:dash)plot!(ylim=(-0.05, 0.55), legend=:bottomright)

1
2
3
4
5
6
7
8

# Z(-1) = "1-2+3-4+…" = 1/4​
Ns = 0.1:0.01:4.0
y = (N->CutoffZ(-1, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}n\\,\\exp(-n^2/N^2)\$")
plot!(Ns, Z(-1)*fill(1,size(Ns)), label="\$Z(-1) = 1/4\$", ls=:dash)plot!(legend=:bottomright)

1
2
3
4
5
6
7
8

# Z(-2) = "1-4+9-16+…" = 0​
Ns = 0.1:0.01:4
y = (N->CutoffZ(-2, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}n^2\\exp(-n^2/N^2)\$")
plot!(Ns, Z(-2)*fill(1,size(Ns)), label="\$Z(-2) = 0\$", ls=:dash)plot!(ylim=(-0.05, 0.35))

Out[14]:

In [15]:

Out[15]:

In [16]:

Out[16]:

In [17]:



1
2
3
4
5
6
7

# Z(-3) = "1-8+27-64+…" = -1/8​
Ns = 0.1:0.01:4.0
y = (N->CutoffZ(-3, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}n^3\\exp(-n^2/N^2)\$")
plot!(Ns, Z(-3)*fill(1,size(Ns)), label="\$Z(-3) = -1/8\$", ls=:dash)

1
2
3
4
5
6
7
8
9
10
11

# critical line 上のプロット​
t = 0.0:0.1:50.0
s = 0.5 .+ im .* t@time z = CutoffZ.(s)P = plot(size=(500, 300))
plot!(legend=:topright, xlabel="t")
plot!(title="s = 0.5 + it,
N = 30", titlefontsize=10)
plot!(t, abs.(Z.(s)), label="\$\\left|Z(s)\\right|=\\left|(1-2^{1-s})\\zeta(s)\\right|\$
plot!(t, abs.(z),label="\$\\left|\\sum (-1)^{n-1}n^{-s}\\exp(-n^2/N^2)\\right|\$", lplot!(ylim=(-0.1, 6.2), legendfontsize=10)

Out[17]:

In [18]:

4.753610 seconds (135.78 k allocations: 9.335 MiB, 1.35% compilation time)Out[18]:3.2.2 η(x) = exp(-x) の場合

𝜂(𝑥) = exp(−𝑥) のとき, 𝑟 = exp(−1/𝑁) とおくと, 0 < 𝑟 < 1 でかつ 𝑁 → ∞ のとき 𝑟 → 1 となり,

カットオフ函数がなので𝜂(𝑛/𝑁) = 𝑟𝑛

∞
∞
𝑛−1
𝑛−1
𝑍𝜂 (𝑠,𝑁) = ∑ (−1)𝑛𝑠 𝜂 ( 𝑁𝑛 ) = ∑ (−1)𝑛𝑠 𝑟𝑛𝑛=1となる. ゆえに𝑁 → ∞ のときの 𝑍𝜂 (𝑠,𝑁) の収束先はAbel総和法の意味でのAbel和になる. したがって∞
𝑛−1
𝑍𝜂 (𝑁,𝑠) = ∑ (−1)𝑛𝑠 𝜂 ( 𝑁𝑛 ) = 𝑍(𝑠) + 𝑂(𝑁 𝑏 ), −1 < 𝑏 < 0𝑛=1

はAbel和が𝑛=1

𝑍(𝑠) に一致することを意味している.

In [19]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 実軸上のプロット​
Z(s) = (ss = float(s); (1 - 2^(1-ss)) * zeta(ss))
eta(x) = exp(-x)H(s) = gamma(s)CutoffZ(s; N=200, L=10^5) = (ss = float(s); sum(n->(-1)^(n-1)*n^(-ss)*eta(n/N), 1:L))​
PP = []for (s, N) in [(-6.2:0.1:-1.6, 50), (-2.0:0.05:0.95, 100), (1.3:0.07:4.0, 500), (3.8:0.0
P = plot(title="N = $N", titlefontsize=10, xlabel="s")y = Z.(s)ymax, ymin = maximum(y), minimum(y)z = CutoffZ.(s, N=N)
zmax, zmin = maximum(z), minimum(z)yzmax, yzmin = max(ymax, zmax), min(ymin, zmin)
plot!(s, y, label="\$ Z(s) = \\mathrm{ana. conti. of}\\; \\sum (-1)^{n-1}n^{-s}\$")
plot!(s, z, label="\$\\sum\\,(-1)^{n-1}n^{-s}\\exp(-n/N)\$", ls=:dash)plot!(ylim=(yzmin, yzmax + 0.5*(yzmax-yzmin)))push!(PP, P)
endplot(PP[1:2]..., size=(800, 320), legend=:topleft)

Out[19]:In [20]:Out[20]:

1 plot(PP[3:4]..., size=(800, 320), legend=:topleft)

In [21]:



1
2
3
4
5
6
7
8

# Z(0) = "1-1+1-1+…" = 1/2​
Ns = 0.1:0.1:20.0
y = (N->CutoffZ(0, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}\\exp(-n/N)\$")
plot!(Ns, Z(0)*fill(1,size(Ns)), label="\$Z(0) = 1/2\$", ls=:dash)plot!(ylim=(-0.05, 0.55), legend=:bottomright)

1
2
3
4
5
6
7
8

# Z(-1) = "1-2+3-4+…" = 1/4​
Ns = 0.1:0.1:5.0
y = (N->CutoffZ(-1, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}n\\,\\exp(-n/N)\$")
plot!(Ns, Z(-1)*fill(1,size(Ns)), label="\$Z(-1) = 1/4\$", ls=:dash)plot!(ylim=(-0.025, 0.275), legend=:bottomright)

1
2
3
4
5
6
7
8

# Z(-2) = "1-4+9-16+…" = 0​
Ns = 0.1:0.1:50.0
y = (N->CutoffZ(-2, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}n^2\\exp(-n/N)\$")
plot!(Ns, Z(-2)*fill(1,size(Ns)), label="\$Z(-2) = 0\$", ls=:dash)plot!(ylim=(-0.01, 0.11))

Out[21]:

In [22]:Out[22]:

In [23]:

Out[23]:

In [24]:



1
2
3
4
5
6
7

# Z(-3) = "1-8+27-64+…" = -1/8​
Ns = 0.1:0.01:8.0
y = (N->CutoffZ(-3, N=N)).(Ns)plot(size=(350,200), xlabel="N")
plot!(Ns, y, label="\$\\sum\\,(-1)^{n-1}n^3\\exp(-n/N)\$")
plot!(Ns, Z(-3)*fill(1,size(Ns)), label="\$Z(-3) = -1/8\$", ls=:dash)

1
2
3
4
5
6
7
8
9
10
11

# critical line 上のプロット​
t = 0.0:0.1:50.0
s = 0.5 .+ im .* t@time z = CutoffZ.(s)P = plot(size=(500, 300))
plot!(legend=:topright, xlabel="t")
plot!(title="s = 0.5 + it,
N = 200", titlefontsize=10)
plot!(t, abs.(Z.(s)), label="\$\\left|Z(s)\\right|=\\left|(1-2^{1-s})\\zeta(s)\\right|\$
plot!(t, abs.(z),label="\$\\left|\\sum (-1)^{n-1}n^{-s}\\exp(-n/N)\\right|\$", ls=:dplot!(ylim=(-0.1, 6.2), legendfontsize=10)

Out[24]:

In [25]:

4.747115 seconds (109.61 k allocations: 7.578 MiB, 0.27% gc time, 1.24% compilation time:
100% of which was recompilation)
Out[25]:

3.3 -ζ'(s)の場合∞

𝑍(𝑠) = −𝜁 ′(𝑠) = − ∑ 𝑛−𝑠 log𝑛 の場合を考える. −𝜁 ′(𝑠) は 𝑠 = 1 で
𝑛=1−𝜁 ′(𝑠) = (𝑠 −1 1)2 + 𝛾1 + 𝛾2 (𝑠 − 1) + ⋯とLaurent展開される. 𝑠 = 1 で2位の極なので上で作った公式をそのまま使用することはできないが, 同様の議論によって次が得られる. ある 𝑏 < 0 が存在して,∞𝑛∑ 𝑛−𝑠 log𝑛 ⋅ 𝜂 ( 𝑁 ) = −𝜁 ′(𝑠) + 𝐻(1 − 𝑠)𝑁 1−𝑠 log𝑁 + 𝐻 ′(1 − 𝑠)𝑁 1−𝑠 + 𝑂(𝑁 𝑏 ).
𝑛=1

特に

𝑠 = 0 のとき,log𝑛 ⋅ 𝜂 ( 𝑁𝑛 ) = −𝜁 ′(0) + 𝐻(1)𝑁 log𝑁 + 𝐻 ′(1)𝑁 + 𝑂(𝑁 𝑏 ).
∑𝑛=1
すなわち, 左辺から発散項を除いて残る定数項はカットオフ函数 𝜂(𝑥) の取り方によらず −𝜁 ′ (0) であることがわかる.
∞

−𝜁 ′(0) = log √⎯2𝜋⎯⎯⎯であることがよく知られている. 以上の内容は本質的に階乗に関するStirlingの近似公式であるとも考えられる.
In [26]:



1
2
3
4
5
6

H(s) = gamma(s/2)/2
s = symbols("s")
diff(H(s), s) |> display
H1(s) = gamma(s/2)*digamma(s/2)/4
H1(Sym(1)) |> display@show H1(1);Γ ( 𝑠2 ) polygamma (0, 𝑠2 )4⎯⎯√𝜋 (−2log(2) − 𝛾)4

H1(1) = -0.8700577267283156
In [27]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

eta(x) = exp(-x^2)
CutoffLogSum(N; L=10^6) = sum(n->log(n)*eta(n/N), 1:L)
ApproxSum(N) = log(√(2π)) + H(1)*N*log(N) + H1(1)*N​[(N, CutoffLogSum(N), ApproxSum(N)) for N in 1:10] |> display​
PP = []
for Ns in [1:10, 1:100]
P = plot(legend=:topleft, xlabel="N")y = CutoffLogSum.(Ns)ymin, ymax = extrema(y)plot!(Ns, y, label="\$\\sum\\log(n)\\eta(n/N)\$")
plot!(Ns, ApproxSum.(Ns), label="\$\\log(\\sqrt{2\\pi}) + H(1)N\\log N + H'(1)N\$", lplot!(ylims=(ymin-0.05*(ymax-ymin), ymax+0.5*(ymax-ymin)), legendfontsize=9)
push!(PP, P)
endplot(PP..., size=(800,300))

10-element Vector{Tuple{Int64, Float64, Float64}}:(1, 0.012831169012422277, 0.048880806476357064)(2, 0.3995159634036108, 0.4073944691758178)(3, 1.2261908764026275, 1.2296247255725965)(4, 2.3510743165496337, 2.352993184002515)(5, 3.6990615746151443, 3.700285963780984)(6, 5.225176194291497, 5.2260250862238475)(7, 6.899537158236067, 6.900160226338723)(8, 8.700856657011794, 8.70133339251146)(9, 10.61319871080199, 10.613575227967056)(10, 12.624185456748245, 12.624490341496182)
Out[27]:

3.4 -(d/ds)log ζ(s)の場合′ (𝑠)𝑍(𝑠) = − 𝑑𝑠𝑑 log𝜁(𝑠) = − 𝜁𝜁(𝑠)の場合を考えよう. 𝜁(𝑠) はEuler積表示
𝜁(𝑠) = ∏(1 − 𝑝−𝑠 )−1 (Re𝑠 > 1)𝑝を持つ. ここで𝑝 は素数全体を走る. これより, 非常によく使われる対数函数のTayloe展開∞ 𝑘−log(1 − 𝑥) = ∑ 𝑥𝑘 (|𝑥| < 1)
𝑘=1

より

∞ −𝑘𝑠 ∞−𝑠log𝜁(𝑠) = − ∑ log(1 − 𝑝−𝑠 ) = ∑ ∑ 𝑝 𝑘 = ∑ Λ(𝑛)log𝑛 𝑛 .
𝑝 𝑘=1

𝑝

ここで

𝑛=1

Λ(𝑛) は所謂 von Mangoldt 函数である:(𝑛 = 𝑝𝑘 , 𝑝 is prime, 𝑘 ∈ ℤ>0 ),Λ(𝑛) = { log𝑝0 (otherwise).

ゆえに

∞
∞
′ (𝑠)
− 𝑑𝑠𝑑 log𝜁(𝑠) = − 𝜁𝜁(𝑠)= ∑ ∑ 𝑝−𝑘𝑠 log𝑝 = ∑ Λ(𝑛)𝑛−𝑠 .
𝑝 𝑘=1

𝑛=1

𝑍(𝑠) = − 𝑑𝑠𝑑 log𝜁(𝑠) の極はすべて1位であり, それら全体は 𝜁(𝑠) の極と零点の全体に一致する. ゆえに′ (0)𝜁(0) = − 12 , −𝜁 ′(0) = log √⎯2𝜋⎯⎯⎯, − 𝜁𝜁(0)= −log(2𝜋)より, 𝑎 = 2, 𝑏 = −1 とすると,∞
𝑛 = −log(2𝜋) + 𝐻(1)𝑁 − ∞ 𝐻(𝜌𝑗 )𝑁 𝜌𝑗 + 𝑂(𝑁 −1 ).
Λ(𝑛)𝜂
(
∑
∑
𝑁)
𝑛=1

ここで,

𝜌𝑗 は 0 ≦ Re𝑠 ≦ 1 における 𝜁(𝑠) の零点の全体である.

𝑗=1

In [28]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# von Mangoldt 函数 Λ(n) のカットオフを入れた和の計算​
eta(x) = exp(-x^2)
Eta(x) = gamma(x/2)/2​
function vonMangoldtCutoffSum(N; L=10^6)c = 0.0
for p in primes(L)for k in 1:floor(Int,log(p,L))
c += log(p) * eta(p^k/N)
end
end
c
end
​
ApproximateCutoffSum(N) = -log(2π) + Eta(1)*N@show log(2π)@show Eta(1)​[(N, vonMangoldtCutoffSum(N), ApproximateCutoffSum(N)) for N in 1:10] |> display​
PP = []
for Ns in [1:10, 1:100]
P = plot(legend=:topleft, xlabel="N")y1 = vonMangoldtCutoffSum.(Ns)y2 = ApproximateCutoffSum.(Ns)ymin, ymax = extrema([y1;y2])
plot!(Ns, y1, label="\$\\sum\\,\\Lambda(n)\\eta(n/N)\$")
plot!(Ns, y2, label="\$-\\log(2\\pi)+H(1)N\$", ls=:dash)plot!(ylims=(ymin-0.05*(ymax-ymin), ymax+0.3*(ymax-ymin)), legendfontsize=9)
push!(PP, P)
endplot(PP..., size=(800,300))log(2π) = 1.8378770664093453
Eta(1) = 0.886226925452758
10-element Vector{Tuple{Int64, Float64, Float64}}:(1, 0.01283109100898279, -0.9516501409565873)(2, 0.3865992514602825, -0.06542321550382924)(3, 1.0749210815651769, 0.8208037099489287)(4, 1.8701182113490993, 1.7070306354016869)(5, 2.707401571263402, 2.593257560854445)(6, 3.5640709863296416, 3.4794844863072028)(7, 4.431251899911122, 4.365711411759961)(8, 5.304277825354532, 5.251938337212719)(9, 6.1809378197101275, 6.138165262665477)(10, 7.060149196555291, 7.024392188118235)
Out[28]:𝜌𝑗 を 0 ≦ Re𝑠 ≦ 1 における 𝜁(𝑠) の虚部の絶対値が 𝑗 番目に小さな零点であるとするとし, 𝜓(𝑥) を𝜓(𝑥) = ∑ Λ(𝑛),1≦𝑛≦𝑥𝜓(𝑥 − 0) + 𝜓(𝑥 − 0) で訂正したものを 𝜓∗ (𝑥) と書くと,と定め, 𝜓(𝑥) の不連続点 𝑥 における値を2∞ 𝜌𝜓∗ (𝑥) = −log(2π) + 𝑥 − ∑ 𝑥𝜌𝑗𝑗 − 12 log(1 − 𝑥2 )
注意:

𝑗=1

𝑥𝜌𝑗 の係数が 1/𝜌𝑗 であり, 𝜌𝑗 の∞ 𝑥𝜌𝑗
虚部についてゆっくり減少する函数になってしまっている. そのためは足し上げる順序に依存する条件収束級数になっ∑
𝑗=1 𝜌𝑗が成立することがよく知られている(von Mangoldtの明示公式). こちらの明示公式の場合にはている. それに対して, 上で示した𝑛∑ Λ(𝑛)𝜂 ( 𝑁 ) = −log(2𝜋) + 𝐻(1)𝑁 − ∑ 𝐻(𝜌𝑗 )𝑁 𝜌𝑗 + 𝑂(𝑁 −1 )
∞

∞

𝑛=1

𝑗=1

𝐻(𝑠) は 𝑠 の虚部の函数として急減少函数になっている点が大きく違う.
0 ≦ Re𝑠 ≦ 1, 0 ≦ Im𝑠 ≦ 𝑇 を満たす 𝜁(𝑠) の(重複度を含めた)零点の個数 𝑁(𝑇) については𝑁(𝑇) = 2𝜋𝑇 log 2𝜋𝑇 − 2𝜋𝑇 + 𝑂(log𝑇)が成立することが知られている. □におけるIn [29]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# ψ(x) = Σ_{n≦x} Λ(n) と -log(2π) + x をプロットして比較​
function psi(x)c = 0.0
for p in primes(floor(Int,x))
for k in 1:floor(Int,log(p,x))c += log(p)
end
end
c
end
​
approxpsi(x) = -log(2π) + x​[(N, psi(N), approxpsi(N)) for N in 1:10] |> display​
PP = []
for x in [1:0.05:12, 1:0.5:120]
P = plot(legend=:topleft, xlabel="x")
plot!(x, psi.(x), label="\$\\psi(x)=\\sum_{n\\leq x}\\,\\Lambda(n)\$")
plot!(x, approxpsi.(x), label="\$-\\log(2\\pi)+x\$", ls=:dash)push!(PP, P)
endplot(PP..., size=(800,300))

10-element Vector{Tuple{Int64, Float64, Float64}}:(1, 0.0, -0.8378770664093453)(2, 0.6931471805599453, 0.16212293359065466)(3, 1.791759469228055, 1.1621229335906547)(4, 2.4849066497880004, 2.1621229335906547)(5, 4.0943445622221, 3.1621229335906547)(6, 4.0943445622221, 4.162122933590655)(7, 6.040254711277414, 5.162122933590655)(8, 6.733401891837359, 6.162122933590655)(9, 7.832014180505469, 7.162122933590655)(10, 7.832014180505469, 8.162122933590656)
Out[29]:𝑥 が成立するという結果は素数定理と呼ばれている. 𝜓(𝑥) ∼ 𝑥 と𝑥 以下の素数の個数を 𝜋(𝑥) と書くとき, 𝜋(𝑥) ∼ log𝑥素数定理は同値である. 上にプロットした結果はさらに定数項が −log(2𝜋) になることを意味している. □注意:4 Riemannのゼータ函数の非自明な零点の分布
http://www.dtc.umn.edu/~odlyzko/zeta_tables/index.html (http://www.dtc.umn.edu/~odlyzko/zeta_tables/index.html) にRiemannのゼータ函数の非自明な零点の虚部のリストが置いてある.
それを用いて, 虚部がIn [30]:

0 以上 𝑇 以下の非自明な零点の個数 𝑁(𝑇) の個数をプロットしてみよう. 次の漸近挙動が知られている:
𝑁(𝑇) ∼ 2𝜋𝑇 log 2𝜋𝑇 − 2𝜋𝑇 .

1 res = HTTP.get("http://www.dtc.umn.edu/~odlyzko/zeta_tables/zeros1",
2
readtimeout=60, retry=true, retries=20)
3 zetazeros = parse.(Float64, split(String(res.body), "\n")[1:end-1])
4 zetazeros[1:10]

Out[30]: 10-element Vector{Float64}:
14.134725142
21.022039639
25.01085758
30.424876126
32.935061588
37.586178159
40.918719012
43.327073281
48.005150881
49.773832478
In [31]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# NZeros(T) = N(T) のプロット​
NZeros(T) = count(zetazeros .≤ T)
AZeros(T) = T/(2π)*log(T/(2π)) - T/(2π)
maxT = maximum(zetazeros)​
PP = []
for T in [0:100, 0:maxT/200:maxT]P = plot(legend=:topleft, xlabel="T")
plot!(title="N(T)", titlefontsize=10)
plot!(T, NZeros.(T), label="\$N(T)\$")
plot!(T, AZeros.(T), label="\$\\frac{T}{2\\pi}\\log\\frac{T}{2\\pi} - \\frac{T}{2\\p
ls=:dash)plot!(legendfontsize=10)
push!(PP, P)
endplot(PP..., size=(800,300))

Out[31]:

In [ ]:



1 ​Hurwitzのゼータ函数の話
黒木玄2019-04-01～2019-07-13, 2020-04-25, 2021-01-22, 2023-06-22
Copyright 2018,2019,2020,2021,2023 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)

Hurwitzのゼータ函数とはRe𝑠 > 1, 𝑥 ≠ 0,−1,−2,… で定義された∞
𝜁(𝑠,𝑥) = ∑ (𝑥 +1 𝑘)𝑠 = 𝑥1𝑠 + (𝑥 +1 1)𝑠 + (𝑥 +1 2)𝑠 + ⋯𝑘=0を解析接続して得られる函数のことである.

𝑠 = 1 − 𝑟 𝑟 = 1,2,3,…

𝜁(1 − 𝑟,𝑥)

このノートブックでは, Hurwitzのゼータ函数の() における特殊値と偏微分係数に関するよく知られている結果を数値的に確認し, 関連の話を色々する. 特に伝えたいことはHurwitzのゼータ函数
が色々な意味で非常に教育的な例になっていることである.

𝜁𝑠 (1 − 𝑟,𝑥)

ツイッターでの以下のスレッドも参照せよ:
https://twitter.com/genkuroki/status/1111938896844095488 (https://twitter.com/genkuroki/status/1111938896844095488)
自分のパソコンにJulia言語 (https://julialang.org/)をインストールしたい場合にはWindowsへのJulia言語のインストール (http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)
Julia v1.1.0 の Windows 8.1 へのインストール(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)
を参照せよ. 前者は古く, 後者の方が新しい.

目次
1 Hurwitzのゼータ函数とBernoulli多項式の関係
2 Hurwitzのゼータ函数と対数ガンマ函数との関係
3 Hurwitzのゼータ函数と対数正弦函数との関係
4 周期化されたBernoulli多項式のFourier級数展開
5 Milnor型対数多重正弦函数の値のFourier級数表示
 6 以上で扱ったFourier級数に関する解説
6.1 概略 6.2 Milnor型対数多重正弦函数のFourier展開公式の証明
6.2.1 Milnor型対数多重正弦函数の多重対数函数表示
6.2.2 Milnor型対数多重正弦函数の値のFourier級数表示
 7 カノニカル分布との関係
 7.1 カノニカル分布の定義
7.1.1 例: 区間上の一様分布に対するカノニカル分布
7.1.2 例: コイン投げ分布に対するカノニカル分布
7.1.3 例: 正規分布に対するカノニカル分布
7.1.4 注意: カノニカル分布の出所
 7.2 カノニカル分布とBernoulli多項式の一般化の関係
7.2.1 例: 区間上の一様分布に対する一般化されたBernoulli多項式 (Bernoulli多項式)7.2.2 例: コイン投げ分布に対する一般化されたBernoulli多項式 (Euler多項式)7.2.3 例: 標準正規分布に対する一般化されたBernoulli多項式 (Hermite多項式)
7.3 Hurwitzのゼータ函数の移動平均
7.4 多重Hurwitzゼータ函数の移動平均
 7.5 移動平均に関する結果の一般の確率分布への自明な一般化
7.5.1 例: コイン投げ分布の場合
7.5.2 例: 正規分布の場合
 7.6 一般化された1重のHurwitz型ゼータ函数の0以下の整数での特殊値
7.6.1 通常のHurwitzのゼータ函数の場合
7.6.2 一般化された1重のHurwitz型ゼータ函数の0以下の整数での特殊値
7.6.3 例: コイン投げ分布に対応する1重のHurwitz型ゼータ函数の特殊値
7.6.4 例: 標準正規分布に対応する1重のHurwitz型ゼータ函数の特殊値
In [1]:



1
2
3
4
5
6
7
8
9

using Plots#pyplot()
default(bglegend=RGBA(1.0, 1.0, 1.0, 0.5))
default(fmt=:png)
using LaTeXStrings
using SpecialFunctions
SpecialFunctions.lgamma(x::Real) = logabsgamma(x)[1]
using SymPy: SymPy, sympy, @vars, oo
using QuadGKIn [2]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Override the Base.show definition of SymPy.jl:# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/​@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::SymbolicObject)
print(io, as_markdown("\\displaystyle " * sympy.latex(x, mode="plain", fold_short_fra
end@eval SymPy function Base.show(io::IO, ::MIME"text/latex", x::AbstractArray{Sym})
function toeqnarray(x::Vector{Sym})a = join(["\\displaystyle " * sympy.latex(x[i]) for i in 1:length(x)], "\\\\")"""\\left[ \\begin{array}{r}$a\\end{array} \\right]"""end
function toeqnarray(x::AbstractArray{Sym,2})sz = size(x)a = join([join("\\displaystyle " .* map(sympy.latex, x[i,:]), "&") for i in 1:sz"\\left[ \\begin{array}{" * repeat("r",sz[2]) * "}" * a * "\\end{array}\\right]"
end
print(io, as_markdown(toeqnarray(x)))
end

In [3]:



1 ?SpecialFunctions.zeta

Out[3]: zeta(s, z)
Generalized zeta function defined by∞𝜁(𝑠,𝑧) = ∑ ((𝑘 + 1𝑧)2 )𝑠/2 ,𝑘=0

where any term with.

∑∞𝑘=0 (𝑘 + 𝑧)−𝑠𝑘 + 𝑧 = 0 is excluded. For ℜ𝑧 > 0, this definition is equivalent to the Hurwitz zeta function

The Riemann zeta function is recovered as

𝜁(𝑠) = 𝜁(𝑠,1).

External links: Riemann zeta function (https://en.wikipedia.org/wiki/Riemann_zeta_function), Hurwitz zeta function(https://en.wikipedia.org/wiki/Hurwitz_zeta_function)zeta(s)Riemann zeta function∞
𝜁(𝑠) = ∑ 𝑛1𝑠 for 𝑠 ∈ ℂ.
𝑛=1

External links: Wikipedia (https://en.wikipedia.org/wiki/Riemann_zeta_function)
注意: Hurwitzのゼータ函数の計算では SpecialFunctions.zeta(s,z) を

Re𝑧 > 0 の場合にのみ利用すること.

1 Hurwitzのゼータ函数とBernoulli多項式の関係

𝐵𝑟 (𝑥) と書くと,𝑧𝑒𝑧𝑥 = ∞ 𝐵𝑘(𝑥) 𝑧𝑘 , −𝑟𝜁(1 − 𝑟,𝑥) = 𝐵𝑟 (𝑥) (𝑟 = 1,2,…).
𝑘!
𝑒𝑧 − 1 ∑𝑘=0
左側の公式を 𝐵𝑘 (𝑥) の定義だと考えてよい. Bernoulli多項式についてはBernoulli多項式をhttp://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb)
https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf(https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf)の第1節に解説がある.
以下ではHurwitzのゼータ函数とBernoulli多項式の関係を数値的に確認しよう.
In [4]:

Out[4]:

1
2
3
4
5

B(r, x) = -r*zeta(1-r, x)Bernoulli(r, x) = sympy.bernoulli(r, x)
fBernoulli(r, x) = float(Bernoulli(r,x))@vars x[Bernoulli(r, x) for r in 0:4]


1 

𝑥 − 12 
2 − 𝑥 + 1 
𝑥
6

2
3𝑥
𝑥
 𝑥3 − 2 + 2  𝑥4 − 2𝑥3 + 𝑥2 − 1 30

In [5]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

function plot_Bernoulli(r ;x1=range(0.001, 1, length=400), l1=:topleft,
x2=range(0.001, 3, length=400), l2=:topleft,
figsize=(800, 250))​
x = x1P1 = plot(legend=l1, legendfontsize=9)
plot!(x, B.(r,x),
label="\$-$r\\zeta(1-$r,x)\$")
plot!(x, fBernoulli.(r,x), label="\$B_{$r}(x)\$", ls=:dash)​x = x2P2 = plot(legend=l2, legendfontsize=9)
plot!(x, B.(r,x),
label="\$-$r\\zeta(1-$r,x)\$")
plot!(x, fBernoulli.(r,x), label="\$B_{$r}(x)\$", ls=:dash)​plot(P1, P2; size=figsize)end

Out[5]: plot_Bernoulli (generic function with 1 method)
In [6]:



1 plot_Bernoulli(1)Out[6]:

In [7]:



1 plot_Bernoulli(2; l1=:top)Out[7]:

In [8]:

Out[8]:

1 plot_Bernoulli(3; l1=:topright)

In [9]:

1 plot_Bernoulli(4; l1=:bottom)

Out[9]:

In [10]:

1 plot_Bernoulli(5)Out[10]:

ぴったり一致している.

2 Hurwitzのゼータ函数と対数ガンマ函数との関係
Hurwitzのゼータ函数の𝑠 に関する偏導函数を 𝜁𝑠 (𝑠,𝑥) と書くことにする. このとき
𝜁𝑠 (0,𝑥) = logΓ(𝑥) − log √⎯2𝜋⎯⎯⎯ (𝑥 > 0)

この公式はLerchの定理 (レルヒの定理)と呼ばれている. 詳しくはhttps://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb(https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb)
https://genkuroki.github.io/documents/Calculus/10%20Gauss%2C%20Gamma%2C%20Beta.pdf(https://genkuroki.github.io/documents/Calculus/10%20Gauss%2C%20Gamma%2C%20Beta.pdf)の第2.10節を参照せよ.
以下では上のLercheの定理を数値的に確認しよう.
In [11]:

1 logGamma(r, x; h=√eps()) = (zeta(1-r+h, x) - zeta(1-r-h, x))/(2h)2 exp(logGamma(1, 10))*√(2π), gamma(10)Out[11]: (362879.9877628901, 362880.0)

In [12]:



1
2
3
4
5
6
7
8

function plot_logGamma1(; x=range(0.001, 10, length=400), l=:topleft, figsize=(400,250))
plot(size=figsize)
plot!(legend=l, legendfontsize=10)
plot!(x, logGamma.(1,x), label=L"\zeta_s(0,x)")plot!(x, lgamma.(x) .- log(√(2π)), label=L"\log\Gamma(x) - \log\sqrt{2\pi}", ls=:das
end​plot_logGamma1()

Out[12]:

ぴったり一致している.

3 Hurwitzのゼータ函数と対数正弦函数との関係

sin の関係より,
Γ(𝑥)⎯⎯⎯⎯ = exp(𝜁𝑠 (0,𝑥)), 2sin(𝜋𝑥) = 2𝜋
Γ(𝑥)Γ(1 − 𝑥) (0 < 𝑥 < 1)
√2𝜋

Hurwitzのゼータ函数とガンマ函数と前者の公式は Lerchの定理 (レルヒの定理) と呼ばれ, 後者の公式は ガンマ函数の相反公式 (reflection formula) と呼ばれている. それらの公式の証明については, それぞれ,
https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb(https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/10%20Gauss%2C%20Gamma%2C%20Beta.ipynb)
https://genkuroki.github.io/documents/Calculus/10%20Gauss%2C%20Gamma%2C%20Beta.pdf(https://genkuroki.github.io/documents/Calculus/10%20Gauss%2C%20Gamma%2C%20Beta.pdf)の第2.10.1節, 第2.6.2節を参照せよ.
ゆえに,

log(2sin𝜋𝑥) = −𝜁𝑠 (0,𝑥) − 𝜁𝑠 (0,1 − 𝑥) (0 < 𝑥 < 1).

これの成立を数値計算で確認してみよう.
In [13]:

1 logsine(r, x) = -logGamma(r,x) + (-1)^r*logGamma(r,1-x)
2 logsine(1, 0.3), log(2sin(0.3π))

Out[13]: (0.481211774982512, 0.48121182505960347)

In [14]:



1
2
3
4
5
6
7
8

function plot_logsine1(; x=range(0.001, 0.999, length=400), l=:bottom, figsize=(400,250)
plot(size=figsize)
plot!(legend=l, legendfontsize=10)
plot!(x, logsine.(1,x), label=L"-\zeta_s(0,x)-\zeta_s(0,1-x)")
plot!(x, @.(log(2sin(π*x))), label=L"\log(2\sin\pi x)", ls=:dash)end​
plot_logsine1()

Out[14]:

ぴったり一致している.

log(2sin𝜋𝑥) については次が成立することも知られている:
1∫0 log(2sin𝜋𝑥)𝑑𝑥 = 0.
この公式は次と同値である:

In [15]:𝜋∫0 log(sin𝑥)𝑑𝑥 = − 2 log2
𝜋/2

1 value, error = quadgk(x -> log(2sin(π*x)), 0, 1)
2 @show value, error;(value, error) = (1.4606371667724716e-15, 2.003640539049112e-16)

数値積分によっても積分の値はほぼ0 になっている.

4 周期化されたBernoulli多項式のFourier級数展開
Bernoulli多項式

𝑟 が偶数のとき

𝐵𝑟 (𝑥) の 0 < 𝑥 < 1 における値については以下が知られている.

𝑟 が奇数のとき∞
𝐵𝑟 (𝑥) = −(−1)𝑟/22𝑟! ∑ cos2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑛=1∞
𝐵𝑟 (𝑥) = −(−1)(𝑟−1)/22𝑟! ∑ sin2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑛=1

これらの公式の証明については
https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb(https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)
https://genkuroki.github.io/documents/Calculus/12%20Fourier%20analysis.pdf(https://genkuroki.github.io/documents/Calculus/12%20Fourier%20analysis.pdf)の第6.3.3節(Hurwitzの函数等式を使った証明)または
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb)
https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf(https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf)

の第1.5節(Bernoulli多項式の母函数を用いた直接的計算による証明)を参照せよ.

𝑥⌊𝑥⌋
𝐵1 (𝑥 − ⌊𝑥⌋) = 𝑥 − ⌊𝑥⌋ − 1/2

𝐵𝑟 (𝑥 − ⌊𝑥⌋)

実数 以下の最大の整数をと書く. Bernoulli多項式の周期化は上のようにFourier展開される. 周期化された
Bernoulli多項式はEuler-Maclaurinの和公式に現われるという意味で自然な数学的対象である. 周期化されたBernoulli多項式のFourier級数展開はEuler-Maclaurinの和公式とPoissonの和公式を繋ぐ架け橋になっている.
詳しくはhttps://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20Euler-Maclaurin%20summation%20formula.ipynb(https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/13%20EulerMaclaurin%20summation%20formula.ipynb)
https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf(https://genkuroki.github.io/documents/Calculus/13%20Euler-Maclaurin%20summation%20formula.pdf)の第2.6節を参照せよ.
以下では上のFourier級数表示を数値的に確認しよう.
In [16]:



1 function FourierB(r, x; N=50)
2
if iseven(r)3-(-1)^(r ÷ 2)
*2*gamma(r+1)*sum(cos(2π*n*x)/(2π*n)^r for n in 1:N)
4else
5-(-1)^((r-1)÷2)*2*gamma(r+1)*sum(sin(2π*n*x)/(2π*n)^r for n in 1:N)
6
end
7 end

Out[16]: FourierB (generic function with 1 method)
In [17]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function plot_FourierBernoulli(r;N = 50,x1 = range(0.001, 0.999, length=400), l1 = :topleft,x2 = range(0.01, 2.99, length=400),
l2 = :topleft,
figsize = (800, 250),
fc = :tomato)​x = x1P1 = plot(legend=l1, legendfontsize=8)
plot!(x, fBernoulli.(r,x),
label="\$B_{$r}(x)\$")
plot!(x, FourierB.(r,x; N=N), label="Fourier series", ls=:dash, lc=fc)​
x = x2P2 = plot(legend=l2, legendfontsize=8)
plot!(x, FourierB.(r,x; N=N), label="", ls=:dash, lc=fc)​
plot(P1, P2, size=figsize)end

Out[17]: plot_FourierBernoulli (generic function with 1 method)
In [18]:

Out[18]:

1 plot_FourierBernoulli(1)In [19]:



1 plot_FourierBernoulli(2; l1=:top)Out[19]:In [20]:

1 plot_FourierBernoulli(3; l1=:topright)

Out[20]:In [21]:

1 plot_FourierBernoulli(4; l1=:bottom)

Out[21]:

In [22]:

1 plot_FourierBernoulli(5)Out[22]:5 Milnor型対数多重正弦函数の値のFourier級数表示

log 𝑆𝑟𝑀 (𝑥) を
log 𝑆𝑟𝑀 (𝑥) = −𝜁𝑠 (1 − 𝑟,𝑥) + (−1)𝑟 𝜁𝑠 (1 − 𝑟,1 − 𝑥)と定義する. ここで 𝜁𝑠 (𝑠,𝑥) はHurwitzのゼータ函数の 𝑠 に関する偏導函数を表す.
Milnor型の対数多重正弦函数

log 𝑆𝑟𝑀 (𝑥) の 0 < 𝑥 < 1 における値については以下が知られている.
𝑟 が偶数のとき∞
log 𝑆𝑟𝑀 (𝑥) = (−1)𝑟/22𝜋(𝑟 − 1)! ∑ sin2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑟 が奇数のとき

𝑛=1∞log 𝑆𝑟𝑀 (𝑥) = −(−1)(𝑟−1)/22𝜋(𝑟 − 1)! ∑ cos2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑛=1

これらの公式の証明はこのノートの下の方に書いてある.
Milnorの原論文
Milnor, John. On polylogarithms, Hurwitz zeta functions, and the Kubert identities. L'Enseignement Mathématique, Volume
29, 1983, 281--322. (Volume Index (https://www.e-periodica.ch/digbib/volumes?UID=ens-001), Article PDF (https://www.eperiodica.ch/cntmng?pid=ens-001:1983:29::101))𝑠𝜁𝑠 (𝑠,𝑥) 𝑠 = 1 − 𝑟

ではHurwitzのゼータ函数の に関する偏導函数のが整数での特殊値を対数ガンマ函数の一般化とみなしている. この論文の内容の微積分の計算で処理できる部分はそう難しくない. このノートの読者にはここで紹介したMilnorの論文を是非とも読んでもらいたい.
以下では上のFourier級数表示を数値的に確認する
In [23]:

1 function Fourierlogsine(r, x; N=50)
2
if iseven(r)3(-1)^(r÷2)*2π*gamma(r)*sum(sin(2π*n*x)/(2π*n)^r for n in 1:N)
4else
5-(-1)^((r-1)÷2)*2π*gamma(r)*sum(cos(2π*n*x)/(2π*n)^r for n in 1:N)
6
end
7 end

Out[23]: Fourierlogsine (generic function with 1 method)
In [24]:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function plot_Fourierlogsine(r;N = 50,x1 = range(0.001, 0.999, length=400), l1 = :topleft,x2 = range(0.01, 2.99, length=400), l2 = :topleft,
figsize = (800, 250),
fc = :tomato)​x = x1P1 = plot(legend=l1, legendfontsize=8)
plot!(x,logsine.(r,x),
label="\$\\log S^M_{$r}(x)\$")
plot!(x, Fourierlogsine.(r,x; N=N), label="Fourier series", ls=:dash, lc=fc)​
x = x2P2 = plot(legend=l2, legendfontsize=8)
plot!(x, Fourierlogsine.(r,x; N=N), label="", ls=:dash, lc=fc)​
plot(P1, P2, size=figsize)end

Out[24]: plot_Fourierlogsine (generic function with 1 method)
In [25]:

Out[25]:

1 plot_Fourierlogsine(1; l1=:bottom)

In [26]:



1 plot_Fourierlogsine(2)Out[26]:

In [27]:



1 plot_Fourierlogsine(3; l1=:top)Out[27]:

In [28]:

1 plot_Fourierlogsine(4; l1=:topright)

Out[28]:In [29]:

1 plot_Fourierlogsine(5; l1=:bottom)

Out[29]:6 以上で扱ったFourier級数に関する解説
6.1 概略
以上で扱ったFourier級数展開の公式は次のHurwitzの函数等式を用いて筆者自身が導出した公式である(widely known):Γ(𝑠) (𝑒−𝜋𝑖𝑠/2 Li𝑠(𝑒2𝜋𝑖𝑥 ) + 𝑒𝜋𝑖𝑠/2 Li𝑠(𝑒−2𝜋𝑖𝑥 )) (Re𝑠 > 0,0 < 𝑥 < 1).
𝜁(1 − 𝑠,𝑥) = (2𝜋)
𝑠

ここで

例えば

Li𝑠(𝑧) は 多重対数函数(polylogarithm) である:
∞ 𝑛
Li𝑠(𝑧) = ∑ 𝑧𝑛𝑠 .
𝑠 = 1 重の対数函数は

𝑛=1

∞ 𝑛
Li1 (𝑧) = ∑ 𝑧𝑛 = −log(1 − 𝑧) (|𝑧| < 1)𝑛=1のように本質的に通常の対数函数になる. その多重化が polylogarithms になる.
上のような公式の導出では符号や係数の細かい部分をよく間違う. しかし, 以下のように実際に数値計算してみて一致していることを確認できれば, 自分で導出した公式の正しさに自信を持てるようになる. 人間は証明をよく間違えるので, 可能ならば, 単に証明によって正しさを確認するだけではなく, 数値計算によってもその「正しさ」を確認しておくべきだと思う. 数値計算やその結果のプロットによって理解が深まることが多い.

𝑠𝑠 0−𝜁(1 − 𝑟,𝑥) (−1)𝑟 𝜁(1 − 𝑟,1 − 𝑥)

Milnor型の多重対数正弦函数に関する公式を得るためには, Hurwitzの函数等式の両辺を で偏微分して, に 以下の整数を代入する必要がある. Milnor型の多重対数正弦函数に関する公式を得るためにとの和を計算すると, 符号をうまく働いて複雑な項がすべてキャンセルして消えて, 上で言及したシンプルな公式が得られるという仕組みになっている. (詳しくはこのノートの下の方を見よ.)

1−𝑟

(−1)𝑟

上のHurwitzの函数等式の導出のラフな解説がhttps://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb(https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/12%20Fourier%20analysis.ipynb)
https://genkuroki.github.io/documents/Calculus/12%20Fourier%20analysis.pdf(https://genkuroki.github.io/documents/Calculus/12%20Fourier%20analysis.pdf)の第6.3節にある. そこでは, Hurwitzのゼータ函数と多重対数函数の両方の一般化になっているLerchの超越函数(レルヒの超越函数)∞
𝐿(𝜏,𝑥,𝑠) = ∑ (𝑥𝑒+2𝜋𝑖𝑥𝑘)𝑠𝑘=0を扱っている Hurwitzの函数等式ではHurwitzのゼタ函数以外に多重対数函数も必要になるが Lerchの超越函数であればその6.2 Milnor型対数多重正弦函数のFourier展開公式の証明
Milnor型の対数多重正弦函数

log 𝑆𝑟𝑀 (𝑥) はlog 𝑆𝑟𝑀 (𝑥) = −𝜁𝑠 (1 − 𝑟,𝑥) + (−1)𝑟 𝜁𝑠 (1 − 𝑟,1 − 𝑥)と定義されたのであった.

6.2.1 Milnor型対数多重正弦函数の多重対数函数表示定理:

0 < 𝑥 < 1, 𝑟 = 1,2,3,… のとき,
− 1)! (Li𝑟 (𝑒2𝜋𝑖𝑥 ) − (−1)𝑟 Li𝑟 (𝑒−2𝜋𝑖𝑥 )) .
log 𝑆𝑟𝑀 (𝑥) = −𝜋𝑖 (𝑟(2𝜋𝑖)𝑟
0 < 𝑥 < 1, 𝑟 = 1,2,3,… のとき,
− 1)! (Li𝑟 (𝑒2𝜋𝑖𝑥 ) + (−1)𝑟 Li𝑟 (𝑒−2𝜋𝑖𝑥 )) = (𝑟 − 1)! 𝑒2𝜋𝑖𝑛𝑥 .
𝜁(1 − 𝑟,𝑥) = (𝑟(2𝜋𝑖∑ (2𝜋𝑖)𝑟)𝑟

注意: 次の結果と比較せよ:

𝑛≠0

真ん中の符号の違いに注目せよ.
上の定理の証明: このノートではHurwitzのゼータ函数の函数等式

Γ(𝑠) (𝑒−𝜋𝑖𝑠/2 Li𝑠(𝑒2𝜋𝑖𝑥 ) + 𝑒𝜋𝑖𝑠/2 Li𝑠(𝑒−2𝜋𝑖𝑥 )) (𝑠 > 0,0 < 𝑥 < 1).
𝜁(1 − 𝑠,𝑥) = (2𝜋)𝑠を認めて使うことにする. この公式の両辺を 𝑠 で偏微分すると, Γ′ (𝑠) = Γ(𝑠)𝜓(𝑠) (digamma函数 𝜓(𝑠) の定義)と𝑑(2𝜋)−𝑠/𝑑𝑠 = (2𝜋)−𝑠(−log(2𝜋)) より, 𝑓(𝑠,𝑧) = ∂ Li𝑠(𝑧)/∂𝑠 とおくと, 0 < 𝑥 < 1 のとき,Γ(𝑠) (𝜓(𝑠) − log(2𝜋)) (𝑒−𝜋𝑖𝑠/2 Li𝑠(𝑒2𝜋𝑖𝑥 ) + 𝑒𝜋𝑖𝑠/2 Li𝑠(𝑒−2𝜋𝑖𝑥 ))−𝜁𝑠 (1 − 𝑠,𝑥) = (2𝜋)𝑠Γ(𝑠) (𝑒−𝜋𝑖𝑠/2 𝑓(𝑠, 𝑒2𝜋𝑖𝑥 ) + 𝑒𝜋𝑖𝑠/2 𝑓(𝑠, 𝑒−2𝜋𝑖𝑥 ))+ (2𝜋)𝑠Γ(𝑠) − 𝜋𝑖 𝑒−𝜋𝑖𝑠/2 Li𝑠(𝑒2𝜋𝑖𝑥 ) + 𝜋𝑖 𝑒𝜋𝑖𝑠/2 Li𝑠(𝑒−2𝜋𝑖𝑥 ) .
+ (2𝜋)𝑠( 2)2ゆえに, 0 < 𝑥 < 1, 𝑟 = 1,2,3,… について,− 1)! (𝜓(𝑟) − log(2𝜋)) (Li𝑟 (𝑒2𝜋𝑖𝑥 ) + (−1)𝑟 Li𝑟 (𝑒−2𝜋𝑖𝑥 ))−𝜁𝑠 (1 − 𝑟,𝑥) = (𝑟(2𝜋𝑖)𝑟− 1)! (𝑓(𝑟, 𝑒2𝜋𝑖𝑥 ) + (−1)𝑟 𝑓(𝑟, 𝑒−2𝜋𝑖𝑥 ))+ (𝑟(2𝜋𝑖)𝑟− 1)! (Li𝑟 (𝑒2𝜋𝑖𝑥 ) − (−1)𝑟 Li𝑟 (𝑒−2𝜋𝑖𝑥 )) .
− 𝜋𝑖2 (𝑟(2𝜋𝑖)𝑟さらに, 0 < 𝑥 < 1 のとき, 0 < 1 − 𝑥 < 1 でもあるので,− 1)! (𝜓(𝑟) − log(2𝜋)) (Li𝑟 (𝑒−2𝜋𝑖𝑥 ) + (−1)𝑟 Li𝑟 (𝑒2𝜋𝑖𝑥 ))−𝜁𝑠 (1 − 𝑟,1 − 𝑥) = (𝑟(2𝜋𝑖)𝑟− 1)! (𝑓(𝑟, 𝑒−2𝜋𝑖𝑥 ) + (−1)𝑟 𝑓(𝑟, 𝑒2𝜋𝑖𝑥 ))+ (𝑟(2𝜋𝑖)𝑟− 1)! (Li𝑟 (𝑒−2𝜋𝑖𝑥 ) − (−1)𝑟 Li𝑟 (𝑒2𝜋𝑖𝑥 )) .
− 𝜋𝑖2 (𝑟(2𝜋𝑖)𝑟
後者に (−1) 𝑟 をかけて前者から引くと, それぞれの1段目と2段目の項はキャンセルして消え, 前者の3段目の項の2倍が残る:− 1)! (Li𝑟 (𝑒−2𝜋𝑖𝑥 ) − (−1)𝑟 Li𝑟 (𝑒2𝜋𝑖𝑥 )) .
−𝜁𝑠 (1 − 𝑟,𝑥) + (−1)𝑟 𝜁𝑠 (1 − 𝑟,1 − 𝑥) = −𝜋𝑖 (𝑟(2𝜋𝑖)𝑟
𝑁6.2.2 Milnor型対数多重正弦函数の値のFourier級数表示
系:

𝑟 が正の偶数のとき

𝑟 が正の奇数のとき∞log 𝑆𝑟𝑀 (𝑥) = (−1)𝑟/22𝜋(𝑟 − 1)! ∑ sin2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑛=1∞log 𝑆𝑟𝑀 (𝑥) = −(−1)(𝑟−1)/22𝜋(𝑟 − 1)! ∑ cos2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑛=1

𝑟 が正の偶数のとき∞
𝐵𝑟 (𝑥) = −(−1)𝑟/22𝑟! ∑ cos2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).

注意: 上の結果を以下の結果と比較せよ:

𝑟 が正の奇数のとき

𝑛=1∞
𝐵𝑟 (𝑥) = −(−1)(𝑟−1)/22𝑟! ∑ sin2𝜋𝑛𝑥(2𝜋𝑛)𝑟 (0 < 𝑥 < 1).
𝑛=1

𝑟 が偶数のとき, 上では sin だったが, こちらでは cos になっており, 𝑟 が奇数のとき, 上では cos だったが, こちらでは sin になっている. したがって, Bernoulli多項式の 0 < 𝑥 < 1 での値とMilnor型対数多重正弦函数の 0 < 𝑥 < 1 での値を合わせると,
𝑟 = 1,2,3,… に対する
∞ cos(2𝜋𝑛𝑥) ∞ sin(2𝜋𝑛𝑥)∑ 𝑛𝑟 , ∑ 𝑛𝑟
𝑛=1

𝑛=1

𝑠

の形のFourier級数のすべてが出て来ることがわかる. 要するにHurwitzのゼータ函数は を0以下の整数の場合の値と偏微分係数の形でこれらのFourier級数をすべて含んでいるとみなされる. これらのFourier級数はFourier級数の例として基本的である. この意味でFourier級数論という観点から見ても, Hurwitzのゼータ函数は教育的な例になっていると考えられる.
上の系の証明:0 < 𝑥 < 1, 𝑟 = 1,2,3,… と仮定する. 上の定理で− 1)! (Li𝑟 (𝑒2𝜋𝑖𝑥 ) − (−1)𝑟 Li𝑟 (𝑒−2𝜋𝑖𝑥 ))log 𝑆𝑟𝑀 (𝑥) = −𝜋𝑖 (𝑟(2𝜋𝑖)𝑟を示した. 多重対数函数は𝑟 が偶数のとき,∞ 𝑛
Li𝑟 (𝑧) = ∑ 𝑧𝑛𝑟 と定義されたのであった.
𝑛=1∞
log 𝑆𝑟𝑀 (𝑥) = −𝜋𝑖 (2𝜋(𝑟)𝑟−(−11)!)𝑟/2 ∑ 𝑒2𝜋𝑖𝑥 −𝑛𝑟𝑒−2𝜋𝑖𝑥
𝑛=1
∞
(𝑟
−
1)!
= −𝜋𝑖 (2𝜋)𝑟 (−1)𝑟/2 ∑ 2𝑖sin(2𝜋𝑛𝑥)𝑛𝑟
𝑛=1∞= (−1)𝑟/22𝜋(𝑟 − 1)! ∑ sin(2𝜋𝑛𝑥)𝑟 .
𝑛=1 (2𝜋𝑛)𝑟 が奇数のとき,これで示すべきことが示された.

□− 1)! ∞ 𝑒2𝜋𝑖𝑥 + 𝑒−2𝜋𝑖𝑥
log 𝑆𝑟𝑀 (𝑥) = −𝜋 (2𝜋)(𝑟𝑟 (−1𝑛𝑟)(𝑟−1)/2 ∑𝑛=1− 1)! ∞ 2cos(2𝜋𝑛𝑥)= −𝜋 (2𝜋)(𝑟𝑟 (−1𝑛𝑟)(𝑟−1)/2 ∑𝑛=1∞= −(−1)(𝑟−1)/22𝜋(𝑟 − 1)! ∑ cos(2𝜋𝑛𝑥)𝑟 .
𝑛=1 (2𝜋𝑛)7 カノニカル分布との関係
7.1 カノニカル分布の定義

𝑝(𝑥) は ℝ 上の確率密度函数 (値が 0 以上で積分が 1 になる函数) であるとする. このノートでは確率密度函数 𝑝(𝑥) を密度函数と呼んだり, 確率分布と呼んだり, 単に分布と呼んだりする.
確率分布

𝑝(𝑥) に対して,𝑍(𝛽) = ∫ℝ 𝑒−𝛽𝑥 𝑝(𝑥)𝑑𝑥

𝛽を(統計力学における) 分配函数 (partition function) と呼ぶ(右辺の積分が収束するような のみを考える). 分配函数は確率密度函数で定まる確率分布に関するの平均値であり, 確率論では モーメント母函数 (moment genetating function) と呼ばれる. さらに,

𝑒−𝛽𝑥

ℝ

𝑝(𝑥)

−𝛽𝑥
𝑝(𝑥|𝛽) = 𝑒 𝑍(𝛽)𝑝(𝑥)で定義される上の確率密度函数を確率分布に対する カノニカル分布 (canonical distribution) と呼ぶ. カノニカル分布
はの定数分の1であるような確率密度函数のことであり, その定数分の1の規格化因子が分配函数である. パラメータ
ー は逆温度と呼ばれる. (逆温度は絶対温度の逆数だと解釈される.)

𝑒−𝛽𝑥 𝑝(𝑥)𝛽𝑝(𝑥|𝛽) は 𝛽 = 0 (絶対温度無限大) でもとの分布 𝑝(𝑥) に戻る. カノニカル分布はもとの分布の逆温度 𝛽 による

カノニカル分布変形になっている.

7.1.1 例: 区間上の一様分布に対するカノニカル分布

𝜔 > 0 であるとする. 0 ≦ 𝑥 ≦ 𝜔 のとき 𝑝(𝑥) = 1/𝜔 で, それ以外のとき 𝑝(𝑥) = 0 のとき (すなわち 𝑝(𝑥) が区間 [0,𝜔] 上の一様分布のとき),𝜔−𝛽𝑥 𝜔 1 − 𝑒𝛽𝜔𝑍(𝛽) = 𝜔1 ∫0 𝑒−𝛽𝑥 𝑑𝑥 = 𝜔1 [ 𝑒−𝛽]0 = 𝛽𝜔 , 𝛽𝜔𝑒−𝛽𝑥𝑝(𝑥|𝛽) =  1 − 𝑒−𝛽𝜔 (0 ≦ 𝑥 ≦ 𝜔)
0(otherwise).

7.1.2 例: コイン投げ分布に対するカノニカル分布
Diracの超函数を

𝛿(𝑥) と書く. そのとき 𝛿(𝑥)𝑑𝑥 は確率測度になる. 𝑝(𝑥) = 12 (𝛿(𝑥) + 𝛿(𝑥 − 𝜔)) のとき({0,𝜔} への公平なコ

イン投げの分布の場合には),𝑍(𝛽) = 12 ∫ℝ 𝑒−𝛽𝑥 (𝛿(𝑥) + 𝛿(𝑥 − 𝜔))𝑑𝑥 = 1 + 2𝑒−𝛽𝜔 ,𝑒−𝛽𝑥 = 2𝑒−𝛽𝑥 ,𝑍(𝛽) 1 + 𝑒−𝛽𝜔𝑝(𝑥|𝛽) = 1 + 1𝑒−𝛽𝜔 𝛿(𝑥) + 1 +𝑒−𝛽𝜔𝑒−𝛽𝜔 𝛿(𝑥 − 𝜔).
ここで 𝜑(𝑥)𝛿(𝑥 − 𝑎) = 𝜑(𝑎)𝛿(𝑥 − 𝑎) を使った.
7.1.3 例: 正規分布に対するカノニカル分布

1 𝑒−𝑥2/(2𝜎2) (平均0の正規分布)のとき,
𝜎 > 0 であるとする. 𝑝(𝑥) = ⎯⎯⎯⎯⎯⎯⎯√2𝜋𝜎 2⎯
1 ⎯ 𝑒−𝑥2/(2𝜎2)−𝛽𝑥 𝑑𝑥 = 𝑒𝛽 2𝜎2/2 ,𝑍(𝛽) = ⎯⎯⎯⎯⎯⎯⎯√2𝜋𝜎 2 ∫ℝ 2 2
1 ⎯ 𝑒−𝑥 /(22 𝜎 )−𝛽𝑥 = ⎯⎯⎯⎯⎯⎯⎯
1 ⎯ 𝑒−(𝑥+𝛽𝜎2)2/(2𝜎2) .
𝑝(𝑥|𝛽) = ⎯⎯⎯⎯⎯⎯⎯
2
𝛽
𝜎
/2
2
√2𝜋𝜎 𝑒√2𝜋𝜎 27.1.4 注意: カノニカル分布の出所

𝑝(𝑥)

確率分布
に従う独立試行で得られる乱数列になるという制限

𝑋1 , 𝑋2 ,…, 𝑋𝑛 (独立同分布確率変数列, i.i.d.)に, その標本平均が一定の値 𝑎
1 𝑛 𝑋𝑘 = 𝑎𝑛∑
𝑘=1𝑛 → ∞ としたときに自然に得られる 𝑋𝑘 の確率分布が確率分布 𝑝(𝑥) に対するカノニカル分布である. 逆温度 𝛽 は∫ℝ 𝑥𝑝(𝑥|𝛽)𝑑𝑥 = 𝑎という条件すなわち「カノニカル分布の平均が 𝑎 になる」という条件で決定される. カノニカル分布に関するより詳しい説明に
を付けて,

ついては

https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf(https://genkuroki.github.io/documents/20160616KullbackLeibler.pdf)
を参照せよ.

7.2 カノニカル分布とBernoulli多項式の一般化の関係

𝑝(𝑥) は ℝ 上の確率分布であり, 𝑍(𝛽) はその分配函数であるとし, 𝑝(𝑥|𝛽) はカノニカル分布であるとする:
𝑒−𝛽𝑥 𝑝(𝑥).
𝑍(𝛽) = ∫ℝ 𝑒−𝛽𝑥 𝑝(𝑥)𝑑𝑥, 𝑝(𝑥|𝛽) = 𝑍(𝛽)𝑒−𝛽𝑥 の −𝛽 に関するべき級数展開
𝑍(𝛽)𝑒−𝛽𝑥 = ∞ 𝑃𝑘 (𝑥) (−𝛽)𝑘𝑍(𝛽) ∑
𝑘!
𝑘=0

で得られる

𝑥 の多項式函数 𝑃𝑘 (𝑥) を一般化されたBernoulli多項式と呼ぶことにする.
𝑒−𝛽(𝑥+𝑡) 𝑝(𝑡)𝑑𝑡 = ∞ 𝑃𝑘 (𝑥 + 𝑡)𝑝(𝑡)𝑑𝑡 (−𝛽)𝑘 ,∑∫ℝ 𝑍(𝛽)) 𝑘!
𝑘=0 (∫ℝ𝑒−𝛽(𝑥+𝑡) 𝑝(𝑡)𝑑𝑡 = 𝑒−𝛽𝑥 𝑒−𝛽𝑡 𝑝(𝑡)𝑑𝑡 = 𝑒−𝛽𝑥 = ∞ 𝑥𝑘 (−𝛽)𝑘∑∫ℝ 𝑍(𝛽)𝑍(𝛽) ∫ℝ
𝑘!
𝑘=0

より∫ℝ 𝑃𝑘 (𝑥 + 𝑡)𝑝(𝑡)𝑑𝑡 = 𝑥 .
𝑘7.2.1 例: 区間上の一様分布に対する一般化されたBernoulli多項式 (Bernoulli多項式)𝑝(𝑥) が区間 [0,1] 上の一様分布のとき,なので,

𝑧 = −𝛽 とおくと,これは有名なBernoulli多項式以上の結果は区間上の一般論より,前者の公式は区間−𝛽𝑒−𝛽𝑥 = −𝛽𝑒−𝛽𝑥
𝑍(𝛽) = 𝑒 −𝛽− 1 , 𝑍(𝛽)𝑒−𝛽 − 1𝑒𝑧𝑥 = 𝑧𝑒𝑧𝑥 .
𝑍(−𝑧) 𝑒𝑧 − 1

𝐵𝑘(𝑥) の母函数である:
𝑧𝑒𝑧𝑥 = ∞ 𝐵𝑘(𝑥) 𝑧𝑘 .
𝑘!
𝑒𝑧 − 1 ∑𝑘=0[0,1] 上の一様分布のカノニカル分布がちょうどBernoulli多項式の母函数になっていることを意味している.
1 𝛽𝑒−𝛽(𝑥+𝑡)−𝛽𝑥∫0 1 − 𝑒−𝛽 𝑑𝑡 = 𝑒 ,1𝑘∫0 𝐵𝑘(𝑥 + 𝑡)𝑑𝑡 = 𝑥 .

[0,𝜔] 上の一様分布の場合に次のように一般化される:𝜔 𝛽𝜔 𝑒−𝛽(𝑥+𝑡)−𝛽𝑥∫0 1 − 𝑒−𝛽𝜔 𝑑𝑡 = 𝑒 .

これは次のようにも書ける:

1 1 𝛽𝜔𝑒−𝛽(𝑥+𝜔𝑡) 𝑑𝑡 = 𝑒−𝛽𝑥 .
𝜔 ∫0 1 − 𝑒−𝛽𝜔
これらの公式は後で 𝑟 重のHurwitzのゼータ函数の 𝑙 重の移動平均で 𝑟 − 𝑙 重のHurwitzゼータ函数が得られるという結果を示す
ときの仕組みそのものである.

7.2.2 例: コイン投げ分布に対する一般化されたBernoulli多項式 (Euler多項式)𝑝(𝑥) = 12 (𝛿(𝑥) + 𝛿(𝑥 − 1)) (コイン投げ分布)のとき, その分配函数は−𝛽𝑍(𝛽) = 1 +2𝑒なので, 対応する一般化されたBernoulli多項式 𝐸𝑘 (𝑥) は2𝑒−𝛽𝑥 = ∞ 𝐸𝑘 (𝑥) (−𝛽)𝑘𝑘!
1 + 𝑒−𝛽 ∑𝑘=0によって定義される. この 𝐸𝑘 (𝑥) は Euler多項式 と呼ばれており,
1 (𝐸𝑘 (𝑥) + 𝐸𝑘 (𝑥 + 1)) = 𝐸𝑘 (𝑥 + 𝑡)𝑝(𝑡)𝑑𝑡 = 𝑥𝑘∫ℝ
2を満たしている.

7.2.3 例: 標準正規分布に対する一般化されたBernoulli多項式 (Hermite多項式)𝑝(𝑥) = √1⎯2𝜋⎯⎯⎯ 𝑒−𝑥2/2 のとき, その分配函数は𝑍(𝛽) = 𝑒𝛽 2/2なので, 対応する一般化されたBernoulli多項式 𝐻 𝑒𝑘 (𝑥) は 𝑧 = −𝛽 とおくと,
𝑒−𝛽𝑥 = 𝑒𝑥𝑧−𝑧2/2 = ∞ 𝐻 𝑒𝑘 (𝑥) 𝑧𝑘
∑
𝑍(𝛽)
𝑘!
𝑘=0

によって得られる.
いる

𝐻 𝑒𝑘 (𝑥) は probabilists' Hermite polynomials (https://en.wikipedia.org/wiki/Hermite_polynomials) と呼ばれて7.3 Hurwitzのゼータ函数の移動平均

𝑥 > 0, 𝑠 > 0 ならば

1 ∞ 𝑒−𝛽𝑥 𝛽 𝑠−1 𝑑𝛽 = 1
Γ(𝑠) ∫0𝑥𝑠であった. これを0重のHurwitzのゼータ函数と呼ぶ.

𝑥 > 0, 𝑠 > 1 ならば

1 ∞ 𝛽𝑒−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽 = ∞ 1 ∞ 𝑒−𝛽(𝑥+𝑘) 𝛽 𝑠−1 𝑑𝛽 = ∞ 1 .
𝑠∑∑Γ(𝑠) ∫0 1 − 𝑒−𝛽
𝑘=0 Γ(𝑠) ∫0
𝑘=0 (𝑥 + 𝑘)
これは通常の(1重の)Hurwitzのゼータ函数 𝜁(𝑠,𝑥) である. 左辺の積分に
1 𝛽𝑒−𝛽(𝑥+𝑡)−𝛽𝑥∫0 1 − 𝑒−𝛽 𝑑𝑡 = 𝑒を適用すると,∞
1−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽 = 1 1 .
𝜁(𝑠,𝑥
+
𝑡)𝑑𝑡
=
𝑒
∫0
∫
(𝑠 − 1)Γ(𝑠 − 1) 0
𝑠 − 1 𝑥𝑠−1以上の計算結果は1重のHurwitzのゼータ函数の移動平均が 𝑠 を −1 シフトした0重のHurwitzのゼータ函数の 1/(𝑠 − 1) 倍になる
1

ことを意味している.

以上の計算は以下のように自明な一般化を持つ.
In [30]:Out[30]:

1
2
3
4
5
6
7
8
9
10
11
12
13

f(s, x) = quadgk(t -> zeta(s, x+t), 0, 1)[1]g(s, x) = 1/((s-1)*x^(s-1))​
PP = []
for s in [-5:0; 2:4]
x = range(s > 1 ? 0.1 : eps(), 1; length=100)
P = plot(x, f.(s, x); label="∫ζ(s,x+t)dt")
plot!(x, g.(s, x); label="1/((s-1)xˢ⁻¹)", ls=:dash)plot!(; xlim=(-0.05, 1.05))
plot!(; title="s = $s", titlefontsize=8)
push!(PP, P)
endplot(PP...; layout=(3, 3), size=(800, 520))

7.4 多重Hurwitzゼータ函数の移動平均

𝑟 重のHurwitzのゼータ函数を∞ 𝑟𝑗
𝜁(𝑠,𝑥; 𝜔1 ,…, 𝜔𝑟 ) = Γ(𝑠) ∏1𝑟 𝜔 ∫0 (∏ 1 −𝛽𝜔𝑒−𝛽𝜔
𝑒−𝛽𝑥 𝛽 𝑠−𝑟−1 𝑑𝛽
𝑗)
𝑗=1 𝑗
𝑗=1
1 ∞ 𝑟 1 𝑒−𝛽𝑥 𝛽 𝑠−1 𝑑𝛽= Γ(𝑠)∫ 0 (∏
𝑗=1 1 − 𝑒−𝛽𝜔𝑗 )∞1 ∞ 𝑒−𝛽(𝑥+𝑘1𝜔1+⋯+𝑘𝑟𝜔𝑟) 𝛽 𝑠−1 𝑑𝛽= ∑ Γ(𝑠)∫0𝑘1 ,…,𝑘𝑟 =0∞= ∑ (𝑥 + 𝑘1 𝜔1 +1⋯ + 𝑘𝑟 𝜔𝑟 )𝑠
𝑘1 ,…,𝑘𝑟 =0と定める(正確には, まず定義式が収束場合を考え, 解析接続する). 最上段の右辺の積分に, 𝑗 = 1,…,𝑙 に関する
1 1 𝛽𝜔𝑗 𝑒−𝛽(𝑥+𝜔𝑗𝑡) 𝑑𝑡 = 𝑒−𝛽𝑥𝜔𝑗 ∫0 1 − 𝑒−𝛽𝜔𝑗を適用すると,

1

1∫0 ⋯ ∫0 𝜁(𝑠,𝑥 + 𝜔1 𝑡1 + ⋯ + 𝜔𝑙 𝑡𝑙 ; 𝜔1 ,…, 𝜔𝑟 )𝑑𝑡1 ⋯𝑑𝑡𝑙
∞ 𝑟𝑗
= Γ(𝑠)∏1𝑟 𝜔 ∫0 ( ∏ 1 −𝛽𝜔𝑒−𝛽𝜔
𝑒−𝛽𝑥 𝛽 𝑠−𝑟−1 𝑑𝛽
𝑗
)
𝑗
𝑗=1
𝑗=𝑙+1
∞ 𝑟
𝛽𝜔𝑗 𝑒−𝛽𝑥 𝛽 (𝑠−𝑙)−(𝑟−𝑙)−1 𝑑𝛽
1
1𝑟
= 𝑙
𝑙
∏
∫
∏𝑗=1 (𝑠 − 𝑗) ⋅ ∏𝑗=1 𝜔𝑗 Γ(𝑠 − 𝑙)∏𝑗=𝑙+1 𝜔𝑗 0 (𝑗=𝑙+1 1 − 𝑒−𝛽𝜔𝑗 )1= 𝑙𝜁(𝑠 − 𝑙,𝑥; 𝜔𝑙+1 ,…, 𝜔𝑟 ).
∏𝑗=1 (𝑠 − 𝑗) ⋅ ∏𝑙𝑗=1 𝜔𝑗
1つ目の等号で変化したのは被函数内の 𝑗 = 1,…,𝑟 に関する積が 𝑗 = 𝑙 + 1,…,𝑟 に関する積に縮まったことだけであり, 2つ目以降の等号ではそれに合わせて式の表示を調整しただけである. 要するに結論が予想可能であるような自明な計算を実行しただけである.
このように,になる.

𝑟 重のHurwitzのゼータ函数の 𝑙 重の移動平均は本質的に 𝑟 − 𝑙 重のHurwitzのゼータ函数の 𝑠 を −𝑙 シフトしたもの

これで次の定理が得られた.
定理:

1

1

∫0 ⋯ ∫0 𝜁(𝑠,𝑥 + 𝜔1 𝑡1 + ⋯ + 𝜔𝑙 𝑡𝑙 ; 𝜔1 ,…, 𝜔𝑟 )𝑑𝑡1 ⋯𝑑𝑡𝑙
= ∏𝑙 (𝑠 − 𝑗)1 ⋅ ∏𝑙 𝜔 𝜁(𝑠 − 𝑙,𝑥; 𝜔𝑙+1 ,…, 𝜔𝑟 ). □
𝑗=1

𝑗=1 𝑗

注意: 以上の計算は前節の計算の自明な一般化に過ぎないことに注意せよ. 計算が自明になった理由は, 分配函数𝑗
𝑍𝑗 (𝛽) = ∫0 𝑒−𝛽𝜔𝑗𝑡 𝑑𝑡 = 1 −𝛽𝜔𝑒−𝛽𝜔
𝑗

1

に対する

𝑒−𝛽𝑥𝑗 = 𝛽𝜔𝑗 𝑒−𝛽𝑥𝑗
𝑍𝑗 (𝛽) 1 − 𝑒−𝛽𝜔𝑗の積のMellin変換で多重Hurwitzゼータ函数を表示して扱ったからである(ただし𝑥 = 𝑥1 + ⋯ + 𝑥𝑟 とおく必要がある).

注意: 上の定理はKurokawa, Nobushige and Wakayama, Masato. Period deformations and Raabe's formulas for generalized gamma and sinefunctions. Kyushu Journal of Mathematics 62(1), 2008, 171-187. PDF(https://www.jstage.jst.go.jp/article/kyushujm/62/1/62_1_171/_pdf)

の第5節で「一般化Raabe公式の多重Hurwitzゼータ函数版」として, 別の方法で証明されている. 上の定理のような形の公式は7.5 移動平均に関する結果の一般の確率分布への自明な一般化ℝ 上の確率分布 𝑝𝑗 (𝑥) の分配函数を

𝑍𝑗 (𝛽) = ∫ℝ 𝑒−𝛽𝑡𝑗 𝑝𝑗 (𝑡𝑗 )𝑑𝑡𝑗

𝛽>0と書き(分配函数はでwell-definedであり, 以下の議論が成立するための適切な条件を満たしていると仮定する), 対応する
多重Hurwitz型ゼータ函数を

1 ∞ 𝑟 1 𝑒−𝛽𝑥 𝛽 𝑠−𝑟−1 𝑑𝛽𝜁(𝑠,𝑥; 𝑝1 ,…, 𝑝𝑟 ) = Γ(𝑠)∫0 (∏ 𝑍𝑗 (𝛽) )𝑗=1

𝑠 をまず考え, 解析接続する). このとき,
1 𝑒−𝛽𝑡𝑗 𝑝𝑗 (𝑡𝑗 )𝑑𝑡𝑗 = 1, Γ(𝑠) = (𝑠 − 1)⋯(𝑠 − 𝑙)Γ(𝑠 − 𝑙)𝑍𝑗 (𝛽) ∫ℝと定める(積分が収束するようなを使った自明な計算によって∫ℝ ⋯ ∫ℝ 𝜁(𝑠,𝑥 + 𝑡1 + ⋯ + 𝑡𝑟 ; 𝑝1 ,…, 𝑝𝑟 ) 𝑝1 (𝑡1 )⋯ 𝑝𝑙 (𝑡𝑙 )𝑑𝑡1 ⋯𝑑𝑡𝑙
1
= (𝑠 − 1)⋯(𝑠− 𝑙) 𝜁(𝑠 − 𝑙,𝑥; 𝑝𝑙+1 ,…, 𝑝𝑟 ).
が成立していることがわかる. 前節の計算はこの自明な計算の特別な場合に過ぎない.

7.5.1 例: コイン投げ分布の場合

𝑝1 (𝑡1 ) = 12 (𝛿(𝑡1 ) + 𝛿(𝑡1 − 𝜔1 )) のとき, その分配函数は−𝛽𝜔
𝑍1 (𝛽) = 1 + 𝑒2 1 .
そのとき, 上の公式の 𝑙 = 1 の場合は
1 (𝜁(𝑠,𝑥; 𝑝1 ,…, 𝑝𝑟 ) + 𝜁(𝑠,𝑥 + 𝜔1 ; 𝑝1 ,…, 𝑝𝑟 ))2= ∫ℝ 𝜁(𝑠,𝑥 + 𝑡1 ; 𝑝1 ,…, 𝑝𝑟 )𝑝1 (𝑡1 )𝑑𝑡1 = 𝑠 −1 1 𝜁(𝑠 − 1,𝑥; 𝑝2 ,…, 𝑝𝑟 )となる. さらに, 𝜔1 > 0, 𝑟 = 1 , 𝑠 > 1 のとき,
1 ∞ 2 𝑒−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽𝜁(𝑠,𝑥; 𝑝1 ) = Γ(𝑠)∫0 1 + 𝑒−𝛽𝜔12 ∞ (−1)𝑘1 ∞ 𝑒−𝛽(𝑥+𝑘1𝜔1) 𝛽 𝑠−2 𝑑𝛽= Γ(𝑠)
∫0
𝑘∑
1 =0
∞
𝑘1
= 𝑠 −2 1 ∑ (𝑥 +(−1)
𝑘1 𝜔1 )𝑠−1 .
𝑘1 =0
ゆえに

1 (𝜁(𝑠,𝑥; 𝑝1 ) + 𝜁(𝑠,𝑥 + 𝜔1 ; 𝑝1 ))2∞∞
𝑘1(−1)𝑘1= 𝑠 −1 1 ( ∑ (𝑥 +(−1)+
𝑠−1
𝑘1 𝜔1 )𝑠−1 𝑘∑
𝑘1 =0
1 =0 (𝑥 + (𝑘1 + 1)𝜔1 ) )1 .
= 𝑠 −1 1 𝑥𝑠−1

1重のHurwitz型ゼータ函数の移動平均(この場合には単なる和の半分になる)は0重のHurwitz型ゼータ函数になっている.

7.5.2 例: 正規分布の場合
確率分布

1 ⎯ 𝑒−𝑥2/(2𝜎2) に対応する1重のHurwitz型ゼータ函数を計算してみよう. その分配函数は𝑝(𝑥) = ⎯⎯⎯⎯⎯⎯⎯√2𝜋𝜎 22

なので,𝑍(𝛽) = 𝑒𝛽 2𝜎2/2

𝑠 > 1 のとき,

このとき,

1 ∞ 𝑒−𝛽 2𝜎2/2−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽.
𝜁(𝑠,𝑥;𝑝) = Γ(𝑠)∫0
1 𝜁(𝑠,𝑥 + 𝑡;𝑝)𝑒−𝑡2/(2𝜎2) 𝑑𝑡 = 1 ∞ 𝑒−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽 = 1 1 .
⎯⎯⎯⎯⎯⎯2⎯ ∫ℝΓ(𝑠) ∫0𝑠 − 1 𝑥𝑠−1√⎯2𝜋𝜎7.6 一般化された1重のHurwitz型ゼータ函数の0以下の整数での特殊値
7.6.1 通常のHurwitzのゼータ函数の場合
Hurwitzのゼータ函数は区間[0,1] 上の一様分布に対応する一般化された1重のHurwitz型ゼータ函数である:
1 ∞ 𝛽 𝑒−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽 = ∞ 1 .
𝜁(𝑠,𝑥) = Γ(𝑠)∑ (𝑥 + 𝑘)𝑠∫0 1 − 𝑒−𝛽𝑘=0

Re𝑠 > 1 で収束している. 他の 𝑠 における値は解析接続で定義しておく. このとき,
𝜁(1 − 𝑟,𝑥) = − 𝐵𝑟𝑟(𝑥) (𝑟 = 1,2,3,…)となることが知られている. すなわち, Hurwitzのゼータ函数の 0 以下での整数 𝑠 = 1 − 𝑟 での特殊値はBernoulli多項式の −𝑟 分
右辺の積分はの1に一致する.

この結果は以下のような計算によって, 一般の(適切な条件を満たす)確率分布
れる. 以下そのことを説明しよう.

𝑝(𝑥) が定める1重のHurwitz型ゼータ函数に拡張さ

7.6.2 一般化された1重のHurwitz型ゼータ函数の0以下の整数での特殊値

𝑝(𝑥) は(適切な条件を満たす) ℝ 上の確率分布であるとし, 𝑍(𝛽) はその分配函数であるとし, 対応する一般化されたBernoulli多項式を 𝑃𝑘 (𝑥) と表す:
𝑒−𝛽𝑥 = ∞ (−1)𝑘𝑃𝑘 (𝑥) 𝛽 𝑘.
𝑍(𝛽) = ∫ℝ 𝑒−𝛽𝑥 𝑝(𝑥)𝑑𝑥, 𝑍(𝛽)
∑ 𝑘!
𝑘=0

𝑝(𝑥) に対応する1重のHurwitz型ゼータ函数 𝜁(𝑠,𝑥;𝑝) が1 ∞ 𝑒−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽𝜁(𝑠,𝑥;𝑝) = Γ(𝑠)∫0 𝑍(𝛽)と定義されたのであった. 右辺の積分は Re𝑠 > 1 で絶対収束していると仮定する(おそらく他にも細かい条件を仮定しておかな
このとき,ければいけない).
このとき,
について
がわかる:

𝜁(𝑠,𝑥;𝑝) の定義式は, 積分範囲を区間 [1,∞) と区間 (0,1) に分割して, 区間 (0,1) 上での積分では 𝑒−𝛽𝑥 /𝑍(𝛽) の 𝛽
𝑁 次より大きな部分と 𝑁 次以下の部分にわけて, 𝑁 次以下の部分の積分を計算すると, 以下のように変形できること
1 ∞ 𝑒−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽𝜁(𝑠,𝑥;𝑝) = Γ(𝑠)∫1 𝑍(𝛽)1 1 𝑒−𝛽𝑥 − 𝑁 (−1)𝑘𝑃𝑘 (𝑥) 𝛽 𝑘 𝛽 𝑠−2 𝑑𝛽+ Γ(𝑠)∫0 ( 𝑍(𝛽) ∑𝑘!
)
𝑘=0
𝑁 (−1)𝑘𝑃 (𝑥)+ ∑ 𝑘! 𝑘 (𝑠 + 𝑘 −1 1)Γ(𝑠) .
𝑘=0ℜ𝑠 > −𝑁 で意味を持ち, そこへの解析接続を与える. 𝑁 ≧ 𝑟 と仮定する. Γ(𝑠) はちょうど
𝑠 = 0,−1,−2,… で1位の極を持つので, 𝑠 → 1 − 𝑟 のとき, 右辺で生き残る項は三段目の和の 𝑘 = 𝑟 に対する項のみになる.
この変形の結果は
ゆえに

を使うと,

(𝑠 + 𝑟 − 2)⋯(𝑠 + 1)𝑠 → (−1)𝑟−1 (𝑟 − 1)! (as 𝑠 → 1 − 𝑟)1(𝑠 + 𝑟 − 1)Γ(𝑠) =Γ(𝑠 + 𝑟)𝑟
𝜁(1 − 𝑟,𝑥;𝑝) = (−1)𝑟!𝑃𝑟 (𝑥) (−1)𝑟−1 (𝑟 − 1)! = − 𝑃𝑟𝑟(𝑥) (𝑟 = 1,2,3,…)が得られる.
7.6.3 例: コイン投げ分布に対応する1重のHurwitz型ゼータ函数の特殊値
出発点になる確率分布がる:

𝑝(𝑥) = 12 (𝛿(𝑥) + 𝛿(𝑥 − 1)) のとき, 対応する一般化されたBernoulli多項式 𝐸𝑘 (𝑥) はEuler多項式にな
2𝑒−𝛽𝑥 = ∞ (−1)𝑘𝐸𝑘 (𝑥) 𝛽 𝑘.
𝑘!
1 + 𝑒−𝛽 ∑𝑘=0そして, 対応する1重のHurwitz型ゼータ函数は∞𝑘
𝜁(𝑠,𝑥;𝑝) = 𝑠 −2 1 ∑ (𝑥 (−1)+ 𝑘)𝑠−1𝑘=0になる. これの解析接続について

𝜁(1 − 𝑟,𝑥;𝑝) = − 𝐸𝑟𝑟(𝑥) (𝑟 = 1,2,3,…).

7.6.4 例: 標準正規分布に対応する1重のHurwitz型ゼータ函数の特殊値
出発点になる確率分布が𝑝(𝑥) = √12𝜋 𝑒−𝑥2 (標準正規分布)のとき, 対応する一般化されたBernoulli多項式 𝐻 𝑒𝑘 (𝑥) はprobabilists' Hermite polynomials (https://en.wikipedia.org/wiki/Hermite_polynomials) になる:

𝑒−𝛽 2/2−𝛽𝑥 = ∑ (−1) 𝑘!𝐻 𝑒𝑘 (𝑥) 𝛽 𝑘.
∞

𝑘

𝑘=0

そして, 対応する1重のHurwitz型ゼータ函数は

1 ∞ 𝑒−𝛽 2/2−𝛽𝑥 𝛽 𝑠−2 𝑑𝛽.
𝜁(𝑠,𝑥;𝑝) = Γ(𝑠)∫0になる. これの解析接続について

𝜁(1 − 𝑟,𝑥;𝑝) = − 𝐻 𝑒𝑟𝑟 (𝑥) (𝑟 = 1,2,3,…).

2019/7/2

A03 Borwein integral

Borwein積分
黒木玄2019-06-13
Copyright 2019 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)
このファイルは次の場所できれいに閲覧できる:
http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A03%20Borwein%20integral.ipynb(http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A03%20Borwein%20integral.ipynb)
https://genkuroki.github.io/documents/Calculus/A03%20Borwein%20integral.pdf(https://genkuroki.github.io/documents/Calculus/A03%20Borwein%20integral.pdf)
このファイルは Free Wolfram Engine (https://www.wolfram.com/engine/) を Jupyter (https://jupyter.org/) で使えるようにする(https://github.com/WolframResearch/WolframLanguageForJupyter)と利用できる. 詳しくは次の解説を参照せよ.
Free Wolfram EngineをJupyterで使う方法(https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/Free%20Wolfram%20Engine.ipynb)

目次
1 Borwein積分の紹介
2 Borwein積分の公式
2.1 Borwein積分の公式の証明
2.2 公式( )の証明
2.3 sinの積をsinまたはcosの和で表す公式の証明
3 Borwein積分とFourier変換の関係
3.1 Fourier解析からの準備
3.2 Borwein積分のたたみ込み積表示とその応用∗∗

In [1]:

1
2
3
4 ▾
5 ▾
6 ▾
7
8 ▾
9 ▾
10
11 ▾
12 ▾
13 ▾
14 ▾

JupyterImageResolution = 84;
JupyterOutTextForm = "TeX";
TeX[x_] := ToString[TeXForm[x]]TeX[x_, y__] := StringJoin[TeX[x], TeX[y]]TeXRaw[x__, y_] := StringJoin[x, TeX[y]]MappedBy[x_] := x
MappedBy[x_, F___, G_] := MappedBy[x, F] // G
SetAttributes[TeXEq, HoldFirst]
TeXEq[x_] := TeX[HoldForm[x] == MappedBy[x, ReleaseHold, FullSimplify]]
TeXEq[x_, F__] := TeX[HoldForm[x] == MappedBy[x, ReleaseHold, F]]
TeXEqRaw[x_] := TeX[HoldForm[x] == MappedBy[x, ReleaseHold]]

1 Borwein積分の紹介
以下では

a0 , a1 ,…, ar は正の実数であるとし, sinc 函数を

sinx
sincx = { x (x ≠ 0)
1 (x = 0)と定めて利用する.
次の形の積分をBorwein積分 (https://en.wikipedia.org/wiki/Borwein_integral)と呼ぶ:

∞ r
∞
sinc(
x)dx
=
a
k
∫−∞ ∏
∫−∞ sinc(a0 x)sinc(a1 x)⋯sinc(ar x)dx
k=0
localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb


1/12

2019/7/2

A03 Borwein integral

必要ならば条件収束する広義積分でこれを定義しておく. 例えば,
 In [15]:Out[15]:1 ▾ Integrate[Sinc[x], {x,-Infinity,Infinity}] // TeXEq∞∫−∞ sinc(x)dx = π
上の結果はDirichlet積分の公式∞ sin(ax)∫−∞ x dx = π sign(a)の特別な場合として有名である.
 In [16]:Out[16]:

 In [17]:Out[17]:

 In [18]:Out[18]: In [19]:Out[19]: In [20]:Out[20]: In [21]:Out[21]:

1 ▾ Integrate[Sinc[x]Sinc[x/3], {x,-Infinity,Infinity}] // TeXEq∞
x∫−∞ sinc(x)sinc ( 3 ) dx = π
1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5], {x,-Infinity,Infinity}] // TeXEq∞xx∫−∞ sinc(x)sinc ( 3 ) sinc ( 5 ) dx = π
1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5]Sinc[x/7], {x,-Infinity,Infinity}] // TeXEq∞
x sinc x sinc x dx = πsinc(x)sinc(∫−∞3) (5) (7)1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5]Sinc[x/7]Sinc[x/9], {x,-Infinity,Infinity}] // TeXEq∞
x sinc x sinc x sinc x dx = πsinc(x)sinc(∫−∞3) (5) (7) (9)1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5]Sinc[x/7]Sinc[x/9]Sinc[x/11], {x,-Infinity,Infinity}] // TeXEq

∞
x
x
x
x
x
∫−∞ sinc(x)sinc ( 3 ) sinc ( 5 ) sinc ( 7 ) sinc ( 9 ) sinc ( 11 ) dx = π
1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5]Sinc[x/7]Sinc[x/9]Sinc[x/11]Sinc[x/13], {x,-Infinity,Infinity}] // TeXEq

∞
x
x
x
x
x
x
∫−∞ sinc(x)sinc ( 3 ) sinc ( 5 ) sinc ( 7 ) sinc ( 9 ) sinc ( 11 ) sinc ( 13 ) dx = π
以上のBorwien積分の値はすべて

 In [22]:Out[22]:π になった. しかし, これの次の積分は以下のように π とは異なる π に非常に近い値になる!

1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5]Sinc[x/7]Sinc[x/9]Sinc[x/11]Sinc[x/13]Sinc[x/15], {x,-Infinity,Infinity}]// TeXEq∞
x sinc x sinc x sinc x sinc x sinc x sinc x dx
sinc(x)sinc(∫−∞3 ) ( 5 ) ( 7 ) ( 9 ) ( 11 ) ( 13 ) ( 15 )= 467807924713440738696537864469π
467807924720320453655260875000

 In [23]:Out[23]:

1 ▾ 467807924713440738696537864469/467807924720320453655260875000 // TeXEq[#, N[#, 20]&]&467807924713440738696537864469 = 0.9999999999852937186
467807924720320453655260875000

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

2/12

2019/7/2

A03 Borwein integral

このようにの値は非常にある.

467807924713440738696537864469 π
467807924720320453655260875000

π に近い. 「これは使用しているWolfram言語のバグなのではないだろうか?」と疑う人がいても不思議ではない結果で

2 Borwein積分の公式
以下で紹介する結果についてはDavid Borwein and Jonathan M. Borwein. Some Remarkable Properties of Sinc and Related Integrals. The Ramanujan Journal,
March 2001, Volume 5, Issue 1, pp 73–89. PDF (http://www.thebigquestions.com/borweinintegrals.pdf)
を参照した.

a0 , a1 ,…, ar > 0 と仮定する. この節では次の公式を示そう:∞ rπ∫−∞ ∏ sinc(ak x)dx = r!2r a0 a1 ⋯ ar
k=0

r

r

r

× ∑ ε1 ⋯ εr (a0 + ∑ εk ak ) sign(a0 + ∑ εk ak ).
ε1,…,εr =±1

k=1

(∗)

k=1

さらに次の公式も示す:

 0 r(k = 0,1,…,r − 1)

ε
⋯
ε
+
=
a
ε
a
r!
2
a
⋯
a
(k
= r)
1
r
0
k
k
1
r
( ∑
ε1,…,∑
εr =±1k=1 )  (r + 1)!2r a0 a1 ⋯ ar (k = r + 1).
特に a0 > a1 + ⋯ + ar ならば(∗ )の sign の因子がすべて 1 になり, (∗∗ )の k = r の場合を使うと,∞ rπ∫−∞ ∏ sinc(ak x)dx = a0 (a0 > a1 + ⋯ + ar )
r

k

(∗∗)

k=0

a0 = 1 の場合になっている.
r
さらに, a0 < a1 + ⋯ + ar でかつ ε1 = ⋯ = εr = −1 以外のとき a0 + ∑k=1 εk ak > 0 となるならば,∞ r
π 1 − (a1 + ⋯ + ar − a0 )r
sinc(
a
x)dx
=
k
∫−∞ ∏
a0 (
r!2r−1 a ⋯ a )が得られる. 前節の計算例の最後以外はこの公式のk=0が得られる. 前節の計算例の最後はこの公式の
 In [24]:Out[24]:

 In [25]:Out[25]:

 In [26]:Out[26]:1

a0 = 1 の場合になっている.

1r

1/3+1/5+1/7+1/9+1/11+1/13 // TeXEq

1 + 1 + 1 + 1 + 1 + 1 = 43024
3 5 7 9 11 13 45045
1

1/3+1/5+1/7+1/9+1/11+1/13+1/15 // TeXEq

1 + 1 + 1 + 1 + 1 + 1 + 1 = 46027
3 5 7 9 11 13 15 45045
1 ▾ Integrate[Sinc[x]Sinc[x/3]Sinc[x/5]Sinc[x/7]Sinc[x/9]Sinc[x/11]Sinc[x/13]Sinc[x/15], {x,-Infinity,Infinity}]// TeXEq

∞
x
x
x
x
x
x
x
∫−∞ sinc(x)sinc ( 3 ) sinc ( 5 ) sinc ( 7 ) sinc ( 9 ) sinc ( 11 ) sinc ( 13 ) sinc ( 15 ) dx

= 467807924713440738696537864469π
467807924720320453655260875000

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

3/12

2019/7/2

 In [27]:Out[27]:

A03 Borwein integral

1

Pi(1 - (1/3+1/5+1/7+1/9+1/11+1/13+1/15-1)^7/(7! 2^6 (1/3)(1/5)(1/7)(1/9)(1/11)(1/13)(1/15))) // TeXEq

 ( 13 + 15 + 17 + 19 + 111 + 131 + 151 − 1)7  467807924713440738696537864469ππ 1 −
 = 467807924720320453655260875000
7!26
3 5 7 9 11 13 15
2.1 Borwein積分の公式の証明
三角函数に関する簡単な計算によって以下が成立していることを示せる.

r が偶数のとき,(−1)∏ sin(ak x) = 2rr

k=0r が奇数のとき,(−1)∏ sin(ak x) = 2r
r

r

r/2

∑ ε1 ⋯ εr sin((a0 + ∑ εk ak ) x).

ε1,…,εr =±1

r(r+1)/2

k=0

k=1∑ ε1 ⋯ εr cos((a0 + ∑ εk ak ) x).

ε1,…,εr =±1

k=1

r 回 x で微分すると, r の偶奇によらず, 結果は次のようになることがすぐにわかる:rrr∂ r r sin(ak x) = 1r
ε
⋯
ε
a
+
ε
a
sin
a
+
εk ak x .
1
r
0
k
k
0
( ∂x ) ∏2 ε1,…,∑εr =±1( ∑k=0
k=1 ) (( ∑k=1 ) )
この公式を使うと, Borwein積分の公式(∗ )は部分積分によって容易に証明される.
1 − ∂ r1 = 1
r! ( ∂x ) x xr+1を使って, 部分積分を r 回繰り返すと,
∞ r
∞ 1 r
1
sinc(
a
x)dx
=
sin(ak x)dxk∫−∞ ∏a0 a1 ⋯ ar ∫−∞ xr+1 ∏
k=0
k=0
r r
∞
= r!a0 a11 ⋯ ar ∫−∞ 1x ( ∂x∂ ) ∏ sin(ak x)dx
k=0
1
= r!2r a0 a1 ⋯ arr ∞rr
× ∑ ε1 ⋯ εr (a0 + ∑ εk ak ) ∫−∞ 1x sin((a0 + ∑ εk ak ) x) dx
ε1,…,εr =±1
k=1
k=1
1
= r!2r a0 a1 ⋯ ar
これらの公式の両辺を

r

r

r

× ∑ ε1 ⋯ εr (a0 + ∑ εk ak ) sign(a0 + ∑ εk ak ).
ε1,…,εr =±1∗∞ rπ∫−∞ ∏ sinc(ak x)dx = r!2r a0 a1 ⋯ ar

k=1

k=1

これが示したかったBorwein積分の公式( )である:

k=0

r

r

r

× ∑ ε1 ⋯ εr (a0 + ∑ εk ak ) sign(a0 + ∑ εk ak ).
ε1,…,εr =±1

k=1

(∗)

k=1

∗∗)の証明2.2 公式(

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

4/12

2019/7/2

A03 Borwein integral

r

r

k=1

k=1 εk=±1

ea0t ∏(eakt − e−akt ) = ea0t ∏ ∑ εk eεkakttr= ∑ ε1 ⋯ εr exp((a0 + ∑ εk ak ) t).
ε1,…,εr =±1
k=1

左辺の に関するべき級数の展開は(1 + a0 t + O(t 2 ))(2r a1 ⋯ ar t r + O(t r+2 )) = 2r a1 ⋯ ar t r + 2r a0 a1 ⋯ ar t r+1 + O(t r+2 )となり, 右辺は

∞ tk

r

k

ε1 ⋯ εr (a0 + ∑ εk ak )∑k=0 k! ε1,…,∑εr =±1k=1となる. k = 0,1,…,r,r − 1 に関する t k の係数を比較すると公式 (∗∗ ) が得られる:k 0r(k = 0,1,…,r − 1) r!2r a1 ⋯ ar
ε
⋯
ε
a
+
ε
a
=
(k
= r)
1
r
0
k
k
( ∑
ε1,…,∑
εr =±1k=1 )  (r + 1)!2r a0 a1 ⋯ ar (k = r + 1).

(∗∗)

2.3 sinの積をsinまたはcosの和で表す公式の証明
sinの積に関する公式も証明しておこう.

sinz = eiz −2ie−iz = 2i1 ∑ εeiεz
ε=±1

を使うと,

1 (eia0x − e−ia0x )i(∑rk=1 εkak)x
sin(
a
x)
=
ε
⋯
ε
e
k
1
r
∏
(2i)r+1
k=0
ε1,…,∑
εr =±1= (2i)1r+1 ( ∑ ε1 ⋯ εr ei(a0+∑rk=1 εkak)x − ∑ ε1 ⋯ εr ei(−a0+∑rk=1 εkak)x)
ε1,…,εr =±1
ε1,…,εr =±1= (2i)1r+1 ( ∑ ε1 ⋯ εr ei(a0+∑rk=1 εkak)x − (−1)r ∑ ε1 ⋯ εr e−i(a0+∑rk=1 εkak)x)
ε1,…,εr =±1
ε1,…,εr =±1
r
1
i
a
+
∑
ε
a
x
r
= (2i)r+1 ∑ ε1 ⋯ εr (e ( 0 k=1 k k) − (−1) e−i(a0+∑rk=1 εkak)x) .
ε1,…,εr =±1
3番目の等号で括弧の中の2つ目の和の εk 達をすべて −1 倍にした. この結果は, r が偶数のとき,rr(−1)r r/2
sin(
a
x)
=
ε
⋯
ε
sin
a
+
εk ak xk1r
0∏
2 ε1,…,∑εr =±1(( ∑k=0
k=1 ) )になり, r が奇数のとき,rr(r+1)/2
(−1)
sin(
a
x)
=
ε
⋯
ε
cos
a
+
∏ k
∑ 1 r (( 0 ∑ εk ak ) x)
2r
r

k=0

ε1,…,εr =±1

k=1になる. これが示したい公式であった.
このように奇数個のsin の積は sin の和に展開され, 偶数個の sin の積は cos の和に展開される.

3 Borwein積分とFourier変換の関係
3.1 Fourier解析からの準備
Fourier変換

f(x) ↦ ℱ[f(x)](p) とその逆変換 ϕ(p) ↦ ℱ−1 [ϕ(p)](x) が次のように定義される:∞∞ℱ[f(x)](p) = ∫−∞ e−ipx f(x)dx, ℱ−1 [ϕ(p)](x) = ∫−∞ eipx ϕ(p) dp
2π .

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

5/12

2019/7/2

さらに, 函数

ϕ(p),ψ(p) のたたみ込み積がと定義される. このとき,

A03 Borwein integral∞ϕ ∗ ψ(p) = ∫−∞ ϕ(q)ψ(p − q) dq
2π∞∞dp = ∞ ϕ(p) dp
dp .
ϕ
∗
ψ(p)
ψ(p)
∫−∞
2π (∫−∞ 2π )(∫−∞ 2π )f(x),g(x) に関する適切な仮定のもとで次が成立することを示せる:ℱ[f(x)g(x)] = ℱ[f(x)] ∗ ℱ[g(x)].
例: a > 0 に対して, χa (p) を 1 (−a < p < a)
χa (p) =  1/2 (p = ±a) 0 (otherwise).
さらに, 函数と定める. このとき,

aeiax − e−iax = sin(ax) = a sinc(ax).
ℱ−1 [χa (p)](x) = ∫−a eipx dp=
2π 2πix
πx π

ゆえにℱ[sinc(ax)](p) = πa χa (p).

さらにが成立していることにも注意せよ.

□∞πdp = a π dp = 1(p)χa∫−∞ a 2π ∫−a a 2π

3.2 Borwein積分のたたみ込み積表示とその応用
Borwein積分は次のFourier変換のp = 0 での値に等しい:rr∞
I(p) = ℱ[∏ sinc(ak x)](p) = ∫−∞ e−ipx ∏ sinc(ak x)dx.
k=0

k=0

積のFourier変換はFourier変換のたたみ込み積に等しいので,I(p) = g0 ∗ g1 ∗ ⋯ ∗ gr (p).

ここで,

特に

p = 0 のとき,

gk (p) = ℱ[sinc(ak x)](p) = πa χa (p)a0
I(0) = aπ0 ∫−a g1 ∗ ⋯ ∗ gr (p) dp
2π .
0

∞
一方, ∫−∞ gk (p)dp/(2π) = 1 とたたみ込み積の一般的な性質より,∞
dp∫−∞ g1 ∗ ⋯ ∗ gr (p) 2π = 1.
したがって, もしも g1 ∗ ⋯ ∗ gr (p) の台が区間 [−a0 , a0 ] に含まれているならば,I(0) = aπ0となり, 非負値函数になる g1 ∗ ⋯ ∗ gr (p) の台が区間 [−a0 , a0 ] より真に広ければ,I(0) < aπ0localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

6/12

2019/7/2

gk (p)

A03 Borwein integral[−ak , ak ] なので, g1 ∗ ⋯ ∗ gr (p) の台は [−(a1 + ⋯ + ar ), a1 + ⋯ + ar ] に等しい. 以上をまとめることによππ
定理: a0 ≧ a1 + ⋯ + ar のとき I(0) =a0 となり, a0 < a1 + ⋯ + ar のとき I(0) < a0 となる. □例: a0 = 1 < a1 = 1/2, a2 = 1/3, a4 = 1/4 の場合の G1 (p) = g1 (p) , G2 (p) = g1 ∗ g2 (p) , G3 (p) = g1 ∗ g2 ∗ g3 (p) を計算し,Gk (p)/(2π) をプロットし, 積分してみよう.
となる.
の台はって次を得る.

 In [28]:Out[28]: In [29]:Out[29]: In [30]:Out[30]: In [31]:Out[31]:

 In [32]:Out[33]:

 In [34]:Out[34]:

 In [35]:Out[36]:1

1/2+1/3 > 1 // TeXEq

1 1( 2 + 3 > 1) = False
1 ▾ Integrate[Sinc[x]Sinc[x/2]Sinc[x/3], {x,-Infinity,Infinity}] // TeXEq∞xx∫−∞ sinc(x)sinc ( 2 ) sinc ( 3 ) dx = π1

1/2+1/3+1/4 > 1 // TeXEq

1 1 1( 2 + 3 + 4 > 1) = True
1 ▾ Integrate[Sinc[x]Sinc[x/2]Sinc[x/3]Sinc[x/4], {x,-Infinity,Infinity}] // TeXEq

∞
x
x
x
1727π
∫−∞ sinc(x)sinc ( 2 ) sinc ( 3 ) sinc ( 4 ) dx = 1728
1 ▾ g[a_, p_] := Pi/a If[-a <= p <= a, 1, 0]
2 ▾ g[a,p] // TeXEqg(a,p) = πIf[−a ≤ ap ≤ a,1,0]
1 ▾ Assuming[a > 0, Integrate[g[a,p]/(2Pi), {p,-Infinity,Infinity}] // TeXEq]∞ g(a,p)∫−∞ 2π dp = 1
1 ▾ G1[p_] = g[1/2, p];
2 ▾ G1[p] // TeX[HoldForm[G1[p]], "=", #]&G1(p) = 2πIf [− 12 ≤ p ≤ 12 ,1,0]

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

7/12

2019/7/2

 In [37]:A03 Borwein integral

1 ▾ Plot[G1[p]/(2Pi), {p,-1.5,1.5}]

Out[37]:

 In [38]:Out[38]: In [39]:Out[40]:1 ▾ Integrate[G1[p]/(2Pi), {p,-Infinity,Infinity}] // TeXEq∞ G1(p)∫−∞ 2π dp = 1
1 ▾ G2[p_] = Integrate[g[1/2,q]g[1/3,p-q]/(2Pi), {q,-Infinity,Infinity}];2 ▾ G2[p] // TeX[HoldForm[G2[p]], "=", #]& 2π− 16 < p ≤ 16
G2(p) =  − 12 π(6p − 5) 16 < p < 56
 1 π(6p + 5) − 5 < p ≤ − 1
2

 In [41]:661 ▾ Plot[G2[p]/(2Pi), {p,-1.5,1.5}]

Out[41]:

 In [42]:Out[42]:

1 ▾ Integrate[G2[p]/(2Pi), {p,-Infinity,Infinity}] // TeXEq∞ G2(p)∫−∞ 2π dp = 1

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

8/12

2019/7/2

 In [43]:Out[44]:

 In [45]:A03 Borwein integral

1 ▾ G3[p_] = Integrate[G2[q]g[1/4,p-q]/(2Pi), {q,-Infinity,Infinity}];2 ▾ G3[p] // TeX[HoldForm[G3[p]], "=", #]&57
 12 (5π − 6πp)12 < p < 12
− 127 < p ≤ − 125 12 (6πp + 5π)
p2 )− 121 < p < 121 2411 (47π − 144π15248 (−144π p − 24πp + 95π ) 12 < p < 12
G3(p) =  481 (−144π p2 + 24πp + 95π ) − 125 < p ≤ − 121
 4811 (−144π2p2 + 168πp + 79π ) p = 1215
 161 (−48π p2 + 56πp + 5π ) p7 = 12 13
p − 312πp + 169π ) 12 ≤ p < 12 481 (144π137248 (144π p + 312πp + 169π ) − 12 < p ≤ − 12
1 ▾ Plot[G3[p]/(2Pi), {p,-1.5,1.5}]

Out[45]:

 In [46]:Out[46]:

 In [47]:Out[47]:1 ▾ Integrate[G3[p]/(2Pi), {p,-Infinity,Infinity}] // TeXEq∞ G3(p)∫−∞ 2π dp = 1
1 ▾ Pi Integrate[G3[p]/(2Pi), {p,-1,1}] // TeXEq

1
1727π
π ∫−1 G3(p)2π dp = 1728
次に

 In [48]:Out[49]: In [50]:Out[50]:Ik(p) = g0 ∗ g1 ∗ ⋯ ∗ gk (p) を計算して, Ik(0) を計算し, Ik(p)/π プロットしてみよう.

1 ▾ I0[p_] = g[1,p];
2 ▾ I0[p] // TeX[HoldForm[I0[p]], "=", #]&I0(p) = πIf[−1 ≤ p ≤ 1,1,0]
1 ▾ I0[0] // TeXEq

I0(0) = πlocalhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

9/12

2019/7/2

 In [51]:A03 Borwein integral

1 ▾ Plot[I0[p]/Pi, {p,-2,2}]

Out[51]:

 In [52]:Out[53]:1 ▾ I1[p_] = Integrate[I0[q]g[1/2,p-q]/(2Pi), {q,-Infinity,Infinity}];2 ▾ I1[p] // TeX[HoldForm[I1[p]], "=", #]& π− 12 < p ≤ 12
I1(p) =  − 12 π(2p − 3) 12 < p < 32
 1 π(2p + 3) − 3 < p ≤ − 1
2

 In [54]:Out[54]:
 In [55]:22

1 ▾ I1[0] // TeXEq

I1(0) = π
1 ▾ Plot[I1[p]/Pi, {p,-2,2}]

Out[55]:

 In [56]:Out[57]:1 ▾ I2[p_] = Integrate[I1[q]g[1/3,p-q]/(2Pi), {q,-Infinity,Infinity}];2 ▾ I2[p] // TeX[HoldForm[I2[p]], "=", #]& π− 16 < p ≤ 161
p = − 16
 4 π(6p + 5)
5 <p< 7
 121 (3π − 2πp)667 < p ≤ −5
(2πp
+
3π)
−
2
6
6
I2(p) =  481 (−36π p2 − 12πp + 47π ) − 56 < p < − 16 4811 (−36π p22 + 12πp + 47π ) 16 < 5p < 56
 481 (−36π2p + 84πp − 13π ) p7 = 6 11
p − 132πp + 121π ) 6 ≤ p < 6 481 ((36π1172
48 36π p + 132πp + 121π ) − 6 < p ≤ − 6

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

10/12

2019/7/2

 In [58]:Out[58]: In [59]:A03 Borwein integral

1 ▾ I2[0] // TeXEq

I2(0) = π
1 ▾ Plot[I2[p]/Pi, {p,-2,2}]

Out[59]: In [60]:Out[61]:

1 ▾ I3[p_] = Integrate[I2[q]g[1/4,p-q]/(2Pi), {q,-Infinity,Infinity}];2 ▾ I3[p] // TeX[HoldForm[I3[p]], "=", #]&2
 1727π−432πp− 121 < p < 121
1728
1
 192 (−144π p2 − 48πp + 185π )− 127 < p < − 12557 1921 (−144π p2 + 48πp + 185π )12 < p < 12
17 < p < 19 19211 (144π p22 − 528πp + 487π )
12
12
19
17
144π
p
+
528πp
+
487π
−
<
p
≤
−
)
192 ( 31212
 −1728π
p −5616πp2−2628πp+2987π
11− 12 < p < − 127 −1728πp3−4752π3456p2−900πp+3853π− 1712 < p ≤ − 1312
 −1728πp3−2160π3456p2+6012πp+6851πp = − 127 −1728πp3−2160π3456p2+6012πp+8003π
11
p
=
−
3456
12
 −1728πp3−432πp2−36πp+3455π
1 <p< 51212
 −1728πp3−432π3456p2+6876πp+575π
5p = 12
 −1728πp3−432π3456p2+6876πp+2879π
1
p
=
3456
12
I3(p) =  −1728πp3+10800πp2−22500πp+15625π
19 ≤ p < 25 481 (−48π p3 −3456144π p2 − 97πp + 23π ) −121312 < p <12− 1112
 481 (48π p3 − 144π p2 + 97πp + 23π ) 1112 < p < 1312
p2+12996πp−6347π
 1728πp3−8208π3456
p = 1712
p2+12996πp−5195π
 1728πp3−8208π3456
p = 1312
3
2
p +2628πp+2987π
7 < p < 11 1728πp −5616π3456
1212p2+900πp+3853π
13 < p < 17 1728πp3−4752π3456
1212p2−6012πp+6851π
7
 1728πp3−2160π3456p=123−2160πp2−6012πp+8003π1728πp
 3 3456
p = 11122
p −6876πp+575π
p = − 125
 1728πp3−432π3456
p2+36πp+3455π− 125 < p ≤ − 121
 1728πp 3−432π34562
p +22500πp+15625π− 2512 < p ≤ − 1912
 1728πp +10800π3456

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

11/12

2019/7/2

 In [62]:Out[62]: In [63]:A03 Borwein integral

1 ▾ I3[0] // TeXEq

I3(0) = 1727π
1728
1 ▾ Plot[I3[p]/Pi, {p,-2,2}]

Out[63]:

localhost:8888/notebooks/Calculus/A03 Borwein integral.ipynb

12/12

2019/9/30

A04 zeta functions of partition functions

分配函数のゼータ函数
黒木玄2019-09-29
Copyright 2019 Gen Kuroki
License: MIT https://opensource.org/licenses/MIT (https://opensource.org/licenses/MIT)
Repository: https://github.com/genkuroki/Calculus (https://github.com/genkuroki/Calculus)

φ(w) とHamiltonian H(w) ≧ 0 に関する分配函数 Z(β) がZ(β) = ∫ e−βH(w) φ(w)dwと定義され, 分配函数に付随するゼータ函数 ζ(s) がζ(s) = ∫ H(w)sφ(w)dw∞と定義される. このとき, 分配函数のMellin変換 Z(s) = ∫0 Z(β)β s−1 dβ は∞−βH(w) s−1−s∫0 e β dβ = Γ(s)H(w)
事前分布

より

∞

Z(s) = ∫ (∫0 e−βH(w) β s−1 dβ) φ(w)dw = Γ(s)ζ(−s)となる. このノートでは以上の特別な場合の計算の詳細について解説する.

目次
1 設定
2 分配函数3 分配函数に付随するゼータ函数
4 Mellin変換と逆Mellin変換
5 分配函数の漸近挙動

1 設定

w = (w1 ,…, wd ) , bi ≧ 0 であるとし, 事前分布 φ(w) を(0 < w1 ,…, wd < 1)
φ(w) = { 0b1 ⋯ bd w1b1−1 ⋯ wdbd−1 (otherwise)と定め, ai > 0 であるとし, Hamiltonian H(w) をH(w) = wa11 ⋯ waddと定める.

2 分配函数以上の設定のもとで分配函数

Z(β) を1

1

Z(β) = ∫0 ⋯∫0 e−βH(w) φ(w)dw1 ⋯dwdと定める. このとき,

localhost:8888/notebooks/Calculus/A04 zeta functions of partition functions.ipynb

1/3

2019/9/30

A04 zeta functions of partition functions

Z(n) の n → ∞ での漸近挙動を知りたい.

Z(0) = ∫ φ(w)dw = 1, β→∞lim Z(β) = 0.

3 分配函数に付随するゼータ函数
分配函数

Z(β) に付随するゼータ函数 ζ(−s) が
d 1
1 1
ζ(−s) = ∫0 ⋯∫0 H(w)−s φ(w)dw1 ⋯dwd = ∏ ∫0 bi wi−ais+bi−1 dwi
i=1

i = 1,…,d について −ai Res + bi > 0 のとき, すなわち
Res < λi := baiiのとき収束している. λi = bi /ai > 0 達を以下のように並べ直しておく:
λ := λ1 = ⋯ = λm < λm+1 ≦ ⋯ ≦ λd .
上の積分は Res < λ で収束している. その積分を計算すると,dd
ζ(−s) = ∏ bi −bi ai s = ∏ λi λ−i s .
と定義される. この積分は

i=1

i=1

λ 以外の λi 達を λ′j (j = 2,…,r ) と書き, それぞれの重複度を m′j と書くことにする. このとき, ζ(−s) の極はちょうど s = λ,λ′j にあり, それぞれの極の位数は m,m′j になる.
4 Mellin変換と逆Mellin変換
分配函数

Z(β) のMellin変換は∞

Z(s) = ∫0 Z(β)β s−1 dβ = Γ(s)ζ(−s)と計算されるのであった. 前節で扱ったように ζ(−s) を定義する積分は Res < λ で収束しているので, このMellin変換も Res < λ で収束している. そこで, 0 < a < λ とし, s = a + it , β = ex , t,x ∈ ℝ とおくと,∞
Z(a + it) = ∫−∞ Z(ex )eax eitx dx.
これは Z(ex )eax の逆Fourier変換の形をしているので, Fourier変換によってもとに戻せる:∞
Z(ex )eax = 2π1 ∫−∞ Z(a + it) e−itx dt.
すなわち,∞Z(ex ) = 2π1 ∫−∞ Z(a + it) e−(a+it)x dt.

これは

a+i∞
a+i∞
Z(β) = 2πi1 ∫a−i∞ Z(s) β −s ds = 2πi1 ∫a−i∞ Γ(s)ζ(−s) β −s dsと書き直される.

5 分配函数の漸近挙動
以上によって,0 < a < λ のとき

a+i∞Z(β) = 2πi1 ∫a−i∞ Γ(s)ζ(−s) β −s ds

localhost:8888/notebooks/Calculus/A04 zeta functions of partition functions.ipynb

2/3

2019/9/30

A04 zeta functions of partition functions

Γ(s) の極は 0 以下の整数全体であり, ζ(−s) の極は s = λ,λ′j (j = 2,…,r ) にあり, それぞれの位数は m,m′j である. ゆ
えに, b をどの λ,λ′j よりも大きくして, 積分経路を Res = a から Res = b に移動すると, s = λ,λ′j における留数が現われる:rb+i∞Z(β) = Cβ −λ(logβ)m−1 + ∑ Cj′β −λ′j (logβ)m′j−1 + 2πi1 ∫b−i∞ Γ(s)ζ(−s) β −s ds.
j=1
ここで, C,Cj′ はある定数である. β → ∞ において, 最後の項の積分は O(β −b ) のオーダーであり, λ < λ′j < b なので, 支配的な項は最初の項になる. ゆえに, n → ∞ において,Z(n) = Cn−λ (logn)m−1 (1 + o(1)).
が示された.

すなわち,−logZ(n) = λlogn − (m − 1)loglogn + logC + o(1).

これが目標としていた結果である.

Z(β)

注意: 以上の議論は, 逆Mellin変換で表示されたの漸近挙動は, 縦方向の積分経路を横に平行移動したときに出て来る留数を見ればわかるという形式になっている. これは解析数論における基本定跡である. この基本定跡を適用した他の例について知りたいならばディリクレ級数の滑らかなカットオフ(https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A01%20Smooth%20cutoff%20of%20Dirichlet%20series.ipynb)
を参照せよ.

□

localhost:8888/notebooks/Calculus/A04 zeta functions of partition functions.ipynb

3/3