python runtime-error logarithm

python - ValueError: error de dominio matemático



runtime-error logarithm (1)

Su código está haciendo un log de un número que es menor o igual a cero. Eso es matemáticamente indefinido, por lo que la función de log de Python plantea una excepción. Aquí hay un ejemplo:

>>> from math import log >>> log(-1) Traceback (most recent call last): File "<pyshell#59>", line 1, in <module> log(-1) ValueError: math domain error

Sin saber lo que hace su función newtonRaphson2 , no estoy seguro de adivinar de dónde viene el valor x[2] no válido, pero con suerte esto lo llevará por el camino correcto.

Estaba probando un ejemplo de Métodos Numéricos en Ingeniería con Python .

from numpy import zeros, array from math import sin, log from newtonRaphson2 import * def f(x): f = zeros(len(x)) f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0 f[1] = 3.0*x[0] + 2.0**x[1] - x[2]**3 + 1.0 f[2] = x[0] + x[1] + x[2] -5.0 return f x = array([1.0, 1.0, 1.0]) print newtonRaphson2(f,x)

Cuando lo ejecuto, muestra el siguiente error:

File "example NR2method.py", line 8, in f f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0 ValueError: math domain error

Lo he reducido al registro porque cuando elimino el registro y agrego una función diferente, funciona. Supongo que es por algún tipo de interferencia con la base, no puedo entender cómo. ¿Puede alguien sugerir una solución?