当前位置:文档之家› MATLAB编程:非线性规划

MATLAB编程:非线性规划

2 . 若 约 束 条 件 中 有 非 线 性 约 束 : G ( X )0
或 Ceq(X)=0,
则 建 立 M文 件 nonlcon.m定 义 函 数 G(X)与 Ceq(X): function [G,Ceq]=nonlcon(X) G=... Ceq=...
17
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)
k
内点法的迭代步骤
(1) 给 定 允 许 误 差
0 , 取 r1 0 , 0 1 ;
( 2) 求 出 约 束 集 合 D 的 一 个 内 点
( 3) 以
0
X
0
D , 令k 1 ;
0
X
k 1
D 为 初 始 点 , 求 解 min I X , rk , 其 中
考虑问题:
设集合 D
0
min f X s .t . g X 0 i
i 1, 2 ,..., m
0
(1)
X | g i X 0 , i 1, 2 , , m , D 是可行域中
所有严格内点的集合。
构造障碍函数 I X , r : I X , r f X r ln g i X
11
近似规划法
近似规划法的基本思想:将问题(3)中的目标函数 f X
和约束条件
giX
0 ( i 1,..., m);
h j X
0 ( j 1, , l )
近似为线性函数,并对变量的取值范围加以限制,从
而得到一个近似线性规划问题,再用单纯形法求解之,
把其符合原始条件的最优解作为(3)的解的近似. 每得到一个近似解后,都从这点出发,重复以上步骤. 这样,通过求解一系列线性规划问题,产生一个 由线性规划最优解组成的序列,经验表明,这样的序 列往往收敛于非线性规划问题的解。
j 1, , n
高 ,故 需 要 对 变 量 的 取 值 范 围 加 以 限 制 ,所 增 加 的 约 束 条 件 是 :
xj x
k j

k j
求解该线性规划问题,得到最优
解X
k 1

( 4)
检验X
k 1
点 对 原 约 束 是 否 可 行 。 若X
k 1
对原约束可行,



X D
定义2
对于问题(1),设 X * D,若存在 0 ,使得对一切 ,且 X X * ,都有 f X * f X ,则称X*是f(X)在D上的 X D 局部极小值点(局部最优解).特别地当 X X *时,若 f X * f X , 则称X*是f(X)在D上的严格局部极小值点(严格局部最优解). 定义3 对于问题(1),设 X * D ,对任意的X D ,都有 f X * f X 则称X*是f(X)在D上的全局极小值点(全局最优解).特别地当 * 时,若 * ,则称X*是f(X)在D上的严格全局极小值点 X X f X f X (严格全局最优解). 返回5
7
SUTM外点法
对一般的非线性规划: min f X

i 1,2,..., m; j 1, 2 ,..., l . (1)
gi X 0 s .t . h j X 0
可设: T X , M
f X M
min 0 , g i X 2
i 1
m
M
h
j 1
l
X 2 j
(2)
将问题( 1)转化为无约束问题:
X E
min T X , M
n

(3)
其中T(X,M)称为罚函数,M称为罚因子,带M的项称为罚项,这 里的罚函数只对不满足约束条件的点实行惩罚:当 D 时,满 X 足各 i X 0 , hi X 0 ,故罚项=0,不受惩罚.当 D 时, g X
(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)
1 2
1
2 x 2
6 x 2
s.t.
1 1
1 x1 2 x 2
2 2
2、 输入命令:
0 x1 0 x2
H=[1 -1; -1 2]; c=[-2 ;-6];A=[1 1; -1 2];b=[2;2]; Aeq=[];beq=[]; VLB=[0;0];VUB=[]; [x,z]=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)
min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x2≤2 -x1+2x2≤2 x1≥0, x2≥0 T 1 - 1 x1 2 x1 1、写成标准形式:min z ( x , x )
例1
0 X D 0
0
X D 的最优解,设为 X
r
*
k
X rk D ;
k
( 4) 检 验 是 否 满 足 足,停止迭代, 返 回 (3 ) .
m

i 1
ln g i X
k
或r
m

1 giX
k
i 1

,满
X
X ; 否 则 取 rk 1 rk , 令 k k 1 ,
数学建模与数学实验
非线性规划
后勤工程学院数学教研室
1
实验目的
1、直观了解非线性规划的基本内容。
2、掌握用数学软件求解优化问题。
实验内容
1、非线性规划的基本理论。
2、用数学软件求解非线性规划。 3、钢管订购及运输优化模型 4、实验作业。
2
非线性规划
非线性规划的基本概念
*非线性规划的基本解法
返回3
非现性规划的基本概念 定义 如果目标函数或约束条件中至少有一个是非线性函数 时的最优化问题就叫做非线性规划问题.
i 1 m


I (X ,r) f (X ) r r 为障碍因子
m
1 gi X
i 1

其中称 r ln g i X
i 1
m

或 r
m
1 gi X
i 1

为障碍项,
X D
min I X , rk
0
这样问题( 1)就转化为求一系列极

值问题:
得 X ( rk )
10
( 2)
在点
X
k
处 , 将 f X , giX ,h j X 按 泰 勒 级 数 展 开 并
取一阶近似,得到近似线性规划问题:
min f X f X

k
f X X
k T k k T i
X
k

k
giX gi X hjX hj X

min T X , M
n
T (X k ,M k ) ;
i m ,使 g i X
3、若存在 i 1
,则取Mk>M(M
k
m
k
k 1
M , 10
)
令k=k+1返回(2),否则,停止迭代.得最优解 X * 计算时也可将收敛性判别准则
gi X
3、运算结果为: x =0.6667 1.3333
MATLAB(youh1)
z = -8.2222
16
标准型为: min F(X) s.t AX<=b Ceq(X)=0
2、一般非线性规划
Aeq X beq
G ( X 0 )
VLB X
VUB
其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成 的向量,其它变量的含义与线性规划、二次规划中相同.用 Matlab求解上述问题,基本步骤分三步: 1. 首先建立M文件fun.m,定义目标函数F(X): function f=fun(X); f=F(X);
14 返回
否则,令

k j
j 1, , n , k = k + 1 , 返 回 步 骤 ( 2 ) .
1、二次规划
标准型为: Min Z= 1
2
T T
X HX+c X
s.t. AX<=b
Aeq X beq
V LB ≤ X ≤ V UB
用MATLAB软件求解,其输入格式如下: 1. 2. 3. 4. 5. 6. 7. 8. x=quadprog(H,C,A,b); x=quadprog(H,C,A,b,Aeq,beq); x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB); x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0); x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,options); [x,fval]=quaprog(...); [x,fval,exitflag]=quaprog(...); 15 [x,fval,exitflag,output]=quaprog(...);
相关主题