MATLAB非线性规划教程幻灯片.ppt
文本预览下载声明
计算机求解方法 * 非线性规划 实验目的 实验内容 2、掌握用数学软件求解优化问题。 1、直观了解非线性规划的基本内容。 1、非线性规划的基本理论。 4、实验作业。 2、用数学软件求解非线性规划。 3、钢管订购及运输优化模型 *非线性规划的基本解法 非线性规划的基本概念 非线性规划 返回 定义 如果目标函数或约束条件中至少有一个是非线性函数时的最优化问题就叫做非线性规划问题. 非线性规划的基本概念 一般形式: (1) 其中 , 是定义在 En 上的实值函数,简记: 其它情况: 求目标函数的最大值或约束条件为小于等于零的情况,都可通过取其相反数化为上述一般形式. 1. 首先建立M文件fun.m,定义目标函数F(X): function f=fun(X); f=F(X); 其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.用Matlab求解上述问题,基本步骤分三步: 3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格式如下: (1) x=fmincon(‘fun’,X0,A,b) (2) x=fmincon(‘fun’,X0,A,b,Aeq,beq) (3) x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB) (4) x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’) (5)x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options) (6) [x,fval]= fmincon(...) (7) [x,fval,exitflag]= fmincon(...) (8)[x,fval,exitflag,output]= fmincon(...) 输出极值点 M文件 迭代的初值 参数说明 变量上下限 注意: [1] fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为’on’),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。 [2] fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。 [3] fmincon函数可能会给出局部最优解,这与初值X0的选取有关。 1、写成标准形式: s.t. 2x1+3x2 6 s.t x1+4x2 5 x1,x2 0 例2 2、先建立M-文件 fun3.m: function f=fun3(x); f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2 MATLAB(youh2) 3、再建立主程序youh2.m: x0=[1;1]; A=[2 3 ;1 4]; b=[6;5]; Aeq=[];beq=[]; VLB=[0;0]; VUB=[]; [x,fval]=fmincon(fun3,x0,A,b,Aeq,beq,VLB,VUB) 4、运算结果为: x = 0.7647 1.0588 fval = -2.0294 1.先建立M文件 fun4.m,定义目标函数: function f=fun4(x); f=exp(x(1)) *(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); x1+x2=0 s.t. 1.5+x1x2 - x1 - x2 0 -x1x2 –10 0 例3 2.再建立M文件mycon.m定义非线性约束:
显示全部