求解非线性规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

非线性规划的实例与定义

如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。

1.2 线性规划与非线性规划的区别

如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。

1.3 非线性规划的Matlab 解法

Matlab 中非线性规划的数学模型写成以下形式

)(min x f

⎪⎪⎩⎪⎪⎨⎧=≤=⋅≤0

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

Matlab 中的命令是

X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)

它的返回值是向量x ,其中FUN 是用M 文件定义的函数)(x f ;X0是x 的初始值;A,B,Aeq,Beq 定义了线性约束Beq X Aeq B X A =≤*,*,如果没有等式约束,则A=[],B=[],Aeq=[],Beq=[];LB 和UB 是变量x 的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果x 无下界,则LB=-inf ,如果x 无上界,则UB=inf ;NONLCON 是用M 文件定义的非线性向量函数)(),(x Ceq x C ;OPTIONS 定义了优化参数,可以使用Matlab 缺省的参数设置。

例2 求下列非线性规划问题

⎪⎪⎩⎪⎪⎨⎧≥=+--≥-++=.0,0

208)( min 2

12212212221x x x x x x x x x f (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,121==x x 时,最小值10=y 。

1.4 求解非线性规划的基本迭代格式

记(NP )的可行域为K 。

若K x ∈*,并且

K x x f x f ∈∀≤),()(*

则称*x 是(NP )的整体最优解,)(*x f 是(NP)的整体最优值。如果有

**,),()(x x K x x f x f ≠∈∀<

则称*x 是(NP )的严格整体最优解,)(*x f 是(NP)的严格整体最优值。 若K x ∈*,并且存在*x 的邻域)(*x N δ,使

K x N x x f x f )(),()(**δ∈∀≤,

则称*x 是(NP )的局部最优解,)(*x f 是(NP)的局部最优值。如果有

K x N x x f x f )(),()(**δ∈∀<

则称*x 是(NP )的严格局部最优解,)(*x f 是(NP)的严格局部最优值。

由于线性规划的目标函数为线性函数,可行域为凸集,因而求出的最优解就是整个可行域上的全局最优解。非线性规划却不然,有时求出的某个解虽是一部分可行域上的极值点,但并不一定是整个可行域上的全局最优解。

对于非线性规划模型(NP),可以采用迭代方法求它的最优解。迭代方法的基本思想是:从一个选定的初始点n R x ∈ 出发,按照某一特定的迭代规则产生一个点列}{k x ,使得当}{k x 是有穷点列时,其最后一个点是(NP)的最优解;当}{k x 是无穷点列时,它有极限点,并且其极限点是(NP)的最优解。

设n k R x ∈是某迭代方法的第k 轮迭代点,n k R x ∈+1是第1+k 轮迭代点,记

k k k k p t x x +=+1 (1) 这里1,,1=∈∈k n k k p R p R t ,显然k p 是由点k x 与点1+k x 确定的方向。式(1)就是求解非线性规划模型(NP)的基本迭代格式。

通常,我们把基本迭代格式(1)中的k p 称为第k 轮搜索方向,k t 为沿k p 方向的步长,使用迭代方法求解(NP)的关键在于,如何构造每一轮的搜索方向和确定适当的步长。 设0,≠∈p R x n ,若存在0>δ,使

),0(),()(δ∈∀<+t x f tp x f ,

称向量p 是f 在点x 处的下降方向。 设0,≠∈p R x n ,若存在0>t ,使

K tp x ∈+,

称向量p 是点x 处关于K 的可行方向。

一个向量p ,若既是函数f 在点x 处的下降方向,又是该点关于区域K 的可行方向,则称之为函数f 在点x 处关于K 的可行下降方向。

现在,我们给出用基本迭代格式(1)求解(NP)的一般步骤如下:

0 选取初始点0x ,令0:=k 。

1 构造搜索方向,依照一定规则,构造f 在点k x 处关于K 的可行下降方向作为搜索方向k p 。

2 寻求搜索步长。以k x 为起点沿搜索方向k p 寻求适当的步长k t ,使目标函数值有某种意义的下降。

3 求出下一个迭代点。按迭代格式(1)求出

k k k k p t x x +=+1。

若1+k x 已满足某种终止条件,停止迭代。

4 以1+k x 代替k x ,回到1步。

1.5 凸函数、凸规划

设)(x f 为定义在n 维欧氏空间)(n E 中某个凸集R 上的函数,若对任何实数)10(<<αα以及R 中的任意两点)1(x 和)2(x ,恒有

)()1()())1(()2()1()2()1(x f x f x x f αααα-+≤-+

则称)(x f 为定义在R 上的凸函数。

若对每一个)10(<<αα和R x x ∈≠)2()1(恒有

)()1()())1(()2()1()2()1(x f x f x x f αααα-+<-+

相关文档
最新文档