⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 youhua.m

📁 优化法求救方程最小值或最优解 matlab命令窗口会出现几个诸如以下结果的数据
💻 M
字号:
%优化问题

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1.线性规划
%  条件:
%  min  -5x1 - 4x2 - 6x3
%  sub.to  
%         x1 - x2 + x3 <= 20
%         3x1 + 2x2 + 4x3 <= 42
%         3x1 + 2x2 <= 30
%         0 <= x1, 0 <= x2, 0 <= x3
  f = [-5; -4; -6];
  A = [1 -1 1; 3 2 4; 3 2 0];
  b = [20; 42; 30];
  lb = zeros(3,1);
  [x,fval] = linprog(f, A, b, [], [], lb, [])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2.有约束的一元函数的最小值
%  条件:
%  f(x) = ( x^3 + cosx + xlogx ) / e^x
%  x在(0,1)
  fun = inline( '( x^3 + cos(x) + x*log(x) ) / exp(x)' );
  [x,fval] = fminbnd( fun, 0, 1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3.无约束多元函数最小值
%  y = 2x1^3 + 4x1x2^3 - 10x1x2 + x2^2
  fun = inline( ' 2*x(1)^3 + 4*x(1)*x(2)^3 - 10*x(1)*x(2) + x(2)^2 ', 'x' );
  [x,fval] = fminsearch(fun,[0,0])

% 当函数阶数大于2时,使用fminu比fmins更有效,但当所选函数高度不连续时,使用fmins效果较好。
%  f(x) = e^x1 ( 4x1^2 + 4x1x2 + 2x2^2 + 2x2 + 1 )
  fun = inline( 'exp(x(1)) * ( 4*x(1)^2 + 4*x(1)*x(2) + 2*x(2)^2 + 2*x(2) + 1 )' , 'x' );
  x0 = [-1,1];
  options = [];
  [x,options] = fminsearch( fun, x0, options )

%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4.有约束多元函数最小值
%  求下列问题在(0,1)处的最优解
%  min     x(1)^2 + x(2)^2 - x(1)*x(2) - 2*x(1) - 5x(2)
%  sub.to  -(x(1) - 1)^2 + x(2) >= 0
%          2*x(1) - 3*x(2) + 6 >= 0
%function  [c, ceq] = mycon(x)
%c = ( x(1) -1 )^2 - x(2) ;
%ceq = [ ];
%  f = ' x(1)^2 + x(2)^2 - x(1)*x(2) - 2*x(1) - 5*x(2) ';
%  x0 = [0, 1];
%  A = [-2, 3];
%  b = 6;
%  Aeq = [ ];
%  beq = [ ];
%  lb = [ ];
%  ub = [ ];
%  [x, fval] = fmincon( f, x0, A, b, Aeq, beq, lb, ub, @mycon );

%%%%%%%%%%%%%%%%%%%%%%%%%%% 5.二次规划问题
%  min  f(x) = 1/2*x(1)^2 + x(2)^2 - x(1)*x(2) - 2*x(1) - 6*x(2)
%  sub.to  x(1) + x(2) <= 2
%          -x(1) + 2*x(2) <= 2
%          2*x(1) + x(2) <= 3
%          0 <= x(1) , 0 <= x(2)
%  先化 f(x) = 1/2*x'*H*x + f'*x
  H = [1 -1; -1 2];
  f = [-2; -6];
  A = [1 1; -1 2; 2 1];
  b = [2; 2; 3];
  lb = zeros(2,1);
  [x, fval] = quadprog(H, f, A, b, [], [], lb)
  


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -