【Matlab】LMI 求解器快速入门,常用指令

本文通过一个具体的例子介绍了如何使用Matlab中的LMI工具箱来解决矩阵不等式问题,包括设置矩阵变量、定义不等式约束以及求解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1【Matlab】LMI 求解器快速入门,常用指令
2【Matlab】利用 LMI 解矩阵不等式方程

例题

首先以段广仁老师的一个例题作为问题切入点。

问题

给定矩阵
A 1 = [ − 1 2 1 − 3 ] , A 2 = [ − 0.8 1.5 1.3 − 2.7 ] , A 3 = [ − 1.4 0.9 0.7 − 2.0 ] , A_1 = \left[\begin{matrix} -1 & 2 \\ 1 & -3 \\ \end{matrix}\right], A_2 = \left[\begin{matrix} -0.8 & 1.5 \\ 1.3 & -2.7 \\ \end{matrix}\right], A_3 = \left[\begin{matrix} -1.4 & 0.9 \\ 0.7 & -2.0 \\ \end{matrix}\right], A1=[1123],A2=[0.81.31.52.7],A3=[1.40.70.92.0],

求满足如下关系的矩阵 P P P
{ A 1 T P + P A 1 < 0 A 2 T P + P A 2 < 0 A 3 T P + P A 3 < 0 I < P \left\{\begin{aligned} &A_1^\text{T} P + P A_1 < 0 \\ &A_2^\text{T} P + P A_2 < 0 \\ &A_3^\text{T} P + P A_3 < 0 \\ &I < P \\ \end{aligned}\right. A1TP+PA1<0A2TP+PA2<0A3TP+PA3<0I<P

解决代码

% 段广仁老师 LMI P420
% Example B.1
clear
clc

A1 =[-1  2 
      1 -3];
A2 =[-0.8  1.5 
      1.3 -2.7];
A3 =[-1.4  0.9 
      0.7 -2.0];

setlmis([])
P = lmivar(1, [2 1]);

% #1  A_1' P + P A_1
lmiterm([1 1 1 P], 1, A1, 's');
% #2  A_2' P + P A_2
lmiterm([2 1 1 P], 1, A2, 's');
% #3  A_3' P + P A_3
lmiterm([3 1 1 P], 1, A3, 's');
% #4  P
lmiterm([-4 1 1 P], 1, 1);
% #4  I
lmiterm([ 4 1 1 0], 1);

lmis1 = getlmis;

% solve
[tmin, xfeas] = feasp(lmis1);
P = dec2mat(lmis1, xfeas, P)

代码解析

setlmis([])

定义一个矩阵不等式系统

lmivar()

定义一个矩阵变量

lmiterm()

描述不等式的某一项

getlmis

矩阵不等式系统定义完毕

feasp / mincx / gevp

求解器

dec2mat()

参考

  1. MATLAB——LMI工具箱学习笔记
  2. MATLAB——LMI工具箱学习笔记(二)
  3. matlab–LMI工具箱使用学习1(lmivar()、lmiterm()函数)
  4. matlab–LMI工具箱使用学习2(LMI求解)
  5. Minimize Linear Objectives under LMI Constraints-MathWorks
  6. LMI Applications-MathWorks
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值