アカウント名:
パスワード:
やってる計算は10のn乗根をn乗して元の10に戻るかですよね。n=2^mとしてm=40(つまり、n≒10^12)あたりで結果が怪しくなる。nが大きければn乗根は1に近くなるので、倍精度の有効桁数約16桁なら10^-16程度の打ち切り誤差になりますね。n乗根の真の値をxとすれば、計算値はx(1+e)(eは10^-16程度の値)になってるわけです。そのn乗は、eの一次まで計算すれば 10(1+ne)で、10neの誤差が見込めますね。m=40でn≒10^12ですから、10^-3程度の誤差が生じると思います。自分で計算してみたところ、ほぼその程度の結果となりましたよ。
(10^(1/2^A1))の部分が1に近くなると、桁落ちで、全体として小さくなるわけですよね。
A1=54のとき、いきなり計算結果が54.59815・・・となったりしてびっくりします。
>いきなり計算結果が54.59815・・・となったりしてびっくりします。
桁落ち(と繰り上げ・繰り下げ)による誤差なんで、30とかではなくもっと前から発生してますよね?ですので、54でいきなり誤差が馬鹿でかくなるんではなく、もっと前から連続的にでかくなります。nを細かくとってプロットするとわかりやすいですが、10とかそれ以前の段階ですでに誤差が出ていて、誤差が振動しつつ拡大しています。そしてn=54.2025502036884で最大値9.9775500295102600E+01をとる、と。でまあこれは別にEXCELに限ったわけではなく、倍精度で似たような方法で計算してるものは全部出ます。LibraOfficeしかり、Google電卓しかり。#内部的に何桁持ってるかとか、どの段階でうち切るか/桁落ちするかとかがあるんで、振動幅が最大になる数値は微妙に違ったりしますけど。
38までは桁落ちは発生してないんじゃないかな。
10^xを計算するところで桁落ちするのでは?実際、EXCEL(とかLibra Officeとかその他諸々)で(10^(1/2^10))^(2^10)を計算させると10からずれます。#n=5あたりでもズレたはず。
※ただし、EXCELはいろいろとインチキ(というか、桁落ちを見せない工夫)をしているので、参照を使ってA1=10の時に(10^(1/2^A1))^(2^A1)を計算させるときっちり10を返しますが。
#Windowsだと、標準添付の電卓がかなり桁持ってるんだっけ?
(1/2^x)^(2^x)をプリコンパイルで1と認識できる処理系なら発生しないはず
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
えーと、何が問題なのかわからないです (スコア:1)
やってる計算は10のn乗根をn乗して元の10に戻るかですよね。
n=2^mとしてm=40(つまり、n≒10^12)あたりで結果が怪しくなる。
nが大きければn乗根は1に近くなるので、
倍精度の有効桁数約16桁なら10^-16程度の打ち切り誤差になりますね。
n乗根の真の値をxとすれば、計算値はx(1+e)(eは10^-16程度の値)になってるわけです。そのn乗は、eの一次まで計算すれば 10(1+ne)で、10neの誤差が見込めますね。
m=40でn≒10^12ですから、10^-3程度の誤差が生じると思います。自分で計算してみたところ、ほぼその程度の結果となりましたよ。
Re: (スコア:1)
(10^(1/2^A1))の部分が1に近くなると、桁落ちで、全体として小さくなるわけですよね。
A1=54のとき、いきなり計算結果が54.59815・・・となったりしてびっくりします。
Re: (スコア:0)
>いきなり計算結果が54.59815・・・となったりしてびっくりします。
桁落ち(と繰り上げ・繰り下げ)による誤差なんで、30とかではなくもっと前から発生してますよね?
ですので、54でいきなり誤差が馬鹿でかくなるんではなく、もっと前から連続的にでかくなります。
nを細かくとってプロットするとわかりやすいですが、10とかそれ以前の段階ですでに誤差が出ていて、誤差が振動しつつ拡大しています。そしてn=54.2025502036884で最大値9.9775500295102600E+01をとる、と。
でまあこれは別にEXCELに限ったわけではなく、倍精度で似たような方法で計算してるものは全部出ます。LibraOfficeしかり、Google電卓しかり。
#内部的に何桁持ってるかとか、どの段階でうち切るか/桁落ちするかとかがあるんで、振動幅が最大になる数値は微妙に違ったりしますけど。
Re:えーと、何が問題なのかわからないです (スコア:1)
38までは桁落ちは発生してないんじゃないかな。
Re: (スコア:0)
10^xを計算するところで桁落ちするのでは?
実際、EXCEL(とかLibra Officeとかその他諸々)で(10^(1/2^10))^(2^10)を計算させると10からずれます。
#n=5あたりでもズレたはず。
※ただし、EXCELはいろいろとインチキ(というか、桁落ちを見せない工夫)をしているので、参照を使ってA1=10の時に(10^(1/2^A1))^(2^A1)を計算させるときっちり10を返しますが。
#Windowsだと、標準添付の電卓がかなり桁持ってるんだっけ?
Re: (スコア:0)
(1/2^x)^(2^x)をプリコンパイルで1と認識できる
処理系なら発生しないはず