sci.py最小化-约束函数参数

问题描述

我需要将作为优化参数的变量限制在某个值EQ

def fEQ(iEQ,iC,iTATM,index):
    if index==0:
       return iC[0]
    else:
       return iEQ[0]/psi*iTATM[index]**2

t = np.arange(1,101)
NT = len(t)
EQ=np.zeros(NT)

#目标函数(省略了一些函数以使其更加清晰-它们在现实中都是相互关联的)

def fOBJ(x,sign,iI,iCPRICE,iEQ,iPERIODU,iCEMUTOTPER,iRI,iNT):

iMIU = x[0:NT]
iS = x[NT:(2*NT)]

for i in range(iNT):
    iCPRICE[i] = fCPRICE(iMIU,i)
    iI[i] = fI(iS,iY,i)
    iEQ[i]=fEQ(iEQ,i)
    iPERIODU[i] = fPERIODU(iC,il,i)
    iCEMUTOTPER[i] = fCEMUTOTPER(iPERIODU,i)
    iRI = fRI(iCPC,i)
    
resUtility = np.zeros(1)
fUTILITY(iCEMUTOTPER,resUtility)

return sign*resUtility[0]

#Optimization

result = opt.minimize(fOBJ,x_start,args=(-1.0,CPRICE,I,EQ,PERIODU,CEMUTOTPER,RI,NT),method='SLSQP',bounds = tuple(bnds),options={'disp': True,'maxiter':1000 },constraints={'type':'ineq','fun':lambda EQ: EQ[NT]-1000})

优化的输出是“线搜索的正方向导数(退出模式8)”,它找不到最佳值。 但是,我怀疑我的约束没有完全起作用。有什么建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...