CVXPY 中 PSD 约束的循环迭代

Looping Iteration over a PSD Constraint in CVXPY

我需要明智地说明 PSD 约束元素。该代码只是SDP问题的一部分。但是 returns 出现以下错误:

TypeError: 'PSD' object is not iterable

在迭代循环中是否允许构造多于PSD的约束?

import cvxpy as cp
import numpy as np
R=np.random.rand(2,1)
A=np.random.rand(2,2)


X=cp.Variable((2,1))

c=[1,4]

Z=R+A@X
W=R-A@X



const=[]

for i in range(2):
    const +=cp.bmat( [   
                            [c[i]**2,        Z[i],    0,        -W[i]],
                            [Z[i],          1,      W[i],          0],
                            [0,       W[i],    c[i]**2,        Z[i]],
                            [-W[i],         0,       Z[i],          1]      
                                                                                      ])>>0

CVXPY 约束是 list 的形式,所以对于矩阵我们应该使用 .append 以下作品:

import cvxpy as cp
import numpy as np
R=np.random.rand(2,1)
A=np.random.rand(2,2)


X=cp.Variable((2,1))

c=[1,4]

Z=R+A@X
W=R-A@X



const=[]

for i in range(2):
    LMI =cp.bmat( [   
                            [c[i]**2,        Z[i],    0,        -W[i]],
                            [Z[i],          1,      W[i],          0],
                            [0,       W[i],    c[i]**2,        Z[i]],
                            [-W[i],         0,       Z[i],          1]      
                                                                                      ])
    const.append(LMI>>0)