找Xx在 Matlab 上使用 LMI 或 SDP满足(我-一种*一个) + x (一个+一种*2) ≺ 0(I−A∗A)+x(A+A∗2)≺0

计算科学 线性代数 matlab 半定规划 简历
2021-12-22 07:10:56

给定,我想使用 LMI 或 SDP在以下不等式中ACn×nx>0

(IAA)+x(A+A2)0,

其中表示负定矩阵。D0D


,然后我们得到一个 LMI:A1=IAAA2=A+A2A1+xA20.

示例 1:

A=[0.2511+i0.9327i0.03000.2511+i1.06730.01000.45+i0.7794]

我尝试在 Matlab 上使用以下 cvx 代码来检查示例 1 的可行性:

i=sqrt(-1);
A = [-0.2511 + 0.9327i,   0.0000 + 0.0300i,   0.0000 + 0.0000i;
   0.0000 + 0.0000i,   0.2511 + 1.0673i,   0.0100 + 0.0000i;
   0.0000 + 0.0000i,   0.0000 + 0.0000i,  -0.4500 + 0.7794i];
n=length(A);
I=eye(n);

L0=(I-A'*A);
L1=0.5.*(A+A');

cvx_begin
variable x semidefinite;
minimize 0
subject to
-(L0+x*L1) == semidefinite(n);
cvx_end

输出:

Status: Infeasible
Optimal value (cvx_optval): +Inf

然而,满足上述不等式。x=0.6165

1个回答

以下是正确答案:

   i=sqrt(-1);
    A = [-0.2511 + 0.9327i,   0.0000 + 0.0300i,   0.0000 + 0.0000i;
       0.0000 + 0.0000i,   0.2511 + 1.0673i,   0.0100 + 0.0000i;
       0.0000 + 0.0000i,   0.0000 + 0.0000i,  -0.4500 + 0.7794i];
    n=length(A);
    I=eye(n);
    
    L0=(A'*A-I);
    L1=0.5.*(A+A');
    
    cvx_begin
    variable x;
    minimize 0
    subject to
    (L0-x*L1) == hermitian_semidefinite(n);
    cvx_end

输出:x=0.7376