我正在尝试使用 cvxpy 解决以下优化问题:
x 和 delta_x 是 (1,N) 行向量。A 是 (N,N) 对称矩阵,b 是标量。我试图找到 ay,以便它最小化 (y - delta_x) 的平方和与约束 (x+y).A.(x+y).T - b = 0。下面是我尝试解决的问题它。
x = np.reshape(np.ravel(x_data.T), (1, -1))
delta_x = np.reshape(np.ravel(delta.T), (1, -1))
y = cp.Variable(delta_x.shape)
objective = cp.Minimize(cp.sum_squares(y - delta_x))
constraints = [cp.matmul(cp.matmul(x + y, A), (x + y).T) == (b*b)]
prob = cp.Problem(objective, constraints)
result = prob.solve()
我不断收到错误“cvxpy.error.DCPError:问题不遵循 DCP 规则”。
我遵循此处答案中所述的规则,但我不明白如何构造正确的 cvxpy 最小化问题。任何帮助将不胜感激。谢谢!