Holograph1c Attract0r

日々の数学やプログラミングに関係する話。

x^2 = 2^x ~ ランベルトのW関数と共に

お久しぶりです。久しぶりに数学の話でもしようかなと思います。

\begin{align}
x^2 = 2^x \quad (x \in \mathbb{R})
\end{align}

今回はこの方程式について、取り扱います。

突然ですがみなさん、この方程式解けますか?

 

……「甘く見てもらっちゃ困る、2と4だろ?」ときっと多くの人が感じているでしょう。もちろん、その2つも解になりますね。代入してみれば自明です。

ここで、ちょっとグラフを観察してみることにしまよう。

上の方程式は、2つの関数 y = x^2y = 2^x交点を求めることと同値なので、とりあえずグラフを描いてみます。

f:id:mikan_alpha:20200215173146p:plain

Desmosでグラフを描いてみた。

うーん、確かに x=2,4 のところでしっかりグラフが交わっていますね。

「なんでそんな中途半端な画像の切り抜き方なんだ」、って? 気になります?しょうがないですね~。

 

真の全体像は、こちら。

f:id:mikan_alpha:20200215173802p:plain

おや、グラフの様子が……?

さっきと何が違うのって、……うん?

f:id:mikan_alpha:20200215174244p:plain

今明かされる、衝撃の事実!

な、なんかあった!!!

 

……という感じで、実は上の方程式には、負の実数解がもう1つ存在するのです。

この値は、一体どんな数なのか? 今回はこれを探っていきたいと思います。

方程式を解くだけの簡単なお仕事

あんまり簡単じゃない。

とりあえず、元の式を変形していってみましょう。

\begin{align}
x^2 = 2^x
\end{align}

元の方程式はこれでした。とりあえず、指数絡んでるので両辺自然対数を取りましょう。「2を底にしたほうがいいんじゃない?」とかあるかもしれませんが、後でその理由は分かります。

\begin{align}
2 \log |x| = x \log 2
\end{align}

対数取っただけですね。ここで、ちょっと式の整理をします。

\begin{align}
x^{-1} \log |x| = \frac{1}{2} \log 2
\end{align}

さて、一見してここから x について解くのは果たして可能なのか?と思えます。

 

ここで本日の強力な武器の登場です。それが、ランベルトのW関数です。

\begin{align}
z = W(z) e^{W(z)}
\end{align}

上のような式を満たす関数 W がランベルトのW関数です、といってもいまいちしっくりこないと思います。

この関数は、関数 f(z) = z e^z逆関数 f^{-1}となっています。
つまり、z = W(z e^z) が成り立つということです。これだけ分かれば十分です。

 

これを使って、さらに式変形していきます。

絶対値が式の中にあるので、場合分けしましょう(x=0 のときは明らかに解にならないので除外です)。

まず x が正の場合。

\begin{align}
x^{-1} \log x = \log \sqrt{2}
\end{align}

普通にそのまま絶対値を外しました。あと 1/2 は対数の中に入れてしまいます。

さらに、W関数が使える形に持っていきます。

\begin{align}
\log x \, e^{- \log x} = \log \sqrt{2}
\end{align}

両辺-1倍してあげれば、

\begin{align}
- \log x \, e^{- \log x} = - \log \sqrt{2}
\end{align}

になって、左辺が z e^z の形になりました。
ここで両辺にW関数を使います。

\begin{align}
W(- \log x \, e^{- \log x}) &= W(- \log \sqrt{2}) \\
- \log x &= W(- \log \sqrt{2})
\end{align}

したがって、x について解くと、

\begin{align}
x = e^{-W(- \log \sqrt{2})}
\end{align}

となります。

さて、x は正という仮定だったので、これは2と4に一致するはずですが……1個しか解が無いですね?

 

実は、このランベルトのW関数は多価関数、という奴でちょっと厄介な性質があるのです。ざっくり言うと、同じ入力値から出力の値が複数出てきてしまいます。

詳しい話をすると、この関数は開区間 (-1/e,0) 上で二価となります。上で出てきた -\log \sqrt{2} という値はギリギリこの中に収まっていて*1、従って2と4という2つの値を取ることになるのですね。

 

これと同様に、x が負の場合の解も求めましょう。
流れとしてはほぼ同じです。W関数が使えるように変形します。

\begin{align}
x^{-1} \log (-x) = \log \sqrt{2}
\end{align}

ちょっとトリッキーに、以下のようにします。

\begin{align}
(-x)^{-1} \log (-x) = - \log \sqrt{2}
\end{align}

あとはさっきと同じです。

\begin{align}
- \log (-x) \, e^{- \log (-x)} = \log \sqrt{2}
\end{align}

符号をお間違えなきよう。

\begin{align}
W(- \log (-x) \, e^{- \log (-x)}) &= W(\log \sqrt{2}) \\
- \log (-x) &= W(\log \sqrt{2})
\end{align}

ゴールが見えましたね。

\begin{align}
x = -e^{-W(\log \sqrt{2})}
\end{align}

eの前にマイナス符号が付いてるので、しっかり負の値であることがわかります。

さてこの具体的な値を求めたいのですが、実は残念ながらこの値は2や4のように綺麗にはなりません。しかも超越数になります。

\begin{align}
x = -e^{-W(\log \sqrt{2})} = -0.766664695962123 \dots
\end{align}

ちなみにこの範囲ではW関数は一価なので、負の解はこれだけです。

 

\begin{align}
(-0.766664695962123 \dots)^2 = 2^{-0.766664695962123 \dots}
\end{align}

以上、明日から使える豆知識でした。

*1:eの逆数は約0.368、2の平方根の自然対数は約0.347