最新MATLAB求解线性规划问题_第1页
最新MATLAB求解线性规划问题_第2页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB求解线性规划问题 第七章第七章 最优化计算方法最优化计算方法 MATLAB求解线性规划问题 一、实验目的:一、实验目的: 第一节第一节 线性方程组的应用线性方程组的应用 1、了解线性规划问题及可行解、最优解的概念、了解线性规划问题及可行解、最优解的概念 ; 2、掌握、掌握Matlab软件关于求解线性规划的语句和方法。软件关于求解线性规划的语句和方法。 二、实验原理和方法:二、实验原理和方法: 在生活实践中,很多重要的实际问题都是线性的(至少能在生活实践中,很多重要的实际问题都是线性的(至少能 够用线性函数很好的近似表示),所以我们一般把这些问够用线性函数很好的近似表示),所以我们一

2、般把这些问 题化为线性的目标函数和约束条件进行分析,通常将目标题化为线性的目标函数和约束条件进行分析,通常将目标 函数和约束都是线性表达式的规划问题称为线性规划函数和约束都是线性表达式的规划问题称为线性规划 。 MATLAB求解线性规划问题 它的一般形式是:它的一般形式是: )n, 2 , 1i (0 x bxaxaxa bxaxaxa bxaxaxa . t . s xcxcxcfmin i mnmn22m11m 2nn2222121 1nn1212111 nn2211 也可以用矩阵形式来表示:也可以用矩阵形式来表示: 0 x,bAx. t . s xcfmin T MATLAB求解线性规划

3、问题 线性规划的可行解是满足约束条件的解;线性规划线性规划的可行解是满足约束条件的解;线性规划 的最优解是使目标函数达到最优的可行解。的最优解是使目标函数达到最优的可行解。 线性规划关于解的情况可以是:线性规划关于解的情况可以是: 1、无可行解,即不存在满足约束条件的解;、无可行解,即不存在满足约束条件的解; 2、有唯一最优解,即在可行解中有唯一的最有解;、有唯一最优解,即在可行解中有唯一的最有解; 4、有可行解,但由于目标函数值无界而无最优解。、有可行解,但由于目标函数值无界而无最优解。 3、有无穷最优解,即在可行解中有无穷个解都可使目、有无穷最优解,即在可行解中有无穷个解都可使目 标函数达

4、到最优;标函数达到最优; MATLAB求解线性规划问题 一般求解线性规划的常用方法是单纯形法和改进一般求解线性规划的常用方法是单纯形法和改进 的单纯形法,这类方法的基本思路是先求得一个可行的单纯形法,这类方法的基本思路是先求得一个可行 解,检验是否为最优解;若不是,可用迭代的方法找解,检验是否为最优解;若不是,可用迭代的方法找 到另一个更优的可行解,经过有限次迭代后,可以找到另一个更优的可行解,经过有限次迭代后,可以找 到可行解中的最优解或者判定无最优解。到可行解中的最优解或者判定无最优解。 MATLAB求解线性规划问题 三、内容与步骤:三、内容与步骤: 在在Matlab优化工具箱中,优化工具

5、箱中,linprog函数是使用单纯形法求解函数是使用单纯形法求解 下述线性规划问题的函数。下述线性规划问题的函数。 vubxvlb beqaeqx bAxts xcf T ; ,. min MATLAB求解线性规划问题 它的命令格式为:它的命令格式为: )0,(, ),(, xvubvlbbeqaeqbAclinprogfvalx vubvlbbeqaeqbAclinprogfvalx 其中:其中:A为约束条件矩阵,为约束条件矩阵,b,c分别为目标函数的系数向量和分别为目标函数的系数向量和 约束条件中最右边的数值向量;也可设置解向量的上界约束条件中最右边的数值向量;也可设置解向量的上界vlb和

6、和 下界下界vub,即解向量必须满足,即解向量必须满足vlb=x=vub;还可预先设置;还可预先设置 初始解向量初始解向量x0。 如没有不等式,而只有等式时,如没有不等式,而只有等式时,A= ,b= ; 输出的结果:输出的结果:x表示最优解向量;表示最优解向量;fval表示最优值。表示最优值。 MATLAB求解线性规划问题 【例【例 1】 求解线性规划问题:求解线性规划问题: 3 , 2 , 1i , 0 x 1xx2 3x2xx4 11xx2x . t . s xxx3fmax i 31 321 321 321 解:考虑到解:考虑到linprog函数只解决形如函数只解决形如 的线性规划。所以

7、先要将线性规划的线性规划。所以先要将线性规划 变为如下形式:变为如下形式: 0 ; ,. . min x beqaeqx bAxts xcf T MATLAB求解线性规划问题 3 ,2, 1i ,0 x 3x2xx4 11xx2x 1xx2 . t . s xxx3fmin i 321 321 31 321 然后建立然后建立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) Matlab程序:程序: ch701.m MATLAB

8、求解线性规划问题 以以ch701作为文件名保存此作为文件名保存此M文件后,在命令窗口文件后,在命令窗口 输入输入ch701后即可得到结果:后即可得到结果: x = 4.0000 1.0000 9.0000 同时返回同时返回fval=-2 对应到原来的线性规划中即知目标函数的最大值为对应到原来的线性规划中即知目标函数的最大值为2,此时,此时 x1=4,x2=1,x3=9。 MATLAB求解线性规划问题 第二节第二节 无约束规划计算方法无约束规划计算方法 一、实验目的一、实验目的 1、了解无约束规划问题的求解原理与方法、了解无约束规划问题的求解原理与方法 ; 2、会用、会用Matlab软件求解无约

9、束规划问题。软件求解无约束规划问题。 二、实验原理和方法二、实验原理和方法 无约束规划问题的解法一般按目标函数的形式分为两大类:无约束规划问题的解法一般按目标函数的形式分为两大类: 一类是一元函数的一维搜索法,如黄金分割法、插值法等;一类是一元函数的一维搜索法,如黄金分割法、插值法等; 另一类是求解多元函数的下降迭代法。另一类是求解多元函数的下降迭代法。 MATLAB求解线性规划问题 迭代的基本思想和步骤大致可分为以下四步:迭代的基本思想和步骤大致可分为以下四步: 继续迭代返回否则,令如果是,则结束运算; 优解。是否满足精度要求的最检验新得到的点 由此得到下一个点 使得方向选取适当的步长出发,

10、沿由) 的值时下降的;目标函数 使得沿着这个方向的后,选取一个搜索方向得到 并令选取初始点 )2(, 1 )4 )()( ,3 )( ,)2 ; 0,) 1 1 1 0 kk x Pxx xfPxf Px xf Px kx k kkkk kkkk kkk kk MATLAB求解线性规划问题 三、实验内容与步骤三、实验内容与步骤 在在Matlab软件中,求解无约束规划的常用命令是:软件中,求解无约束规划的常用命令是: x=fminunc(fun,x0) 其中,其中,fun函数应预先定义到函数应预先定义到M文件中,并设置初始文件中,并设置初始 解向量为解向量为x0。 MATLAB求解线性规划问题

11、【例【例 2】求解求解 121 2 2 2 1 x2xxx 2 1 x 2 3 )x(fmin 取取 T)0( )4 , 2(x 解:首先建立函数文件解:首先建立函数文件fun702.m ) 1 (2)2() 1 (2)2(2/12)1 (2/3 )(702 xxxxxf xfunffunction MATLAB求解线性规划问题 以以fun702为文件名保存此函数文件。为文件名保存此函数文件。 在命令窗口输入:在命令窗口输入: x0=-2;4; x=fminunc(fun702,x0) 结果显示:结果显示: f = -1.0000 x = 1.0000 1.0000 即极小值为即极小值为-1,

12、是,是x1=1,x2=1时取得。时取得。 Matlab程序:程序: ch702.m MATLAB求解线性规划问题 【例【例 3】 解非线性方程组解非线性方程组 01)5 . 0()2( 01 2 2 2 1 2 2 1 xx xx 解:解此非线性方程组等价于求解无约束非线性规划问题:解:解此非线性方程组等价于求解无约束非线性规划问题: 22 2 2 1 2 2 2 1 ) 1)5 . 0()2() 1(minxxxx 然后建立函数文件然后建立函数文件fun703.m 2)12)5 . 0)2( 2)2) 1 (2)1)2(2)1 ( )(703 x xxxf xfunffunction MAT

13、LAB求解线性规划问题 在命令窗口输入:在命令窗口输入: x0=0;0; x=fminunc(fun703,x0) 结果显示:结果显示: f =5.2979e-011 x =1.0673 0.1392 则非线性方程组的解为则非线性方程组的解为x1=1.0673,x2=0.1392。 Matlab程序:程序: ch703.m MATLAB求解线性规划问题 第三节第三节 约束非线性规划计算方法约束非线性规划计算方法 一、实验目的一、实验目的 1、了解约束非线性规划问题的求解原理与方法;、了解约束非线性规划问题的求解原理与方法; 2、会用、会用Matlab软件求解约束非线性规划问题。软件求解约束非线

14、性规划问题。 二、实验原理和方法二、实验原理和方法 对于约束非线性规划,随着目标函数和约束条件的不同,对于约束非线性规划,随着目标函数和约束条件的不同, 解法也不同,一般来说,有两类方法:解法也不同,一般来说,有两类方法: (1)、将约束问题化为无约束问题的求解方法;)、将约束问题化为无约束问题的求解方法; (2)、用线性规划来逼近非线性规划;)、用线性规划来逼近非线性规划; MATLAB求解线性规划问题 三、实验内容与步骤三、实验内容与步骤 约束非线性规划的一般形式为:约束非线性规划的一般形式为: )(minxf x ubxlb xceqxg beqxaeqbAxt s )(非线性约束 线性

15、约束 0)(, 0)( )(*,. 其中,其中,f(x)为多元实值函数为多元实值函数;g(x)为向量函数为向量函数,并且并且f(x),g(x)中至中至 少有一个函数是非线性函数的(否则成为线性规划问题)。少有一个函数是非线性函数的(否则成为线性规划问题)。 MATLAB求解线性规划问题 x=fmincon(fun,x0,A,b) x=fmincon(fun,x0,A,b,Aeq,beq) x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlco n) 在在Matlab优化工具箱中,优化工具箱中,f

16、mincon函数是用函数是用SQP算法来算法来 解决一般的约束非线性规划的函数,它的命令格式为:解决一般的约束非线性规划的函数,它的命令格式为: MATLAB求解线性规划问题 【例【例 4】 求解约束非线性规划:求解约束非线性规划: 3. . )3(max 2 2 2 2 2 2 1 11 xets xexe x xx (初值为初值为1;1) 解解: :首先建立一个首先建立一个m文件文件fun7041.m functiony=fun7041(x) y=-exp(x(1)*x(2)2*(3-exp(x(1)-x(2)2); 存储为存储为fun7041.m 首先将问题转化为首先将问题转化为matl

17、ab要求的格式要求的格式;即求出即求出 fun,A,b,Aeq,Beq,X0,Lb,Ub MATLAB求解线性规划问题 然后建立一个然后建立一个m文件文件fun7042.m functionc,cep=fun7042(x) c=;%c为非线性不等式为非线性不等式,且为且为c=0 cep=exp(x(1)+x(2)2-3;%cep为非线性等式为非线性等式 然后存储为然后存储为fun7042.m 最后在命令窗口中输入: A=;b=;Aeq=;Beq=;Lb=;Ub=; x,f=fmincon(fun7041,1;1,fun7042) -f 因题目中有非线性约束条件,所以建立非线性约束因题目中有非线性约束条件,所以建立非线性约束m-文件。文件。 Matlab程序:程序: ch704.m MATLAB求解线性规划问题 结果为: x = 0.8852 0.7592 f = 6.2043e-016 ans= - 6.2043e-016 最后的结果为: - 6.2043e-016 MATLAB求解线性规划问题 【例【例 5】 求解约束非线性规划:求解约束非线性规划: 1 ; 1 ; 1 ; 1 0 10233 5 . . )4()3()2() 1(min 4321 4321 2 4 2 3 2 2 2 1 初值为 i x xxxx xxxx ts xxxx 解:首先建立一个解:首

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论