0

我正在尝试将 python IRR 函数与 PULP 最大化一起使用,但出现以下错误

TypeError:float() 参数必须是字符串或数字,而不是 11 name[6]*rate[6]*ratesList2[2] + name[7]*rate[ 中的“LpAffineExpression”TypeError Traceback(最近一次调用最后) 7]*ratesList2[2] + name[8]*rate[8]*ratesList2[2] + name[9]*rate[9]*ratesList2[2] + name[10]*rate[10]*ratesList2[ 2] + 名称[11]*rate[11]*ratesList2[2] + 12 名称[12]*rate[12]*ratesList2[2] + 名称[13]*rate[13]*ratesList2[2] + 名称[14]*rate[14]*ratesList2[2] + name[15]*rate[15]*ratesList2[2] + name[16]*rate[16]*ratesList2[2] + name[17]*rate [17]*费率列表2[2] +

---> 13 名称[18]*rate[18]*ratesList2[2])]) 14 15

problem += np.irr([(-19660528.00),
        (name[0]*rate[0] + name[1]*rate[1] + name[2]*rate[2] + name[3]*rate[3] + name[4]*rate[4] + name[5]*rate[5] + 
        name[6]*rate[6] + name[7]*rate[7] + name[8]*rate[8] + name[9]*rate[9] + name[10]*rate[10] + name[11]*rate[11] +
        name[12]*rate[12] + name[13]*rate[13] + name[14]*rate[14] + name[15]*rate[15] + name[16]*rate[16] + name[17]*rate[17] + 
        name[18]*rate[18]),
       (name[0]*rate[0]*ratesList1[1] + name[1]*rate[1]*ratesList2[1] + name[2]*rate[2]*ratesList2[1] + name[3]*rate[3]*ratesList2[1] + name[4]*rate[4]*ratesList2[1] + name[5]*rate[5]*ratesList2[1] + 
        name[6]*rate[6]*ratesList2[1] + name[7]*rate[7]*ratesList2[1] + name[8]*rate[8]*ratesList2[1] + name[9]*rate[9]*ratesList2[1] + name[10]*rate[10]*ratesList2[1] + name[11]*rate[11]*ratesList2[1] +
        name[12]*rate[12]*ratesList2[1] + name[13]*rate[13]*ratesList2[1] + name[14]*rate[14]*ratesList2[1] + name[15]*rate[15]*ratesList2[1] + name[16]*rate[16]*ratesList2[1] + name[17]*rate[17]*ratesList2[1] + 
        name[18]*rate[18]*ratesList2[1]),
       (name[0]*rate[0]*ratesList1[2] + name[1]*rate[1]*ratesList2[2] + name[2]*rate[2]*ratesList2[2] + name[3]*rate[3]*ratesList2[2] + name[4]*rate[4]*ratesList2[2] + name[5]*rate[5]*ratesList2[2] + 
        name[6]*rate[6]*ratesList2[2] + name[7]*rate[7]*ratesList2[2] + name[8]*rate[8]*ratesList2[2] + name[9]*rate[9]*ratesList2[2] + name[10]*rate[10]*ratesList2[2] + name[11]*rate[11]*ratesList2[2] +
        name[12]*rate[12]*ratesList2[2] + name[13]*rate[13]*ratesList2[2] + name[14]*rate[14]*ratesList2[2] + name[15]*rate[15]*ratesList2[2] + name[16]*rate[16]*ratesList2[2] + name[17]*rate[17]*ratesList2[2] + 
        name[18]*rate[18]*ratesList2[2])])

问题 += (name[0] + name[1] + name[2] + name[3] + name[4] + name[5] + name[6] + name[7] + name[8] + name [9] + 姓名[10] + 姓名[11] + 姓名[12] + 姓名[13] + 姓名[14] + 姓名[15] + 姓名[16] + 姓名[17] + 姓名[18]) < = sum(marketMix['GLA']), "第一个约束"

4

1 回答 1

0

numpy 函数irr()将值列表作为参数。相反,您传递的是包含需要优化的变量的线性表达式列表。irr()不准备处理。它假定所有参数都可以强制转换为float. irr()您必须明确声明相应的表达式,而不是使用函数。

于 2020-01-08T07:46:42.257 回答