📝

無限反復指数関数の定義域に関するメモ(Part 1)

2022/02/18に公開約11,000字

メモとか言いつつめっちゃ長くなったので2つに分けました...
Part 2 はこちら: 無限反復指数関数の定義域に関するメモ(Part 2)

きっかけ

冪乗が右上に無限に伸びる、無限反復指数関数[1] \underbrace{x^{x^{x^{^{\cdot^{\cdot^{\cdot}}}}}}}_{\text{height:}~\infty} というものがあります。

  • テトレーション記法だと \displaystyle \lim_{n\to\infty}{^n{x}} のことです。

この x にテキトーな数を入れちゃうと発散します。

  • 例えば \displaystyle \underbrace{2^{2^{2^{^{\cdot^{\cdot^{\cdot}}}}}}}_{\text{height:}~\infty}=\infty です。

でも、うまく選ぶと収束するみたいです。

  • \displaystyle \underbrace{1^{1^{1^{^{\cdot^{\cdot^{\cdot}}}}}}}_{\text{height:}~\infty}=1 です。これはわかりやすい。
  • \displaystyle \underbrace{\sqrt{2}^{\sqrt{2}^{\sqrt{2}^{^{\cdot^{\cdot^{\cdot}}}}}}}_{\text{height:}~\infty}=2 は自明ではないかもしれませんが、大学入試問題とかで見かけます。

いったい、どういう条件なら収束するのでしょうか?

Wikipediaによれば [e^{-e}, e^{\frac{1}{e}}] の範囲で収束するとのことですが、理由までははっきりと書いていなかったので、自分で確かめることにしました。

ゴールの設定

無限反復指数関数であって、値が収束する(ただ1つ決まる)範囲で定義されている関数\mathcal{T}(x) と書くことにします。

より厳密に決めると、\mathcal{T} は部分写像であり、以下を満たすとします[2]

\begin{equation} \mathcal{T}:U \subset \mathbb{R}^+ \rightarrow V\subset \mathbb{R}^+; x \mapsto \mathcal{X} ~\text{s.t.}~ (\mathcal{X}=\lim_{n\to\infty}{^n{x}}, ~ \mathcal{X} \ll \infty) \end{equation}

ただし、\text{s.t.} は such that の略で、 \mathbb{R}^+ は正の実数の集合です。

このとき、\mathcal{T} の定義域が e^{-e}\le x \le e^{\frac{1}{e}} であること、すなわち

\begin{equation} \text{dom}\left(\mathcal{T}\right) = \{ x\in\mathbb{R}^+~|~ e^{-e}\le x \le e^{\frac{1}{e}} \} \end{equation}

を確かめます。

準備

ある正の実数 a があって、\displaystyle \underbrace{a^{a^{a^{^{\cdot^{\cdot^{\cdot}}}}}}}_{\text{height:}~\infty}正の極限値 c をもつとします。

すなわち、\mathcal{T}(a)= \displaystyle \lim_{n\to\infty}{^n{a}}=\underbrace{a^{a^{a^{^{\cdot^{\cdot^{\cdot}}}}}}}_{\text{height:}~\infty} = c です。

すると、c が収束値であることと、右辺が無限列(無限の高さの塔)であるという事実から

c=a^{a^{a^{^{\cdot^{\cdot^{\cdot}}}}}}=a^{\left(a^{a^{a^{^{\cdot^{\cdot^{\cdot}}}}}}\right)}=a^c
\begin{equation} \therefore c=a^c \end{equation}

という関係が導けます[5]

よって、このあと処理しやすいように、記号を左右に分離すると

\begin{equation} a=c^{\frac{1}{c}} \end{equation}

が成り立ちます[6]

本当かな?

(4)の a12 を入れてみると、

\begin{equation} 1=1^{\frac{1}{1}} \end{equation}
\sqrt{2}=2^{\frac{1}{2}}

となりますので、今の所矛盾はないようです。

上限を確認する

(1)の定義のもとで、(4)における a がどこまで大きくなれるか、確認してみましょう。

(4)より、a の最大値は c^{\frac{1}{c}} の最大値(上界)に等しいです。
そのため、\mathcal{T}a の関数として見たとき、 c^{\frac{1}{c}} の最大値(値域の上限)がそのまま \mathcal{T}(a) の定義域の上限になると考えるのが自然です[7]

よって、これから c^{\frac{1}{c}} の最大値を求めることにします。

方針

まずは ac について、

\begin{equation} a = f(c) = c^{\frac{1}{c}} \end{equation}

という関数とみなして、導関数f'(c)を求めてみます。

関数の極値を求める方法に従って、f'(c)=0 となる c がわかれば、答えに近づくかもしれません。

計算

\displaystyle a=c^{\frac{1}{c}}=e^{\frac{1}{c}\log{c}} と変形できるので

f'(c)=\frac{\text{d}a}{\text{d}c}=\frac{\text{d}}{\text{d}c}\left(\frac{1}{c}\log{c}\right) \cdot e^{\frac{1}{c}\log{c}}=\frac{\text{d}}{\text{d}c}\left(\frac{1}{c}\log{c}\right) \cdot c^{\frac{1}{c}}

ここで

\frac{\text{d}}{\text{d}c}\left(\frac{\log{c}}{c}\right)=\frac{-\log{c}\cdot 1+c\cdot\frac{1}{c}}{c^2}=\frac{-\log{c}+1}{c^2}

よって

\begin{equation} \frac{\text{d}a}{\text{d}c}=f'(c)=\left(\frac{-\log{c}+1}{c^2}\right) \cdot c^{\frac{1}{c}}=c^{\frac{1}{c}-2}\left(1-\log{c}\right) \end{equation}

と、導関数が求まりました。

ここで、底が正の指数関数は常に正になることから、c^{\frac{1}{c}-2} > 0 です。
ゆえに

f'(c)=0 \Rightarrow 1 - \log{c} = 0

が成り立ちます。

従って、1 - \log{c} = 0、 つまり \log{c}=1 をみたすような c だけが解の候補です。


自然対数の定義より \log{e}=1 ですから、 c=e です。

よって

\begin{aligned} f'(e)&=c^{\frac{1}{e}-2}\left(1-\log{e}\right)\\ &=c^{\frac{1}{e}-2} \cdot (1-1)\\ &=0 \end{aligned}

がわかります。

f'(e)=0 なので、c=e のときに c^{\frac{1}{c}} は最大値(極値)をとる可能性があります。

そこで、(4)と(5)などを使って増減表を書き、グラフのようすを観察することにします。
ただ、f(c)f'(c) だけではグラフの様子が完全にわかりませんので、f''(c)も求めておきます。

f''(c)= \frac{\text{d}}{\text{d}c} \left( c^{\frac{1}{c}-2}\left(1-\log{c}\right) \right)=c^{\frac{1}{c}-4}\left( 1+2(c-1)\log{c} + \log^2{c} -3c \right)
計算の詳細

そのままだと計算しづらいので、部分的に置換して微分します。

\begin{aligned} p &= c^{\frac{1}{c}-2} \\ q &= 1-\log{c} \end{aligned}

とおいて、\displaystyle \frac{\text{d}p}{\text{d}c}\displaystyle \frac{\text{d}q}{\text{d}c} をそれぞれ計算します。


\displaystyle \frac{\text{d}q}{\text{d}c} は簡単です。

\begin{aligned} \frac{\text{d}q}{\text{d}c}&=\frac{\text{d}}{\text{d}c}(1-\log{c})\\ &=0-\frac{1}{c}\\ &=-\frac{1}{c} \end{aligned}

\displaystyle \frac{\text{d}p}{\text{d}c} は少し難しいです。

まず、u=c^{\frac{1}{c}-2} とおいて、両辺の自然対数をとり、式を変形します。

\begin{aligned} \log{u}&=\log{c^{\frac{1}{c}-2}} \\ &=\left( \frac{1}{c}-2 \right) \log{c} \end{aligned}

両辺を c について微分します。(以下、c による微分を「 ' 」で表します。)

\left(\log{u}\right)'=\left(\left( \frac{1}{c}-2 \right) \log{c}\right)'

ここで、

\left(\log{u}\right)'=u'\cdot\frac{1}{u}=\frac{u'}{u}

さらに、部分微分の公式から

\begin{aligned} \left(\left( \frac{1}{c}-2 \right) \log{c}\right)'&=\left( \frac{1}{c}-2 \right)'\log{c}+\left( \frac{1}{c}-2 \right)\left( \log{c} \right)' \\ &=\left( -\frac{1}{c^2} \right)\log{c} + \left( \frac{1}{c}-2 \right)\left( \frac{1}{c} \right) \\ &=-\frac{\log{c}}{c^2} + \frac{1-2c}{c^2}\\ &=\frac{1}{c^2} \left( 1-2c-\log{c} \right) \end{aligned}

ゆえに

\begin{aligned} \frac{u'}{u} &= \frac{1}{c^2} \left( 1-2c-\log{c} \right) \\ \therefore u'&= u\cdot\frac{1}{c^2} \left( 1-2c-\log{c} \right)\\ &= c^{\frac{1}{c}-2}\cdot\frac{1}{c^2} \left( 1-2c-\log{c} \right)\\ &= c^{\frac{1}{c}-4} \left( 1-2c-\log{c} \right) \end{aligned}

したがって

\frac{\text{d}p}{\text{d}c}=c^{\frac{1}{c}-4}\left(1 - 2c - \log{c} \right) \\

以上の結果を利用して

\begin{aligned} f''(c)&=\frac{\text{d}}{\text{d}c}pq=\frac{\text{dp}}{\text{d}c}q+\frac{\text{d}q}{\text{d}c}p \\ &=c^{\frac{1}{c}-4}\left(1 - 2c - \log{c} \right)\left(1-\log{c}\right)+\left(-\frac{1}{c}\right)\left(c^{\frac{1}{c}-2}\right) \\ &=c^{\frac{1}{c}-4}\left(1 - 2c - \log{c} \right)\left(1-\log{c}\right)+\left(-\frac{c^2}{c}\right)\left(c^{\frac{1}{c}-4}\right) \\ &=c^{\frac{1}{c}-4}\left( 1+2(c-1)\log{c} + \log^2{c} -3c \right) \end{aligned}

ここで

1+2(c-1)\log{c} + \log^2{c} -3c=0

を満たす c を数値計算すると[8]、おおよそc=0.582, 4.368となるので、これと(4)(5)を使って増減表を書くと以下のようになります。

c (0) ... 0.582 ... e ... 4.368 ... (\infty)
f'(c) (0) + 1.795 + 0 - -0.035 - (0)
f''(c) (0) \cap 0 \cup -0.072 \cup 0 \cap (0)
f(c) (0) \nearrow (0.395) \nearrow e^{\frac{1}{e}} \searrow (1.401) \searrow (1)

これにより、c=e の前後で符号が変化していることから、 c=e のとき f(c) は極値 e^{\frac{1}{e}} をとることがわかりました。


ところで、 (6)より \mathcal{T} は関数 f の逆関数の一部と一致します。[9]

注目すべきは、f の値域に上界 e^{\frac{1}{e}} があるという事実です。つまり

\begin{equation} \sup\text{ran}(f) = e^{\frac{1}{e}} \end{equation}

これにより、f の逆関数の一部である \mathcal{T}定義域 にも上界 e^{\frac{1}{e}} が存在することが示唆されます。

さらに f(e)=e^{\frac{1}{e}} ~ \Rightarrow ~ f^{-1}(e^{\frac{1}{e}})=e という事実と、(4)より

\begin{aligned} \left(e^{\frac{1}{e}}\right)^e&= e \\ \therefore \mathcal{T}(e^{\frac{1}{e}})&=e \end{aligned}

なので、\mathcal{T} の定義域に e^{\frac{1}{e}}含まれていることがわかります。

e^{\frac{1}{e}} \in \text{dom}(\mathcal{T})

このことから、\mathcal{T}定義域 にはたしかに上界 e^{\frac{1}{e}} が存在します。

よって、この事実と(8)より

\begin{equation} \sup \text{dom}(\mathcal{T})=e^{\frac{1}{e}} \end{equation}

が確認できました。

また、増減表と(5)から f は 区間 [1, e] において微分可能かつ特異点が無いので、連続であることがわかります。
f の定義域 [1, e] に対応する値域は [1, e^{\frac{1}{e}}] になりますので、逆関数を考えることで

\begin{equation} \{x\in \mathbb{R}^+~|~1\le x \le e^{\frac{1}{e}}\} \subset \text{dom}(\mathcal{T}) \end{equation}

であることもわかります。

本当かな?

実際にSwiftで実装して確かめてみましょう[10]

今回は \mathcal{T} の定義域の上界を二分探索で見つけるコードを書いて確認しました。
ポイントとしては、x \gt e^{\frac{1}{e}} において値が発散する(計算結果がinfになる)ことを利用しています。

Swift
import Foundation

func calc(x: Double) -> Double { calc(x: x, loop: 1000000) }
func calc(x: Double, loop: Int) -> Double {
    var buf = x
    for _ in 0..<loop {
        buf = pow(x, buf)
    }
    return buf
}

var left = 1.01, right = 2.0
while right - left > 1e-9 {
    let mid = (left + right) / 2
    if calc(x: mid).isInfinite {
        right = mid
    } else {
        left = mid
    }
}
print(left)

https://paiza.io/projects/QW4dQK1Olh71PG1LvBvQPw
output
1.4446678609400987

一方で

e^{\frac{1}{e}}=1.4446678610097661336583391085964302230585954532422531658205226643...

https://www.wolframalpha.com/input/?i=e^(1%2Fe)&lang=ja

下8桁まで一致していることが確認できました[11]

いずれにしても、x = e^{\frac{1}{e}} が境界点であるのは正しいと考えられるので、(9)が確かめられたと言えるでしょう。

次回

無限反復指数関数の定義域に関するメモ(Part 2)

参考リンク

https://www.ajimatics.com/entry/2018/12/01/070000
https://marukunalufd0123.hatenablog.com/entry/infinitetetlation
http://neqmath.blogspot.com/2018/06/blog-post_29.html
脚注
  1. 「nが無限大のテトレーション」、「無限冪乗塔」とも ↩︎

  2. ググって拾ったパワポを参考に書いたので間違いがあるかもです ↩︎

  3. 複素数の範囲であれば値が求まるようなので、\mathbb{C}\setminus\{0\} からスタートして考えてもいいかもしれないですが、今回はそんな余力がなかったので考えないことにしました。今度時間があれば別途記事にするかもしれません。 ↩︎

  4. "\underbrace"を記号の肩にのせようとすると正常に描画してくれないようです😢 ↩︎

  5. Wikipediaもそう言っています。...ではなくて、本当は「無限とは何か」からきちんと丁寧に定義して議論を詰めていくべきだとは思います。が、今の実力だと時間が無限に溶けるので打ち切りました。(あとで別個の記事にするかもしれません) ↩︎

  6. この操作は陰関数 c=a^c において、変数 a についての解を求めていることになると思うので、「c=a^c」と「a=c^{\frac{1}{c}}」が同値である(少なくとも平面上のプロットが同じ形になる)かどうかについては確認する必要がある気がします。実のところどうすれば確認できたことになるのかというのはまだわかっていませんので、今回は例によってWikipediaに特に説明なく書いてあったのを借りた形です。ちなみにDesmos上でプロットすると両者は一致しているように見えたので、実は考慮不要だったのかな?とも思えてきています... ↩︎

  7. 「自然です」という表現がアバウトなのは認識していますが、どのようにしてスキマを埋めていけばいいかよくわかっていません ↩︎

  8. 【ゆるぼ】これの厳密解の求め方 ↩︎

  9. 局所的に全単射であることを確認するのが先ですが...ここでは省略しました ↩︎

  10. Swiftを選んだのはただの趣味です。 ↩︎

  11. 精度を大きくするともっとよく一致すると思います。ただ、paiza.ioはもとより、家庭用コンピュータでもあんまり計算時間が長いと返事がなくなるので、あんまり高い精度は期待しないほうがいいのかもしれないです。 ↩︎

Discussion

ログインするとコメントできます