概述
LMI工具箱一般用于求解三类问题
1、可行解问题
寻找一个 x ∈ R N xin R^N x∈RN,使得 A ( x ) < B ( x ) A(x)<B(x) A(x)<B(x)成立。
该问题可转化为:
寻找一个最小的t,使得 A ( x ) − B ( x ) ≤ t I A(x)-B(x)le tI A(x)−B(x)≤tI成立,即: m i n t min~~t min t s . t . A ( x ) − B ( x ) ≤ t I s.t.~~A(x)-B(x)le tI s.t. A(x)−B(x)≤tI
MATLAB语言一般表达形式为:
[tmin, xfeas]=feasp(lmisys, options, target)
其中,tmin代表凸优化问题的全局最优值。如果tmin<0,则该问题有可行解;如果tmin>0,则该问题没有可行解。
xfeas用于提取该可行解x,提取方法为x=dec2mat(lmisys,xfeas,X)。
lmisys代表该矩阵不等式系统,需要预先定义好。
options是可选量,用于描述求解参数。
target是可选量,用于为tmin设置目标值,默认值为0,当tmin<target时,迭代停止。
2、具有LMI约束的一个线性目标函数的最小化问题
m i n x c T x min_{x}~~c^Tx minx cTx s . t . A ( x ) < B ( x ) s.t.~~A(x)<B(x) s.t. A(x)<B(x)
MATLAB语言一般表达形式为:
[copt, xopt]=mincx(lmisys, c, options, xinit, target)
其中,copt代表目标函数值
c
T
x
c^Tx
cTx的全局最优值。
xopt代表用于提取最优解,提取方法为x=dec2mat(lmisys,xopt,X)。
lmisys代表该矩阵不等式系统,需要预先定义好。
c是已知变量。
options是可选量,用于描述求解参数。
xinit是可选量,用于表示最优解xopt的一个初猜值,可加快求解过程。
target是可选量,用于为目标函数设置目标值,当
c
T
x
c^Tx
cTx<target时,迭代停止。
3、广义特征值的最小化问题
m i n λ min~~lambda min λ s . t . C ( x ) < D ( x ) 0 < B ( x ) A ( X ) < λ B ( x ) s.t.~~C(x)<D(x)\~~~~~~~~0<B(x)\~~~~~~~~~A(X)<lambda B(x) s.t. C(x)<D(x) 0<B(x) A(X)<λB(x)
MATLAB语言一般表达形式为:
[lopt, xopt]=gevp(lmisys, nlfc, options, linit, xinit, target)
其中,lopt代表优化问题的全局最优值。
xopt代表用于提取最优解,提取方法为x=dec2mat(lmisys,xopt,X)。
lmisys代表
λ
=
1
lambda =1
λ=1时的矩阵不等式系统。
mlfc代表含
λ
lambda
λ的约束的个数。
options是可选量,用于描述求解参数。
linit,xinit是可选量,用于表示最优解lopt、xopt的初猜值,可加快求解过程。
target是可选量,当
λ
lambda
λ<target时,迭代停止。
使用gevp必须注意到:
- 必须包含 λ = 1 lambda =1 λ=1的这种情况。
- 要把 A ( x ) < B ( x ) A(x)<B(x) A(x)<B(x)放在最后定义。
- 必须要有使 0 < B ( x ) 0<B(x) 0<B(x)成立的约束。
4、为mincx确定目标函数 c T x c^Tx cTx
当目标函数是矩阵变量的一个仿射函数时,函数defcx可以为c的确定提供一个方便的方法。
如线性目标函数
T
r
a
c
e
(
X
)
+
x
0
T
P
x
0
Trace(X)+x_0^TPx_0
Trace(X)+x0TPx0,其中X和P是两个对称矩阵变量,
x
0
x_0
x0是一个给定向量。
使得
c
T
x
=
T
r
a
c
e
(
X
)
+
x
0
T
P
x
0
c^Tx=Trace(X)+x_0^TPx_0
cTx=Trace(X)+x0TPx0的向量c可以用以下命令描述:
n=decnbr(lmisys); % 获取决策变量个数
c=zeros(n,1);
% 确定向量c的维数
for i=1:n
[Xj,Pj]=defcx(lmisys,j,X,P);
c(j)=trace(Xj)+x0'*Pj*x0;
end
循环语句for每次循环取
x
j
=
1
x_j=1
xj=1,x的其他元为零,利用defcx求取矩阵变量Xj和Pj;然后对X=Xj,P=Pj,求取相应的c(j)。
其他目标函数处理也类似,如目标函数
m
i
n
γ
min~gamma
min γ处理为:
n = decnbr(lmisys);
% 系统决策变量个数
c = zeros(n,1);
% 确定向量c的维数
for j=1:n
[r1j]=defcx(lmisys,j,r1);
c(j)=trace(r1j);
end
本文是作者在日常学习生活中所作,难免有遗漏或错误,遇到问题的读者请点击给我写信向我的邮箱反馈,不胜感激。
最后
以上就是秀丽大象为你收集整理的MATLAB——LMI工具箱学习笔记(二)LMI工具箱一般用于求解三类问题的全部内容,希望文章能够帮你解决MATLAB——LMI工具箱学习笔记(二)LMI工具箱一般用于求解三类问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复