どくとる・めも

化学、数学、プログラミング、英語などに関する諸々

【数学】逆関数の話(逆関数の連続性、微分法)

はじめに

大学初年時の微積では、高校時代に慣れ親しんだ三角関数 \sin{x}, \cos{x}, \tan{x}に対する逆関数として、逆三角関数 \sin^{-1}{x}, \cos^{-1}{x}, \tan^{-1}{x} といったキャラクターが登場し、これらが関係する計算を行う上で(個人的に)最もよく用いるのは以下に示す逆関数微分公式である。これさえ覚えておけば、逆三角関数に関係する公式の暗記量をかなり削減できる。

関数 y=f(x)に対する逆関数 f^{-1}(x)を考えるとき、以下が成り立つ。

 \dfrac{df(x)}{dx}=\dfrac{1}{\frac{df^{-1}(x)}{dx}}

尤も、その場で導出するのは多少なりとも時間を消費するので、期末試験などには公式を暗記した状態で臨む方が良いとは思うが...

簡単な例で実際に考えてみよう。 y=\sin x \ (-\frac{\pi}{2} \leq x \leq \frac{\pi}{2})という関数に対して、その逆関数である y = \sin^{-1} xを考えることができる。ただし y=\sin xは周期関数なので、これをが一対一とするためには括弧内のように定義域を制限しないといけない。

さて、 y = \sin^{-1} xなる関数 y x微分したいとなったとき、どうすればいいだろうか? 無論、先の微分公式を使う。 \sin^{-1} x微分法はわからなくとも、 \sin x微分は容易である。

 y = \sin^{-1} xということは x = \sin yなので、これを yについて微分すると


 \dfrac{dx}{dy} = \cos y = \sqrt{1-\sin^2{y}}=\sqrt{1-x^2}

となる。さきほども触れた定義域の件が、ここで効いてくる。 y = \sin^{-1} xを考えるためには定義域を -\frac{\pi}{2} \leq x \leq \frac{\pi}{2}に制限せねばならず、そうすると \cos xは負の値はとれない。だからこのような変形ができるのだ。そして、 \dfrac{dx}{dy} を求まったから、あとはこれの逆数を取れば


 \dfrac{dy}{dx} = \dfrac{d}{dx} \sin^{-1}x = \dfrac{1}{\sqrt{1-x^2}}

となり、めでたく当初の目的を達成できた。めでたしめでたし、と言いたいところだが、今回の主題は冒頭で述べた逆関数微分公式の証明である。  \frac{dy}{dx}=\frac{1}{\frac{dx}{dy}}なんて、演算子たる微分を分数と同一視していて、(高校数学の範囲ではその理解でいいのだとしても)なんだか気にくわない。気にくわないのは私だけかもしれないが、ともかくこの主題に対して、もう少し数学的に厳密な証明を与えてみようと思う。

逆関数が存在するための条件

しかしこの証明を考えるためには、逆関数に対する予備知識をいろいろと身につけねばならない。多少長い道のりになるだろうが、お付き合い願いたい。

まず、以下の定理を学ぼう。

逆関数の存在条件:
ある連続関数  f逆関数を持つための必要十分条件は 、 f が狭義単調増加または狭義単調減少であることである

まぁ、確かに直感的にはそんな感じもする。単調増加または単調減少でない関数を相手にすると、定義域内のある値 f(c)を取りうる xが2つ以上存在しそうな気がするからだ。しかし、これに対しても厳密な証明を考えよう。

「狭義単調増加または狭義単調減少ならば逆関数が存在する」というのは当たり前だ。そういう関数の定義域内で任意の2点 x_1,  x_2 (x_1 < x_2)を考えると、狭義単調増加/減少なのだから、 x_1,  x_2をどのように選んでも必ず f(x_1) \neq f(x_2)となる。すなわち fは一対一だから、逆関数を考えることができる。

問題なのは、「逆関数が存在するならば元の関数は狭義単調増加/減少である」の証明だ。まず、逆関数の存在を仮定しているのだから、やはり fは一対一であり必ず f(x_1) \neq f(x_2)となる。

ここで、定義域内のさらに別の点 x_0を考えてみよう。色々な取り方が考えられるが、 x_1 < x_2という制約のもとであれば、(1) x_0 < x_1 < x_2, (2) x_1 < x_0 < x_2, (3) x_1 < x_2 < x_0の3パターンに大別できる。

また、ひとまずの仮定として f(x_1) < f(x_2)だとしよう。なぜこのような仮定を?という疑問が生じるが、これは fが狭義単調増加であることを示すための布石である。後の方で取り上げるが、もしこの仮定を f(x_1) > f(x_2)とすれば、狭義単調減少であることの証明となる。

まずは、(1) x_0 < x_1 < x_2に注目する。 f(x_0)の取りうる値としては、

  • (1-1) f(x_0) < f(x_1) < f(x_2)
  • (1-2) f(x_1) < f(x_0) < f(x_2)
  • (1-3) f(x_1) < f(x_2) < f(x_0)


に大別できる。 fは一対一だから、等号は不要である。

(1-1)は狭義単調増加である。しかし(1-2)については、中間値の定理より f(x_0) = f(x_3)なるx_3 (x_1 < x_3 < x_2)が存在してしまい、 fが一対一であることに矛盾する。よって、このケースは排除しよう。

図解すると、このような感じ(グラフはhttps://lecture.ecc.u-tokyo.ac.jp/~nkiyono/kiyono/12_kuwa-03.pdfより引用させていただきました)。グラフ中の x x_3に読み替えていただきたい。

(1-3)についても同様で、中間値の定理より f(x_2) = f(x_3)なる x_3 (x_0 < x_3 < x_1)が存在してしまい、 fが一対一であることに矛盾する。

そのほかのパターンである(2) x_1 < x_0 < x_2, (3) x_1 < x_2 < x_0についても同様に考えよう。すなわち、

(2)  x_1 < x_0 < x_2

  • (2-1) f(x_0) < f(x_1) < f(x_2) \Rightarrow f(x_1) = f(x_3)なる x_3 (x_0 < x_3 < x_2)が存在して矛盾
  • (2-2) f(x_1) < f(x_0) < f(x_2) \Rightarrow 単調増加なので問題なし
  • (2-3) f(x_1) < f(x_2) < f(x_0) \Rightarrow f(x_2) = f(x_3)なる x_3 (x_1 < x_3 < x_0)が存在して矛盾


(3)  x_1 < x_2 < x_0

  • (3-1) f(x_0) < f(x_1) < f(x_2) \Rightarrow f(x_1) = f(x_3)なる x_3 (x_2 < x_3 < x_0)が存在して矛盾,
  • (3-2) f(x_1) < f(x_0) < f(x_2) \Rightarrow f(x_0) = f(x_3)なる x_3 (x_1 < x_3 < x_2)が存在して矛盾,
  • (3-3) f(x_1) < f(x_2) < f(x_0) \Rightarrow 単調増加なので問題なし


という具合に場合分けができる。先ほどのグラフのように、実際に作図してみるのが一番わかりやすいだろう。


f:id:BeeFT:20210425195655p:plain

中間値の定理

(この定理の証明だけでかなり紙面を使うので、興味がない人は次節にジャンプしてください)
また道がそれて申し訳ないが、先ほど出てきた中間値の定理とはどういうものだっただろうか? 確認しよう。

中間値の定理:
区間 [a,b]で連続な実関数 f(x)について f(a) \neq f(b)であるとき、 f(a) < k < f(b)または f(b) < k < f(a)なるの任意 kに対して、 f(c)=kを満たす c∈[a,b]が少なくとも一つ存在する。


では、この定理に対しても証明を与えてみる。この証明では以下の前提を用いる。

  • 有界で単調増加な数列は収束する
  •  fが連続関数で、 a_n→\alphaならば f(a_n)→f(\alpha )
  • はさみうちの原理

まずは、無限数列 {a_n},{b_n}を次のように定義する。こうして定義した数列が f(c)=kをみたす cに収束することを示すのが証明の主な流れとなる(この証明手法は区間縮小法と呼ばれている)。

  •  a_0=a, b_0=b
  •  c_n=\dfrac{a_n+b_n}{2}とする。 f(c_n) \leq kならば a_{n+1}=c_n, b_{n+1}=b_nとする。
  • 一方、 f(c_n)>kならば a_{n+1}=a_n,b_{n+1}=c_nとする。


 f(a) < k < f(b)の場合と f(b) < k < f(a)の場合とがあるが、ひとまず前者に対する証明を考える。後者の証明も、以下に示す議論を同様に展開していけばいい。

このとき、すべての自然数 nについて、 f(a_n) \leq k < f(b_n)が成立する。これは後々登場するので、頭の片隅に入れておいてほしい。

まずは最も単純な n = 1の場合から、実際に考えてみよう( n = 0の時は明らかに成り立っている。 f(a) < k < f(b) f(a_0) < k < f(b_0)と同じことを指している)。先の定義より、 c_0 =\dfrac{a_0+b_0}{2}であるから、

  •  f(c_0) \leq kならば a_{1}=c_0, b_{1}=b_0=b. よって f(a_{1})=f(c_0) \leq k であり、前提条件として f(a) < k < f(b)\  (f(b)=f(b_0)=f(b_1))なる kを考えていたのだから、 f(a_1) \leq k < f(b_1)が示せた。
  •  f(c_0)>kならば a_{1}=a_0,b_{1}=c_0. よって f(b_1)=f(c_0) > kであり、 f(a_1)=f(a_0)=f(a) < kだから f(a_1) < k < f(b_1)が示せた。


2つのケースをまとめると、 f(c_0) kの大小関係にかかわらず、 f(a_1) \leq k < f(b_1)であることが示せた。

さて、帰納法なので n = i (1 \leq i)のケースも検討しよう。すでに kは文字として使ってしまっているので、代わりに iを使うことに。 f(a_i) \leq k < f(b_i)が任意の自然数 iについて成立すると仮定しよう。 a_{i+1}および b_{i+1}の値は f(c_{i}) kに対する大小関係で決定される。

  •  f(c_{i}) \leq k \Rightarrow tex: a_{i+1} = c_i = \dfrac{a_i+b_i}{2}, f(a_{i+1}) = f(c_i) \leq kであり、また f(b_{i+1})=f(b_{i}) > kだから、 f(a_i) \leq k < f(b_i)が任意の自然数 iについて成立するならば f(a_{i+1}) \leq k < f(b_{i+1})もまた成立する
  •  f(c_{i}) > k \Rightarrow [tex: b_{i+1} = c_i = \dfrac{a_i+b_i}{2}, f(b_{i+1}) = f(c_i) > kであり、また f(a_{i+1})=f(a_{i})だから、 f(a_i) \leq k < f(b_i)が任意の自然数 iについて成立するならば f(a_{i+1}) \leq k < f(b_{i+1})もまた成立する。


要は無限数列 a_n,  b_nおよび c_nの条件設定が重要であり、帰納法による証明自体は大したことはしていない。

また、 \{ a_n \} は単調増加な数列となり、 \{ b_n \} は単調減少な数列となる。なぜかというと a_n < c_n < b_nは明らかで、 a_{n+1}は値が変わらないか増加するかしかあり得ないためである。同様に、 b_nは値が変わらないか減少するかしかあり得ない。

すなわち、これらの2数列は有界な単調数列であり、有界な単調数列は収束する。(時すでに遅しという感もあるが)あまりにもエントリが長ったらしくなってしまうので、この証明は別の機会にまわそう。ともかく各数列の収束先が



 \displaystyle \lim_{n \to \infty} a_n = \alpha
 \displaystyle \lim_{n \to \infty} b_n = \beta


であるとしよう。しかし \alpha, \betaなどと分けてみたものの、実は両者の値は等しい。これを示すために、 b_{n+1}-a_{n+1}を考えてみる。これは f(c_{n}) kに対する大小関係に関係なく、常に一意に決まる。実際に求めてみると、

  •  f(c_n) \leq k \Rightarrow b_{n+1}-a_{n+1} = b_n - c_n = b_n -  \dfrac{a_n+b_n}{2} = \dfrac{b_n-a_n}{2}
  •  f(c_n) > k \Rightarrow b_{n+1}-a_{n+1} = c_n - a_n = \dfrac{a_n+b_n}{2} -a_n= \dfrac{b_n-a_n}{2}


確かにどちらのケースであっても、結局得られる答えは一緒だ。すなわち



 b_{n+1}-a_{n+1} = \dfrac{b_n-a_n}{2}


換言すると、



 b_{n}-a_{n} = \dfrac{b_{n-1}-a_{n-1}}{2}


これを n-1, n-2, \cdotsと繰り返すことで最終的に



 b_{n}-a_{n} = \left( \dfrac{1}{2} \right) ^n (b-a)


が得られる。したがって、



 \displaystyle \lim_{n \to \infty} b_n = \displaystyle \lim_{n \to \infty} \left\{ a_n + \left( \dfrac{1}{2} \right) ^n (b-a) \right\}

 \beta = \alpha


確かに \alpha \betaは等しかった。ここで \alpha = \beta = cとしよう。

しかし、そもそもの前提として c∈[a,b]だった。 \alpha, \betaの値がそんな限られた範囲内に収まるとしてもよいのか?という疑問が一瞬頭をよぎるが、こういう風に考えてみよう。 \left\{ a_n \right\}は初期値 aから始まる単調増加数列で、 \alphaより大きな値は取らない。逆に、 \left\{ b_n \right\}は初期値 bから始まる単調減少数列で、 \betaより小さな値は取れない。そして \beta = \alphaなのだから、 \alpha \beta [a,b]の範囲内に収まらざるを得ないのだ。

そして、実は f(c) = kが成り立っている。先ほど我々は、すべての自然数 nについて、 f(a_n) \leq k < f(b_n)が成立することを証明した。この不等式に対してはさみうちの原理を適用してみる。



 \displaystyle \lim_{n \to \infty} f(a_n) =  f(\alpha) =  f(c)

 \displaystyle \lim_{n \to \infty} f(b_n) = f(\beta) = f(c)


不等式の両端が一意の値に収束することから、はさみうちの原理より、



 \displaystyle \lim_{n \to \infty} k = k = f(c)


しつこいようだが c∈[a,b]である。大変に長い道のりであったが、これで中間値の定理を証明できた。

逆関数の連続性

さて、次に関数 y = f(x)が連続であるならばその逆関数 f^{-1}(x)もまた連続であるということを証明しよう。これまた直感的には当たり前なのだが、こういうところもちゃんと証明できないと納得できない性分なのでご容赦願いたい。

そして、この主張が成り立てば、いよいよ本題である逆関数微分公式を論じることができるようになる。

ある関数の連続性を考えるわけだから、ε-δ論法を使おう。関数 f(x)の定義域を区間 Iとして、その際の値域を Jだとしよう。すなわち f^{-1}(x) Jを定義域として Iを値域とする関数と言える。

示したいのは、区間 Jの中の任意の bを考えた時に、任意の正の実数 \epsilonに対して、以下を満たすある正の実数 \deltaが存在することだ。


 \forall y \in J [ |y-b| < \delta \Rightarrow |f^{-1}(y)-f^{-1}(b)| < \epsilon ]


逆関数を対象にしているせいで多少仰々しい見た目になっているが、書いてあること自体はいたって普通のε-δ論法だ。

区間 Jの中の任意の b写像 f^{-1}によって aに写されるとしよう。すなわち f^{-1}(b) = aであり、 f(a) = b だ。

次に、以下のような区間 J'を考える。


 J' = \left\{ f(x) | x \in (a - \epsilon, a + \epsilon) \cap I \right\}


普通 \epsilonはごく小さな値を考えるので (a - \epsilon, a + \epsilon)は自動的に Iに収まりそうなイメージがあるが、実際には \epsilonは任意の正の実数なので、 Iからはみ出てしまうことも想定される。そういう場合には、はみ出した分はカットして Iとオーバーラップする区間のみを対象にする。この区間 bを含んでおり、また二つの正の実数 \delta_{+}, \delta_{-}を考えれば、 J' = (b - \delta_{-}, b + \delta_{+}) \cap Jとなる。

少し抽象的なので、具体例を考えよう。今、関数 f(x) = x^2に対して a = 2, \epsilon = 1だとする。すなわち fの定義域は (1, 3)であり、これに対する値域は (1, 9)である。 f(a)=f(2)=4だから、 \delta_{-} = 4-1 = 3, \delta_{+} = 9-4 = 5となる。実際には開区間を対象としているから \delta_{-}, \delta_{+}をこんなにはっきりとは指定できないのだが、まぁイメージとしてそういうもんだということである。

ここで \delta = \min \left\{ \delta_{-}, \delta_{+} \right\} なる \deltaを考える。この時、 y \in J |y-b| < \deltaを満たすものは y \in J'となる。そして、このような y \in J'に対しては f^{-1}(y) \in (a - \epsilon, a + \epsilon) \cap Iである。 a = f^{-1}(b)だから、言い換えれば、 | f^{-1}(y) - f^{-1}(b) | < \epsilonが成り立っている。よって、



 J' = \left\{ f(x) | x \in (a - \epsilon, a + \epsilon) \cap I \right\}


が示せた。このあたりは抽象度が高いので、先に挙げた f(x) = x^2などの具体的な関数を用いてグラフを書いたり数直線を書いたりすれば、イメージが湧きやすくなる。当たり前だが単調関数を具体例として用いないとそもそも逆関数を論じることができない。

逆関数微分公式の証明

さて、やっと本題に入れる。これだけ色々なことを論じたのだが、肝心の本題はわりと短めだったりする。

微分可能な関数 f(x)逆関数 y=f^{-1}(x)を考え、定義域内の適当な aに対して f'(a) \neq 0が成り立つものとする。

 f(x)微分可能であるから連続であり、したがって y=f^{-1}(x)もまた連続となる。ここで f(a)= b \Leftrightarrow f^{-1}(b)=aとすると、 x \to bのとき y \to aである。そして逆関数を考える以上、  x \neq b \Rightarrow y \neq aなので、


 \begin{align} \left( f^{-1}(x) \right)' &= \displaystyle \lim_{x \to b} \dfrac{f^{-1}(x)-f^{-1}(b)}{x-b} \\
\displaystyle &= \lim_{y \to a} \dfrac{y-a}{f(y)-f(a)}\\
\displaystyle &= \lim_{y \to a} \dfrac{1}{\dfrac{f(y)-f(a)}{y-a}} \\
&= \dfrac{1}{f'(a)} \\
\end{align}

定義域内の任意の aに対してこの議論が適用できるなら、これは導関数で表して一般化することができる。

おわりに

逆関数微分法の証明をできるだけ厳密に考えようという試みだった。
まとめとしては、

  • まず、対象とする関数が逆関数を持ちうるのか(狭義単調増加\減少なのか)を検討する。逆関数を持つ⇒その関数は狭義単調増加\減少であるという命題は、中間値の定理によって証明する。
  • ある関数が連続である時には、その逆関数も連続となる。

という具合だった。12,000字超えの、超ボリュームになってしまった。

ガチ数学者の方から色々指摘を受けそうな気もするが、まぁ私は純粋数学徒ではないし、数学を日常的に用いている方の大半もまたそうであろうから、これくらいまで掘り下げておけば十分では?と考えている。