0

只是想知道是否有人可以帮助我解决这样的问题:(使用 matlab 和 CVX)

cvx_begin sdp

variables x0 x1 x2 x3 y1 y2 y3 y4 y5

x0==1/sqrt(3)

1/3+x1^2+x2^2+x3^2+y1^2+y2^2+y3^2+y4^2+y5^2<=1

x1==-x3 
y1==y5
y2==-y4 

x0*X0+x1*X1+x2*X2+x3*X3+y1*Y1+y2*Y2+y3*Y3+y4*Y4+y5*Y5>=0

maximize(x1^2+x2^2+x3^2)

cvx_end

X0, X1,.....X3,Y1,....Y5,Z1........Z7(大写字母)是矩阵(球形张量) 一个约束是带有小写变量的乘积必须是半正定的,它还必须满足变量语句之后的所有其他等式/不等式。

好吧,这个程序不起作用,因为二次最大化不是 CVX 所要求的凸,有人知道可以用另一种资源重新制定或解决这种优化的方法

好吧,任何输入都是确认,

4

1 回答 1

2

看起来您正在尝试最大化与仿射空间和丑陋的半空间相交的球的二次方。

最大化球上的二次方程被称为“信任域子问题”。令人惊讶的是,它承认了一个有效的解决方案。我从未使用过它,但Marielba Rojas 等人的 LSTRS。显然实现了一个TRS求解器。

不过,您需要处理不等式约束。我建议找到最小的可行拉格朗日乘数,它会导致您的 TRS 的最佳解决方案实际上位于所需的半平面中。二进制搜索是一种技术含量很低的方法。

于 2013-03-21T08:42:38.017 回答