(-1)^s の研究


new 2016.12.23





(-1)^s とは -1, 1, -1, 1, . . . .  と続く数列の複素数化ということです。すでに前ページで複素数の計算方法を解説してあるので、s=a+b*i として計算することはそれほど難しいことではありません。ですから、このテーマを取り上げる必要性もなく、すでに判っているという気持ちになっていました。ところが、B(1)=-1/2 となるようにベルヌーイ数を数式化する必要に迫られ、従来のベルヌーイ数の式に (-1)^s を掛けることになり、その中身を分析する過程で、今までの複素数計算理解に修正を施さなければならない現象を発見しました。もしこれが本当なら、プログラムを修正しなければならなくなります。これは大問題なので、このようにHPで報告することになったのですが、はたして、ここでの分析が正しいかどうかの自信・確信があるわけではありません。誰か教えてくれる人はいないかと期待しているところです。思い違いや、何かの考え違いがあるのかもしれませんが、ご指摘いただけると幸いです。連絡は、hirokuro303@gmail.com 宛にお願いいたします。




■      (-1)^s の従来の計算方法


前ページの複素数計算方法を使うと (-1)^s は難なく計算できて、答えが出てきます。たとえば、s=1+5*i としてみましょう。dx=-1 、aw=1+5*i として、Tk4.pow(dx,aw,cw) として、java でプログラムを作ります。そのやり方は 「javaによる多桁計算」 の中で解説してあります。計算すると、答えは (-1.507017E-7, 0) となります。

s=2.2+3*i として計算すると、答えは (6.528728E-5, 4.743398E-5) となります。別に難しいわけではありません。マイナスでも答えがでます。s=-1.8-0.4*i とすると、(2.8425504, -2.0652338) となります。

今まではこれで満足していたのですが、より詳細に調べてみると問題に直面することになります。





■      (-1)^s の図


pt22 の図
s=a+b*i として、実部が-1から3まで、虚部は零として計算した図を載せてみます。計算の結果、きれいな図が出来上がりました。ただし、a=0 において、虚部波が折れています。・・・こういうこともないわけではないので、これだけでは間違いとは言えません。不思議なことだなという印象ですが、今まで別に困ったことは起きなかったので、このままになっていました。

ところが、ベルヌーイ数式に (-1)^s を掛けるときに困ったことが起きてしまいました。

そのことを説明しようとして、虚部を再度分析したところ、これは単なる計算間違い・プログラムミスであることが判明しました。

(-1)^s とは (-1)^(a+b*i) ということです。これは (-1)^a*(cos(b*ln(-1))+i*sin(b*ln(-1)) ということです。ln(-1)は極座標に直して計算します。(-1) は 絶対値1、角度-pi なので、 (cos(-pi) + i*sin(-pi) です。これに (a+b*i) を掛けるということですが、cos(-pi*(a+b*i)) + i*sin(-pi*(a+b*i)) となります。

b=0 なので、cos(-pi*a)+i*sin(-pi*a) となり、a→0 で 答えは (1,0) に近づきます。問題は虚部ですから sin(-pi*a) を厳密に考えます。a=0.1のとき、sin(-pi*0.1)=-0.30901699 です。図では虚部がプラスになっているので、これはプログラムミスであるということになります。a=-0.1 とすると sin(pi*0.1) であり、答えは 0.30901699 ですから、図と一致します。つまり、間違いはaのマイナス部分ではなく、プラス部分にあるということのようです。




<追記>

プログラムミスということでもないみたいです。(-1) の角度は -pi なのですが、+pi でも間違いではありません。3piでもあります。角度はぐるぐる回っているので、2piをプラス・マイナスしても同じことです。そこで、pi として計算すると、a=0.1のとき sin(pi*0.1)=0.30901699 となります。これは上の図のプラス部分が問題ないことを意味しています。

これはどういうことでしょうか。(-1)の角度が pi でもあり、-pi でもあるということは、答えがふたつあるということです。もしくは、複数あるということです。これは多価関数というのでしょうか。正式名称はわかりませんが、f(x)=y という関数で、x1に対して f(x1)=y1 と f(x1)=y2 というふたつの答えが可能であるということです。ルートの場合も、+−のふたつの値をとりますから、(-1)^s も複数の値を取って良いのかもしれません。

しかし、だからと言って、-0.1=0.1 という結果が出るような計算規則を放置しておくことは許されません。何らかの修正は必要だと思います。






■      (-1)^(-0.1)を分析する。


プログラムを修正することは面倒ですが、仕方のないことですから、修正するつもりでしたが、さらに検討するともっと大きな問題にぶつかりました。

プログラム修正の際に使う検算方法を決めておくことにして、その候補として s=(-0.1-0.5*i) という数を選びました。計算しやすいし、見た目が判りやすいということです。これを bw数列に入れ、aw=-1 として、Tk4.pow(aw,bw,cw)として計算すると、結果は (4.5750358, 1.4865192) となりました。ついでに s=(0.1+0.5*i) として計算してみると、(1.9770522E-1, 6.4238321E-2) となりました。

これは困ったことです。同じ値が出てくると思っていたので、違った結果になり驚きました。計算法則では、両者は一致しなければなりません。 (-1)^(-0.1-0.5*i) = (-1)^{(-1)*(0.1+0.5*i)}  となるはずです。これが {(-1)^(-1)}^(0.1+0.5*i) であり、(-1)^(0.1+0.5i) となります。ですから、(-1)^(-0.1-0.5*i) = (-1)^(0.1+0.5*i) でなければなりません。

どこかにとんでもない勘違いがあることが明らかになりました。たんなるプログラムミスでは済まされない問題です。



上記の計算のどこに問題があるのでしょうか。話を単純化するために (-1)^(-0.1) を使って考えてみます。-0.1=-1*0.1 です。ですから、(-1)^(-0.1)=(-1)^(-1*0.1) となります。右辺は (-1)^(-1)^(0.1) ですから、(-1)^0.1 となります。(-1)^(-1)=-1 であることは確認できています。しかし、(-1)^(-0.1)=(-1)^(0.1) と置いて対数化させると、-0.1*ln(-1)=0.1*ln(-1) となり、両辺をln(-1)でわると -0.1=0.1 ということになります。これはあり得ません。

(-1)^(-1)=-1 であることを再確認しておきます。(-1)^(-1)=1/(-1) ですから、1/(-1)=-1 となります。これは昔から認められている計算です。

(-1)^(-1)=c+d*i として計算してみます。両辺を対数化すると 左辺は (-1)*ln(-1) となり、ln(-1)=0+pi*i ですから、左辺は 0-pi*i となります。右辺は ln(c+d*i) です。つまり、0-pi*i=ln(c+d*i) となります。元に戻すと、e^(0-pi*i)=c+d*i です。ゆえに、cos(-pi)+i*sin(-pi)=c+d*i となり、c=-1, d=0 となります。ですから、何も矛盾はありません。

a^(b*c)=(a^b)^c という式がいけないのでしょうか。

どう考えてもわからないので、ひとまず元に戻って、(-1)^(-0.1-0.5*i) の答えが 、(1.9770522E-1, 6.4238321E-2) であるのは間違いなのか、それともこれも可能な答えなのかを検討してみます。もし、間違いなら、なぜ間違いと言えるのか?という問題です。ln(-1)はいくつもの答えが可能な関数です。piでも -pi でも良いし、3*pi も可能です。ですから、(-1)^(-0.1-0.5*i) の答えが複数あったとしても良いという考えも成り立たないわけではありません。しかし、-0.1=0.1 という結果はあってはならないわけで、こうならないような規則にしなければなりません。

そこで、まずは 「マイナスの対数は未完成である。」 と認識したうえで、当面、「(-1)^(b*c) は ((-1)^b)^c としてはならない。」という規則を付け加えておくことにします。

これで問題が解決するかどうかはまだわかりませんので、この続きをさらに検討することにします。















表紙に戻る  前のページへ  次のページへ