LMI工具箱一般用于求解三类问题
1、可行解问题
寻找一个 x ∈ R N x\in 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)成立的约束。