scipy - SciPy 中的复杂求解器

标签 scipy mathematical-optimization complex-numbers

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/

相关文章:

python - 将 Gurobi 的预求解函数用于 pyomo 模型

c++ - 为什么 complex<double> * int 没有在 C++ 中定义?

c - 将矩阵提升为复数幂

Python 3.4 与 numpy、scipy 和 matplotlib 的兼容性

python - 使用列表而不是 numpy 数组

python - 科学 Python 代码的可读性(行连续、变量名、导入)

复数 3D 数组

python - 使用 scipy 查找其他点的截止距离内的点

python - Python 中的随机优化

r - 为什么 optim() 的结果取决于初始值?