SciPy 中的求解器能否处理复数值(即 x=x'+i*x")?我对使用 Nelder-Mead 类型的最小化函数特别感兴趣。我通常是 Matlab 用户,我知道 Matlab 没有复杂的求解器。如果 SciPy 可以做到这一点,那么我肯定是一个转换者!提前致谢。
最佳答案
看起来都不是 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])
但是,是的,如果这些函数确实可以很好地处理复数,那就太好了。
关于scipy - SciPy 中的复杂求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16860652/