what is wrong with my codes def objective_fun(x, alpha,p): return -1*(x[0]**alpha)*(x[1]**(1-alpha)) p = [5,10] alpha = 0.3 args = (p, alpha) x=[5,10] cons={"type": "ineq", "fun": lambda x,p: 100 - p[0]*x[0] - p[1]*x[1], "args": (p,)} result= minimize(objective_fun,x,bounds=[(0,None), (0,None)], args=args, constraints=cons)
时间: 2024-02-11 08:08:47 浏览: 41
在这段代码中,存在一个问题:`objective_fun`函数中的参数`p`没有传递给`minimize`函数。为了将`p`传递给`objective_fun`函数,您需要将`args`参数的值从`(p, alpha)`改为`(alpha, p)`。这样,`alpha`将作为第一个参数传递给`objective_fun`函数,而`p`将作为第二个参数传递给`objective_fun`函数。修改后的代码如下:
```
def objective_fun(x, alpha, p):
return -1*(x[0]**alpha)*(x[1]**(1-alpha))
p = [5,10]
alpha = 0.3
args = (alpha, p)
x = [5,10]
cons = {"type": "ineq", "fun": lambda x, p: 100 - p[0]*x[0] - p[1]*x[1], "args": (p,)}
result = minimize(objective_fun, x, bounds=[(0,None), (0,None)], args=args, constraints=cons)
```
请注意,`cons`参数中的`lambda`函数也需要更新为使用`p`参数而不是`args`参数。
阅读全文