scipy.optimize.minimize处理函数,具有2个返回值

kognpnkq  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(169)

我有一个函数def objective(u,v),它返回两个值return obj1,obj2,其中每个值都对应于u或v中的一个,我如何调用obj1或obj2来用于最小化函数中?

wecizke3

wecizke31#

我只是遇到了同样的问题,没有找到解决办法。
我想出了一个相当卑鄙的解决办法:
在我的例子中,我必须返回一个更大的数字,通常是几千和一个浮点数,小于1。
因为我不需要用高(小数字!)容差进行优化,所以我只需要将这两个数字相加:
我正在为结果_A进行优化

opti_function(a,b):

    ..... some function .....

    return result_A + result_B

这是可行的,因为result_B远小于result_A的优化所需的容限。

result = minimize_scalar(lambda a: opti_function([a,b]),tol=10)

就像承诺的那样,相当肮脏...。

相关问题