Errores de dominio matemático de Python en la función math.log

Rohan Timalsina 10 octubre 2023
Errores de dominio matemático de Python en la función math.log

El ValueError se genera en Python cuando la función recibe un argumento válido, pero es un valor inapropiado. Por ejemplo, si proporciona un número negativo a la función sqrt(), devuelve ValueError.

De manera similar, si el valor especificado es 0 o un número negativo en la función math.log(), arroja ValueError. Este tutorial le enseñará a resolver ValueError: error de dominio matemático en Python.

Solucione el ValueError: error de dominio matemático en la función math.log usando Python

La función math.log() calcula el logaritmo natural de un número o el logaritmo de un número en base. La sintaxis de math.log() es la siguiente:

math.log(x, base)

Aquí, x es un valor requerido para el cual se calculará el logaritmo, mientras que base es un parámetro opcional. Después de importar el módulo math, podemos usar la función math.log().

Cuando pasa un número negativo de un valor cero a la función math.log(), devuelve ValueError. Es porque los logaritmos de tales números no están definidos matemáticamente.

import math

print(math.log(-2))

Producción :

Traceback (most recent call last):
  File "c:\Users\rhntm\myscript.py", line 2, in <module>
    print(math.log(-2))
ValueError: math domain error

Podemos resolver este error pasando un valor de entrada válido a la función math.log().

import math

print(math.log(2))

Producción :

0.6931471805599453

Puede utilizar el módulo decimal para pasar un valor cercano a cero a la función math.log(). El método ln de una clase Decimal calcula el logaritmo natural de un valor decimal.

import math
import decimal

num = decimal.Decimal("1E-1024")
print(math.log(num))

Producción :

Traceback (most recent call last):
  File "c:\Users\rhntm\myscript.py", line 5, in <module>
    print(math.log(num))
ValueError: math domain error

Ahora, usemos el método Decimal ln().

from decimal import Decimal

num = Decimal("1E-1024")
print(num.ln())

Producción :

-2357.847135225902780434423250

Ahora conoce las razones de ValueError: error de dominio matemático en la función math.log() de Python. El ValueError ocurre cuando usa un valor de entrada no válido en la función, que se puede resolver pasando un valor válido a la función.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - Python Error