Page 155 - 数学建模算法与应用
P. 155

第六章  非线性规划的研究











                   其中 f (x) 是标量函数, A, B, Aeq, Beq 是相应维数的矩阵和向量,
               C(x),Ceq(x) 是非线性向量函数。

                   Matlab 中的命令是 X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,
               NONLCON,OPTIONS)

                   它的返回值是向量 x ,其中 FUN 是用 M 文件定义的函数 f (x);X0 是 x 的
               初始值;A,B,Aeq,Beq 定义了线性约束 A* X ≤ B, Aeq * X = Beq ,如果没
               有线性约束,则 A=[],B=[],Aeq=[],Beq=[];LB 和 UB 是变量 x 的下界和上界,

               如果上界和下界没有约束,则 LB=[],UB=[],如果 x 无下界,则 LB 的各分量
               都为 -inf,如果 x 无上界,则 UB 各分量都为 inf;NONLCON 是用 M 文件定义
               的非线性向量函数 C(x),Ceq(x) ;OPTIONS 定义了优化参数,可以使用 Matlab
               缺省的参数设置。

                   例  求下列非线性规划














                   解 1. 编写 M 文件 fun1.m 定义目标函数
                   function f=fun1(x);

                   f=sum(x.^2)+8;
                   2. 编写 M 文件 fun2.m 定义非线性约束条件
                   function [g,h]=fun2(x);

                   g=[-x(1)^2+x(2)-x(3)^2
                   x(1)+x(2)^2+x(3)^3-20]; % 非线性不等式约束



                                                                                      145
   150   151   152   153   154   155   156   157   158   159   160