数学建模之非线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非线性规划
一、非线性规划的定义与实例 二、无约束条件和约束条件的Matlab解法 三、非线性规划的经典例题
一、定义与实例
1. 定义:如果目标函数或约束条件中包 含非线性函数,就称这种规划问题为 非线性规划问题。
非线性规划不像线性规划有通用的方法,解 非线性规划要比解线性规划问题困难的多。非 线性规划目前还没有适于各种问题的一般算法, 各个方法都有自己特定的适用范围。
2.2约束条件(非线性规划)
min f (x)
A x b,
s.t
cA(exq )
x
be 0,
q
,
ceq(x) 0,
lb x ub.
fmincon函数
[]
目标函数的值 初始值 线性约束等式的上下界
[x,fval]=fmincon(‘fun’,x0,A,b,Aeq,beq,lb,ub,nonlcon,
思考:
y
(160,160)
1.飞行区域
2.约束条件 :
飞行区域
两架飞机相距至少8km;调整角度<30o
飞行速度均为a=800km;刚进入时的飞机
与其他飞机相距在6(00,k0m) 以上;
x
3.目标函数: 飞机飞行方向角调整的幅度尽量小
n
min i i 1
建模过程:
利用飞机的相对飞行速度,将i视为静止, j以相对速度进行飞行
. vij
j
0 ij
.8km i
rij0 (xi x j )2 ( yi y j )2
v
2
s
in(
j
i
)(cos(
j
i
), sin(
j
i
));
2
22
22
所以,相对飞行角
ij
2
j
i
2
最小夹角i0j
8ቤተ መጻሕፍቲ ባይዱ
arc
sin( rij
0
)
于是,建立ij与i0j的关系
0 mn
arg ( xm
e e in im iym ) (xn
options) 目标函数
变量的上下界
决策的值
线性约束不等式的上下 界
优化参数
非线性约束的不等式 和等式的上下界
例1:
min f (x) 2x12 4x1x2 4x22 6x1 3x2,
x1 x2 3, s.t4x1 x2 9,
x1, x2 0.
例2: min f (x) x12 x22 x32 8,
n
bi xi
maxQ
i 1 n
,
ai xi
i 1
s,t0
n
ai xi
i 1
A
xi 0或1,i 1,...,n.
二、无约束条件和约束条件的 Matlab解法
2.1无约束条件 Matlab中的函数 fminunc函数 fminsearch函数
2.1.1 fminunc函数
@fun
[x,fval]=fminunc(‘fun’,x0,options)
模型,列出计算步骤,对以下数据进行计算(方
向角误差不超过0.01度),要求飞机飞行方向角调
整的幅度尽量小。
飞机编号 横坐标 纵坐标 方向角(度)
1
150
140 243
2
85
85
236
3
150
155 220.5
4
145
50
159
5
130
150 230
新进入 0
0
52
注:方向角指飞行方向与x轴正向的夹角
的极值。(fminunc,fminsearch,) 程序:
f=@(x)x(1)^3-x(2)^3+3*x(1)^2+... 3*x(2)^2-9*x(1); g=@(x)-f(x); [x,y]=fminunc(f,rand(2,1)) [xx,yy]=fminsearch(g,rand(2,1)); xx,yy=-yy
1.1约束最优化函数
fminbnd fmincon quadprog fseminf fminimax
1.2无约束极值函数 fminunc fminsearch
2. 例:某企业有n个项目可供选择投资,并
且至少要对其中一个项目投资。已知该企 业拥有总资金A元,投资于第i(i=1,…,n) 个项目需花资金 ai 元,并预计可收益 bi 元。 试计算最佳投资方案。
x12
x2
x32
0,
x1 x22 x32 20,
s.t
x1
x22
2
0,
x2
2 x3 2
3,
x1
,
x2 ,
x3
0.
Matlab优化工具箱
例题:
在约10000m高空的某边长160km的正方形区 域内,经常有若干架飞机作水平飞行。区域内 每架飞机的位置和速度向量均由计算机记录其 数据,以便进行飞行管理。当一架欲进入该区 域的飞机到达区域边缘时,记录其数据后,要 立即计算并判断是否会与区域内的飞机发生碰 撞。如果会碰撞,则应计算如何调整各架(包 括新进入的)飞机飞行的方向角,以避免碰撞。 现假定条件如下:
极小值点 M函数(目标值)
优化参数
函数的极小值
初始值
函数的理论(fminunc,fminsearch)
Fibonac c i(斐波那契法)
一维搜索插值法
微积分中的求根法
解析法
Fn
1 5
1
2
5
n
1
2
5
n
二次插值法
例: 求多元函数 f (x, y) x3 y3 3x2 3y2 9x
iyn )
非线性规划模型:
6
min | i |, i 1
s.t |
0 ij
1 2
(i
j)
|
0 ij
,
i
1,..5,
j
i
1,...,6,
| i | 30o ,i 1,2,...,6
i0j的值
i0j 的值
1)不碰撞的标准为任意两架飞机的距离大于 8km;
2)飞机飞行方向角调整的幅度不应超过30度; 3)所有飞机飞行速度均为每小时800km; 4)进入该区域的飞机在到达区域边缘时,与
区域内飞机的距离应在60km以上; 5)最多需考虑6架飞机; 6)不必考虑飞机离开此区域后的状况。
请你对这个避免碰撞的飞行管理问题建立数学
解:设投资决策变量为
1, 决定投资第i个项目 xi 0, 决定不投资第i个项目
n
投资花费资金的总量为 ai xi i 1
n
投资的总收益为 bi xi i 1
限制条件
0
n
ai xi A
xi 0或1(i 1,..., n)
i 1
所以数学模型为
最佳投资方案应是投资额最小而总收益最大
的方案
一、非线性规划的定义与实例 二、无约束条件和约束条件的Matlab解法 三、非线性规划的经典例题
一、定义与实例
1. 定义:如果目标函数或约束条件中包 含非线性函数,就称这种规划问题为 非线性规划问题。
非线性规划不像线性规划有通用的方法,解 非线性规划要比解线性规划问题困难的多。非 线性规划目前还没有适于各种问题的一般算法, 各个方法都有自己特定的适用范围。
2.2约束条件(非线性规划)
min f (x)
A x b,
s.t
cA(exq )
x
be 0,
q
,
ceq(x) 0,
lb x ub.
fmincon函数
[]
目标函数的值 初始值 线性约束等式的上下界
[x,fval]=fmincon(‘fun’,x0,A,b,Aeq,beq,lb,ub,nonlcon,
思考:
y
(160,160)
1.飞行区域
2.约束条件 :
飞行区域
两架飞机相距至少8km;调整角度<30o
飞行速度均为a=800km;刚进入时的飞机
与其他飞机相距在6(00,k0m) 以上;
x
3.目标函数: 飞机飞行方向角调整的幅度尽量小
n
min i i 1
建模过程:
利用飞机的相对飞行速度,将i视为静止, j以相对速度进行飞行
. vij
j
0 ij
.8km i
rij0 (xi x j )2 ( yi y j )2
v
2
s
in(
j
i
)(cos(
j
i
), sin(
j
i
));
2
22
22
所以,相对飞行角
ij
2
j
i
2
最小夹角i0j
8ቤተ መጻሕፍቲ ባይዱ
arc
sin( rij
0
)
于是,建立ij与i0j的关系
0 mn
arg ( xm
e e in im iym ) (xn
options) 目标函数
变量的上下界
决策的值
线性约束不等式的上下 界
优化参数
非线性约束的不等式 和等式的上下界
例1:
min f (x) 2x12 4x1x2 4x22 6x1 3x2,
x1 x2 3, s.t4x1 x2 9,
x1, x2 0.
例2: min f (x) x12 x22 x32 8,
n
bi xi
maxQ
i 1 n
,
ai xi
i 1
s,t0
n
ai xi
i 1
A
xi 0或1,i 1,...,n.
二、无约束条件和约束条件的 Matlab解法
2.1无约束条件 Matlab中的函数 fminunc函数 fminsearch函数
2.1.1 fminunc函数
@fun
[x,fval]=fminunc(‘fun’,x0,options)
模型,列出计算步骤,对以下数据进行计算(方
向角误差不超过0.01度),要求飞机飞行方向角调
整的幅度尽量小。
飞机编号 横坐标 纵坐标 方向角(度)
1
150
140 243
2
85
85
236
3
150
155 220.5
4
145
50
159
5
130
150 230
新进入 0
0
52
注:方向角指飞行方向与x轴正向的夹角
的极值。(fminunc,fminsearch,) 程序:
f=@(x)x(1)^3-x(2)^3+3*x(1)^2+... 3*x(2)^2-9*x(1); g=@(x)-f(x); [x,y]=fminunc(f,rand(2,1)) [xx,yy]=fminsearch(g,rand(2,1)); xx,yy=-yy
1.1约束最优化函数
fminbnd fmincon quadprog fseminf fminimax
1.2无约束极值函数 fminunc fminsearch
2. 例:某企业有n个项目可供选择投资,并
且至少要对其中一个项目投资。已知该企 业拥有总资金A元,投资于第i(i=1,…,n) 个项目需花资金 ai 元,并预计可收益 bi 元。 试计算最佳投资方案。
x12
x2
x32
0,
x1 x22 x32 20,
s.t
x1
x22
2
0,
x2
2 x3 2
3,
x1
,
x2 ,
x3
0.
Matlab优化工具箱
例题:
在约10000m高空的某边长160km的正方形区 域内,经常有若干架飞机作水平飞行。区域内 每架飞机的位置和速度向量均由计算机记录其 数据,以便进行飞行管理。当一架欲进入该区 域的飞机到达区域边缘时,记录其数据后,要 立即计算并判断是否会与区域内的飞机发生碰 撞。如果会碰撞,则应计算如何调整各架(包 括新进入的)飞机飞行的方向角,以避免碰撞。 现假定条件如下:
极小值点 M函数(目标值)
优化参数
函数的极小值
初始值
函数的理论(fminunc,fminsearch)
Fibonac c i(斐波那契法)
一维搜索插值法
微积分中的求根法
解析法
Fn
1 5
1
2
5
n
1
2
5
n
二次插值法
例: 求多元函数 f (x, y) x3 y3 3x2 3y2 9x
iyn )
非线性规划模型:
6
min | i |, i 1
s.t |
0 ij
1 2
(i
j)
|
0 ij
,
i
1,..5,
j
i
1,...,6,
| i | 30o ,i 1,2,...,6
i0j的值
i0j 的值
1)不碰撞的标准为任意两架飞机的距离大于 8km;
2)飞机飞行方向角调整的幅度不应超过30度; 3)所有飞机飞行速度均为每小时800km; 4)进入该区域的飞机在到达区域边缘时,与
区域内飞机的距离应在60km以上; 5)最多需考虑6架飞机; 6)不必考虑飞机离开此区域后的状况。
请你对这个避免碰撞的飞行管理问题建立数学
解:设投资决策变量为
1, 决定投资第i个项目 xi 0, 决定不投资第i个项目
n
投资花费资金的总量为 ai xi i 1
n
投资的总收益为 bi xi i 1
限制条件
0
n
ai xi A
xi 0或1(i 1,..., n)
i 1
所以数学模型为
最佳投资方案应是投资额最小而总收益最大
的方案