MATLAB求解线性规划问题ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Matlab优化工具箱中,linprog函数是使用单纯形法求解 下述线性规划问题的函数。
min s.t.
f cT x Ax b , aeqx beq; vlb x vub
6
它的命令格式为:
[x, fval ] linprog(c, A,b, aeq,beq, vlb, vub) [x, fval ] linprog(c, A,b, aeq,beq, vlb, vub, x0)
Matlab程序: ch701.m
9
以ch701作为文件名保存此M文件后,在命令窗口 输入ch701后即可得到结果:
x = 4.0000 1.0000 9.0000
同时返回fval=-2
对应到原来的线性规划中即知目标函数的最大值为2,此时 x1=4,x2=1,x3=9。
10
第二节 无约束规划计算方法
x= 1.0000 1.0000
即极小值为-1,是x1=1,x2=1时取得。
Matlab程序: ch702.m
15
【例 3】 解非线性方程组
x12
( x1
x2 1 0 2)2 (x2
0.5) 2
1
0
解:解此非线性方程组等价于求解无约束非线性规划问题:
min (x12 x2 1)2 (( x1 2)2 (x2 0.5)2 1)2
1) 选取初始点x0 ,并令k 0; 2) 得到xk 后,选取一个搜索方向Pk ,使得沿着这个方向的
目标函数f (x)的值时下降的;
3) 由xk出发,沿Pk 方向选取适当的步长k ,使得 f (xk k Pk ) f (xk ) 由此得到下一个点xk 1 xk k Pk
4) 检验新得到的点xk1是否满足精度要求的最优解。 如果是,则结束运算;否则,令k k 1,返回(2)继续迭代
一、实验目的
1、了解无约束规划问题的求解原理与方法 ; 2、会用Matlab软件求解无约束规划问题。
二、实验原理和方法
无约束规划问题的解法一般按目标函数的形式分为两大类: 一类是一元函数的一维搜索法,如黄金分割法、插值法等; 另一类是求解多元函数的下降迭代法。
11
迭代的基本思想和步骤大致可分为以下四步:
其中:A为约束条件矩阵,b,c分别为目标函数的系数向量和 约束条件中最右边的数值向量;也可设置解向量的上界vlb和 下界vub,即解向量必须满足vlb<=x<=vub;还可预先设置 初始解向量x0。
如没有不等式,而只有等式时,A=[ ],b=[ ]; 输出的结果:x表示最优解向量;fval表示最优值。
然后建立函数文件fun703.m
function f fun703(x) f (x(1)^2 x(2) 1)^2 ((x(1) 2)^2
(x(2) 0.5)^2 1)^2
16
在命令窗口输入: x0=[0;0]; x=fminunc(‘fun703’,x0)
7
【例 1】 求解线性规划问题:
max
f 3x1 x2 x3
x1 2x2 x3 11
s.t.
4x1 x2 2x3 3 2x1 x3 1
xi 0,i 1,2,3
min
解:考虑到linprog函数只解决形如
s.t.
的线性规划。所以先要将线性规划 变为如下形式:
f cT x Ax b, aeqx beq; x 0
function f fun702 (x) f 3 / 2 x(1)^2 1/ 2 x(2)^2 x(1) x(2) 2 x(1)
14
以fun702为文件名保存此函数文件。 在命令窗口输入: x0=[-2;4]; x=fminunc('fun702',x0) 结果显示:
f= -1.0000
第七章 最优化计算方法
1
第一节 线性方程组的应用
一、实验目的:
1、了解线性规划问题及可行解、最优解的概念 ;
2、掌握Matlab软件关于求解线性规划的语句和方法。
二、实验原理和方法:
在生活实践中,很多重要的实际问题都是线性的(至少能 够用线性函数很好的近似表示),所以我们一般把这些问 题化为线性的目标函数和约束条件进行分析,通常将目标 函数和约束都是线性表达式的规划问题称为线性规划 。
12
三、实验内容与步骤
在Matlab软件中,求解无约束规划的常用命令是: x=fminunc(‘fun’,x0)
其中,fun函数应预先定义到M文件中,并设置初始 解向量为x0。
13
【例 2】 求解 min
f
(x)
ቤተ መጻሕፍቲ ባይዱ
3 2
x12
1 2
x
2 2
x1x 2
2x1
取 x(0) (2,4)T
解:首先建立函数文件fun702.m
8
min
f 3x1 x 2 x3
2x1 x3 1
s.t.
x1 2x 2 x3 11 4x1 x 2 2x3 3
xi 0, i 1,2,3
然后建立M文件如下:
c=[-3;1;1];A=[1 -2 1;4 -1 -2];b=[11;-3]; aeq=[2 0 -1];beq=-1;vlb=[0;0;0]; [x,fval]=linprog(c,A,b,aeq,beq,vlb)
2
它的一般形式是:
min
f c1x1 c2x 2 cn x n
a11x1 a12x 2 a1n x n b1
s.t.
a 21x1
a 22x
2
a 2n x
n
b2
a m1x1 a m2x 2 a mnx n bm
xi 0
(i 1,2, , n)
也可以用矩阵形式来表示:
min
f cTx
s.t.
Ax b, x 0
3
线性规划的可行解是满足约束条件的解;线性规划 的最优解是使目标函数达到最优的可行解。 线性规划关于解的情况可以是: 1、无可行解,即不存在满足约束条件的解; 2、有唯一最优解,即在可行解中有唯一的最有解; 3、有无穷最优解,即在可行解中有无穷个解都可使目
标函数达到最优; 4、有可行解,但由于目标函数值无界而无最优解。
4
一般求解线性规划的常用方法是单纯形法和改进 的单纯形法,这类方法的基本思路是先求得一个可行 解,检验是否为最优解;若不是,可用迭代的方法找 到另一个更优的可行解,经过有限次迭代后,可以找 到可行解中的最优解或者判定无最优解。
5
三、内容与步骤: