复线性矩阵处理方法:埃尔米特矩阵L(x) =L(x)+jL(x)< 0等价于(Re(L(x)),−Im(L(x));Im(L(x)),Re(L(x)))<0(Re表实部,Im表虚部)。
例子:
LMI:XM < X, < I(表示X是共轭转置矩阵,其性质为X+=0,求X的共轭转置方法为:先取X的共轭,再对其共轭进行转置)。
假定将复数矩阵分解为:M = M1 + jM2 and X = X1 + jX2 ,则利用上述LMI转换为:
%%%%%%%%%%%%%M是已知的5*5的复数反对称阵,这里用随机数进行生成%%%%%%%%
n = 5; %行数和列数
M = ones(n,n); %矩阵初始化(无实际意义)
x = 50; %限定随机数范围为0-50;
for i = 1 : n
M(i,:) = complex(round(50.*randn(1,n)),round(50.*randn(1,n))); %随机生成复数对阵矩阵;
M(:,i) = -M(i,:).'; % 利用反对阵矩阵性质得到反对阵复数矩阵
end
M1=real(M); M2=imag(M) ;
bigM=[M1 M2;-M2 M1] ;%bigM维度为10*10
setlmis([])
%%%%%%%%%%%%%声明矩阵变量X三部曲%%%%%%%%%%%%%%
[X1,n1,sX1] = lmivar(1,[5 1]) ;%表X1是5*5的实对称阵,其中n1=15指决策变量数
[X2,n2,sX2] = lmivar(3,skewdec(5,n1));%利用type3定义反对阵矩阵,所以X2=skewdec(5,15)表X2是5*5的反实对阵矩阵
bigX = lmivar(3,[sX1 sX2;-sX2 sX1]);
%%%%%%%%%%%%%描述不等式%%%%%%%%%%%
lmiterm([1 1 1 bigX],bigM',bigM) %bigM转置*bigX*bigM<X
lmiterm([-1 1 1 bigX],1,1)
lmiterm([2 1 1 bigX],1,1)%bigX转置<I
lmiterm([-2 1 1 0],1)
俞立老师书中例子:
如果有帮助,麻烦帮忙点个赞是我最大的分享动力,非常感谢!
注:仅为本人学习记录,如有争议请联系删除,谢谢!
参考资料:
matlab help文档
《线性矩阵不等式-俞立》