资源描述:
《利用matlab解决数学问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用Matlab解决数学问题一、线性规划求解线性规划的Matlab解法单纯形法是求解线性规划问题的最常用、最有效的算法之一。单纯形法是首先由GeorgeDantzig于1947年提出的,近60年来,虽有许多变形体已被开发,但却保持着同样的基本观念。由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优解是可行区域的一个极点。基于此,单纯形法的基本思路是:先找出可行域的一个极点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更优;如此下去,直到找到某一最优解为止。这里我们不再详细介绍单纯形法,有兴趣的读者可以参看其它线性规划书籍。下面我们介绍线性规
2、划的Matlab解法。Matlab5.3中线性规划的标准型为基本函数形式为linprog(c,A,b),它的返回值是向量的值。还有其它的一些函数调用形式(在Matlab指令窗运行helplinprog可以看到所有的函数调用形式),如:[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)这里fval返回目标函数的值,Aeq和beq对应等式约束,LB和UB分别是变量的下界和上界,是的初始值,OPTIONS是控制参数。例2求解下列线性规划问题解(i)编写M文件c=[2;3;-5];a=[-2,5,-1];b=-10;aeq=[1,1,1];b
3、eq=7;x=linprog(-c,a,b,aeq,beq,zeros(3,1))value=c'*x(ii)将M文件存盘,并命名为example1.m。(iii)在Matlab指令窗运行example1即可得所求结果。例3求解线性规划问题解编写Matlab程序如下:c=[2;3;1];a=[1,4,2;3,2,0];b=[8;6];[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))二、整数规划整数规划问题的求解可以使用Lingo等专用软件。对于一般的整数规划规划问题,无法直接利用Matlab的函数,必须利用Matlab编程实现分枝定界解法和割平面解法
4、。但对于指派问题等特殊的整数规划问题或约束矩阵是幺模矩阵时,有时可以直接利用Matlab的函数linprog。例8求解下列指派问题,已知指派矩阵为解:编写Matlab程序如下:c=[382103;87297;6427584235;9106910];c=c(:);a=zeros(10,25);fori=1:5a(i,(i-1)*5+1:5*i)=1;a(5+i,i:5:25)=1;endb=ones(10,1);[x,y]=linprog(c,[],[],a,b,zeros(25,1),ones(25,1))求得最优指派方案为,最优值为21。三、非线性规划Matlab中非线性规划的
5、数学模型写成以下形式,其中是标量函数,是相应维数的矩阵和向量,是非线性向量函数。Matlab中的命令是X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)它的返回值是向量,其中FUN是用M文件定义的函数;X0是的初始值;A,B,Aeq,Beq定义了线性约束,如果没有等式约束,则A=[],B=[],Aeq=[],Beq=[];LB和UB是变量的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果无下界,则LB=-inf,如果无上界,则UB=inf;NONLCON是用M文件定义的非线性向量函数;OPTIONS定义了优化参
6、数,可以使用Matlab缺省的参数设置。例2求下列非线性规划问题(i)编写M文件fun1.mfunctionf=fun1(x);f=x(1)^2+x(2)^2+8;和M文件fun2.mfunction[g,h]=fun2(x);g=-x(1)^2+x(2);h=-x(1)-x(2)^2+2;%等式约束(ii)在Matlab的命令窗口依次输入options=optimset;[x,y]=fmincon('fun1',rand(2,1),[],[],[],[],zeros(2,1),[],...'fun2',options)就可以求得当时,最小值。四、图论两个指定顶点之间的最短路径问
7、题如下:给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间,找一条最短铁路线。以各城镇为图的顶点,两城镇间的直通铁路为图相应两顶点间的边,得图。对的每一边,赋以一个实数—直通铁路的长度,称为的权,得到赋权图。的子图的权是指子图的各边的权和。问题就是求赋权图中指定的两个顶点间的具最小权的轨。这条轨叫做间的最短路,它的权叫做间的距离,亦记作。求最短路已有成熟的算法:迪克斯特拉(Dijkstra)算法,其基本思想是按距从近到远为顺序,依次求得到的各顶点的最短路和距离,直至(