【问题标题】:Using lambda to change minimize_scalar to maximize in Python在 Python 中使用 lambda 更改最小化标量以最大化
【发布时间】:2020-06-26 04:12:31
【问题描述】:

我正在尝试使用 scipy.minimize_scalar 在 Python 中最大化(标量)函数。认为使用 lambda 而不是定义一个与给定函数相反的新函数会更优雅。不幸的是,它给出了一个 TypeError。这是一个简单的例子:

from scipy.optimize import minimize_scalar

def square(x):
    return -(x-1)**2

print(minimize_scalar(lambda x:-square(x),bounds=(0,None),method='bounded'))

这是我收到的错误消息:

TypeError: '>' not supported between instances of 'int' and 'NoneType'

这个示例代码有什么问题?

谢谢

【问题讨论】:

  • 我认为你需要为边界定义一个上限
  • 知道了。 np.inf 用于上限工作。

标签: python lambda scipy-optimize-minimize


【解决方案1】:

问题出在上限。为上限设置 10 而不是 None 。但是请注意,将 np.inf 设置为上限会产生错误的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2018-08-08
    • 2015-02-28
    • 1970-01-01
    • 2016-01-22
    • 2011-01-21
    • 1970-01-01
    相关资源
    最近更新 更多