1、最优化计算方法一、 线性规划计算方法1实验目的:1)了解线性规划问题及可行解、最优解的概念;2)掌握 Matlab 软件关于求解线性规划的语句和方法。2实验原理与方法:在生活实践中,很多重要的实际问题都是线性的(至少能够用线性函数很好的近似表示) ,所以我们一般把这些问题化为线性的目标函数和约束条件进行分析,通常将目标函数和约束都是线性表达式的规划问题称为线性规划,它的一般形式是: ),21(0.min1 2222 1112nixbxaxats xcxcfi mmnn 也可以用矩阵形式来表示:0,.inxbAtscfT线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可
2、行解。线性规划关于解的情况可以是(1) 无可行解,即不存在满足约束条件的解;(2) 有唯一最优解,即在可行解中有唯一的最有解;(3) 有无穷最优解,即在可行解中有无穷个解都可使目标函数达到最优;(4) 有可行解,但由于目标函数值无界而无最有解。一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基本思路是先求得一个基本可行解,在检验该基本可行解是否为最优解;若不是最优解,可用迭代的方法找到另一个使目标函数值更优的基本可行解,在经过有限次迭代后,可以找到可行解中的最优解或者判定无最优解。3内容与步骤:在 Matlab 优化工具箱中,lp 函数是使用单纯形法求解下述线性规划问题的函数。
3、 0,.minxbAtscfT它的命令格式为:),0,(),(,neqcstrxvublAclpxllbclpx其中: 为约束条件矩阵, 分别为目标函数的系数向量和约束条件,中最右边的数值向量;也可设置解向量的上界 和下界 ,即解向vlbu量必须满足 ;还可预先设置初始解向量 。如果在约束vubxvl0x条件中有等式约束,还需要定义等式约束的个数 。neqcstr【例】求解线性规划问题:3,21,04.3ma1231ixxtsfi解:考虑到 函数只解决形如 的线性规划。lp 0,.mnxbAtscfT所以先要将线性规划变换为:3,21,04.3min1321ixtsxfi然后建立 M 文件如下
4、:xcfbAlpcprogamefunt)1,(;3;2,4,02;以 programme1 作为文件名保存此 M 文件后,在命令窗口输入 programme1 后即可得到结果:x = 4.00001.00009.0000同时返回 f2对应到原来的线性规划中即知目标函数的最大值为 2,此时。9,1,4321xx注意:如果约束中有等式约束,一定要使等式约束位于约束方程的最前面。练习题1求解线性规划: 4,321,0. 68min1 4321ixxts xfi2求解线性规划:5,4321,003. 8a142 543ixxts xfi3某工厂计划制造两种产品 A 和 B,其消耗和利润如下表所示,问
5、:如何安排生产,可以使获得的利润最大?煤(吨) 电力(千瓦) 劳力(个) 利润(千元)产品 A 9 4 3 7产品 B 4 5 10 12现有资源 360 200 3004一奶制品加工厂用牛奶生产 A1,A2 两种奶制品,1 桶牛奶可以在设备甲上用 12 小时加工成 3 公斤 A1,或者在设备乙上用 8 小时加工成 4 公斤 A2,根据市场需求,生产的 A1,A2 全部能售出,且每公斤 A1 获利24 元,每公斤 A2 获利 16 元。现在加工厂每天能得到 50 桶牛奶的供应,每天正式工人总的劳动时间为 480 小时,并且设备甲每天至多能加工100 公斤 A1,设备乙的加工能力没有限制。(1)
6、试为该厂制定一个生产计划,使每天获利最大?(2)为增加工厂的获利,在原有资源和限制不变的情况下开发了奶制品的深加工技术:用 2 小时和 3 元加工费,可将 1 公斤 A1 加工成0.8 公斤高级奶制品 B1,也可将 1 公斤 A2 加工成 0.75 公斤高级奶制品 B2,每公斤 B1 能获利 44 元,每公斤 B2 能获利 32 元。试为该厂制定一个生产销售计划,使每天的净利润最大?5某部门有 3 个生产同类产品的工厂 A1,A2,A3,生产的产品由 4 个销售点 B1,B2,B3,B4 出售,各工厂的生产量,各销售点的销售量(单位均为t)以及各工厂到各销售点的单位运价(元/t)的所有数据列表
7、如下:B1 B2 B3 B4 产量A1 4 12 4 11 16A2 2 10 3 9 10A3 8 5 11 6 22销量 8 14 12 14 48问如何调运才能使总运费最小?6某工厂生产甲,乙两种同类产品,需要用到三种原料。两类产品中每单位的产品对三种原料有不同的需求量,其数据由下表所示:原料 甲 乙 原料可供应量第一种原料(kg) 1 1 3500第二种原料(kg) 1 0 1500第三种原料(kg) 5 2 10000单位产品利润(元) 5 3问如何安排生产使利润最大?7某中药厂用当归作原料,制成当归丸和当归膏投入市场,生产一盒当归丸和一瓶当归膏所需劳动力(单位:h)和原料(单位:k
8、g)以及工厂现有劳动力,原料数量如下表所示:当归丸 当归膏 现有资源劳动力(h)4 2 4000原料(kg) 2 4 5000利润(元) 100 80问中药厂应如何安排生产,才能获取利润最多?8某医院营养室在制定下一周菜单时,需要确定下表中所列六种蔬菜的供应次数,以便使费用最小而又能满足营养素等其他方面的要求。规定白菜的供应一周内不多于 2 次,其他蔬菜的供应在一周内不多于 4 次。每周共需供应 14 份蔬菜。为了使费用最小又满足营养素等其他方面的要求,问在下一周内应当供应每种蔬菜各多少次?每份所含营养素单位数序号蔬菜铁 磷 维生素 A 维生素 C 烟酸每份的费用1 青豆 0.45 10 41
9、5 8 0.30 52 胡萝卜 0.45 28 9065 3 0.35 53 菜花 1.05 59 2550 53 0.60 84 白菜 0.40 25 75 27 0.15 25 甜菜 0.50 22 15 5 0.25 66 土豆 0.50 75 235 8 0.80 3要求蔬菜提供的营养6.00 25 17500 245 5.00 二、无约束规划计算方法:1实验目的:1)了解无约束规划问题的求解原理与方法。2)会用 Matlab 软件求解无约束规划问题。2实验原理与方法:无约束规划是指目标函数在自变量的某个变化范围内的极小(极大)问题。它的一般表达式为: ,其中 为目标函数, 是)(mi
10、nxfRx)(xfx维向量。 极大值的求解可以通过 的极小值来解决。n)(xf )(xf无约束规划问题的解法一般按目标函数的形式分为两大类:一类是一元函数的一维搜索法,如黄金分割法、插值法等;另一类是求解多元函数的下降迭代法,在下降迭代法中,一种迭代法要利用目标函数的解析性质,称为解析法,如梯度法、共轭梯度法、变尺度法等;另一种迭代法仅用到目标函数值,而不是求函数的解析性质,称为直接法,如步长加速法、单纯形法等。直接法的优点在于适用面较广,但收敛速度较慢。求解无约束规划问题的解析法是利用函数的近似展开式来逼近目标函数的极小值,具体找出迭代的公式,从而确定极小点序列,求解无约束规划问题。求解无约
11、束规划问题的直接法是采用“探索性”移动和“模式性”移动的方式进行搜索,比较、分析目标函数下降方向和利用函数变化规律寻求较好方向上的自变量点,实现加速的迭代方式来求解无约束规划问题。迭代的基本思想和步骤大致可分为以下四步:(1)选取初始点 ,并令 ;)0(x0k(2)得到 后,选取一个搜索方向 ,使得沿这个方向目标函)(k )(kP数 的值是下降的;xf(3)由 出发,沿 方向选取适当的步长 ,使得)(k)(kPk,由此得到下一个点)(kxfxf)()()1( kk(4)检验新得到的点 是否是满足精度要求的最优解。如果是,)!(kx则结束运算;否则令 ,返回(2)继续迭代。1由此可见,搜索方法的
12、关键在于搜索方向及搜索步长的选取。3实验内容与步骤:在 Matlab 软件中,求解无约束规划的常用命令是:x=fminu(fun,x0)其中,fun 函数应预先定义到 M 文件中,并设置初始解向量为 x0。【例 2】求解 ,取121213)(minxxxf T)4,2()0解:首先建立函数文件 fun2.m)()()2(/)1(/3 xxxffuuctio 以 fun2 为文件名保存此函数文件。在命令窗口输入:x0-2;4;x=fminu(fun2,x0)结果显示f =-1.0000x =1.00001.0000即极小值为1,且 x1=1,x2=1。【例 3】求解 ,取2121)()(0)(m
13、inxxf Tx1,2.)0(解:首先建立函数文件 fun3.m2)1()()03xxffununctio以 fun3 为文件名保存此函数文件。在命令窗口输入:x0=-1.2;1;x=fminu(fun3,x0)结果显示f =1.1452e-013x =1.00001.0000即极小值为 1.1452e-013,且 x1=1,x2=1。【例 4】求解 624121minxx解:首先建立函数文件 fun4.m6)2(4)()4)()(2 xxxffuuctio以 fun4 为文件名保存此函数文件。在命令窗口输入:x0=1;1;x=fminu(fun4,x0)结果显示:f =1.9601x =0.
14、00000.9603即极小值为 1.9601,且 x1=0,x2=0.9603。【例 5】解非线性方程组 01)5.()2(0121xx解:解此非线性方程组等价于求解无约束非线性规划问题:221221 ).()()(minx然后建立函数文件 fun5.m2)15.0)()()2()(5xxxffunuctio在命令窗口输入:x0=0;0;x=fminu(fun5,x0)结果显示:f =5.2979e-011x =1.06730.1392则非线性方程组的解为 x1=1.0673,x2=0.1392。练习题1求解 ,2121421 8)(minxxxf 取初始点 。Tx,)0(2求解 )1(8.1
15、9)()1(.0(0)(in 42242 23342 xxf分别取初始点 和 。Tx,3) T,03解非线性方程组:032242121xx取初始点 。T)9.,4()0三约束非线性规划计算方法1实验目的:1)了解约束非线性规划问题的求解原理与方法。2)会用 Matlab 软件求解约束非线性规划问题。2实验原理与方法:约束非线性规划的一般形式为:)(minxfRxxnjgmihtsji ),21(0). 其中 为目标函数, 和 是约束条件,并 ,)(f )(xhi )(gj )(xf, 均可以是非线性函数,而且至少有一个是非线性函xhigj数。 对于约束非线性规划,随着目标函数和约束条件的不同,
16、解法也不同,一般来说,有四类方法:(1)将约束问题化为无约束问题的求解方法,如 SUMT 外点法,SUMT 内点法等;(2)用线性规划来逼近非线性规划;(3)不预先转换约束问题的解析方法,如可行方向法、梯度投影法等;(4)不预先转换约束问题的直接法,如复合形法,随机试验法等。3实验内容与步骤:在 Matlab 优化工具箱中, constr 函数是用 SQP 算法来解决一般的约束非线性规划的函数,它的命令格式为:),0(), vubloptinsxfuconstrxft其中, 是有目标函数和约束条件共同组成的函数, 为初始解向量,f 0x是可选参数。也可设置解向量的上界 和下界 ,即解向量opt
17、ins vlbu必须满足 。vubxvl【例 6】求解约束非线性规划:3. )(ma2211xetsxe解:首先建立函数文件 fun6.m转换为求极小值;32)(1exp( );2()1exp(6,gxffungfunctio在命令窗口输入:x0=0,1;options(13)=1; %指出等式约束的个数是 1x=constr(fun6,x0,options)options(8) %显示极值结果显示:x=0.3428 1.2614在命令窗口中接着输入f,g=fun6(x),即可得到目标函数的极值是f=2.8053e-011。【例 7】求约束非线性规划问题 010235. )4()3()()1(
18、min431 2222ixxts x解:首先建立函数文件 fun7.m;10)4(32)(3)1()2( ;5;2)(2)(7, xxgxffungfunctio在命令窗口输入:x0=0,0,0,0;x=constr(fun7,x0,options,0,0,0,0)options(8)结果显示 x=-0.0000 0.6667 1.6667 2.6667在命令窗口中接着输入f,g=fun7(x),即可得到目标函数的极值f=6.3333。【例 8】求约束非线性规划问题)156.205(b83140cos)().(5076. 0193cs.o)5.31()1(cos2min 5216153 252
19、43613254634526, ,其 中 :abxxxxxtsxi解:首先建立函数文件 fun8.m );5(2)1(6cos()51(*2)5(.31)5(4)3(5 ;4.1076.4 ;29 3)(cs)()(.)2( ;6o5323 );5(/.1(*41*)6(cos/18, xxxxxgxxxg xffungfunti 在命令窗口输入:x0=0.4,18,0.5,18,6,10*pi/180;x=constr(fun8,x0,options,0.2,14,0.35,16,5.8,8*pi/180,0.5,22,0.6,22,6.5,15*pi/180)options(8)结果显示:
20、x= 0.2012 18.3629 0.3596 18.5780 5.8000 0.2618接着输入f,g=fun8(x),即得到目标函数的极值为 32.8847。练习题1求解 min231)(*/)(xxf.ts0)(221g2求解 in1xf.ts)()(32xh3求解 0,52. 64min21 21211xts xxf4求解 54321243 28a xxx5,4321900562.433154ixtsi5某企业准备用 5000 万元进行 A,B 两个项目的投资,投资 A,B 项目的年收益分别是 20和 16。同时,投资后总的风险损失将随着总投资和单项投资的增加而增加,若设 , 分别表示分配给项目1x2A,B 的投资额,且总的风险损失函数为。问应如何分配资金,才能使期望的212121 )(),(xxh收益最大同时使风险损失为最小。 (计算时可假设收益和风险损失在此投资过程中重要性相同) 。i. 后