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

使用变量 X 找到 Y 的最大值

如何解决使用变量 X 找到 Y 的最大值

假设我的函数有输入“A”和“B”,输出“C”。对于 A 的每个值,我想找出 B 的哪个值导致 C 的最大值;然后我想记录值 B 和 C。是否有可以执行此操作的函数?也许取决于收敛机制?

*如果您是通过我应用的非 python 相关标签之一发现的,请注意我使用的是 python 3.x

解决方法

让我们定义函数 1 以获取参数 (A,B)2 并返回值 C3。我们可以用 Python 来优化它

from scipy import optimize

f = lambda a,b: ... # your_code_which_returns_C
optimal_vals = np.zeros((2,len(list_of_all_A_values)))
for i,a in enumerate(list_of_all_A_values) # assuming some list is defined above
    b_opt,c_opt,*rest = optimize.fmin(lambda b: -f(a,b),0)
    optimal_vals[:,i] = np.array([b_opt,c_opt])

这利用了 scipy 的 fmin 函数,该函数依赖于 downhill 单纯形算法的收敛性。因此,请务必不要忘记 1 上的减号。

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