此问题已在此处有答案:
Can scipy.optimize minimize functions of complex variables at all and how?(2个答案)
上个月关门了。
我有一个函数,我试图找到最小值。下面是我代码:
import nyumpy as np
from scipy.optimize import basinhopping, Bounds
from scipy import optimize
x=np.arange(-180.0,180.0)
bounds = Bounds(-180., 180.)
def P1_adj(x):
return 60450.64625041*np.exp(1j*(57.29*1.75056445+x))
print(optimize.minimize(P1_adj, x0=0))
当我运行它的时候,我得到这个错误
TypeError: '<' not supported between instances of 'complex' and 'float'
你能帮我理解我做错了什么吗?我需要找到使这个函数最小的x(Angular )。
2条答案
按热度按时间qzlgjiam1#
optimize.minimize
不支持复数,functP1_adj
返回complex number
,这导致了错误。P1_adj
funct计算复数的absolute value
,而不是返回复数本身acruukt92#
注意你的目标函数
1j
这里是一个复数,求解器不知道如何将它与典型的浮点数进行比较。把它转换成一个真实的数字才能工作。