Tôi muốn thực hiện tìm kiếm gốc cho các phương trình phi tuyến sau đây, tôi làm điều đó bằng Python nhưng nó không hoạt động. mã của tôi là dướiLàm thế nào để thực hiện tìm kiếm gốc phi tuyến phức tạp trong Python
from pylab import *
import scipy
import scipy.optimize
def z1(x,y):
temp=1+1j+x+2*y;
return temp
def z2(x,y):
temp=-1j-2*x+sqrt(3)*y;
return temp
def func(x):
temp=[z1(x[0],x[1])-1.0/(1-1.0/(z2(x[0],x[1]))),1-2.0/(z2(x[0],x[1])-4.0/z1(x[0],x[1]))]
return temp
result=scipy.optimize.fsolve(func,[1+1j,1+1j])
print result
khi tôi chạy nó, nó cho thấy lỗi:
---> 30 kết quả = scipy.optimize.fsolve (func, [1 + 1J, 1 + 1J])
C: \ Python27 \ lib \ site-packages \ scipy \ optimization \ minpack.py trong fsolve (func, x0, args, fprime, full_output, col_deriv, xtol, maxfev, band, epsfcn, hệ số, diag)
123 maxfev = 200*(n + 1)
124 retval = _minpack._hybrd(func, x0, args, full_output, xtol,
-> 125 maxfev, ml, mu, epsfcn, hệ số, đường)
126 else:
127 _check_func('fsolve', 'fprime', Dfun, x0, args, n, (n,n))
Tính năng này hoạt động như thế nào? – Blender
nó là do các đơn vị số phức tạp "j", có vẻ như fsolve chỉ có thể tìm kiếm gốc cho phương trình thực và trở về gốc thực ??! – user2133730