微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将另一个变量输入到 scipy 优化函数中

如何解决如何将另一个变量输入到 scipy 优化函数中

请忽略混乱,这仍然是一个菜鸟。 基本上,我有一个功能

def bw(Q,T):
  F = -Tc * Q**2 + T*((1+Q)*np.log(1+Q) + (1-Q)*np.log(1-Q))
  return F

我需要在不同的 T 处找到最小值

Tc = 1
n = 200
T1 = 0.5
T2 = 1.2
Tt = np.linspace(T1,T2,n)
Qe = np.ndarray((1,n))
Q0 = 0.9

for i in range(n):
  T = Tt[i]
  res = minimize(bw,Q0,method='nelder-mead',options={'xatol': 1e-8})

有了这个,它说它缺少一个位置参数 T,但是:

res = minimize(bw(T),options={'xatol': 1e-8})
res = minimize(bw(Q,T),options={'xatol': 1e-8})
res = minimize(bw(,options={'xatol': 1e-8})

我尝试了这些,但它们不起作用。然后,我尝试了:

res = minimize(bw,T,options={'xatol': 1e-8})

我得到的值是错误的。有人可以帮忙吗?

解决方法

您上次的尝试是正确的,您只是混淆了 QT。应该是:

 res = minimize(bw,Q0,T,method='nelder-mead',options={'xatol': 1e-8})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。