使用变量 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 上的减号。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...