04/09/15 19:54:37
前スレの最初の話題がそのlogの計算みたいだよ。 過去ログ見えないなら
3 名前:1 投稿日:2001/08/07(火) 11:28
早速だけど、
非力なCPUで対数を計算させたいのです。
log(a)を求めるのに、a=b*2^n として
bを0.5~の範囲に調整し
x = 1-b として(xは0~0.5の範囲)
ln(b) = -(x+x^2/2+x^3/3+x^3/4+x^5/5+x^6/6+x^7/7)
さらに高速なのは
x=(1-b)/(1+b) として(xは0~0.333の範囲)
ln(b) = -2*(x+x^3/3+x^5/5+x^7/7+x^7/9)
log(b) =-0.86859*(x+x^3/3+x^5/5+x^7/7+x^7/9)
6 名前:デフォルトの名無しさん 投稿日:2001/08/07(火) 14:05
>>3
除算がそれほど苦じゃないなら 0.5~1にした後で
√0.5以下なら√0.5で割ってから級数展開すれば収束が早くなるよ
後でlog(√0.5)を足せばいい。
あるいは平方根(lこれはニュートン法3回程度で十分)出してから
級数展開してもいいし
10 名前:1 投稿日:2001/08/07(火) 18:55
log(a)を求める方法ですが、a=b*2^n として
bを0.5~1の範囲に調整し
log(a)= -0.933*b*b + 2.775*b -1.8437 + log(2)*n
で求める精度が出ました