如上图所示的LMI约束,tau是已知的常数,A、B是已知的矩阵,X和Y都是sdpvar变量,想求满足条件的X矩阵和Y矩阵。在用yalmip和sdpt3求解器计算时求不出解,显示NAN。但如果将第一行第二列元素中的Y*inv(X)去掉后,能够正常求解。以前也遇到过这样的问题,只要在LMI中遇见两个sdpvar变量相乘时,yalmip都算不出解,请教各位大佬这是什么原因?
LMI约束中有两个sdpvar变量形式的矩阵相乘,发现yalmip工具箱求不出解
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如需一对一服务私聊我哦
这是因为在LMI中遇到两个sdpvar变量相乘会导致优化问题的非凸性,使得求解器可能会陷入局部最优解而无法找到全局最优解。为了避免这种情况,可以使用yalmip中的replace,将相乘的sdpvar变量替换成一个新的变量,从而使得LMI构成的优化问题为凸问题,可以更容易地求解。具体代码如下:% 定义变量 X = sdpvar(n); Y = sdpvar(n); W = sdpvar(n); % 构造LMI约束 F = [A*X+B*Y+tau*eye(n) <= 0, Y - W'*W >= 0, X >= eps*n*eye(n), W >= 0]; % 将Y*inv(X)替换成新的变量Z Z = sdpvar(n); F = replace(F, Y*inv(X), Z); % 定义优化目标并求解 obj = trace(W); ops = sdpsettings('solver', 'sdpt3', 'verbose', 0); optimize(F, obj, ops);
其中,replace函数的作用是将第一个参数中的第二个参数替换成第三个参数,可以用来替换LMI中相乘的sdpvar变量。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
- ¥15 SQL数据库操作问题
- ¥100 关于lm339比较电路出现的问题
- ¥15 Matlab安装yalmip和cplex功能安装失败
- ¥15 加装宝马安卓中控改变开机画面
- ¥15 STK安装问题问问大家,这种情况应该怎么办
- ¥15 关于罗技鼠标宏lua文件的问题
- ¥15 halcon ocr mlp 识别问题
- ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
- ¥20 无法创建新的堆栈防护界面