4

SciPy 中的求解器可以处理复杂值(即 x=x'+i*x")吗?我对使用 Nelder-Mead 类型的最小化函数特别感兴趣。我通常是 Matlab 用户,我知道 Matlab 没有复杂的求解器。如果 SciPy 可以做到这一点,那么我肯定是一个皈依者!提前致谢。

4

1 回答 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])

但是,是的,如果这些函数确实能很好地处理复数,那就太好了。

于 2015-07-06T17:42:26.193 回答