我一直得到ValueError:设置带有序列的数组元素。我怎样才能使这个优化问题起作用
似乎我在数组的维数或转置函数方面做了一些错误的事情
# Define inputs as column vectors
ETFs_sigma = np.array([.0467,.0781,.0358,.0618,.0331])
ETFs_sigma.shape = (5,1)
ETFs_mu = np.array([.0157,.0131,.0083,.0163,.0120])
ETFs_mu.shape = (5,1)
ones_vector = np.ones(5)
ones_vector.shape = (5,1)
risk_free = .0002
# Optimization problem
w = np.linspace(0,1)
def objective_function3(w,risk_free,coeff_ra,ETFs_mu,ETFs_sigma):
w = np.array([w[0], w[1], w[2], w[3], w[4]])
w.shape = (5,1)
return - (np.dot(np.transpose(w),ETFs_mu) + (ones_vector-w)*risk_free -1/2*coeff_ra[0]*np.dot(np.transpose(w),ETFs_sigma))
res3 = opt.minimize(objective_function3, (.1,.2,.3,.4,.5), args=(risk_free,coeff_ra,ETFs_mu,ETFs_sigma))
res3
我期望解决方案有5个输入的数组,即此最优投资组合的权重
目前没有回答
相关问题 更多 >
编程相关推荐