Python CVXPY中的外积
我有一个目标函数,它依赖于外积的和。如果我可以使用Numpy函数,我会这样写:Python CVXPY中的外积,python,numpy,cvxpy,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仿射函数可以实现这一点?cvxpy有一个kron函数可以工作。由于它仅适用于二维变量和二维数组,因此必须首先将向量重塑为(n,1)向量
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仿射函数可以实现这一点?cvxpy有一个kron函数可以工作。由于它仅适用于二维变量和二维数组,因此必须首先将向量重塑为(n,1)向量:
cvx.trace(sum([cvx.kron(A[i, :].reshape(n,1), cvx.reshape(U[i,:], (n,1))
for i in range(m)]))
另一种解决方案是简单地编写矩阵乘积:
cvx.trace(sum([A[i, :].reshape(n, 1) @ cvx.reshape(U[i,:], (1, n)
for i in range(m)]))
你能给出一个类似于numpy的外部函数的例子吗?