저는 Python으로 엔지니어링의 Numerical Methods 의 예제를 테스트하고있었습니다 .
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)
실행하면 다음 오류가 표시됩니다.
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
로그를 제거하고 다른 기능을 추가하면 작동하므로 로그로 좁혔습니다. 나는 그것이 기지와의 일종의 간섭 때문이라고 생각합니다. 나는 방법을 알 수 없습니다. 누구든지 해결책을 제안 할 수 있습니까?