资源描述
非线性规划的实例与定义
如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。
1.2 线性规划与非线性规划的区别
如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。
1.3 非线性规划的Matlab解法
Matlab中非线性规划的数学模型写成以下形式
,
其中是标量函数,是相应维数的矩阵和向量,是非线性向量函数。
Matlab中的命令是
X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)
它的返回值是向量,其中FUN是用M文件定义的函数;X0是的初始值;A,B,Aeq,Beq定义了线性约束,如果没有等式约束,则A=[],B=[],Aeq=[],Beq=[];LB和UB是变量的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果无下界,则LB=-inf,如果无上界,则UB=inf;NONLCON是用M文件定义的非线性向量函数;OPTIONS定义了优化参数,可以使用Matlab缺省的参数设置。
例2 求下列非线性规划问题
(i)编写M文件fun1.m
function f=fun1(x);
f=x(1)^2+x(2)^2+8;
和M文件fun2.m
function [g,h]=fun2(x);
g=-x(1)^2+x(2);
h=-x(1)-x(2)^2+2; %等式约束
(ii)在Matlab的命令窗口依次输入
options=optimset;
[x,y]=fmincon('fun1',rand(2,1),[],[],[],[],zeros(2,1),[], ...
'fun2', options)
就可以求得当时,最小值。
1.4 求解非线性规划的基本迭代格式
记(NP)的可行域为。
若,并且
则称是(NP)的整体最优解,是(NP)的整体最优值。如果有
则称是(NP)的严格整体最优解,是(NP)的严格整体最优值。
若,并且存在的邻域,使
,
则称是(NP)的局部最优解,是(NP)的局部最优值。如果有
则称是(NP)的严格局部最优解,是(NP)的严格局部最优值。
由于线性规划的目标函数为线性函数,可行域为凸集,因而求出的最优解就是整个可行域上的全局最优解。非线性规划却不然,有时求出的某个解虽是一部分可行域上的极值点,但并不一定是整个可行域上的全局最优解。
对于非线性规划模型(NP),可以采用迭代方法求它的最优解。迭代方法的基本思想是:从一个选定的初始点出发,按照某一特定的迭代规则产生一个点列,使得当是有穷点列时,其最后一个点是(NP)的最优解;当是无穷点列时,它有极限点,并且其极限点是(NP)的最优解。
设是某迭代方法的第轮迭代点,是第轮迭代点,记
(1)
这里,显然是由点与点确定的方向。式(1)就是求解非线性规划模型(NP)的基本迭代格式。
通常,我们把基本迭代格式(1)中的称为第轮搜索方向,为沿方向的步长,使用迭代方法求解(NP)的关键在于,如何构造每一轮的搜索方向和确定适当的步长。
设,若存在,使
,
称向量是在点处的下降方向。
设,若存在,使
,
称向量是点处关于的可行方向。
一个向量,若既是函数在点处的下降方向,又是该点关于区域的可行方向,则称之为函数在点处关于的可行下降方向。
现在,我们给出用基本迭代格式(1)求解(NP)的一般步骤如下:
0 选取初始点,令。
1 构造搜索方向,依照一定规则,构造在点处关于的可行下降方向作为搜索方向。
2 寻求搜索步长。以为起点沿搜索方向寻求适当的步长,使目标函数值有某种意义的下降。
3 求出下一个迭代点。按迭代格式(1)求出
。
若已满足某种终止条件,停止迭代。
4 以代替,回到1步。
1.5 凸函数、凸规划
设为定义在维欧氏空间中某个凸集上的函数,若对任何实数以及中的任意两点和,恒有
则称为定义在上的凸函数。
若对每一个和恒有
则称为定义在上的严格凸函数。
考虑非线性规划
假定其中为凸函数,为凸函数,这样的非线性规划称为凸规划。
可以证明,凸规划的可行域为凸集,其局部最优解即为全局最优解,而且其最优解的集合形成一个凸集。当凸规划的目标函数为严格凸函数时,其最优解必定唯一(假定最优解存在)。由此可见,凸规划是一类比较简单而又具有重要理论意义的非线性规划。
展开阅读全文