Ich habe gerade ein Beispiel aus Numerical Methods in Engineering mit Python getestet .
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)
Wenn ich es ausführe, wird der folgende Fehler angezeigt:
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
Ich habe es auf das Protokoll eingegrenzt, da es funktioniert, wenn ich das Protokoll entferne und eine andere Funktion hinzufüge. Ich nehme an, es liegt an einer Störung der Basis, ich kann nicht herausfinden, wie. Kann jemand eine Lösung vorschlagen?