my_cake 2023-12-09 20:54 采纳率: 0%
浏览 50

使用matlab的YAMLIP工具箱遇到的问题在使用dual函数求某个约束的对偶变量时,用dual求出的值是NaN!

使用matlab的YAMLIP工具箱遇到的问题
在使用dual函数求某个约束的对偶变量时,如果约束非线性,用dual求出的值是NaN,比如下面这个代码

clc,clear;
A = sdpvar(5,1);

B = 5;
Ob = -sum(A);
C = [];
C = [C,1./A>=B];

optimize(C,Ob);
a = dual(C(1));
Ob_d = -Ob - a'*(1./A-B);
optimize([],-Ob_d);
disp('The optimal value of the dual problem is:')
disp(value(Ob_d)); % 显示对偶问题的最优值
disp('The optimal solution of the dual problem is:')
disp('a = ')
disp(value(A)); % 显示o的最优值

img

  • 写回答

2条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-12-09 21:29
    关注

    所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
    (讯飞星火专栏,V3.0版本,2023.10.24)


    该回答引用讯飞星火认知大模型,仅提供参考,不保证完全正确
    这个问题是由于在计算对偶变量时,遇到了NaN值。这可能是由于约束条件不满足导致的。为了解决这个问题,你可以尝试以下方法:

    1. 检查约束条件是否正确。确保你的约束条件是线性的,因为YAMLIP工具箱不支持非线性约束。

    2. 调整约束条件。如果可能的话,尝试修改约束条件,使其变为线性的。

    3. 使用其他求解器。如果上述方法都无法解决问题,你可以尝试使用其他求解器,如MATLAB内置的优化函数fminconlinprog

    4. 更新YAMLIP工具箱。确保你使用的是最新版本的YAMLIP工具箱,因为旧版本可能存在已知的问题。你可以从YAMLIP官方网站下载最新版本的工具箱。

    评论

报告相同问题?

问题事件

  • 修改了问题 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys
  • ¥15 急,ubuntu安装后no caching mode page found等
  • ¥15 联想交换机NE2580O/NE1064TO安装SONIC
  • ¥15 防火墙的混合模式配置