ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:109.17KB ,
资源ID:9096001      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9096001.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运筹单纯型算法.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运筹单纯型算法.docx

1、运筹单纯型算法 运筹学实验报告 题目:用单纯形法求解线性规划问题姓 名 王赛赛 学 号 2012436138 年级专业 12数电类2 指导教师 苏珂 2013年11月15日一、 实验目的:运用MATLAB科学计算软件完成单纯型算法求解线性规划问题。二、 实验内容:编写一个MATLAB的函数文件:matrix.m,用于求解标准型的线性规划问题: Ax=bmin f=c*x subject to x01.函数调用基本形式:x,minf,optmatrx,flag=matrix(A,c,b)2.参数介绍: Ax=bA:线性规划问题的约束 中各变量的系数组成的矩阵,是一个mn的矩阵。 x0c:线性规划

2、问题的目标函数f= c*x中各变量的系数变量,是一个n维的行向量。 Ax=bb:线性规划问题的约束 中的常数向量,是一个mn维德列向量。 x0X:输出线性规划问题的最优解,当线性规划问题没有可行解或者有可行解但没有优解X=。minf:输出线性规划问题的最优解,当线性规划问题没有可行解minf,当线性规划问题有可行解但没有最优解时minf=-inf。optmartx:输出最优解对应的单纯型表,当线性规划问题没有可行解或者有可行解但没有最优解时optmartx=。flag:相性规划问题的求解结果标志值,当线性规划问题有最优解时flag=1,当线性规划问题有可行解但没有最优解时flag=0,当线性规

3、划问题没有可行解时flag=-1.三、 MATLAB函数linprog的使用Function x,fval,exitflag,output,lambda=linprog(f,A,B,Aeq,Beq,lb,ub,x0,options)这个函数的功能是解决线性规划问题,它可以有变化的函数传递个数,函数内部根据传值的多少进行不同的功能操作。一、函数的传值1、X = LINPROG(f,A,b) 试图解决线性问题:求出f*x的最小值,且fx服从A*x=b,其中x为自变量2、X = LINPROG(f,A,b,Aeq,beq)解决满足添加约束等式:Aeq*x = beq的上述问题3、X = LINPRO

4、G(f,A,b,Aeq,beq,LB,UB)在以上的条件加下,与此同时定义了自变量的上下线,LB = X 0); % 寻找g1中大于零的数值列数存于dicide数组中while isempty(decide) %当存在大于零的值时 i=decide(1); %当列数赋给itext=find(A(1:m,i)0); %text存放该列中所有数值大于零的行数 if isempty(text) %当没有大于零的数值时无解 flag=0; break; end min=inf; for i1=1:m %当该列存在大于零的数值时 if A(i1,i)0&A(i1,s1)/A(i1,i)0); %再进行查

5、找end %* if g1(1,s1)0 %此时对应的为无解情况 flag=-1;end %*判断人工变量* if g1(1,s1)=0 g1(1,:)=; for i6=1:m A(:,n+1)=; end for i6=1:m c(n+1)=; end decide=find(A1(1:m,1)n); %查找是否有人工变量 if isempty(decide) %存在人工变量 while isempty(decide) x1=decide(1); %存放的是人工变量的行数 text=find(A(x1,1:n)=0); %该行的所有元素都不为零的列坐标 if isempty(text) %

6、都为零,则该行为多余的行,删除 decide(1)=; A1(x1,:)=; A(x1,:)=; m=m-1; else i=text(1); %i保存的是列数 A(x1,:)=A(x1,:)/A(x1,i); A1(x1,1)=i; c(1,:)=c(1,:)+(-1*c(1,i)*A(x1,:); for i1=1:m if i1=x1 A(i1,:)=A(i1,:)+(-1*A(i1,i)*A(x1,:); end end decide(1)=; text(1)=; end end end %*第二阶段* decide=find(c(1,1:n)0); %查找检验向量是否存在大于零的数,

7、将列数保存 while isempty(decide) i=decide(1); %将列数赋给i text=find(A(:,i)0); %保存大于零的项的行数 if isempty(text) %为空的时候,则无解 disp(有可行解但没有最优解) flag=0 c=c;A; optmatrx=c; x=zeros(n,1); for o=1:n for o1=1:m if o=A1(o1,1) x(o,1)=A(o1,n+1); end end end minf=-inf optmatrx x return; end min=inf; for i1=1:m if A(i1,i)0&A(i1

8、,n+1)/A(i1,i)0); end %*结果赋值结算*%* c=c;A;optmatrx=c;x=zeros(n,1); for o=1:n for o1=1:m if o=A1(o1,1) x(o,1)=A(o1,n+1); end endendminf=c(1,n+1);flag=1 ;end switch flag case 1 %有可行解 disp(输出最优解对应的单纯形表) optmatrx disp(输出最优解) x disp(输出线性规划问题的最优值 ) minf case 0 %有可行解但没有最优值 disp(输出可行解对应的单纯形表 ) optmatrx disp(输出

9、可行解 ) x disp(输出线性规划问题的最优值 ) minf case -1 %没有可行解 disp(没有可行解) disp(输出最优解对应的单纯形表 ) optmatrx= disp(输出最优解 ) x= disp(输出线性规划问题的最优值 ) minf=-inf end五、 例题求解 例题1(有最优解)题目:min z=4x1 + 3x3 s.t. 1/2x1 + x2 + 1/2x3 2/3x4= 2 3/2x1 + 1/2x3 = 3 3x1 - 6x2 + 4x4 = 0 xj 0, j = 1,4输入及函数的调用:测试结果:经过测试当线性规划问题存在最优解时,程序运行没有问题。

10、例题2(有可行解但无最优解)题目:min z=-2x1 - 5x2 s.t. -1x1 + x3 = 4 x2 + x4 = 3 -x1 + 2x2 + x5 = 8 xj 0, j = 1,5输入及函数的调用:测试结果:经过测试当线性规划问题有可行解但无最优解时,程序运行没有问题。例题3(没有可行解)题目: min z=2x1 + 2x2 s.t. -1x1 + x2 - x3 = 1 -x1 - x2 - x4 =2 xj 0, j = 1,4输入及函数的调用:测试结果:经过测试当线性规划问题没有可行解时,程序运行没有问题。 linpa请输入约束中的系数矩阵 A=1 0 0 0 0 1 -

11、1 0 0 0 0 0;1 1 0 0 0 0 0 -1 0 0 0 0;0 1 1 0 0 0 0 0 -1 0 0 0;0 0 1 1 0 0 0 0 0 -1 0 0;0 0 0 1 1 0 0 0 0 0 -1 0;0 0 0 0 1 1 0 0 0 0 0 -1A = Columns 1 through 11 1 0 0 0 0 1 -1 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 0 0 1 1 0 0 0 0 0 Co

12、lumn 12 0 0 0 0 0 -1请输入约束中的常数向量 b=10 15 25 20 18 12b = 10 15 25 20 18 12请输入目标函数中的系数向量 c=1 1 1 1 1 1 0 0 0 0 0 0c = Columns 1 through 11 1 1 1 1 1 1 0 0 0 0 0 Column 12 0i = 1j = 12i = 1j = 6b = 10 15 25 20 18 12输入的约束中的常数向量b为单行矩阵,已将其转化为单列矩阵b = 10 15 25 20 18 12c = Columns 1 through 11 -1 -1 -1 -1 -1

13、-1 0 0 0 0 0 Column 12 0输出最优解对应的单纯形表optmatrx = Columns 1 through 11 0 0 0 0 0 0 -1 0 -1 0 -1 1 0 0 0 0 1 -1 0 0 0 0 0 1 0 0 0 -1 0 0 -1 1 -1 0 0 1 0 0 1 0 0 0 -1 1 0 0 0 1 0 -1 0 0 0 0 -1 0 0 0 0 0 0 -1 1 -1 1 -1 0 0 0 0 1 1 0 0 0 0 0 Columns 12 through 13 0 53 0 10 1 11 -1 14 1 6 1 6 -1 12输出最优解x = 10 11 14 6 12 0 0 6 0 0 0 0输出线性规划问题的最优值 minf = 53ans = 10 11 14 6 12 0 0 6 0 0 0 0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1