找回密码
 快速注册
搜索
查看: 7|回复: 0

MMA二次规划示例

[复制链接]

471

主题

945

回帖

9837

积分

积分
9837

显示全部楼层

青青子衿 发表于 2024-5-20 03:15 |阅读模式
  1. z = Symbol["x" <> ToString[#]] & /@ Range[5];
  2. NMinimize[{
  3.   (z - {-2, 3, -7, 4, -10}) . (z - {-2, 3, -7, 4, -10}),
  4.   {84, 59, 92, 31, -93} . z <= -89 &&
  5.    {70, 87, 36, 52, 49} . z <= -182}, z]
复制代码

  1. z = Symbol["x" <> ToString[#]] & /@ Range[5];
  2. u = {-2, 3, -7, 4, -10};
  3. A = {{84, 59, 92, 31, -93}, {70, 87, 36, 52, 49}};
  4. b = {-89, -182};
  5. A . z \[VectorLessEqual] b
  6. Qmin = QuadraticOptimization[(z - u) . (z - u)(*目标函数*),
  7.   A . z \[VectorLessEqual] b(*约束条件*),
  8.   z (*变量*)]
  9. (z - u) . (z - u) /. Qmin
复制代码

  1. %% 【Matlab】%%
  2. alpha_1=[84; 59; 92; 31; -93];
  3. alpha_2=[70; 87; 36; 52; 49];
  4. u=[-2; 3; -7; 4; -10];
  5. b_1 = -89;
  6. b_2 = -182;
  7. % 定义优化问题相关量
  8. H = eye(m); % Hessian matrix
  9. f = -u; % linear term
  10. c = u'*u/2; % constant term
  11. % 约束条件
  12. A = [alpha_1'; alpha_2'];
  13. b = [b_1, b_2];
  14. % 求解优化问题
  15. [z, fval] = quadprog(H, f, A, b, [], [], [], [], []);
  16. % 返回值
  17. z
  18. Fval=2*(fval+c)
复制代码

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 07:09

Powered by Discuz!

× 快速回复 返回顶部 返回列表