・ 私の未解決問題                K.S氏

 「 Y=|X| のグラフをかき、Y=/2 との交点の個数を求めよ。また、そのときの交
 点のX座標を求めよ。」
 これは、自分の考えた問題である。なぜ、こんな問題を思いついたかというと、「0の0乗と
は何か?」という思いがあり、「X→0 のときの|X|x の極限値は何か?」という問題にた
どり着いたからである。この極限値は対数をとって、ロピタルの定理を使うと 1 になる。

    そこで、グラフを用いて、
   方程式|X|/2 を考えてみる。
   グラフから、この解は3個ある。
   1/2 と 1/4 と負の数の解である。
   負の数の解があるということは確かに
   分かるのだが、その値は求められなか
   った。というわけで、この問題は未だに
   解けていない。解がはっきりとした数で
   表せないというのは、なんともいえない
   気がする。今までに見てきた「数学の
   問題」というのには、必ずはっきりした
   解があったのに・・・。何とも奇妙である。
   こういうわけで深く感銘を受けた。

(追記) 空舟さんからのコメントです。(平成24年8月25日付け)

 負の解の問題は、t=−X と変換すれば、t という問題になりますが、「ランベルトの
W関数
」というのがあるらしいです。特殊関数ってやつですね......。


(コメント) ランベルトのW関数を用いて解いてみた。

 t の両辺の e を底とする自然対数をとると、 t・log t =log

 このとき、 log t ・elog t =log なので、 log t =W(log

 よって、 t = eW(log となる。

 この値を調べるには、数値計算しかなさそうですね...。


 らすかるさんからのコメントです。(平成24年8月25日付け)

 ランベルトのW関数に関しては以前数値計算方法を研究したことがあって、自作電卓にも
搭載しています。

 ネットで検索すると3次収束と4次収束の式は出てきますが、多桁計算にはちょっと遅いの
で、自作電卓では12次収束の式を使用しています。※漸化式は自作で、24次収束まで作り
ました。

 ところで、 |x|=/2 の負の解は、

-log2/{2W(log2/2)}=-1.30435117890103653364720123148623407503553382998902…

となります。

(コメント) らすかるさん、ありがとうございます。約−1.3位ですか。上図の−1の左側の
      部分の視界が少し開けた感じです...。


 GAIさんからのコメントです。(平成24年8月25日付け)

 空舟さんから紹介された記事を読んで計算してみました。まず、

  W(x)=Σn=1〜∞ {(-n)n-1/n!}x

で定義される関数Wを作る。(計算機で処理する時には∞を1000で設定しました。)

 x= を満たすxは、
(一般に、x・e=t を満たすxを求めることがW関数を使うことで出来るようになる。)

 x=log()/W(log() から求まり、

 x=0.3465739502.../W(0.3465739502...)=1.30435117890....

なる値が出る。これから、|x|=/2 を満たすxは、x=1/2、1/4、-1.30435117890.... と3個
存在する。

 ここで、t=-1.30435117890.... に対して、|t|t=0.7071067811865475244008443619...

一方 /2=0.7071067811865475244008443621... である。

 同様にして、y=2 … (1) 、y=3x … (2) の2つの交点のx座標を求める計算をラ
ンベルトの関数Wを用いるやり方で挑戦。

 2t=3t から、両辺を 2t で割って、 1=3te-t・log2 さらに、両辺を3で割って、

  1/3=te-t・log2  この両辺に -log2 を掛けて、 -(log2)/3=-(log2)te-t・log2

 これをランベルトの関数を用いて書き換えると、 -(log2)t=W(-(log2)/3)

 これから、 t=W(-(log2)/3)/(-log2)

 これをプログラムに組み、数値計算させると、

   t= 0.4578223732320550555738866680640554097777750832317766…

が求まる。これでいいのかな?もう一つの解はどうしたらいいのかな?


 らすかるさんからのコメントです。(平成24年8月25日付け)

 W(x)は、-1/e≦x<0 のとき2価ですから、W(-(log2)/3)は、

-0.317338287203061937813337422441155649112826474209541704773596…



-2.296520253118852045622163925693816744412216672265184546034003…

の2つの値をとります。従って、t の値は、

0.457822373232055055573886668064055409777775083231776637656055…



3.313178380475634845996561019588783663458454297890271137009552…

の2つです。


 GAIさんからのコメントです。(平成24年8月25日付け)

 W(x)は、-1/e≦x<0 のとき2価ですから、W(-(log2)/3)は、

-0.317338287203061937813337422441155649112826474209541704773596…


までは、グラフを確認して納得。ここで、次の値はどうやって計算したのですか?

-2.296520253118852045622163925693816744412216672265184546034003…


 らすかるさんからのコメントです。(平成24年8月25日付け)

 W(a)の値は、

(1) aからW(a)の漸化式に使う初期値を計算する

 aの値によって(0、0に近い値、-1/eに近い値、その他)、また分岐によって処理方法や計
算式が異なります。

(2) 12次収束の漸化式を2回または3回計算する(180桁〜2200桁の場合)

という手順で計算しています。どちらの値の計算でも(2)の計算は全く同じで、(1)で計算する
初期値が-0.317…と-2.296…のどちらに近いかによって収束先が異なります。

 この処理の中身や計算式を書くことは出来なくはないですが、計算手順は高速化のため
に多くの場合分けをしており、また計算式も自作電卓用に最適化されていますので、書くと
とても長くなり、これをそのまま他の環境に移植してもあまり意味がありません。もし自分で
計算してみたいということであれば、環境(求めたい定義域、求めたい桁数、高速化が必要
かどうかなど)を教えていただければ、手頃な式を提示します。


 GAIさんからのコメントです。(平成24年8月25日付け)

 x^x^x^x.....=((x^x)^x)^x.....が収束するとき、ランベルト関数Wを用いて、W(-log(x))/(-log(x))
の極限値を持つ。

 これから、

(π/3)^(π/3)^(π/3)^(π/3)^.....=1.0495954675...

(π/4)^(π/4)^(π/4)^(π/4)^.....=0.8202519485...

(2^(1/2))^(2^(1/2))^(2^(1/2))^(2^(1/2))^.....=2

(2^(1/3))^(2^(1/3))^(2^(1/3))^(2^(1/3))^.....=1.3734671196...

(2^(1/4))^(2^(1/4))^(2^(1/4))^(2^(1/4))^.....=1.2396277295...

(2^(1/5))^(2^(1/5))^(2^(1/5))^(2^(1/5))^.....=1.1772785503...

なる関係が成立する。本日始めて知った知識なので、どなたか数値のチェックをして下さい。


 らすかるさんからのコメントです。(平成24年8月25日付け)

 ((x^x)^x)^x..... は、x>1のとき収束しません。x^(x^(x^(x^(x^… ならば、値は正しいです。

=x の解が、 x=W(-loga)/(-loga) ですから、そのようになりますね。

 また、ちょっと気になったので、収束する条件を調べてみたのですが、ここにも

   分岐-1 (W(x)<-1である方)

の値が出てきました。W(x)のうち分岐0の値をW0(x)、分岐-1の値をW1(x)として

 x>0、 a[n+1]=x^a[n] 、 a[0]>0 とするとき

   x<1 ならば、 a[0] の値にかかわらず  W0(-logx)/(-logx) に収束する

   x=1 ならば、 a[0] の値にかかわらず 1 に収束する

   x>e^(1/e) (e^(1/e)≒1.444667861) ならば、 a[0]の値にかかわらず発散する

   1<x≦e^(1/e) のときは、

      a[0]>W1(-logx)/(-logx) ならば、発散

      a[0]=W1(-logx)/(-logx) ならば、 W1(-logx)/(-logx) に収束

      a[0]<W1(-logx)/(-logx) ならば、 W0(-logx)/(-logx) に収束

となるようです。


 当HPがいつもお世話になっているHN「GAI」さんからの問題提起です。
                                        (平成26年9月30日付け)

 e=x を満たす実数xは存在しない。そこで、 ez=z を満たす複素数 z を求めて下さい。


 S(H)さんから参考資料を頂きました。(平成26年9月30日付け)

 (参考) S(H)さんの投稿


 らすかるさんからのコメントです。(平成26年9月30日付け)

 ez=z より、 1=ze-z すなわち、 −1=−ze-z

 よって、 −z=W(−1) (ランベルトのW関数) より、 z=−W(−1) となり、初等関数
で解を書き表すことができません。

 数値的には、 z=a+b・i とおくと、 a=e・cosb 、b=e・sinb

 b=e・sinb から、 a=log(b/sinb) なので、 a=e・cosb から、

  b=arccos(a/e)+2nπ=arccos(log(b/sinb)/(b/sinb))+2nπ

 よって、初期値を、(2n+1/2)π として、 x ← arccos(log(x/sinx)/(x/sinx))+2nπ
を繰り返すことで近似値が求められます。(適当な式なので収束は遅いです)

 求めたxに対して、z=log(x/sinx)±i・x が解となります。具体的には、

 n=0 のとき

z≒0.318131505204764135312654251588±1.337235701430689408901162143194i

 n=1 のとき

z≒2.062277729598283884978486720008±7.588631178472512622568923954108i

 n=2 のとき

z≒2.653191974038697286601106643318±13.949208334533214455288918039003i

 n=3 のとき

z≒3.020239708164501151377243687941±20.272457641615221810348855905451i

  ・・・・・・・・・・・・・・・・・・・

のようになります。

                                   投稿一覧に戻る