(单纯形法的matlab实现极小化问题.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(单纯形法的matlab实现极小化问题

实 验 报 告 实验题目: 单纯形法的matlab实现 学生姓名: 学 号: 实验时间: 2013-4-15 一.实验名称: 单纯形法的MATLAB实现 二.实验目的及要求: 1. 了解单纯形算法的原理及其matlab实现. 2. 运用MATLAB编辑单纯形法程序解决线性规划的极小化问题, 求出最优解及目标函数值. 三.实验内容: 单纯形方法原理: 单纯形方法的基本思想, 是从一个基本可行解出发, 求一个使目标函数值有所改善的基本可行解; 通过不断改进基本可行解, 力图达到最优基本可行解. 对问题 其中A是一个m×n矩阵, 且秩为m, 为n维行向量, 为n维列向量, 为m维非负列向量. 符号“”表示右端的表达式是左端的定义式, 即目标函数的具体形式就是. 记 令=(B,N), B为基矩阵, N为非基矩阵, 设 是基本可行解, 在处的目标函数值 , 其中是中与基变量对应的分量组成的m维行向量; 是中与非基变量对应的分量组成的n-m维行向量. 现由基本可行解出发求解一个改进的基本可行解. 设是任一可行解, 则由得到 , 在点处的目标函数值 , 其中R是非基变量下标集, . 单纯形方法计算步骤: 首先给定一个初始基本可行解, 设初始基为B, 然后执行下列主要步骤: 解, 求得, 令, 计算目标函数值. 求单纯形乘子, 解, 得到. 对于所有非基变量, 计算判别数. 令 . 若, 则对于所有非基变量, 对应基变量的判别数总是为零, 因此停止计算, 现行基本可行解是最优解. 否则, 进行下一步. 解, 得到, 若, 即的每个分量均非正数, 则停止计算, 问题不存在有限最优解. 否则进行步骤(4). 确定下标r, 使 x=, 为离基变量, 为进基变量. 用替换, 得到新的基矩阵B, 返回步骤(1). 单纯形方法表格形式: 表 3.1.1 右 端 0 1 0 表 3.1.2(3.1.1略去左端列后的详表) 假设, 由上表得. 若, 则现行基本可行解是最优解. 若, 则用主元消去法求改进的基本可行解. 先根据选择主列, 再根据找主行, 主元为, 然后进行主元消去, 得到新单纯形表. 表的最后一行是判别数和函数目标值. 四.实验流程图及其MATLAB实现: 1. 流程图: 2. 代码及数值算例: (1) 程序源代码: function [x,f]=DCmin(c,A,b,AR,y0,d) % x: 最优解 % f: 目标函数最优值 % c: 目标函数系数向量 % A: 系数矩阵 % b: m维列向量 % AR: 松弛变量系数矩阵 % y0: 基矩阵初始向量 % d: 补充向量(非目标系数向量, 为一零向量) N=10000; B=[A,AR,b]; [m,n]=size(B); C=[c,d]; y=y0; x=zeros(1,length(c)); for k=1:N k; z=B(:,end);%右端 for j=1:n-1 t(j)=y*B(:,j)-C(j);%检验数 end t; f=y*z; %%========选取主元==========%% %---------选取主列---------% [alpha,q]=max(t); q; W(k)=q;%x下标矩阵 %-------------------------% %--------选取主元----------% for p=1:m if B(p,q)=0 r(p)=N; else r(p)=z(p)/B(p,q); end end [beta,p]=min(r); p; y(p)=C(q); %-------------------------% %%==========================%% B(p,:)=B(p,:)/

文档评论(0)

84537592 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档