【发布时间】:2018-11-05 11:40:25
【问题描述】:
我正在尝试解决目标函数中涉及\sqrt{w^t \Sigma w} 的问题。为了计算w^t \Sigma w,我使用quad_form 函数。我如何取它的平方根?
在代码中我尝试编写
risk = sqrt(quad_form(w, E))
我收到了 DCP 规则错误,但考虑到我拥有的其他约束,我很确定它是凸的。所以问题不是关于数学,而是凸程序的实际实现。
我要解决的问题是
ret = mu.T*w
risk = sqrt(quad_form(w, E))
gamma.value = distr.pdf(distr.ppf(alpha)) / (1 - alpha)
minimizer = Minimize(-ret + risk * gamma) #cvxpy.sqrt(risk) * gamma)
constraints = [w >= 0,
b.T * log(w) >= k]
prob = Problem(minimizer, constraints)
prob.solve(solver='ECOS_BB',verbose=True)
【问题讨论】:
-
我投票决定将此问题作为离题结束,因为它与编程没有直接关系,而是与数学思维方式有关。
-
是的,目前的问题有点模糊。我增加了一些清晰度
标签: python square-root cvxpy