相关疑难解决方法(0)

Scipy 最小化:如何将 args 传递给目标和约束

我的 MWE 如下

def obj(e, p):
    S = f(e) + g(p)
    return S
Run Code Online (Sandbox Code Playgroud)

我想仅最小化此函数e并将其p作为参数传递给该函数。不过,我也想依赖于约束p,并e认为是形式p + e < 1

我试过

cons = {'type': 'ineq',
       'fun': lambda e, p: -e -p + 1,
       'args': (p)}
Run Code Online (Sandbox Code Playgroud)

然后,对于以下情况,我尝试将其最小化 p = 0.5

minimize(obj, initial_guess, method = 'SLSQP', args = 0.5, constraints = cons)
Run Code Online (Sandbox Code Playgroud)

但这不起作用。我name 'p' is not defined在定义的行中收到错误cons。如何将参数传递p给目标函数和约束?


完整代码如下

from scipy.optimize import minimize
from scipy.stats import entropy
import numpy as …
Run Code Online (Sandbox Code Playgroud)

optimization scipy python-3.x

8
推荐指数
1
解决办法
3353
查看次数

标签 统计

optimization ×1

python-3.x ×1

scipy ×1