2016-09-13 6 views
1

xの値が0に近い場合、pythonのlog(1 + x)/ xの値を正しく計算する方法はありますか?通常、np.log1p(x)/ xを使用すると、1になります。np.log(x)を使用すると、何とか正しい値を得ているようです。 log1pはより安定しているとは思われませんか?Python log(1 + x)/ x for x near 0を計算する

+5

'log(1 + x)'に 'np.log1p(x)'ではなく 'np.log1p(1 + x)'を指定します。 – hobbs

+0

あなたはそうです。ありがとうございました。 – Aditya369

答えて

0

私はこれに1つの答えを見つけました。私はdecimalというライブラリを使いました。

from decimal import Decimal 
x = Decimal('1e-13') 
xp1 = Decimal(1) + x 
print(xp1.ln()/x) 

このライブラリはnumpyよりはるかに安定しているようです。

1
np.log1p(1+x) 

これはあなたにlog(2+x)を与えます。それをnp.log1p(x)に変更してください。

関連する問題