CordwainersCatの日記

Twitterに書き切れないような長い話はこちらに書こうと思います

微分から考えるネイピア数eを底にした指数関数の定義

何とかネイピア数の定義から形式的に指数関数の定義を導く事はできましたが、数式に出てくる乗数(指数)が実数になると言う困難はそう簡単には回避できそうにありません。そこで今回は視点を変えて「なぜ複利計算の極限、すなわち連続複利の計算式が自分自身とその微分が一致する関数と言う通常の指数関数の定義と結局おなじ物になるのか」を考えてみたいと思います。

もともとの利息の基本式は  ΔG=αGΔt と言うものです。一定期間Tにおける元金Gに対する増加率を単利の利率αと置きます。するとある指定期間Δtに於ける元利合計の増加分ΔGΔG=G\frac{α}{T}Δtとなりますが、期間T自身を何らかの時間の単位(年、月、日、時間など)にし、Δtをそれを単位にして表現すれば  ΔG=αGΔt と幾らか簡単になります。

ここで指定期間あたりの増加分、すなわち増加率ΔG/Δtをある期間の平均増加率ではなく瞬間瞬間の増加率にする事を考えます。自動車などの速度を考える時に平均速度から瞬間速度を定義するのと同じです。そのためにΔt0 に持っていきます。 まず両辺をΔtで割り算してΔG/Δt=αG\displaystyle \lim_{Δt \to 0} の極限はdG/dt=αG と言う微分方程式になります。

この微分方程式を変数分離形に変形すると\frac{1}{G} dG=αdt 。両辺をそれぞれdG, dt積分するので\log{e}G=αt + C (Cは任意定数)となります。これを指数形式に直すとG=\mathrm{e}^{αt+C}=\mathrm{e}^{αt}\cdot\mathrm{e}^{C}=K\mathrm{e}^{αt}、ただしK\mathrm{e}^{C}を改めて置きなおした正の定数です。このG=K\mathrm{e}^{αt}\mathrm{e}^{t}あるいは\mathrm{e}^{x}そのものとは違うと言う意見が出てくるかも知れませんが、Kおよびαは関数の縦軸、横軸を伸び縮みさせる係数に過ぎないので、縦軸および横軸の単位を適切に調整すれば、これは微分が自分自身に一致する、ネイピア数\mathrm{e}を底にした指数関数そのものになるわけです(これまた当たり前)。

ネイピア数 e の定義から指数関数の定義へ

さらに前回の記事からの続きです。ネイピア数eの定義  e=\displaystyle \lim_{n \to \infty} (1+\frac{1}{n})^{n} からeを底とする指数関数  e^{x}=\displaystyle \lim_{n \to \infty} (1+\frac{x}{n})^{n}  の定義を導けるでしょうか?

まず準備として\frac{n}{x}Nと置きなおします。すると上式の右辺は\displaystyle \lim_{n \to \infty} (1+\frac{x}{n})^{n}=\displaystyle \lim_{N \to \infty}(1+\frac{1}{N})^{N \times x} と書けます。このn\inftyにもっていく時、xを特定の有限値(この数列の収束や極限を考える時はxを固定された値と考えてよいはず)であると考えるとN=\frac{n}{x}\inftyに持っていく事になりますので、結局これは元の無限数列と同じであると言うことができます。さらに上式の\displaystyle \lim_{N \to \infty}(1+\frac{1}{N})^{N}の部分はネイピア数eの定義 e=\displaystyle \lim_{n \to \infty} (1+\frac{1}{n})^{n}とまったく同じ形をしていますので、これをネイピア数 e に置き換えると e^{x}と書けます。これでようやく【形式的には】 e^{x}=\displaystyle \lim_{N \to \infty} (1+\frac{x}{N})^{N} が導けました。

ここで問題となるのはNとはどんな数か?と言う事です。もともとの導きたい式 e^{x}=\displaystyle \lim_{n \to \infty} (1+\frac{x}{n})^{n} のn自然数を仮定しています。その自然数n\inftyに持って行った時の数列の極限で実数(実は超越数eの任意の実数x乗を定義してやろうと言う欲張った?構造になってます。整数あるいは実数の実数乗どころか、有理数乗すら事前に定義せずにです。一方、Nはどんな数かを考えるとN=\frac{n}{x}ですから、もとのn自然数と仮定したままにするとxを任意の実数とするためにはNはその任意の実数の逆数の整数倍と言うややこしい数になります。すなわち範囲としては自然数をはみ出してこちらも任意の実数になってしまいます。ここでまたちょっと困難に突き当たってしまいました。

連続複利からのネイピア数 e の定義

[前の記事からの続き]
これ結局、いわゆる「瞬間複利」あるいは「連続複利」の問題なんですよね。で、もともとの利息の基本式  ΔG=αGΔtΔt0 に持っていく事を考えます。 両辺をΔtで割り算してΔG/Δt=αG\displaystyle \lim_{Δt \to 0} の極限はdG/dt=αG と言う微分方程式になります。これを解くとG=ke^{αt} となります。kは任意の定数係数です。微分方程式と呼ぶのもオーバーな気もしますが、一番簡単な部類の微分方程式ですね。Gの初期値は即ち元金ですので、初期条件 t=0の時のG=kは元金の10,000(円)と置けば良いことが分かります。上式のt1(年)を代入するとke^{α}となり、これ 10,000 \times e^{0.0365}が一年後の瞬間複利計算の元利合計と言うわけです。
これだけではあまり面白くないので、前回記事の差分の式からeを底にした指数関数が出てくる理由を考えます。前回記事の 「G(n)=G_0(1+αΔt)^{n}=G_0(1+α\frac{T}{n})^{n} と書けます。Δt=\frac{T}{n}T=1(年間)」のTはそもそも1(年間)なので整理すれば G(n)=G_0(1+\frac{α}{n})^{n} と書けます。
ここで元金G_0は実はただの定数係数ですので増加率(これをYとおく)だけの式を考えるとY=(1+\frac{α}{n})^{n}です。単利の利率αを改めてxと置き直し、このn\inftyに持っていく極限を考えます。Y(x)=\displaystyle \lim_{n \to \infty}(1+\frac{x}{n})^{n}となります。あれあれ、なんだか見覚えのある式になってませんか?実はこれ指数関数の定義、 e^{x}=\displaystyle \lim_{n \to \infty} (1+\frac{x}{n})^{n} そのものなんですよね。以下の文書にその解説があります。ただし、なぜこの数列の極限がネイピア数の実数乗そのものなのかと言う説明はありません。収束する、そして極限がある事は議論してますが。「これが定義だから」で済ませてるようです。
なので、ここからはネイピア数自身の定義を考えていきましょう。収束数列によるネイピア数 eの定義は  e=\displaystyle\lim_{n \to \infty}(1+\frac{1}{n})^{n} と言うものです。他にもいくつかの定義があるようですが、これが一番複利計算の式と関連しています。連続複利の計算から考えられた式だと言う事です。
上式は以前の複利の利率を考えた式 Y=(1+\frac{α}{n})^{n}α1と置いた式になっています。つまり単利の利息を定義する一定期間Tにおける増加率を100\%、すなわちある期間Tで二倍に増えるものとしています。さらにそのTを時間の単位にして、1として置いてるわけです。
そんな良い利率は近頃あるはず無いって?単利の利息を定義する期間Tの方を伸ばせば良いんですよ、30年弱ほどまでw そうすれば年率にして3.65\%くらいになります。
数列 (1+1/n)^nn\inftyに近づけるとどこに収束するか?実際に計算してみましょう。
(1+1/1)^1 = 2.0
(1+1/2)^2 = 2.25
(1+1/3)^3 = 2.370370…
(1+1/4)^4 = 2.441406…
(1+1/5)^5 = 2.48832
(1+1/6)^6 = 2.521626…
(1+1/7)^7 = 2.546499…
(1+1/8)^8 = 2.565784…
(1+1/9)^9 = 2.5811747…
(1+1/10)^10 = 2.593742…
 
(1+1/100)^100 = 2.704813…
 
(1+1/1000)^1000 = 2.716923…
 
(1+1/10,000)^10,000 = 2.718145…
 
(1+1/100,000)^100,000 = 2.718268…
 
(1+1/1,000,000)^1,000,000 = 2.7182804…
 
(1+1/10,000,000)^10,000,000 = 2.7182816…
 
ようやくe=2.718281828… に収束して来ました
この数列が本当にネイピア数 e=2.718281828459045…に収束するのかどうかの検討はやめておきます。切りがありませんのでw そもそも  e=\displaystyle \lim_{n \to \infty} (1+\frac{1}{n})^{n} はeの定義の一つですし。本当はこの数列が単調増加で上に有界だから収束するとかを議論しないといけないのですが、面倒くさいのでやめますw
ちなみにTwitterで書いてた時に教えてもらったネイピア数eの収束に関する議論の記事はこちらです。
f:id:cordwainerscat:20190201002629j:plain
ネイピア数eの定義e=lim(n→∞)(1+1/n)^n の収束具合

 

これでようやく直近の本題に入れます。ネイピア数eの定義は e=\displaystyle \lim_{n \to \infty} (1+\frac{1}{n})^{n} だと言う事をひとまず受け入れましょう。これが無理数(超越数) eの定義だと。だとしても、ここから上に書いた指数関数の定義、 e^{x}=\displaystyle \lim_{n \to \infty} (1+\frac{x}{n})^{n} を導けるでしょうか?私にとっては今これが問題です。
逆はもちろん簡単ですね、x1を代入するだけですから。しかし、今はネイピア数eの定義の方から、eを底とする指数関数は e^{x}=\displaystyle \lim_{n \to \infty} (1+\frac{x}{n})^{n} で定義できる事を何とか導きたいわけです。パッと見、明らかだろって?いや、それは違いますよね。何らかの工夫が必要です。
 
 
 

お年玉から考える複利計算

お正月らしくお年玉の事を考えてみましょう。今、親戚からお年玉を一万円貰って持ってるとして「お母さん銀行」に預けると一年で3.65%の利息を貰えるものとします。つまり、この一万円を一年間使う事を我慢しさえすれば翌年のお正月には利息と合計で1万365円貰える約束です。「両親による詐欺だ!」「騙されちゃいけない」とか言う話はここでは置いておきましょう。 つまりこの場合は毎日1万円につき1円、元金の1/10,000の利息を貰える約束と言うわけです。
 
ここでお年玉を持ってる子供は知恵を働かせます。「お母さん、この世には複利と言うものがあるそうですよ。ある期間ごとに利息を元金に繰り込んでそれに対する利息を加える計算法です。」「一年間の単利、3.65%の利息では不満です。複利にしてください」【まあ子供のくせになんてガメツイ、もとい頭の良い子供なんでしょう】お母さんは呆れながらも「ハイハイ、どのくらいのペースで利息を元金に繰り込んで欲しいの?」と答えました。子供は【シメタ、引っ掛かったぞ。ドンドン利息を吊り上げてやる】と内心思いながら、「そうですね、まずは半年ごとに繰り込んでください」と答えました。
 
数字で書くとややこしいのでそろそろ数式で書く事にします。元金をG_0、任意の時点の元利合計をG、一回ごとの利息をΔG、単利の利率をα、一回の利息を計算する期間をΔt、預けてる期間全体をTと置きます。この場合、G_0=10,000(円)、α=0.0365T=1(年)なので一年に一回の利息ならΔG=365(円)です。これを半年ごとの複利計算するならΔt=1/2です。
一回の利息はΔG = αGΔt となります。したがって最初の半年で貰える利息
ΔG_1=0.0365 \times 10,000 \times 1/2 = 182.5(円)です。
つまり半年後の新しい元金 G_1=G_0+ΔG_1=G_0+αG_0Δt=G_0(1+αΔt) です。
次の半年で貰える元利合計は元金にすでに利息を一回繰り込んでますので
G_2=G_1 (1+αΔt)=G_0(1+αΔt)^2 となります。
 
これを展開して整理すると
G_2=G_0(1+2αΔt+(αΔt)^2)=G_0(1+αΔt)+G_0(αΔt+(αΔt)^2)
=G_1+G_0(1+αΔt)αΔt=G_1+G_1αΔt=G_1+ΔG_2となります。
ここでΔG_2とはΔG_2=αG_1Δtであり、すなわち2回目の半年間に貰える利息の事です。つまりG_2=G_1+ΔG_2=G_0+αG_0Δt+αG_1Δt であり、一年後の元利合計は元金に最初の半年間で得られる利息を足し、さらに次の半年間で得られる利息を足したものです。当たり前ですが、辻褄は合いました。
 
上の式は複利計算が累乗(指数関数)である事を元にしてそっちから変形しましたが、それでは話が逆さまな気がするので漸化式から変形してみます。
G_1=G_0+ΔG_1=G_0+αG_0Δt
G_2=G_1+ΔG_2=G_1+αG_1Δt=(G_0+αG_0Δt)+α(G_0+αG_0Δt)Δt
      =G_0+2αG_0Δt+α^{2}G_0(Δt)^{2}=G_0(1+2αΔt+(αΔt)^{2})=G_0(1+αΔt)^{2}
結論はやはり複利計算の合計は元金 x(1.0 + 期間ごとの利率)の累乗になります(当たり前ですね)。
 
結局、半年複利の場合の一年後の元利合計はいくらになるのか? G_0=10,000α=0.0365Δt=1/2なので、 G_2=10,000(1+0.01825)^2=10368.330625 となり利息は365円よりも僅かに増えます。3円とちょっとですね。ここから複利計算する間隔をどこまでも詰めていってみましょう。 一年間をn期間に等分割して複利計算した合計をG(n)とすると G(n)=G_0(1+αΔt)^n=G_0(1+α\frac{T}{n})^n と書けます。Δt=\frac{T}{n}T=1(年間)です。
 
複利計算を行う間隔を1ヶ月にすると G(12)=10,000(1+0.0365\times\frac{1}{12})^{12}=10,371.168411…
 
複利計算を行う間隔を一日にすると G(365)=10,000(1+0.0365\times\frac{1}{365})^{365}=10,371.724113…
 
複利計算を行う間隔を1時間にすると G(365\times24)=10,000(1+0.0365\times\frac{1}{365\times24})^{365\times24} =10,371.742251…
 
複利計算を行う間隔を1分にすると G(365\times24\times60)=10,000(1+0.0365\times\frac{1}{365\times24\times60})^{365\times24\times60} =10,371.743027…
 
複利計算をする間隔を1秒にすると G(365\times24\times60\times60)=10,000(1+0.0365\times\frac{1}{365\times24\times60\times60})^{365\times24\times60\times60} =10,371.743039…
 
アレアレ?オカシイですね〜、複利の利息が一年間の単利の利息365円に対して6~7円増えたところからちっとも増えていきません。まるでこの辺に収束してしまってるようです。これではお年玉をどこまでも増やそうと言う子供の目論見は外れてしまいます。
この10,371.743…と言うのは一体どう言う数字なのでしょう?なぜこんなところに収束していくのか? 実はこの数字は e^{0.0365} を一万倍したものです。つまりe(ネイピアの数=自然対数の底)を単利の利息乗した値に元金10,000円を掛けた物なのです。 なぜそんな事になるのか?ここからやっと本論に入ります。