愛の方程式、i^i^i^i^i^...(虚数iのi乗のi乗のi乗の、、、つまり愛の愛情の愛情の愛情の、、、)をPython(SciPy)のLambertのW関数で計算する。 そしてexp(π/2)^exp(π/2)^exp(π/2)^… = -i (虚数)になる。
ずっと前に書いた話ですが、、、
愛の方程式、i^i^i^i^i^...(iのi乗のi乗のi乗の、、、つまり愛の愛情の愛情の愛情の、、、)の答えは?
というのをPythonでやろうと思う。こういうやつ。
普通にプロットすると、、、(10万回繰り返す)
どこかに収束している。その値は、
(0.4382829367270323+0.3605924718713855j)
になった。これをLambertのW関数を使って求めよう。
c=zzzzzzz…
と置いて、両辺のlogをとる。
log(c) = c*log(z)
ここで
c = exp(log(c))
なので、
log(c) = exp(log(c)) * log(z)
log(z) = exp(-log(c))*log(c)
ということで
(-log(z)) = (-log(c)) * exp( -log(c))
となる。
ところでLambertのW関数というのは
y = w*exp(w) となるようなw=W(y)のことをいう。
-log(c) = W(-log(z))
c = 1/exp(W(-log(z))
これで終わってもいいですが、
W(-log(z))*exp(W(-log(z))) = -log(z)
でもあるので、
c = W(-log(z)) / (-log(z))
ともかける。
ではこれをSciPyで計算しよう。簡単に、
from scipy.special import lambertw
z = 1j
c = lambertw(-np.log(z))/(-np.log(z))
print(c)
で答えは、
となってさっきと一致!
ちなみに、z=√2 とすると、
from scipy.special import lambertw
z = np.sqrt(2)
c = lambertw(-np.log(z))/(-np.log(z))
print(c)
(2.0000000000000004-0j)
2ですね。これを参照。
√2の√2乗の√2乗の、、、、を無限に繰り返すと? (ちょっと追記)
そしてz = exp(π/2)とすると、、、なんと
from scipy.special import lambertw
z = np.exp(np.pi/2)
c = lambertw(-np.log(z))/(-np.log(z))
print(c)
(-1.0028537113604063e-17-1j)
-iになる!
« tan1°が有理数か無理数かという入試問題があったが、Python+Sympyで実際に計算してみる。 | トップページ | 京都の向日市のJR西日本の車両基地?で黄色い電車を見た。キヤ141系「ドクターWEST(ウェスト)」というやはり検査用の車両だそう。 »
「日記・コラム・つぶやき」カテゴリの記事
- 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(1/29更新)日本の増加いうほど止まってない…中国はもう5万人で打ち止めということにしたいようだ。9億人感染という話なのに…(2023.01.29)
- JavaScriptの数値計算ライブラリmathjsを使う(11)バーニングシップフラクタルを描いてみる。このココログでも計算できるようにした。(2023.01.31)
- JavaScriptの数値計算ライブラリmathjsを使う(10) リーマンゼータ関数(Riemann Zeta function)を計算、3次元化してPlotlyでぐりぐり動かす。(2023.01.27)
- JavaScriptの数値計算ライブラリmathjsを使う(9) 仏陀のお姿のフラクタル Buddhabrot(ブッダブロ)を描く。このココログでも計算できるようにしてみた。(2023.01.26)
- JavaScriptの数値計算ライブラリmathjsを使う(8) 4段4次のルンゲクッタ法でローレンツ方程式を計算。このココログでもPlotlyで3次元でぐりぐり動かせるようにしてみた。 (2023.01.25)
« tan1°が有理数か無理数かという入試問題があったが、Python+Sympyで実際に計算してみる。 | トップページ | 京都の向日市のJR西日本の車両基地?で黄色い電車を見た。キヤ141系「ドクターWEST(ウェスト)」というやはり検査用の車両だそう。 »
コメント