目前我正在用python研究一个优化问题。因此,我使用scipy.最小化. 我的优化问题的目标是利润最大化。利润来自水。因此,用于某一目标的水,不能用于其他用途。在我目前的模型中,水可以用于农业的水电生产。当然,不可能使用比可用水量更多的水。所以其中一个限制被称为可持续性限制。但是我在给约束添加两个变量时遇到了一些问题。有人能帮我吗。你知道吗
我目前的代码如下:
def constraint1(ETa, Qhydro)
for j in range(0,Numbas):
for i in range(0,Nummon):
if (i-(j*Nummon))==0:
ETa[i+(j*Nummon)+11]-((1-R[j])*S0[j])+S[i+(j*Nummon)]-P[i+(j*Nummon)+11]-Rdown[i+(j*Nummon)]+Qhydro[i+(j*Nummon)]
else:
ETa[i+(j*Nummon)-1]-((1-R[j])*S[i+(j*Nummon)-1])+S[i+(j*Nummon)]-P[i+(j*Nummon)-1]-Rdown[i+(j*Nummon)]+Qhydro[i+(j*Nummon)]
return ETa, Qhydro
con1=({'type':'eq','fun':constraint1})
这会产生以下错误:TypeError:约束1()正好接受给定的2个参数1。如何解决这个问题?你知道吗
我解决了问题如下。你知道吗
def constraint1(x)
S=x[0:36]
Qhydro=x[36:48]
这样,约束只需返回一个值即可工作:)
目前没有回答
相关问题 更多 >
编程相关推荐