我想對以下非線性方程進行根搜索,我在Python中執行它,但它不起作用。我的代碼是下面如何在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
當我運行它,它示出了錯誤:
---> 30結果= scipy.optimize.fsolve(FUNC,[1 + 1J,1 + 1J])
C:\ Python27 \ lib中\站點包\ SciPy的\優化\ minpack.py在fsolve(FUNC,X0,指定參數時,fprime,full_output,col_deriv,xtol,maxfev,樂隊,epsfcn,因子,診斷)
123 maxfev = 200*(n + 1)
124 retval = _minpack._hybrd(func, x0, args, full_output, xtol,
-> 125 maxfev,ml,mu,epsfcn,factor,diag)
126 else:
127 _check_func('fsolve', 'fprime', Dfun, x0, args, n, (n,n))
它是如何工作的? – Blender 2013-03-04 23:31:07
這是由於複數的單位「j」,似乎fsolve只能搜索真正的方程根並返回真正的根! – user2133730 2013-03-05 00:28:34