- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案
精彩文档
利用Matlab解决数学问题
一、线性规划
求解线性规划的Matlab解法
单纯形法是求解线性规划问题的最常用、最有效的算法之一。单纯形法是首先由
George Dantzig于1947年提出的,近60年来,虽有许多变形体已被开发,但却保持着同样的基本观念。由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优解是可行区域的一个极点。基于此,单纯形法的基本思路是:先找出可行域的一个极点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更优;如此下去,直到找到某一最优解为止。这里我们不再详细介绍单纯形法,有兴趣的读者可以参看其它线性规划书籍。下面我们介绍线性规划的Matlab解法。
Matlab5.3中线性规划的标准型为
基本函数形式为linprog(c,A,b),它的返回值是向量的值。还有其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如:
[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
这里fval返回目标函数的值,Aeq和beq对应等式约束,LB和UB分别是变量的下界和上界,是的初始值,OPTIONS是控制参数。
例2 求解下列线性规划问题
解 ( = 1 \* roman i)编写M文件
c=[2;3;-5];
a=[-2,5,-1]; b=-10;
aeq=[1,1,1];
beq=7;
x=linprog(-c,a,b,aeq,beq,zeros(3,1))
value=c*x
( = 2 \* roman ii)将M文件存盘,并命名为example1.m。
( = 3 \* roman iii)在Matlab指令窗运行example1即可得所求结果。
求解线性规划问题
解 编写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编程实现分枝定界解法和割平面解法。但对于指派问题等特殊的整数规划问题或约束矩阵是幺模矩阵时,有时可以直接利用Matlab的函数linprog。
例8 求解下列指派问题,已知指派矩阵为
解:编写Matlab程序如下:
c=[3 8 2 10 3;8 7 2 9 7;6 4 2 7 5
8 4 2 3 5;9 10 6 9 10];
c=c(:);
a=zeros(10,25);
for i=1:5
a(i,(i-1)*5+1:5*i)=1;
a(5+i,i:5:25)=1;
end
b=ones(10,1);
[x,y]=linprog(c,[],[],a,b,zeros(25,1),ones(25,1))
求得最优指派方案为,最优值为21。
三、非线性规划
Matlab中非线性规划的数学模型写成以下形式
,
其中是标量函数,是相应维数的矩阵和向量,是非线性向量函数。
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定义了优化参数,可以使用Matlab缺省的参数设置。
例2 求下列非线性规划问题
( = 1 \* roman i)编写M文件fun1.m
function f=fun1(x);
f=x(1)^2+x(2)^2+8;
和M文件fun2.m
function [g,h]=fun2(x);
g=-x(1)^2+x(2);
h=-x(1)-x(2)^2+2; %等式约束
( = 2 \* roman ii)在Matlab的命令窗口依次输入
options=optimset;
[x,y]=fmincon(fun1,rand(2,1),[],[],[],[],zeros(2,1),[], ...
fun2, options)
就可以求得当时,最小值。
四、图论
两
文档评论(0)