2016-09-13 6 views
1

Есть ли способ правильно рассчитать значение log (1 + x)/x в python для значений x, близких к 0? Когда я делаю это обычно, используя np.log1p (x)/x, я получаю 1. Как-то я получаю правильные значения, когда использую np.log (x). Разве log1p не должен быть более стабильным?Python Calculate log (1 + x)/x для x около 0

+5

для 'log (1 + x)' вы хотите 'np.log1p (x)' not 'np.log1p (1 + x)'. – hobbs

+0

Вы правы. Спасибо. – Aditya369

ответ

0

Итак, я нашел один ответ на этот вопрос. Я использовал библиотеку, называемую десятичной.

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).

Смежные вопросы