使用CVXPY的外部产品

时间:2018-11-24 07:37:12

标签: python numpy cvxpy

我有一个目标函数,该函数取决于外部乘积的总和。如果我可以使用Numpy函数,则将其写为:

A = np.ones(m, n)
U = Variable(m, n)
objective = np.trace(sum([np.outer(A[i,:], U[i,:]) for i in range(m)]))

当然,当U是变量时,np.outer不起作用。有一个cvxpy仿射函数可以实现吗?

1 个答案:

答案 0 :(得分:1)

cvxpy具有有效的kron功能。由于它仅适用于2d变量和2d数组,因此您必须先将向量整形为(n,1)个向量:

cvx.trace(sum([cvx.kron(A[i, :].reshape(n,1), cvx.reshape(U[i,:], (n,1))
               for i in range(m)]))