首页 > 解决方案 > 这个优化问题有什么问题?我不断收到:ValueError:使用序列设置数组元素

问题描述

我不断收到 ValueError: setting an array element with a sequence。我怎样才能让这个优化问题起作用?

看来我在数组的维度或转置函数方面做错了

# 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 个输入的数组,即这个最优投资组合的权重

标签: pythonarraysoptimization

解决方案


推荐阅读