实验用Mathematica实现单纯形法.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  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文档。上传文档
查看更多
实验二 用Mathematica实现单纯形法 一、实验目的 (1)学习并学会使用Mathematica软件。 (2)掌握单纯形法的计算机实现的方法。 二、实验原理 算法的具体步骤如下:书30页 Matnmatica中基本语法的补充: LinnearProgramming[c,m,b],其中c是行向量,b是列向量,m是矩阵,自变量用列向量x表示,在满足mx=b且x=0的区域,求cx的最小值点。 需要注意的几点是=号,以及目标函数求最小值。 举例说明: 分析与求解: 第三个式子可以改造成两个 和 最后得到用于编写程序的表示形式为 输入c={1,-2,-3}; b={-6,12,20,-20}; A={{-1,-1,-1},{1,-2,4},{3,2,4},{-3,-2,-4}}; LinearProgramming[c,A,b] 得到最优解x={0,2,4} f=-16 通用表的生成函数Table. 表是存储多个数、变量或算式等对象的一种数据结构一个表用一对花括号表示,它的成员在括号内用逗号隔开,同一个表的成员可以有不同的据类型,表的成员还可以是一个表(子表)。t[[n]]”来提取表t中的第n个元素。Mathematica中常用的建表函数是“Table”,其调用格式如下: Table[f,{i,imin,imax,stepi},{j,jmin,jmax,stepj}] 表的通项为f(f是变量i和j的函数),min,max,step规定了初值、终值、步长,min和step的默认值为1。},{y,3}] 则输出 {{1,2,3},{2,4,6},{3,6,9}} (三) 表作为向量和矩阵 一层表在线性代数中表示向量, 二层表表示矩阵. 例如,矩阵 可以用数表{{2,3},{4,5}}表示. 输入A={{2,3},{4,5}} 则输出{{2,3},{4,5}} 命令MatrixForm[A]把矩阵A显示成通常的矩阵形式. 例如,输入命令: MatrixForm[A] 则输出 注:一般情况下,MatrixForm[A]所代表的矩阵A不能参与运算. (四)求矩阵A的转置的命令:Transpose[A]. (五)求方阵A的逆的命令:Inverse[A] (六)()圆括号表示项的结合顺序,如(x+(y^x+1/(2x)));[]方括号表示函数,如Log[x],BesselJ[x,1];{}大括号表示一个“表”(),如{2x,Sin[12 Pi],{1+A,y*x}};[[]]双方括号表示“表”或“表达式”的下标,如a[[2,3]]、{1,2,3}[[1]]=1。 (七)每次运行完成后程序会自动在输入的式子前面加上In[n],n表示输入命令的序列号,在输出的答案上自动加上out[n]。 三、单纯形法解题 编写程序如下 A={{8,4,5,3,2,1,0,0,0,0}, {4,5,7,6,3,0,1,0,0,0}, {3,10,9,5,9,0,0,1,0,0}, {6,9,5,8,9,0,0,0,1,0}, {8,4,5,3,2,0,0,0,0,1}}; c={70,120,100,100,150,0,0,0,0,0}; b={360,200,300,150,100}; a2=Length[b]; a3=Dimensions[A][[2]]; b1=Table[i+a3-a2,{i,a2}]; b2=Table[i,{i,a3-a2}]; b3=Table[i,{i,a3}]; x=Table[0,{i,a3}]; b4=Table[0,{i,a2}]; c1=c[[b2]]-c[[b1]].Inverse[Transpose[Transpose[A][[b1]]]].Transpose[Transpose[A][[b2]]]; Label[100]; For[i=1,i≤Length[b2],i=i+1,{ c1=c[[b2]]-c[[b1]].Inverse[Transpose[Transpose[A][[b1]]]].Transpose[Transpose[A][[b2]]]; If[c1[[i]] ≤0,{Goto[endif]},{ For[j=1,j≤a2,j=j+1,{ If[(Inverse[Transpose[Transpose[A][[b1]]]].Transpose[A][[b2[[i]]]])[[j]] ≤0,{b4[[j]]=∞}, {b4[[j]]=((Inverse[Transpose[Transpose[A][[b1]]]].b)[[j]])((Inverse[Transpose[Transpos

文档评论(0)

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

建筑从业资格证持证人

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

领域认证该用户于2023年05月12日上传了建筑从业资格证

1亿VIP精品文档

相关文档