达芬奇不喝芬达 2022-03-23 20:38 采纳率: 0%
浏览 23

请问含有双边不等式的函数约束怎么写?(matlab语言)

#图上这种 ‘‘某个数<=自变量<=某个数’’ 的束条件怎么写呀?。图中的 ti (i=A:M)是自变量。

img

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2022-03-23 21:37
    关注

    像这种就先写目标函数

    function f=f1(t)
    C = num2cell(t(:)');
    [tA, tB, tC, tD, tE, tF, tG, tH, tI, tJ, tK, tL, tM] = C{:};
    M = [
    min([tA, tB, tC,tF,tG,tH,tI,tJ,tL,tM])
    min([tA, tB, tC,tF,tG,tH,tI,tK,tM])
    min([tA, tB, tD, tG, tH, tI, tJ, tL, tM])
    min([tA, tB, tD, tG, tH, tI, tK, tM])
    min([tA, tB, tE, tG, tH, tI, tJ, tL, tM])
    min([tA, tB, tE, tG, tH, tI, tK, tM])
    ];
    f = max(M);
    end
    

    然后写约束

    function [c, ceq] = nonlcon(t)
    C = num2cell(t(:)');
    [tA, tB, tC, tD, tE, tF, tG, tH, tI, tJ, tK, tL, tM] = C{:};
    M = [
    min([tA, tB, tC,tF,tG,tH,tI,tJ,tL,tM])
    min([tA, tB, tC,tF,tG,tH,tI,tK,tM])
    min([tA, tB, tD, tG, tH, tI, tJ, tL, tM])
    min([tA, tB, tD, tG, tH, tI, tK, tM])
    min([tA, tB, tE, tG, tH, tI, tJ, tL, tM])
    min([tA, tB, tE, tG, tH, tI, tK, tM])
    ];
    c=M-60; % 这就是非线性约束
    end
    

    最后写求解命令

    t0 = rand(13,1);
    lb = [2;1;1;3;1;1;10;10;10;3;2;9];
    ub = [7;3;25;3;3;16;26;19;6;5;15;3];
    t = fmincon(@f1, t0, [],[],[],[],lb,ub,@nonlcon)
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月23日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音