单纯型算法的实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单纯型算法的实验报告 一.实验目的 1.运用matlab程序设计语言完成两阶段单纯型算法求解线性规划问题。 2.通过程序设计过程更加深刻地理解两阶段单纯型算法。 3.通过程序设计过程逐步提高使用程序设计语言实现算法的能力。 二.实验内容 编写一个matlab的函数文件Untitled1.m用于求解标准线性规划问题: min f=CT*x; A*x=b; x=0; 1.函数调用的基本形式 function [x,RHS,flag,optmatrx]=Untitled1(A,b,C) A*x=b;x≥0; A*x=b; x≥0; A*x=b;x≥0;A:线性规划问题的约束 中各方程的变量的系数组成的系数矩阵,是一个m*n的矩阵。 A*x=b; x≥0; b: 线性规划问题的约束 中各方程的常数向量,是一个m维的列向量。 C:线性规划问题的目标函数f=CT*x;中各变量的系数向量,是一个n维的行向量。 x:输出线性规划问题的最优解,当线性规划问题没有可行解时x=[],当线性规划问题有可行解但无最优解时输出该线性规划问题的某一可行解。 RHS:输出线性规划问题的最优值,当线性规划问题没有可行解时RHS=-inf,当线性规划问题有可行解但是没有最优解时输出上面的某一可行解对应的函数值。 flag:线性规划问题的指示变量,当线性规划问题有最优解时flag=1,当线性规划问题有可行解但是没有最优解时flag=0,当线性规划问题没有可行解时flag=-1。 optmatrx:输出单纯形表,当线性规划问题有最优解时输出最优解对应的单纯形表,当线性规划问题有可行解但无最优解时输出上面的某一可行解对应的单纯形表,当线性规划问题没有最优解时optmatrx=[]。 三.操作步骤 AUTONUM \* GB4 \s 1 首先将本程序Untitled1.m放到当前目录中。 即打开Matlab软件,执行“File” “Set Path…”得到如下对话框: 然后选择“Add Folder…”,得到如下对话框: 选择Untitled1.m所在文件夹,如“桌面”。然后点击“确定”,得到如下对话框: 此时函数文件的目标路径已经添加到matlab的文件路径中,系统默认时将该路径置为优先目录,用户可根据需要选择“Move Up”“Move Down”“Move to Top”“Move to Bottom”等调整该路径的优先次序(防止出现同文件名等)。最后依次选择“Save”和“Close”,完成目标路径的设置。 AUTONUM \* GB4 \s 2 首先将要求解的线性规划问题转化为标准形 min f=CT*x; A*x=b; x≥0; 得到该线性规划问题的3个参数A,b,C;然后打开matlab软件,输入它们,然后调用本函数,调用形式为函数文件名(A,b,C)。例: min z=5x1+21x3 s.t. x1-x2+6x3-x4=2 x1+x2+2x3-x5=1 xj≥0,j=1,…,5 则该线性规划问题的系数矩阵A=[1 -1 6 -1 0;1 1 2 0 -1];b=[2;1];C=[5 0 21 0 0]。则执行如下命令: 此时按“Enter”键,即可输出该问题的最优解等,即: = 3 \* GB4 ㈢如要继续求解线性规划问题,则可以重复上述 = 2 \* GB4 ㈡的步骤,如要退出matlab,则输入“quit”或直接点击右上角的关闭按钮可关闭matlab。 四.实验原理及算法分析 本程序大致分为3个部分:对输入参数的处理;对线性规划问题的求解;对输出参数的处理。其中对线性规划问题的求解使用两阶段的单纯型算法,包括第一阶段通过对构造的辅助问题的求解判断是否有可行解和第二阶段对原始问题的最优值的求解。 = 1 \* GB4 ㈠对输入参数的处理 为增加用户输入参数的灵活性以及防止用户由于失误输入错误导致程序不能运行的发生,此程序对用户输入的3个参数分别进行了处理。 = 1 \* GB2 ⑴对用户输入的系数矩阵A的处理 首先通过size函数和rank函数分别获取用户输入的系数矩阵A的行列数和矩阵A的秩,当矩阵A的行数与秩不相等时,必存在线性规划问题中的某一方程可以用其他某一个方程线性表示,为减少不必要的运算,程序中会对矩阵A进行简化,将对应成比例的两个方程去掉一个。 实现过程为:以行数和秩相等为循环结束条件,当两者不相等时,逐个取出A的每一行,当遇到取出改行剩下的矩阵的秩与A的秩相等时则停止,更新A的值与行数。不断重复上述步骤,直到循环结束。此时,

文档评论(0)

186****6410 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档