SciPy中的求解器可以处理复杂的值(即x = x'+ i * x“)吗?我对使用Nelder-Mead类型最小化函数特别感兴趣。我通常是Matlab用户,我知道Matlab没有复杂的求解器。如果SciPy可以做到这一点那么我肯定是转换器!提前谢谢。
答案 0 :(得分: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])
但是,如果这些功能在复杂的数字中表现得很好,那就太好了。