@solidsnake777999777

Правильно ли я вычислил y=ln(x)?

65895c21018fb570137869.png

Я проверял функцию при x=2.

Мой код:

def compute_ln(x, eps):
    if x <= 0:
        return float('-inf')  # Логарифм от неположительного числа равен минус бесконечности.

    if x == 1:
        return 0  # Логарифм от 1 равен 0.

    if x < 0:
        return float('nan')  # Логарифм от отрицательного числа является комплексным числом.

    term = x - 1
    result = term
    n = 2

    while abs(term) > eps:
        term *= -(x - 1)
        term /= n
        result += term
        n += 1

    return result

x = 2.0  # Замените x на ваше значение
eps = 1e-6  # Замените eps на вашу желаемую точность

result = compute_ln(x, eps)
print(f"ln({x}) = {result}")

Результат этого кода: ln(2.0) = 0.6321205357142857.

Ещё есть такой вариант:

x = 2
eps = 1e-6
result = 0
term = x - 1
n = 1

while abs(term) > eps:
    result += term
    n += 1
    term = ((-1)**(n-1) * (x-1)**n) / n

print(result)

Результат: 0.6931476805602526.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Неверно.
1. Вы неправильно вычисляете следующий член суммы. Вместо i в знаменателе вы получаете i!
2. Условие if x < 0: у вас никогда не сработает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы