关于LMI求解器的选择(基于Yalmip)

在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求解器,能够得到与原文一致的结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
YALMIP是一个MATLAB工具箱,用于建模和求解优化问题。通过YALMIP可以使用多种优化算法求解凸优化问题,其中包括线性矩阵不等式(LMI)实例。 LMI是一种常用的数学工具,用于描述一些特定的线性不等式约束。在YALMIP中,我们可以通过定义变量和约束条件来建立一个LMI实例,并通过YALMIP提供的优化算法求解该实例。 首先,我们在MATLAB中安装好YALMIP工具箱,并将所需的算法包(如SDPT3、SEDUMI等)添加到路径中。然后,我们可以使用YALMIP提供的函数创建一个LMI实例。 假设我们要求解LMI实例如下所示: 对于一个对称矩阵X: X > 0 A*X + X*A' < 0 其中,A是一个已知矩阵,我们要找到满足上述不等式的矩阵X。我们可以使用YALMIP的定义变量和约束条件的函数来建立这个问题。 首先,我们使用sdpvar函数定义变量X,然后使用constraint函数添加约束条件。具体代码如下: X = sdpvar(n,n,'symmetric'); Constraints = [X > 0, A*X + X*A' < 0]; 然后,我们使用optimize函数对这个LMI实例进行求解,并获取结果。 status = optimize(Constraints, objective); 其中,objective是一个可选的目标函数,但在LMI问题中一般不需要。最后,我们可以使用value函数获得求解结果,并进行后续处理。 if status == 0 X_solution = value(X); else disp('Optimization failed!'); end 上述代码片段中,X_solution是我们求解得到的矩阵X的值。值得注意的是,在代码中使用的n是矩阵X的维度。 以上就是使用YALMIP求解LMI实例的简要过程。通过利用YALMIP提供的丰富函数和优化算法,我们可以轻松地求解各种LMI问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

科研luck

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

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

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

打赏作者

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

抵扣说明:

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

余额充值