利用matlab求解线性不等式

LMI工具箱求解线性不等式:
例题:求解AP+PA’-3B*B’ < 0

//可以写成一个函数
setlmis([])//初始化LMI系统
A = [0,1,0,0;0,0,0,0;0,0,0,1;0,0,0,0];%4x4
B = [0,0;1,0;0,0;0,1];
C = -3* (B*B');//声明一些常数

P = lmivar(1,[4,1]);//声明一个新的矩阵变量,前面的1表示是对称矩阵,表示4x4的对称矩阵。
//前面数字要是2的话,可以表示任意大小的矩阵,如lmivar(2,[2,3]),表示一个2x3的矩阵.
//还可以是3,以及安装分块矩阵写法,确定矩阵。
lmiterm([1,1,1,P],A,1,'s');//第一个1是说的是第一个不等式左边,接下来两个1说的是[1,1]位置。P是变量,后面的A,1是参与运算的量,以及最后's'表示的是本身加转置。
//所以这一项表示AP+PA'<0;A在左,1在右,即AP1
lmiterm([1,1,1,0],C);//这一项也是和上面相同位置,后面的0表示这项是外部量,即C
//表示:AP+PA'-3BB'<0
lmiterm([-2,1,1,P],1,1);//表示第二个不等式右边,即0<P
//如果还有多个不等式就继续写3,4,5,。。。,唯一注意的就是LMI中默认<,注意正负号就好。
lmisys = getlmis;//获取LMI的内部描述

//求解
[tmin,xfeas] = feasp(lmisys);
if(tmin < 0)//解有效
    disp('feasible');
    P = dec2mat(lmisys,xfeas,P);//取出P

    X=P*A' + A*P-3*(B*B');//记录了一下不等式
else//解无效
    P = nan;
    X =nan;
end

[x,y] =  eig(X)//分别求出特征值和特征向量,查看是否为负,用于验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值