Forgot password?
 Create new account
View 97|Reply 0

MMA二次规划示例

[Copy link]

462

Threads

969

Posts

9934

Credits

Credits
9934

Show all posts

青青子衿 Posted at 2024-5-20 03:15:27 |Read mode
  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]
Copy the Code

  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
Copy the Code

  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)
Copy the Code

手机版Mobile version|Leisure Math Forum

2025-4-20 12:21 GMT+8

Powered by Discuz!

× Quick Reply To Top Return to the list