Saya baru saja menguji contoh dari Metode Numerik dalam Teknik dengan 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)
Ketika saya menjalankannya, itu menunjukkan kesalahan berikut:
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
Saya telah mempersempitnya ke log seperti ketika saya menghapus log dan menambahkan fungsi yang berbeda, itu berhasil. Saya berasumsi itu karena semacam gangguan dengan pangkalan, saya tidak tahu caranya. Adakah yang bisa menyarankan solusi?