当我在目标函数上运行Python最小化函数时,我得到目标函数必须返回一个标量错误。
for j in range(L):
out[j, n + 1] = X[j] * out[j, n] - n * out[j, n - 1]
我对上述功能的调用是:
def fun(param,*args):
alpha=param[0];
beta=param[1:len(param)]
t_to_next =args[1]
remaining_coupons = args[2]
coupon_rate = args[3]
dirty_price = args[4]
knots = args[5]
fit_P = []
f = []
fit_price = 0.0
for i in range(0,len(t_to_next)): #first loop for the number of securities
fit_price=0
for j in range(0,remaining_coupons[i]): #second loop for the number of cashflows * m_t
x = zero_price(t_to_next[i]+0.5*(j),alpha,beta,knots)
fit_price = fit_price + (float(coupon_rate[i])*0.01 * float(x))
fit_P.append(fit_price + zero_price(t_to_next[i]+0.5*(remaining_coupons[i]-1),alpha,beta,knots))
#fit_P.append(fit_price)
f.append((dirty_price[i]/100 - fit_P[i])**2)
f_sum=sum(f)
return f_sum