在LMI复杂度不高的情况下,可以选用matlabtool自带的lmilab进行求解,通常情况下遇到非严格约束仍能进行求解。面对复杂度较高的情形时,sedemi可以极大的减缩求解时间。
但是,使用YALMIP进行描述,系统表述方便,有时采用sedemi无法得到正常解,在查找资料得到如下信息:
You would have to define "not satisfactory". since you're only solving a feasibility problem, any (almost) feasible solution is all you can ask for
Using mosek the solution appears perfectly fine
sol =
struct with fields:
yalmipversion: '20200930'
matlabversion: '9.4.0.813654 (R2018a)'
yalmiptime: 0.3952
solvertime: 0.6788
info: 'Successfully solved (MOSEK)'
problem: 0
check(LMIs)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| ID| Constraint| Primal residual| Dual residual|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| #1| Matrix inequality| 2.0892e-05| 1.974e-15|
| #2| Matrix inequality| 0.0025096| 5.6753e-13|
| #3| Matrix inequality| 0.0026662| 2.3893e-14|
| #4| Matrix inequality| 0.0042042| 2.9447e-12|
| #5| Matrix inequality| 0.0020883| 4.2393e-12|
| #6| Matrix inequality| 1.4218e-06| 5.053e-13|
| #7| Matrix inequality| 1.0342e-06| 6.0756e-13|
| #8| Matrix inequality| 2.0783e-06| 1.0214e-15|
| #9| Matrix inequality| 1.2902e-06| 1.7394e-15|
| #10| Matrix inequality| 2.1999e-05| -2.4086e-21|
| #11| Matrix inequality| 1.062e-05| 9.73e-16|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mosek相比于sedumi求解更快,同时能够解决sedumi无法求解的问题。
结论:对于可行性问题,要求得到几乎所有的可行解,因此建议使用mesek求解器,能够得到与原文一致的结果。