数学建模非线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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(...); [x,fval,exitflag,output]=quaprog(...); 9
1.先建立M-文件fun.m定义目标函数: function f=fun(x); f=-2*x(1)-x(2);
2.再建立M文件mycon2.m定义非线性约束: function [g,ceq]=mycon2(x) g=[x(1)^2+x(2)^2-25;x(1)^2-x(2)^2-7];
17
3. 主程序fxx.m为: x0=[3;2.5]; VLB=[0 0];VUB=[5 10]; [x,fval,exitflag,output] =fmincon('fun',x0,[],[],[],[],VLB,VUB,'mycon2')
21
(二)使用临时料场的情形
使用两个临时料场A(5,1),B(2,7).求从料场j向工地i的运送量 为Xij,在各工地用量必须满足和各料场运送量不超过日储量的 条件下,使总的吨千米数最小,这是线性规划问题. 线性规划模 2 6 型为:
2.再建立M文件mycon.m定义非线性约束:
function [g,ceq]=mycon(x) g=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];
15
3.主程序youh3.m为: x0=[-1;1]; A=[];b=[]; Aeq=[1 1];beq=[0]; vlb=[];vub=[]; [x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,vlb,vub,'mycon')
工地位置(a,b)及水泥日用量 d 2 3 4 8.75 0.5 5.75 0.75 4.75 5 5 4 7
a b d
1 1.25 1.25 3
5 3 6.5 6
6 7.25 7.25 11
20
(一)、建立模型
记工地的位置为(ai,bi),水泥日用量为di,i=1,…,6;料场位置为 (xj,yj),日储量为ej,j=1,2;从料场j向工地i的运送量为Xij。
2016/10/3 1
引 例
例1、大学生就业问题 某大学希望为它的毕业生安排工作位置。为简单 起见,假设每个毕业生接受政府部门、工业界或科 学院中的一个位置。令: Nj=第j年毕业的人数(j=1,2,…,n) 并令:Gj、Ij和Aj(Gj+Ij+Aj=Nj)分别为第j年进入政府、 工业界或科学院的人数。
7
非线性规划的基本解法
SUTM外点法
1、罚函数法 SUTM内点法(障碍罚函数法)
2、近似规划法
8
1、二次规划
标准型为: Min Z= 1 XTHX+cTX
2
s.t. AX<=b
Aeq X beq
VLB≤X≤VUB 用MATLAB软件求解,其输入格式如下:
1. 2. 3. 4. 5. 6. 7. 8.
1 2 3 1 s.t. i 0, i 1, 2,3
非线性规划模型
二次规划模型
5
例2、投资问题
假设某公司在下一个计划期内可用于投资的总资 本为b万元,可供选择的投资项目共有n个,分别记 为1,2,…,n.已知对第j个项目的投资总额为aj万元, 而收益总额为cj万元。问如何进行投资,才能使利润 率(即单位投资可获得的收益)最高?
(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)
输出极值点
M文件
迭代的初值
变来自百度文库上下限
参数说明
(6) [x,fval]= fmincon(...) (7) [x,fval,exitflag]= fmincon(...) (8)[x,fval,exitflag,output]= fmincon(...)
第六章 非线性规划
优化问题三要素:决策变量;目标函数;约束条件
目标函数 约 束 条 件
min s.t.
决策变量
f ( x) hi ( x) 0, i 1,...,m g j ( x ) 0, j 1,...,l xD
n
非线性规划(NLP) 目标或约束中存在非线性函数 二次规划(QP) 目标为二次函数、约束为线性
19
应用实例: 供应与选址
某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系 a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出。目 前有两个临时料场位于A(5,1),B(2,7),日储量各有20吨。假设从 料场到工地之间均有直线道路相连。 (1)试制定每天的供应计划,即从A,B两料场分别向各工地运 送多少吨水泥,使总的吨千米数最小。 (2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两 个新的,日储量各为20吨,问应建在何处,节省的吨千米数有多大?
min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x2≤2 -x1+2x2≤2 x1≥0, x2≥0 T 2 -2 x1 2 x1 1 1、写成标准形式: min z ( x , x )
例1
2
1
2
s.t.
2、 输入命令:
ˆ I I ˆ ˆ G G A A j j j j j j j 1
尽可能的小
3
n
例1、大学生就业问题 为了计算的简便,上述的问题的目标函数可以写 成以下形式:
G G ˆ j j j 1
n
n
2
ˆ Ij I j
2
ˆ Aj A j
2
例1、大学生就业问题 假设给出每年学生人数参加各部门的比例,设分 布为λi(i=1,2,3),则在第j年可估计出参加各种工作 的人数为:
ˆ N , I ˆ N ˆ N , A G j 1 j j 2 j j 3 j
为衡量模型的可靠性,必须要求n年中进入这三 个部门的实际人数与预测人数之间的总差别不能太 大,即
14
例3
f ( x) e
s.t.
x
1
2 (4 x1
2 2 x2
4 x1x2 2 x2 1)
x1+x2=0 1.5+x1x2 - x1 - x2 0 -x1x2 –10 0
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);
6
例2、投资问题 解 设投资决策变量
1, 若对第j个项目投资 xj ( j 1, 2,, n) 0, 若不对第j个项目投资
则该问题的优化模型为
max f ( x1 , x2 ,, xn ) c j x j
j 1
n
a x
j 1 j
n
j
n 非线性整数规划 a j x j b s.t. j 1 x 0(或1)( j 1, 2, , n) j
目标函数为: min f
2 2 X ( x a ) ( y b ) ij j i j i j 1 i 1 2 6
X
约束条件为:
j 1 6
2
ij
d i , i 1,2, ,6 ej , j 1,2
X
i 1
ij
当用临时料场时决策变量为:Xij, 当不用临时料场时决策变量为:Xij,xj,yj。
2
2 2 2 G j 1 N j I j 2 N j Aj 3 N j j 1
这种估计方法称为最小二乘估计 另外,同时满足所有毕业生为这些行业所雇用 的约束条件
4
例1、大学生就业问题 因此,优化模型为
2 2 2 min G j 1 N j I j 2 N j Aj 3 N j j 1 n
MATLAB(fxx(fun))
18
4. 运算结果为: x= 4.0000 3.0000 fval =-11.0000 exitflag = 1 output = iterations: 4 funcCount: 17 stepsize: 1 algorithm: [1x44 char] firstorderopt: [] cgiterations: []
12
例2
1 2 1 2 min f x1 2 x2 x1 x2 2 2 2x1+3x2 6 s.t x1+4x2 5 x1,x2 0
1、写成标准形式:
1 2 1 2 min f x1 2 x2 x1 x2 2 2
s.t.
2 x1 3x2 6 0 x1 4 x2 5 0 0 x1 0 x2
0 2. 若约束条件中有非线性约束 :G(X) 或 Ceq(X)=0, 则建立M文件nonlcon.m定义函数G(X)与Ceq(X): function [G,Ceq]=nonlcon(X) G=... Ceq=...
11
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)
13
2、先建立M-文件 fun3.m: function f=fun3(x); f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2
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 MATLAB(youh2)
3、运算结果为: x =0.8 1.2
z = -7.2
10
标准型为: min F(X) 0 s.t AX<=b G(X) Aeq X beq X VUB Ceq(X)=0 VLB
2、一般非线性规划
其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成 的向量,其它变量的含义与线性规划、二次规划中相同.用 Matlab求解上述问题,基本步骤分三步: 1. 首先建立M文件fun.m,定义目标函数F(X): function f=fun(X); f=F(X);
1 1 x1 2 1 2 x2 2 0 x1 x 0 2
2
4 x2 6 x2
H=[2 -2; -2 4]; 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)
MATLAB(youh3)
3. 运算结果为: x = -1.2250 1.2250 fval = 1.8951
16
例4
min f X 2 x1 x2
2 s.t. g1 X 25 x12 x2 0
g2 X 7
2 x1
2 x2
0
0 x1 5, 0 x2 10