2013-05-31 27 views
4

SciPy中的求解器能處理複數值(即x = x'+ i * x「)嗎?我特別感興趣的是使用Nelder-Mead型最小化函數。我知道,Matlab的沒有複雜的解決者。如果SciPy的可以這樣做,那麼我在事先肯定的!謝謝轉換。SciPy中的複雜求解器

+1

「複雜解算器」是什麼意思?由於每個「數字」是二維的,因此兩個複數的比較定義較差。考慮x> y。答案是實數(x)>實數(y),圖像(x)>圖像(y),| x | > | y |,angle(x)> angle(y),real(x)+ imag(x)> real(y)+ imag(y),還是別的? – matt

+0

[此其他堆棧溢出](http://stackoverflow.com/questions/15213141/how-to-do-nonlinear-complex-root-finding-in-python?rq=1)答案可以幫助你嗎? –

回答

2

看起來既不scipy.optimize.fmin也不scipy.optimize.leastsq玩複數不錯。例如,fmin(lambda x: np.linalg.norm(x - np.array((1.2, 3+2j))), np.array((0j, 0j)))收斂到array([ 1.19996429, 2.99997809])leastsq只是失敗。要使它工作,我會嵌入您的複數的R^2,我想。所以,像

fmin(lambda x: np.linalg.norm(x - np.array((1.2, 0, 3,2))), np.array((0,0, 0,0))) 

其收斂到

array([ 1.20000095e+00, -4.11719096e-05, 2.99999705e+00, 2.00001270e+00]) 

不過啊,這將是很好,如果這些功能沒有發揮好與複數。