Я использую CVXPY для полуопределенной программы. Здесь я буду использовать очень общую настройку моей задачи.
У меня есть переменная X
, которая является PSD-матрицей. Теперь я хочу использовать эту переменную в другой матрице W
, которую я строю элемент за элементом. Кроме того, я хочу ограничить эту новую матрицу W
PSD.
Вот как я реализовал это сейчас:
import cvxpy as cp
X = cp.Variable((3,3), PSD=True)
row_1 = cp.hstack((0, 1, X[0,0]))
row_2 = cp.hstack((1, 0, X[1,2]))
row_3 = cp.hstack((X[0,0], X[1,2], 0))
W = cp.vstack((row_1, row_2, row_3))
constraint = [W >> 0]
Это разумный способ сделать это или есть лучшие способы?