最优化实验报告
最优化实验报告

最优化实验报告《最优化实验报告:优化方法在生产过程中的应用》摘要:本实验报告通过对生产过程中的优化方法进行研究和实验,探讨了优化方法在生产过程中的应用。
通过实验结果分析,发现优化方法在生产过程中能够有效提高生产效率和降低成本,对企业的生产经营具有重要的意义。
1. 研究背景随着全球经济的发展和竞争的加剧,企业在生产过程中需要不断提高效率、降低成本,以保持竞争优势。
优化方法作为一种有效的管理工具,在生产过程中的应用备受关注。
因此,本实验旨在研究和探讨优化方法在生产过程中的应用效果。
2. 实验设计本实验选取了某工厂的生产线作为研究对象,通过对生产过程的观察和数据收集,确定了生产过程中存在的问题和瓶颈。
然后,针对这些问题和瓶颈,设计了不同的优化方法,并进行了实验验证。
3. 实验方法在实验中,我们采用了多种优化方法,包括线性规划、遗传算法、模拟退火算法等。
通过对比不同优化方法的效果,找到了最适合该生产过程的优化方法。
4. 实验结果实验结果表明,优化方法在生产过程中能够显著提高生产效率和降低成本。
通过优化方法的应用,生产线的生产能力得到了提升,生产成本也得到了有效控制。
这些结果为企业的生产经营带来了明显的好处。
5. 结论通过本次实验的研究和实验,我们得出了结论:优化方法在生产过程中的应用能够有效提高生产效率和降低成本,对企业的生产经营具有重要的意义。
因此,企业应该重视优化方法的应用,不断探索和创新,以提高自身的竞争力和持续发展能力。
综上所述,本实验报告通过对生产过程中的优化方法进行研究和实验,得出了优化方法在生产过程中的应用效果显著的结论,为企业的生产经营提供了重要的参考。
希望本实验报告能够对相关领域的研究和实践提供一定的借鉴和启发。
最优化方法实验报告

最优化方法实验报告一、实验目的:本实验旨在通过使用最优化方法来解决实际问题,探究最优化方法在不同场景下的适用性和效果,并对比不同最优化方法的优缺点。
二、实验原理:三、实验过程:1.准备工作确定要解决的问题,并确定问题的数学模型。
例如,可以选择一个具有约束条件的优化问题,如线性规划问题。
2.实验步骤(1)选择最优化方法根据实际问题的特点选择适合的最优化方法。
例如,如果问题具有多个局部最优解,可以选择遗传算法来避免陷入局部最优。
(2)实现算法根据选择的最优化方法,编写相应的算法实现代码。
可以使用编程语言如Python来实现算法。
(3)进行实验使用实际数据或人工生成的数据来测试算法的效果。
根据实验结果评估算法的性能,并对比不同算法的效果。
3.结果分析通过对比不同算法的效果,分析各种方法的优缺点,评估其适用性和可靠性。
四、实验结果与讨论:在本次实验中,我们选择了一个线性规划问题作为例子,使用了遗传算法和优化算法来求解。
具体问题为:有两种产品A和B,产品A的利润为5元,产品B的利润为10元。
每天可以生产的产品总数为50。
产品A的生产量不超过30,产品B的生产量不超过20。
求解在满足以上约束条件下,如何安排生产计划使得总利润最大。
我们首先使用了优化算法来求解。
通过编写代码,使用优化算法来最大化总利润。
结果发现,在满足约束条件的情况下,总利润最大为350元。
然后,我们使用了遗传算法来求解。
遗传算法是一种模仿生物进化过程的算法,通过选择、交叉和变异等操作来优化解。
在实验中,我们设置了一组初始解作为遗传算法的种群,并通过不断迭代优化解。
结果发现,在相同的迭代次数下,遗传算法得到的结果比优化算法更优,总利润最大为400元。
通过对比两种算法的结果,我们发现遗传算法相对于优化算法在该问题上具有更好的性能。
遗传算法通过不断迭代寻找更好的解,能够更好地避免陷入局部最优。
五、实验结论:本实验通过使用最优化方法来解决一个实际问题,对比了优化算法和遗传算法的效果。
最优化方法实验报告(2)

最优化方法实验报告Numerical Linear Algebra And ItsApplications学生所在学院:理学院学生所在班级:计算数学10-1学生姓名:甘纯指导教师:单锐教务处2013年5月实验三实验名称:无约束最优化方法的MATLAB实现实验时间: 2013年05月10日星期三实验成绩:一、实验目的:通过本次实验的学习,进一步熟悉掌握使用MATLAB软件,并能利用该软件进行无约束最优化方法的计算。
二、实验背景:(一)最速下降法1、算法原理最速下降法的搜索方向是目标函数的负梯度方向,最速下降法从目标函数的负梯度方向一直前进,直到到达目标函数的最低点。
2、算法步骤用最速下降法求无约束问题n R()min的算法步骤如下:xxf,a )给定初始点)0(x ,精度0>ε,并令k=0;b )计算搜索方向)()()(k k x f v -∇=,其中)()(k x f ∇表示函数)(x f 在点)(k x 处的梯度;c )若ε≤)(k v ,则停止计算;否则,从)(k x 出发,沿)(k v 进行一维搜索,即求k λ,使得)(min )()()(0)()(k k k k v x f v x f λλλ+=+≥; d )令1,)()()1(+=+=+k k v x x k k k k λ,转b )。
(二)牛顿法1、算法原理牛顿法是基于多元函数的泰勒展开而来的,它将)()]([-)(1)(2k k x f x f ∇∇-作为搜索方向,因此它的迭代公式可直接写出来:)()]([)(1)(2)()(k k k k x f x f x x ∇∇-=-2、算法步骤用牛顿法求无约束问题n R x x f ∈),(min 的算法步骤如下:a )给定初始点)0(x ,精度0>ε,并令k=0;b )若ε≤∇)()(k x f ,停止,极小点为)(k x ,否则转c );c )计算)()]([,)]([)(1)(2)(1)(2k k k k x f x f p x f ∇∇-=∇--令;d )令1,)()()1(+=+=+k k p x x k k k ,转b )。
最优化算法实验报告

基于Matlab的共轭梯度算法指导老师:姓名:学号:班级:日期:基于Matlab的共轭梯度算法一、实验目的及要求(1)熟悉使用共轭梯度法求解无约束非线性规划问题的原理;(2)在掌握原理的基础上熟练运用此方法解决问题(3)学会利用计算机语言编写程序来辅助解决数学问题;(4)解决问题的同时分析问题,力求达到理论与实践的统一;(5)编写规范的实验报告.实验内容二、实验原理1.基本思想:把共轭性与最速下降方法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜索,求出目标函数的极小点。
根据共轭方向的基本性质,这种方法具有二次终止性。
在各种优化算法中,共轭梯度法是非常重要的一种。
其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。
2.程序流图:三、实验代码通过查阅相关资料,编写一个基于Matlab的共轭梯度算法,具体代码如下:function f=grad_2d(x0,t)%用共轭梯度法求已知函数f(x1,x2)=x1^2+2*x2^2-4*x1-2*x1*x2的极值点%已知初始点坐标:x0%已知收敛精度:t%求得已知函数的极值:fx=x0;syms xi yi a; %定义自变量,步长为符号变量f=xi^2+2*yi^2-4*yi-2*xi*yi; %创建符号表达式ffx=diff(f,xi); %求表达式f对xi的一阶求导fy=diff(f,yi); %求表达式f对yi的一阶求导fx=subs(fx,{xi,yi},x0); %代入初始点坐标计算对xi的一阶求导实值fy=subs(fy,{xi,yi},x0); %代入初始点坐标计算对yi的一阶求导实值fi=[fx,fy]; %初始点梯度向量count=0; %搜索次数初始为0while double(sqrt(fx^2+fy^2))>t %搜索精度不满足已知条件s=-fi; %第一次搜索的方向为负梯度方向if count<=0s=-fi;elses=s1;endx=x+a*s; %进行一次搜索后的点坐标f=subs(f,{xi,yi},x); %构造一元搜索的一元函数φ(a)f1=diff(f); %对函数φ(a)进行求导f1=solve(f1); %得到最佳步长aif f1~=0ai=double(f1); %强制转换数据类型为双精度数值elsebreak %若a=0,则直接跳出循环,此点即为极值点endx=subs(x,a,ai); %得到一次搜索后的点坐标值f=xi^2+2*yi^2-4*xi-2*xi*yi;fxi=diff(f,xi);fyi=diff(f,yi);fxi=subs(fxi,{xi,yi},x);fyi=subs(fyi,{xi,yi},x);fii=[fxi,fyi]; %下一点梯度向量d=(fxi^2+fyi^2)/(fx^2+fy^2);s1=-fii+d*s; %下一点搜索的方向向量count=count+1; %搜索次数加1fx=fxi;fy=fyi; %搜索后终点坐标变为下一次搜索的始点坐标endx,f=subs(f,{xi,yi},x),count %输出极值点,极小值以及搜索次数end四、实验结果在命令窗口输入:f=grad_2d([1,1],0.0000001)输出结果如下:x =4.0000 2.0000f =-8.0000count = 75f =-8.0000当在命令窗口输入如下命令时:f=grad_2d([2,1],0.0000001)x =4.0000 2.0000f =-8.0000count =22f =-8.0000当在命令窗口输入如下命令时:f=grad_2d([2,1],0.001)x = 3.9996 1.9999f =-8.0000count =12f =-8.0000由以上结果可知:(1.)初始点不同搜索次数不同(2.)无论初始点为多少,精度相同时最终结果极值点都是(4.0000,2.0000)(3.)当初始点相同时,若精度不一样搜索次数和最终结果会有差异但大致相同。
最优化(实验一)

桂林电子科技大学数学与计算科学学院实验报告最优解为:x=(2,0,1,0); 最优函数值为:-8。
()()123123123max23.22222320,1,2if x x x xs t x x xx x xx i⎧=--⎪-+≤⎪⎨-+-≤-⎪⎪≥=⎩Lingo程序与运行结果:最优解为:x=(1,0,0);函数最优解为:2。
()()1231212312max 564.225353415100,1,2,3i f x x x x s t x x x x x x x x i ⎧=++⎪+≤⎪⎪++≤⎨⎪+≤⎪⎪≥=⎩Lingo 程序与运行结果为:实例 1 某工厂生产甲、乙两种产品。
已知生产甲种产品t 1需耗A 种矿石t 10、B 种矿石t 5、煤t 4;生产乙种产品t 1需耗A 种矿石t 4、B 种矿石t 4、煤t 9。
每t 1甲种产品的利润是600元,每t 1乙种产品的利润是1000元。
工厂在生产这两种产品的计划中要求消耗A 种矿石不超过t 300、B 种矿石不超过t 200、煤不超过t 360。
甲、乙两种产品应各生产多少,能使利润总额达到最大?化为数学线性规划模型为:()12121212max 6001000.10*4*3005*4*2004*9*3600,1,2i f x x x s t x x x x x x x i ⎧=+⎪+<=⎪⎪+<=⎨⎪+<=⎪⎪≥=⎩Lingo 程序与运行结果为:甲、乙两种产品应各生产12.41379t 、34.48276t ,能使利润总额达到最大,最大利润为:41931.03。
实例2 设有A 1,A 2两个香蕉基地,产量分别为60吨和80吨,联合供应B 1,B 2,B 3三个销地的销售量经预测分别为50吨、50吨和40吨。
两个产地到三个销地的单位运价如下表所示:表1(单位运费:元/吨)问每个产地向每个销地各发货多少,才能使总的运费最少?化为数学线性规划模型:()()111213212223111213212223112112221323min 600300400400700300.608035050400,1,2,1,2,3ij f x x x x x x x s t x x x x x x x x x x x x x i j ⎧=+++++⎪++=⎪⎪++=⎪⎪+=⎨⎪+=⎪⎪+=⎪≥==⎪⎩Lingo 程序与运行结果为:A1到B2发货50t ,A1到B3发货10t ,A2到B1发货50t ,A2到B3发货30t ,才能使总的运费最少,最少值为48000。
数据分析及优化实验报告(3篇)

第1篇一、实验背景随着大数据时代的到来,数据分析已成为各个行业提高效率、优化决策的重要手段。
本实验旨在通过实际案例分析,运用数据分析方法对某一特定数据集进行深入挖掘,并提出相应的优化策略。
本实验选取了一个典型的电商数据集,通过对用户行为数据的分析,旨在提高用户满意度、提升销售业绩。
二、实验目的1. 熟练掌握数据分析的基本流程和方法。
2. 深入挖掘用户行为数据,发现潜在问题和机会。
3. 提出针对性的优化策略,提升用户满意度和销售业绩。
三、实验内容1. 数据收集与预处理实验数据来源于某电商平台,包含用户购买行为、浏览记录、产品信息等数据。
首先,对数据进行清洗,去除缺失值、异常值,确保数据质量。
2. 数据探索与分析(1)用户画像分析通过对用户性别、年龄、地域、职业等人口统计学特征的统计分析,绘制用户画像,了解目标用户群体特征。
(2)用户行为分析分析用户浏览、购买、退货等行为,探究用户行为模式,挖掘用户需求。
(3)产品分析分析产品销量、评价、评分等数据,了解产品受欢迎程度,识别潜力产品。
3. 数据可视化运用图表、地图等可视化工具,将数据分析结果直观展示,便于理解。
四、实验结果与分析1. 用户画像分析通过分析,发现目标用户群体以年轻女性为主,集中在二线城市,职业以学生和白领为主。
2. 用户行为分析(1)浏览行为分析用户浏览产品主要集中在首页、分类页和搜索页,其中搜索页占比最高。
(2)购买行为分析用户购买产品主要集中在促销期间,购买产品类型以服饰、化妆品为主。
(3)退货行为分析退货率较高的产品主要集中在服饰类,主要原因是尺码不合适。
3. 产品分析(1)销量分析销量较高的产品主要集中在服饰、化妆品、家居用品等类别。
(2)评价分析用户对产品质量、服务、物流等方面的评价较好。
五、优化策略1. 提升用户体验(1)优化搜索功能,提高搜索准确度。
(2)针对用户浏览行为,推荐个性化产品。
(3)加强客服团队建设,提高用户满意度。
生物最优化实验报告

生物最优化实验报告1. 介绍生物最优化是一种将生物学原理应用于工程和优化问题的方法。
本实验旨在通过模拟生物最优化算法,探索它们在问题求解中的应用。
具体而言,在本实验中,我们将使用遗传算法来解决一个传统优化问题。
2. 方法2.1 问题描述我们选取了经典的旅行商问题(Traveling Salesman Problem,简称TSP)作为本实验的目标问题。
TSP是一个NP困难问题,在计算复杂性理论中具有重要的地位。
问题的目标是求解一个最短路径,使得旅行商可以在多个城市之间旅行且只经过每个城市一次,最后回到初始城市。
2.2 遗传算法遗传算法是生物最优化中最常用的算法之一。
它模拟了生物进化的过程,在解空间中通过选择、交叉和变异等操作,逐步优化解决方案。
1. 种群初始化:随机生成初始解作为种群中的个体。
2. 选择操作:根据适应度函数,选择较优秀的个体作为下一代的父代。
3. 交叉操作:通过交叉个体的染色体来产生新的个体。
4. 变异操作:在某些个体中引入变异操作,以增加解空间的探索能力。
5. 重复进行2-4步骤,直到达到终止条件。
在本实验中,我们使用Python编程语言实现了遗传算法,并针对TSP问题进行了调整。
2.3 实验设计为了验证遗传算法在解决TSP问题上的效果,在实验中我们采用了以下设计:1. 设置城市数量为50个,每个城市的坐标由一个二维平面上的点表示。
2. 初始种群大小为100个个体。
3. 在选择操作中,使用轮盘赌方法来选取父代个体。
4. 交叉操作采用部分映射交叉(PMX)方法。
5. 变异操作采用对换变异(Swap Mutation)方法。
6. 重复进行遗传算法迭代100代,并记录每一代最优解的适应度值。
3. 结果与分析经过实验,我们得到了以下结果:1. 遗传算法的运行时间约为10秒。
2. 在100代的迭代中,适应度值的平均变化图如下所示:通过分析,在前10代中,遗传算法能够快速收敛到一个相对较好的解,但随着迭代的进行,其收敛速度变慢。
最优化实验报告

最优化方法课程设计报告班级:________________姓名: ______学号: __________成绩:2017年 5月 21 日目录一、摘要.............................. 错误!未定义书签。
二、单纯形算法 .......................... 错误!未定义书签。
1.1 单纯形算法的基本思路................................................................... 错误!未定义书签。
1.2 算法流程图....................................................................................... 错误!未定义书签。
1.3 用matlab编写源程序...................................................................... 错误!未定义书签。
二、黄金分割法 ......................... 错误!未定义书签。
2.1 黄金分割法的基本思路................................................................... 错误!未定义书签。
2.2 算法流程图....................................................................................... 错误!未定义书签。
2.3 用matlab编写源程序...................................................................... 错误!未定义书签。
2.4 黄金分割法应用举例....................................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优化方法课程设计报告班级:________________: ______学号: __________成绩:2017年 5月 21 日目录一、摘要 (1)二、单纯形算法 (2)1.1 单纯形算法的基本思路 (2)1.2 算法流程图 (3)1.3 用matlab编写源程序 (4)二、黄金分割法 (7)2.1 黄金分割法的基本思路 (7)2.2 算法流程图 (8)2.3 用matlab编写源程序 (9)2.4 黄金分割法应用举例 (11)三、最速下降法 (11)3.1 最速下降法的基本思路 (11)3.2 算法流程图 (13)3.3 用matlab编写源程序 (13)3.4 最速下降法应用举例 (13)四、惩罚函数法 (17)4.1 惩罚函数法的基本思路 (17)4.2 算法流程图 (18)4.3 用matlab编写源程序 (18)4.4 惩罚函数法应用举例 (19)五、自我总结 (20)六、参考文献 (20)一、摘要运筹学是一门以人机系统的组织、管理为对象,应用数学和电脑等工具来研究各类有限资源的合理规划使用并提供优化决策方案的科学。
通过对数据的调查、收集和统计分析,以及具体模型的建立。
收集和统计上述拟定之模型所需要的各种基础数据,并最终将数据整理形成分析和解决问题的具体模型。
最优化理论和方法日益受到重视,已经渗透到生产、管理、商业、军事、决策等各个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、通信、政府机关等各个部门及各个领域。
伴随着电脑技术的高速发展,最优化理论与方法的迅速进步为解决实际最优化问题的软件也在飞速发展。
其中,MATLAB软件已经成为最优化领域应用最广的软件之一。
有了MATLAB这个强大的计算平台,既可以利用MATLAB优化工具箱〔OptimizationToolbox〕中的函数,又可以通过算法变成实现相应的最优化计算。
关键词:优化、线性规划、黄金分割法、最速下降法、惩罚函数法二、单纯形算法1.1 单纯形算法的基本思路线性规划问题的可行域是n维向量空间Rn中的多面凸集,其最优值如果存在必在该凸集的某顶点处到达。
顶点所对应的可行解称为基本可行解。
单纯形法的基本思想是:先找出一个基本可行解,对它进行鉴别,看是否是最优解;假设不是,则按照一定法则转换到另一改良的基本可行解,再鉴别;假设仍不是,则再转换,按此重复进行。
因基本可行解的个数有限,故经有限次转换必能得出问题的最优解。
如果问题无最优解也可用此法判别。
单纯形法是从某一基可行解出发,连续地寻找相邻的基可行解,直到到达最优的迭代过程,其实质是解线性方程组。
概述:根据单纯形法的原理,在线性规划问题中,决策变量〔控制变量〕x1,x2,…x n的值称为一个解,满足所有的约束条件的解称为可行解。
使目标函数到达最大值〔或最小值〕的可行解称为最优解。
这样,一个最优解能在整个由约束条件所确定的可行区域内使目标函数到达最大值〔或最小值〕。
求解线性规划问题的目的就是要找出最优解。
用单纯形法求解线性规划问题所需的迭代次数主要取决于约束条件的个数。
现在一般的线性规划问题都是应用单纯形法标准软件在电脑上求解,对于具有106个决策变量和104个约束条件的线性规划问题已能在电脑上解得。
求解时可能出现以下情况之一:①存在着一个最优解;②存在着无穷多个最优解;③不存在最优解,这只在两种情况下发生,即没有可行解或各项约束条件不阻止目标函数的值无限增大〔或向负的方向无限增大〕。
要缩小对最优解的搜索范围,就必须认识最优解的一般性质,最优解如果存在的话,则它必然处于可行区域的边界上。
任何一项约束条件的边界方程是用“=”号来替换该约束条件中的“≤”或“≥”号而得到的。
每一个边界方程确定一个超平面。
因此,可行区域的边界是由那些满足一个或同时满足几个边界方程〔即处在作为边界的一个或几个超平面上〕的可行解所组成,而且最优解必在其中。
最优解不仅是在可行区域的边界上,而且也在这个区域的一个隅角上。
一个可行解,如果不处在由另两个可行解连接起来的任何线段上,它就是一个角点可行解。
如果连接两个角点可行解的线段处在可行区域的边界上,这两个角点可行解就称为相邻的角点可行解。
角点可行解具有以下三个重要性质:①如果存在着一个最优解,那么它必定是角点可行解。
如果存在有多个最优解,那么至少有两个最优解必定是相邻的角点可行解。
②只存在有限个数的角点可行解。
③如果一个角点可行解按目标函数值来衡量时比其所有的相邻角点可行解更好一些,那它就比所有其他角点可行解都更好,也就是最优解。
上述这些性质构成单纯形法的原理基础。
最后一个性质的重要性在于它为一个角点可行解是否是最优解提供了一种简便的检验标准,因而毋需列举所有的可行解。
单纯形法正是利用了这个性质,只要检查少数的角点可行解,并且一旦这个最优性检验获得通过就可立即停止运算。
1.2 算法流程图〔1〕、确定初始基可行解①从线性规划标准形的系数矩阵中能直接找出m个线性独立的单位向量;②对约束条件全为“<=”连接的LP,化为标准形,左端添加松弛变量后即形成一个单位子矩阵;③约束条件中含有“<=”或“=”连接的方程,在插入剩余变量后找不到单位矩阵,则必须采用“人造基”法,〔2〕、单纯形法的运算步骤可归结为:①起始步骤──在一个角点可行解上开始。
②迭代步骤──移动至一个更好一些的相邻角点可行解〔根据需要反复进行这一步骤〕。
③停止法则──在当前角点可行解比所有相邻角点可行解都更好些时停止。
当前角点可行解就是一个最优解。
单纯形法的优点及其成功之处在于它只需要较少的有限次数的迭代,即可找到最优解。
〔3〕、单纯形法的算法流程如下:①把线性规划问题的约束方程组表达成典范型方程组,找出基本可行解作为初始基本可行解。
②假设基本可行解不存在,即约束条件有矛盾,则问题无解。
③假设基本可行解存在,从初始基本可行解作为起点,根据最优性条件和可行性条件,引入非基变量取代某一基变量,找出目标函数值更优的另一基本可行解。
④按步骤3进行迭代,直到对应检验数满足最优性条件〔这时目标函数值不能再改善〕,即得到问题的最优解。
⑤假设迭代过程中发现问题的目标函数值无界,则终止迭代。
1.3 用matlab编写源程序Matlab程序源代码:----------- simplexTab.m子函数-------------------------------------------------------- function simplexTab(mat,numFreeVar)maxRow=length(mat(:,1));maxCol=length(mat(1,:));objEntryExcludingMaxPayOff=mat(maxRow,1:maxCol-2);[objEnt bestColToPivot]=min(objEntryExcludingMaxPayOff);while(objEnt<0)lastColExcludingObjEnty=mat(1:(maxRow-1),maxCol);ithColExcludingObjEnty=mat(1:(maxRow-1),bestColToPivot);a=lastColExcludingObjEnty./ithColExcludingObjEnty;[val bestRowToPivot]=min(a);sprintf('the best Pivot is %d row and %d col ',bestRowToPivot,bestColToPivot) disp('单纯形表化为:');[mat,[a;0]]disp('按任意键继续');pause;if(val<0)[s indices]=sort(a);if(max(a)>0)count=1;while(s(count)<0)count=count+1;endbestRowToPivot=indices(count);endendif(length(a)==0)length(a)returnendmat=pivot(mat,bestRowToPivot,bestColToPivot);objEntryExcludingMaxPayOff=mat(maxRow,1:maxCol-2);[objEnt bestColToPivot]=min(objEntryExcludingMaxPayOff);endsprintf('the best Picot is %d 行and %d 列',bestRowToPivot,bestColToPivot) disp('单纯形表化为:');[mat,[a;0]]disp('运行结束!');--------------------------------------------------------------- ----------- interChange .m子函数-------------------------------------------------------function newMat=interChange(mat,row1,row2) temp=mat(row1,:);mat(row1,:)=mat(row2,:); mat(row2,:)=temp; newMat=mat;--------------------------------------------------------------- -----------multiFromRowToRow.m 子函数-------------------------------------------- function newMat=multiFromRowToRow(mat,fromRow,toRow,multiplier) rG=mat(fromRow,:)*multiplier; mat(toRow,:)=rG+mat(toRow,:); newMat=mat;--------------------------------------------------------------- -----------multMat.m 子函数------------------------------------------------------------- fuction newMat=multMat(mat,row,mult)%multiply a row of a matrix by a nonzero constant mat(row,:)=mat(row,:)*mult; newMat=mat;--------------------------------------------------------------- -----------pivot.m 子函数------------------------------------------------------------------- function newMat=pivot(mat,row,col) %normalize this rowmat(row,:)=mat(row,:)./mat(row,col);%make the leadinga number a 1 for r=1:length(mat(:,1)) if(r~=row)mat=multiFromRowToRow(mat,row,r,-mat(r,col)); end endnewMat=mat;-----------------------------------------------------------------------------------------------1.4 单纯形算法应用举例题目: 使用单纯形法解下面线性规划问题:目标函数为:321max x x x f ---=; 约束条件是: 1937321≤++x x x..t s1458321≤++x x x1596321≤++x x x0,,321≥x x x解:化为标准形式:654321000max x x x x x x g +++++= 100937654321=+++++x x x x x x..t s100458654321=+++++x x x x x x 100596654321=+++++x x x x x x0,,,,,654321≥x x x x x x利用Matlab 程序计算:命令窗口输入:mat=[7 3 9 1 0 0 1; 8 5 4 0 1 0 1; 6 9 5 0 0 1 1; -1 -1 -1 0 0 0 0];numFreeVar=3;%自由变量个数 simplexTab(mat,numFreeVar) 结果输出: 初始结果:ans = the best Pivot is 2 row and 1 col 单纯形表化为:-1.0000 -1.0000 -1.0000 0 0 0 0 0第一次转换结果:ans = the best Pivot is 1 row and 3 col 单纯形表化为:0 -0.3750 -0.5000 0 0.1250 0 0.1250 0第二次转换结果:ans = the best Pivot is 1 row and 2 col 单纯形表化为:0 -0.5000 0 0.0909 0.0455 0 0.1364 0第三次转换结果:ans = the best Picot is 3 row and 1 col)0356.0,0870.0,0316.0(=x ,1542.0=g ,1542.0321-=---=x x x f所以该线性规划的最优解是1542.0=g 。