运筹学实验报告

合集下载

运筹学实验报告心得

运筹学实验报告心得

运筹学实验报告心得运筹学实验报告实验一:线性规划问题1、实验目的:?学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。

?掌握利用计算机软件求解线性规划最优解的方法。

2、实验任务?结合已学过的理论知识,建立正确的数学模型; ?应用运筹学软件求解数学模型的最优解?解读计算机运行结果,结合所学知识给出文字定性结论 3、实验仪器设备:计算机 4、实验步骤:(1)在主菜单中选择线性规划模型,在屏幕上就会出现线性规划页面,如图所示。

(2)在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数及约束条件的各变量的系数和b值,并选择好“?”、“?”或“=”号,如图所示。

(3)当约束条件输入完毕后,请点击“解决”按钮,屏幕上将显现线性规划问题的结果,如图所示。

例题一:例题二:例题三:例题四:例题五5、试验体会或心得运筹学是一门实用的学科,学习运筹学,结合生活实际运用运筹学,我们可以将资源最大化利用。

学习理论的目的就是为了解决实际问题。

线性规划的理论对我们的实际生活指导意义很大。

当我们遇到一个问题,需要认真考察该问题。

如果它适合线性规划的条件,那么我们就利用线性规划的理论解决该问题。

线性规划指的是在资源有限的条件下,为达到预期目标最优,而寻找资源消耗最少的方案。

其数学模型有目标函数和约束条件组成。

一个问题要满足一下条件时才能归结为线性规划的模型:?要求解的问题的目标能用效益指标度量大小,并能用线性函数描述目标的要求;?为达到这个目标存在很多种方案;?要到达的目标是在一定约束条件下实现的,这些条件可以用线性等式或者不等式描述。

所以,通过这次实验,不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。

这次实验让我懂得了运筹学在电脑的应用,让我对运输与数学相结合的应用理解更深了。

篇二:运筹学实验报告实验一:线性规划问题1、实验目的:(1)学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。

运筹学实践教学报告范文(3篇)

运筹学实践教学报告范文(3篇)

第1篇一、引言运筹学作为一门应用数学分支,广泛应用于经济管理、工程技术、军事决策等领域。

本报告旨在通过运筹学实践教学,验证理论知识在实际问题中的应用效果,提高学生的实践能力和创新能力。

以下是对本次实践教学的总结和反思。

二、实践教学内容1. 线性规划问题本次实践教学选择了线性规划问题作为研究对象。

通过建立线性规划模型,我们尝试解决生产计划、资源分配等实际问题。

- 案例一:生产计划问题某公司生产A、B两种产品,每单位A产品需消耗2小时机器时间和3小时人工时间,每单位B产品需消耗1小时机器时间和2小时人工时间。

公司每天可利用机器时间为8小时,人工时间为10小时。

假设A、B产品的利润分别为50元和30元,请问如何安排生产计划以获得最大利润?- 建模:设A产品生产量为x,B产品生产量为y,目标函数为最大化利润Z = 50x + 30y,约束条件为:\[\begin{cases}2x + y \leq 8 \\3x + 2y \leq 10 \\x, y \geq 0\end{cases}\]- 求解:利用单纯形法求解该线性规划问题,得到最优解为x = 3,y = 2,最大利润为240元。

- 案例二:资源分配问题某项目需要分配三种资源:人力、物力和财力。

人力为50人,物力为100台设备,财力为500万元。

根据项目需求,每种资源的需求量如下:- 人力:研发阶段需20人,生产阶段需30人;- 物力:研发阶段需30台设备,生产阶段需50台设备;- 财力:研发阶段需100万元,生产阶段需200万元。

请问如何合理分配资源以满足项目需求?- 建模:设人力分配量为x,物力分配量为y,财力分配量为z,目标函数为最大化总效用U = x + y + z,约束条件为:\[\begin{cases}x \leq 20 \\y \leq 30 \\z \leq 100 \\x + y + z \leq 500\end{cases}\]- 求解:利用线性规划软件求解该问题,得到最优解为x = 20,y = 30,z = 100,总效用为150。

运筹学实验报告

运筹学实验报告

运筹学实验报告一实验一:线性规划【例l】某制药厂用甲、乙两台机器生产A、B两种药物。

每种药物要经过两道工序,在甲机器上搅拌,在乙机器上包装。

生产每千克药物所需的加工时间以及机器1周可用于加工的总时间如下表1所示。

已知生产每千克药物A的利润是30元,B是25元,问应如何安排1周的生产计划才能使工厂获利最大?表 1 两种药物在各机器上所需加工时间及各机器可用于加工的总时间(1)写出数学模型,建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果。

(2)将电子表格格式转换成标准模型。

(3)将结果复制到Excel或Word文档中。

(4)分析结果。

解:(1)从已知条件写出该问题的数学模型:max Z=30x1+25x2;2x1+4x2<=40;3x1+2x2<=30;x1>=0,x2>=0.建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果:求解模型过程Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 3X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioX2 25.0000 0 1.0000 0.3750 -0.2500 7.5000X1 30.0000 1.0000 0 -0.2500 0.5000 5.0000C(j)-Z(j) 0 0 -1.8750 -8.7500 337.5000(2)将电子表格格式转换成标准模型。

大学生运筹学实训报告范文

大学生运筹学实训报告范文

一、引言运筹学是一门应用数学的分支,它运用数学模型、统计方法和计算机技术等工具,对复杂系统进行优化和决策。

为了更好地理解和掌握运筹学的理论和方法,提高实际操作能力,我们开展了大学生运筹学实训。

以下是本次实训的报告。

二、实训目的1. 理解运筹学的基本概念、原理和方法;2. 学会运用运筹学解决实际问题;3. 提高团队协作和沟通能力;4. 培养独立思考和创新能力。

三、实训内容1. 线性规划(1)实训目的:通过线性规划实训,掌握线性规划问题的建模、求解和结果分析。

(2)实训内容:以生产问题为例,建立线性规划模型,运用单纯形法求解最优解。

2. 整数规划(1)实训目的:通过整数规划实训,掌握整数规划问题的建模、求解和结果分析。

(2)实训内容:以背包问题为例,建立整数规划模型,运用分支定界法求解最优解。

3. 非线性规划(1)实训目的:通过非线性规划实训,掌握非线性规划问题的建模、求解和结果分析。

(2)实训内容:以旅行商问题为例,建立非线性规划模型,运用序列二次规划法求解最优解。

4. 网络流(1)实训目的:通过网络流实训,掌握网络流问题的建模、求解和结果分析。

(2)实训内容:以运输问题为例,建立网络流模型,运用最大流最小割定理求解最优解。

5. 概率论与数理统计(1)实训目的:通过概率论与数理统计实训,掌握概率论与数理统计的基本概念、原理和方法。

(2)实训内容:以排队论为例,建立概率模型,运用排队论公式求解系统性能指标。

四、实训过程1. 组建团队,明确分工;2. 针对每个实训内容,查阅相关资料,了解理论背景;3. 根据实际问题,建立数学模型;4. 选择合适的算法,进行编程实现;5. 对结果进行分析,总结经验教训。

五、实训成果1. 理解了运筹学的基本概念、原理和方法;2. 掌握了线性规划、整数规划、非线性规划、网络流和概率论与数理统计等运筹学工具;3. 提高了团队协作和沟通能力;4. 培养了独立思考和创新能力。

六、实训心得1. 运筹学是一门实用性很强的学科,它可以帮助我们解决实际问题,提高工作效率;2. 在实训过程中,我们要注重理论联系实际,将所学知识应用于实际问题的解决;3. 团队协作和沟通能力在实训过程中至关重要,要学会与团队成员共同进步;4. 实训过程中,我们要敢于尝试,勇于创新,不断提高自己的实践能力。

运筹学实验总结

运筹学实验总结

运筹学实验总结引言:运筹学是一门综合了数学、经济学和工程学等多学科知识的学科,它通过建立数学模型和运用各种优化方法,帮助我们在现实问题中寻找最优解决方案。

在这学期的运筹学课程中,我们进行了一系列实验。

这些实验不仅加深了对运筹学理论的理解,还提供了一种应用运筹学方法解决问题的实践平台。

在本文中,我将总结我参与的运筹学实验,并分享我的体会和收获。

实验一:线性规划问题求解在这个实验中,我们学习了线性规划的基本概念和求解方法。

我选择了一个典型的生产调度问题作为实验题目。

通过建立数学模型,并运用线性规划软件,我成功地解决了这个问题。

通过这个实验,我深刻理解了线性规划问题的本质,以及如何利用线性规划方法找到最优解。

实验二:整数规划问题求解整数规划是线性规划的扩展,它在决策问题中更加实用。

在这个实验中,我选择了货物配送路线问题作为研究对象。

通过构建整数规划模型,并运用求解软件,我得到了最佳的货物配送方案。

这个实验不仅对我的数学建模能力提出了要求,还培养了我的实际问题解决能力。

实验三:动态规划动态规划是一种重要的优化方法,它广泛应用于最优化问题的求解。

在这个实验中,我们学习了动态规划的基本原理和设计思想。

我选择了旅行商问题作为研究对象,通过建立递推关系和寻找最优子结构,我成功地解决了该问题。

这个实验让我意识到了动态规划方法的强大威力,同时也对我的算法设计能力提出了更高的要求。

实验四:模拟退火算法模拟退火算法是一种全局搜索优化算法,具有很强的应用能力。

在这个实验中,我选择了旅行商问题作为研究对象,通过模拟退火算法的迭代和优化,我得到了一个较好的解。

通过这个实验,我掌握了模拟退火算法的基本原理和实现过程,也了解到了算法的优越性。

实验五:遗传算法遗传算法是一种模拟自然选择和遗传机制的优化算法。

在这个实验中,我选择了装箱问题作为研究对象。

通过运用遗传算法的交叉、变异和适应度选择,我得到了一个较好的装箱方案。

这个实验不仅对我的算法设计能力提出了更高的要求,还让我意识到了遗传算法的创新性和解决复杂问题的能力。

运筹学实验报告

运筹学实验报告

运筹学实验报告运筹学实验报告一、引言运筹学是一门研究如何有效地进行决策和规划的学科。

它利用数学、统计学和计算机科学的方法,帮助解决各种实际问题。

本次实验旨在通过实际案例,探讨运筹学在实践中的应用。

二、问题描述我们选择了一个物流配送问题作为本次实验的研究对象。

假设有一家电商公司,需要将一批商品从仓库分配给不同的客户。

每个客户的需求量和距离仓库的距离都不同。

我们的目标是找到一种最优的配送方案,以最小化总配送成本。

三、数学模型为了解决这个问题,我们采用了整数规划模型。

首先,我们定义了以下变量:- Xij:表示将商品从仓库i分配给客户j的数量- Di:表示仓库i的供应量- Dj:表示客户j的需求量- Cij:表示将商品从仓库i分配给客户j的单位运输成本然后,我们建立了以下约束条件:1. 每个仓库的供应量不能超过其库存量:∑Xij ≤ Di2. 每个客户的需求量必须得到满足:∑Xij ≥ Dj3. 分配的商品数量必须是非负整数:Xij ≥ 0最后,我们的目标是最小化总配送成本:Minimize ∑Cij*Xij四、实验步骤1. 收集数据:我们收集了仓库的库存量、客户的需求量和单位运输成本的数据,并进行了整理和清洗。

2. 建立数学模型:根据收集到的数据,我们建立了上述的整数规划模型。

3. 求解模型:我们使用了运筹学软件对模型进行求解,并得到了最优的配送方案和总配送成本。

4. 分析结果:我们对结果进行了分析,比较了不同方案的优劣,并提出了一些建议。

五、实验结果与分析经过运筹学软件的求解,我们得到了最优的配送方案和总配送成本。

通过与其他方案的比较,我们发现该方案在成本上具有明显的优势。

同时,我们还发现一些仓库和客户之间的距离较远,可能会导致运输时间和成本增加。

因此,我们建议公司可以考虑优化仓库和客户的布局,以减少运输成本。

六、实验总结本次实验通过运筹学的方法,解决了一个物流配送问题。

我们通过建立数学模型、求解模型和分析结果,得出了最优的配送方案和总配送成本。

管理运筹学实训报告结论

管理运筹学实训报告结论

本次管理运筹学实训旨在通过实际操作,使我们对运筹学的基本理论、方法和技术有一个更为深入的理解,并能够将其应用于解决实际问题。

通过实训,我们不仅提高了自己的数学建模能力、计算机操作能力和问题解决能力,还培养了团队合作精神,为今后从事相关工作打下了坚实的基础。

二、实训内容与过程1. 实训内容本次实训主要包括以下内容:(1)线性规划:通过学习线性规划的基本原理和方法,运用软件求解线性规划问题,并分析问题解的特点。

(2)整数规划:了解整数规划的基本概念和求解方法,通过软件求解整数规划问题,并分析问题解的特点。

(3)非线性规划:学习非线性规划的基本原理和方法,运用软件求解非线性规划问题,并分析问题解的特点。

(4)动态规划:了解动态规划的基本概念和求解方法,通过软件求解动态规划问题,并分析问题解的特点。

(5)网络流:学习网络流的基本概念和求解方法,运用软件求解网络流问题,并分析问题解的特点。

2. 实训过程(1)理论学习:在实训开始前,我们通过查阅资料、阅读教材等方式,对运筹学的基本理论进行了系统的学习。

(2)案例分析:在理论学习的基础上,我们选取了具有代表性的案例,对案例中的问题进行分析,并运用所学知识进行求解。

(3)软件操作:为了提高实训效果,我们使用了专业的运筹学软件,如Lingo、MATLAB等,对实际问题进行求解。

(4)讨论与交流:在实训过程中,我们积极讨论、交流心得,互相学习、共同进步。

1. 实训成果通过本次实训,我们取得了以下成果:(1)掌握了运筹学的基本理论、方法和技术。

(2)提高了数学建模、计算机操作和问题解决能力。

(3)培养了团队合作精神,提高了沟通协调能力。

(4)对实际问题有了更深入的认识,为今后从事相关工作打下了坚实的基础。

2. 实训体会(1)理论联系实际的重要性:通过本次实训,我们深刻体会到理论联系实际的重要性。

只有将所学知识应用于实际,才能真正掌握其精髓。

(2)团队合作的重要性:在实训过程中,我们充分体会到团队合作的重要性。

实用运筹学实习报告

实用运筹学实习报告

一、实习目的本次实习旨在使我对运筹学有一个更深入的了解,掌握运筹学的基本原理和方法,提高运用运筹学解决实际问题的能力。

通过实习,我将学会如何运用运筹学的方法对实际问题进行分析和求解,提高自己的综合素质。

二、实习时间2022年6月1日至2022年7月31日三、实习单位某知名企业四、实习内容1. 了解运筹学的基本原理和方法在实习期间,我首先对运筹学的基本原理和方法进行了系统学习。

通过阅读相关书籍和资料,我对线性规划、整数规划、网络流、动态规划、排队论等运筹学方法有了较为全面的了解。

2. 参与实际项目在实习期间,我参与了企业的一个实际项目,该项目涉及到生产计划与调度问题。

我运用所学的运筹学知识,对该项目进行了分析和求解。

(1)问题背景该企业主要生产电子产品,产品种类繁多,生产周期较短。

为了提高生产效率,降低生产成本,企业希望优化生产计划与调度。

(2)问题建模根据企业实际情况,我将生产计划与调度问题建模为一个线性规划问题。

模型中,变量表示生产任务,约束条件包括生产设备能力、生产周期、原材料供应等。

(3)求解方法运用Lingo软件,对所建立的线性规划模型进行求解。

通过调整参数,寻找最优的生产计划与调度方案。

(4)结果分析根据求解结果,我对最优方案进行了详细分析,包括生产任务分配、生产设备使用、原材料消耗等方面。

通过对比不同方案,为企业提供了优化生产计划与调度的建议。

3. 总结与反思通过本次实习,我对运筹学在实际问题中的应用有了更深入的认识。

以下是我对实习过程的总结与反思:(1)理论联系实际实习过程中,我深刻体会到理论联系实际的重要性。

在解决问题时,要善于将所学知识运用到实际中,提高自己的实际操作能力。

(2)运用软件求解在实际问题中,运用运筹学软件求解问题是一种高效的方法。

通过学习Lingo软件,我掌握了如何运用软件进行建模和求解,提高了自己的工作效率。

(3)团队协作实习过程中,我与团队成员共同完成了项目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

吉林工程技术师范学院应用理学院运筹学实验报告专业:班级:姓名:学号:指导教师:数学与应用数学专业2015-12-18实验目录一、实验目的 (3)二、实验要求 (3)三、实验内容 (3)1、线性规划 (3)2、整数规划 (6)3、非线性规划 (13)4、动态规划 (114)5、排队论 (19)四、需用仪器设备 (26)五、MATLAB优化工具箱使用方法简介 (26)六、LINGO优化软件简介 (26)七、实验总结 (27)一、实验目的1、会利用适当的方法建立相关实际问题的数学模型;2、会用数学规划思想及方法解决实际问题;3、会用排队论思想及方法解决实际问题;4、会用决策论思想及方法解决实际问题;5、掌握MATLAB、LINGO等数学软件的应用;二、实验要求1、七人一组每人至少完成一项实验内容;2、每组上交一份实验报告;3、每人进行1~2分钟实验演示;4、实验成绩比例:出勤:40%课堂提问:20%实验报告:30%实验演示:10%。

三、实验内容1、线性规划例运筹学74页14题Min z=-2x-x2s.t. 2x1+5x2≤60x1+x2≤183x1+x2≤44X2≤10X1,x2≥0用matlab运行后得到以下结果:the program is with the linear programmingPlease input the constraints number of the linear programming m=6m =6Please input the variant number of the linear programming n=2n =2Please input cost array of the objective function c(n)_T=[-2,-1]'c =-2-1Please input the coefficient matrix of the constraints A(m,n)=[2,5;1,1;3,1;0,1;-1,0;0,-1]A =2 51 13 10 1-1 00 -1Please input the resource array of the program b(m)_T=[60,18,44,10,0,0]'b =60184410Optimization terminated.The optimization solution of the programming is: x =13.00005.0000The optimization value of the programming is: opt_value =-31.0000LINDO程序在命令窗口键入以下内容:max -2x-ysubject to2x+5y<=60x+y<=183x+y<=44y<=10end按solve键在reports window出现: Global optimal solution found.Objective value: 0.000000Total solver iterations: 0Variable Value Reduced Cost X 0.000000 2.000000Y 0.000000 1.000000Row Slack or Surplus Dual Price1 0.000000 1.0000002 60.00000 0.0000003 18.00000 0.0000004 44.00000 0.0000005 10.00000 0.000000 2、整数规划课本第二章79页1题Max z=100x1+180x2+70x3s.t. 40x1+50x2+60x3≤100003 x1+6x2+ 2x3≤600x1≤130X2≤80x3≤200x1 x2 x3≥0程序运行及结果:biprogramthe program is with the binary linear programmingPlease input the constraints number of the programming m=5m =5Please input the variant number of the programming n=5n =5Please input cost array of the objective function c(n)_T=[100,180 ,70]'c =10018070Please input the coefficient matrix of the constraints A(m,n)=[40 ,50,60;3,6,2;1,0,0;0,1,0;0,0,1]A =40 50 603 6 21 0 00 1 00 0 1Please input the resource array of the program b(m)_T=[10000;600; 130;80;200]b =1000060013080200Optimization terminated.The optimization solution of the programming is:x =The optimization value of the programming is:opt_value =程序名:intprogram b程序说明:% the programm is with the integer linear programming use branc h and bound method!%这个程序是用分支定界法解决整数规划问题% please input the parameters in the main function in the comm and winows%请在命令窗口输入这个主要定义函数的参数function [x,f]=ILp(c,A,b,vlb,vub,x0,neqcstr,pre)% min f=c'*x,s.t. A*x<=b,vlb<=x<=vub% f的最小值等于c的转置乘以x,A乘以x小于等于b,x大于等于vlb小于等于vub % the vectors of x is required as integers as whole% x是整个的整数需要% x0 is the initialization,'[]' is also ok% x0是初始值,"[]"也可以是。

% neqcstr is the number of equational constraints,when 0 can be delete% neqcstr是平均约束条件的数目,当0能删除时% pre is the concise rate% pre是简明率% x is the integer optimization and f is the optimal value% x是整数规划,f 是最优值%%%%%%%%%%%%%%%%if nargin<8,pre=0; % nargin is the factually input vari ants number (这个参数是实际输入的变量个数)if nargin<7,neqcstr=0;if nargin<6,x0=[];if nargin<5,vub=[];if nargin<4,vlb=[];endendendendend%%%%%%%%%%%%%%%%%%% set to column vectors%建立列向量x0=x0(:);c=c(:);b=b(:);vlb=vlb(:);vub=vub(:);mm=1;j=1;nvars=length(c'); % number of variants(变量的个数)fvub=inf;xall=[];fall=[];x_f_b=[];[xtemp,ztemp,how]=lp(c,A,b,vlb,vub,x0,neqcstr,-1);ftemp=c'*xtemp;%%%%%%%%%%%%%%%%%%%%%%%if strcmp(how,'ok') % compare between how and ok(how和ok之间的比较)temp0=round(xtemp);%临时变量四舍五入temp1=floor(xtemp);%取比其小的整数temp2=find(abs(xtemp-temp0)>pre);mtemp=length(temp2);if ~isempty(temp2)x_f_b=[xtemp;ftemp;vlb;vub];while j<=mmi=1;while i<=mtemp%%%%%%%%%%%%%%%%%%%%%if x_f_b(nvars+1,j)<=fvubvlbl=x_f_b(nvars+2:2*nvars+1,j);vubl=x_f_b(2*nvars+2:3*nvars+1,j);vubl(temp2(i))=temp1(temp2(i));[xtemp,z,how]=lp(c,[A;c'],[b;fvub],vlbl,vubl, x0,neqcstr,-1);ftemp=c'*xtemp;if strcmp(how,'ok')templ0=round(xtemp);templ1=floor(xtemp);templ2=find(abs(xtemp-templ0)>pre );if isempty(templ2)xall=[xall,xtemp];fall=[fall,ftemp];fvub=min([fvub,fall]);elseif ftemp<=fvubx_f_b=[x_f_b,[xtemp;ftemp;vlb l;vubl]];endendend%%%%%%%%%%%%%%%%%%if x_f_b(nvars+1,j)<=fvubvlbr=x_f_b(nvars+2:2*nvars+1,j);vlbr(temp2(i))=temp1(temp2(i))+1;vubr=x_f_b(2*nvars+2:3*nvars+1,j);[xtemp,z,how]=lp(c,[A;c'],[b;fvub],vlbr,vub r,x0,neqcstr,-1);ftemp=c'*xtemp;if strcmp(how,'ok')tempr0=round(xtemp);tempr1=floor(xtemp);tempr2=find(abs(xtemp-tempr0)>pre );if isempty(tempr2)xall=[xall,xtemp];fall=[fall,ftemp];fvub=min([fvub,fall]);elseif ftemp<=fvubx_f_b=[x_f_b,[xtemp;ftemp;vlb r;vubr]];endendend%%%%%%%%%%%%%%%%%%%%%i=i+1;end % the second whilexint=x_f_b(1:nvars,:);[m,mm]=size(xint);j=j+1;if j>mmbreakend % the end because the break (因为中断而结束)temp0=round(xint(:,j));temp1=floor(xint(:,j));temp2=find(abs(xint(:,j)-temp0)>pre);mtemp=length(temp2);end % the end of while(结束当前)else % correspond the second if(符合第一个如果)x=xtemp;f=ftemp;end % the end of second if(第二个如果的结束)%%%%%%%%%%%%%%%%%%5if ~isempty(fall)fmin=min(fall);nmin=find(fall==fmin);x=xall(:,nmin);f=fmin;endelse % correspond the first if(符合第一个如果)x=nan*ones(1,nvars);endLINDO程序例99页第6题第二问在命令窗口键入以下内容:max -11x1-4x2st-x1+2x2<=45x1+2x2<=162x1-x2<=4endgin x1gin x2按solve键在reports window出现:Global optimal solution found.Objective value: 0.000000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced Cost X1 0.000000 11.00000 X2 0.000000 4.000000Row Slack or Surplus Dual Price1 0.000000 1.0000002 4.000000 0.0000003 16.00000 0.0000004 4.000000 0.000000 3、非线性规划程序名:unpfun1函数unpfun1函数执行实例:(课本第四章152页16题)min4x1+6x2-2x1x2-2x^2,取初始点x0=(1;1)在命令窗口键入以下内容:f = 4*x(1)-2*x(1)*x(2) - x(2)^2-6*x(2);[x,fval]=fminunc(@unpfun1,x0)(调用无约束线性规划函数)按运行按钮在solution report 窗口得到以下结果:Warning: Gradient must be provided for trust-region method;using line-search method instead.> In fminunc at 265Optimization terminated: relative infinity-norm of gradient less than options.TolFun.x =1.0e-006 *0.2541 -0.2029fval =1.3173e-0134、动态规划程序名:dynamic; dynfun1_1, dynfun1_2, dynfun1_3;例180页第一题程序说明:dynamic程序:% the programm is with the dynamic programming use the recurisive method for the last to first% this is the main function of the methodfunction[p_opt,fval,u]=dynprog(x,DecisFun,ObjFun,TransFun)% the function is to solve the dynamic example in the textbook% x is the situation variant and its column number represent the stage situation% subfunction DecisFun(k,x) is to solve the decision variant of k stage variant x% subfunction ObjFun(k,x,u) is to stage index function% subfunction TransFun(k,x,u) is the stage transformation function,u is the corresponding decision variant% p_opt has four output,the first is the number of the stage,the second is the optimal road of decision% the third is the optimal stategies of the decision ,the forth is the index function group.% fval is a column vector,is to represent the optimal value correspend to the initial stage is x%k=length(x(1,:));f_opt=nan*ones(size(x));d_opt=f_opt;t_vubm=inf*ones(size(x));x_isnan=~isnan(x);t_vub=inf;%%%%%%%%%%%%%%%%%% to caculate the teminate valuestmp1=find(x_isnan(:,k));tmp2=length(tmp1);for i=1:tmp2u=feval(DecisFun,k,x(i,k));tmp3=length(u);for j=1:tmp3tmp=feval(ObjFun,k,x(tmp1(i),k),u(j));if tmp<=t_vubf_opt(i,k)=tmp;d_opt(i,k)=u(j);t_vub=tmp;endendend%%%%%%%%%%%%%%%%% recurisivefor ii=k-1:-1:1tmp10=find(x_isnan(:,ii));tmp20=length(tmp10);for i=1:tmp20u=feval(DecisFun,ii,x(i,ii));tmp30=length(u);for j=1:tmp30tmp00=feval(ObjFun,ii,x(tmp10(i),ii),u(j));tmp40=feval(TransFun,ii,x(tmp10(i),ii),u(j)); tmp50=x(:,ii+1)-tmp40;tmp60=find(tmp50==0);if ~isempty(tmp60),if nargin<5tmp00=tmp00+f_opt(tmp60(1),ii+1);if tmp00<=t_vubm(i,ii)f_opt(i,ii)=tmp00;d_opt(i,ii)=u(j);t_vubm(i,ii)=tmp00;endendendendendendfval=f_opt(tmp1,1);%%%%%%%%%%%%%%%%%%% to write the index and parameter or resultp_opt=[];tmpx=[];tmpd=[];tmpf=[];tmp0=find(x_isnan(:,1));tmp01=length(tmp0);for i=1:tmp01tmpd(i)=d_opt(tmp0(i),1);tmpx(i)=x(tmp0(i),1);tmpf(i)=feval(ObjFun,1,tmpx(i),tmpd(i));p_opt(k*(i-1)+1,[1,2,3,4])=[1,tmpx(i),tmpd(i),tmpf(i)];for ii=2:ktmpx(i)=feval(TransFun,ii-1,tmpx(i),tmpd(i));tmp1=x(:,ii)-tmpx(i);tmp2=find(tmp1==0);if ~isempty(tmp2)tmpd(i)=d_opt(tmp2(1),ii);endtmpf(i)=feval(ObjFun,ii,tmpx(i),tmpd(i));p_opt(k*(i-1)+ii,[1,2,3,4])=[ii,tmpx(i),tmpd(i),tmpf(i)]; endenddynfun2_1程序:function u=dynfun2_1(k,x)if x==1u=[2,3,4];elseif x==2u=[5;6];elseif x==3u=[5;6];elseif x==4u=[5;6];elseif x==5u=[7;8;9];elseif x==6u=[7;8;9];elseif(x==7)|(x==8)|(x==9)u=10;elseif x==10u=10;enddynfun2_2程序:function v=dynfun2_2(k,x,u)tt=[3;2;1;4;3;1;3;3;5;2;5;1;1;4;2;3;1;5];tmp=[x==1&u==2,x==1&u==3,x==1&u==4,x==2&u==5,x==2&u==6,...x==3&u==5,x==3&u==6,x==4&u==5,x==4&u==6,...x==5&u==7,x==5&u==8,x==5&u==9,x==6&u==7,x==6&u==8,x==6&u==9,x==& u==10,x==8&u==10,x==9&u==10];v=tmp*tt;dynfun2_3程序:function y=dynfun2_3(k,x,u)y=u;在命令窗口的程序执行过程和结果如下:>>x=nan*ones(3,5);>>x>(1,1)=1;>>x(1:3,2)=(2:4)';>>x(1:2,3)=[5,6]';>>x(1:3,4)=(7:9)';>>x(1,5)=10;>>[p,f]=dynamic(x,'dynfun2_1','dynfun2_2','dynfun2_3')得到以下结果:p =1 1 3 22 3 5 13 5 7 24 7 10 35 10 10 0f =8该结果表明最短路线为1 3 5 7 10最短路程为85排队论程序:queueM/M/1/k系统课本270页例8.2.5程序及结果如下:queuethe program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2(该数字表示选择M/M/1/k系统)Please input the average arrival number in unit time lapta=10 lapta =10Please input the average service number in unit time mu=30mu =30Please input the parameter k=2k =2输出结果如下:The service intensity(Untruth) of the system is:ru =0.3333The average queue length is:L =0.3846(平均队长)The average waiting length is:Lq =0.0769(平均等待队长)The lost possibility is:p_k =0.0769The average lost customer number in unit time is:lapta_L =0.7692The truth average arrival customer number in unit time is: lapta_e =9.2308The average delay time is:W =0.0417(平均逗留时间)The average waiting time is:Wq =0.0083(平均等待时间)The average service intensity(efficent and truth) of the system is:ru_e =0.3077若按照甲方案,则如下结果:the program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2Please input the average arrival number in unit time lapta=10 lapta =10Please input the average service number in unit time mu=30mu =30Please input the parameter k=3k =3输出结果如下:The service intensity(Untruth) of the system is:ru =0.25The average queue length is:L =0.3176The average waiting length is:Lq =0.0706The lost possibility is:p_k =0.0118The average lost customer number in unit time is:lapta_L =0.1176The truth average arrival customer number in unit time is: lapta_e =9.8824The average delay time is:W =0.0321The average waiting time is:Wq =0.0071The average service intensity(efficent and truth) of the system is:ru_e =0.2471the program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2Please input the average arrival number in unit time lapta=10 lapta =10Please input the average service number in unit time mu=40mu =40Please input the parameter k=2k =2输出结果如下:The service intensity(Untruth) of the system is:ru =0.25The average queue length is:L =0.2857The average waiting length is:Lq =0.0476The lost possibility is:p_k =0.0476The average lost customer number in unit time is:lapta_L =0.4762The truth average arrival customer number in unit time is: lapta_e =9.5238The average delay time is:W =0.03The average waiting time is:Wq =0.005The average service intensity(efficent and truth) of the system is:ru_e =0.2381the program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2Please input the average arrival number in unit time lapta=30 lapta =30Please input the average service number in unit time mu=30mu =30Please input the parameter k=2k =2输出结果如下:The service intensity(Untruth) of the system is:ru =1The average queue length is:L =1The average waiting length is:Lq =0.3333The lost possibility is:p_k =0.3333The average lost customer number in unit time is:lapta_L =10The truth average arrival customer number in unit time is: lapta_e =20The average delay time is:W =0.05The average waiting time is:Wq =0.0167The average service intensity(efficent and truth) of the system is:ru_e =0.6667四、需用仪器设备PC i5、windows XP、MATLABR2007a、LINGO11五、MATLAB优化工具箱使用方法简介MATLAB优化工具箱具有强大的科学计算能力,在工程设计领域得到了广泛的应用.简要介绍了MATLAB优化工具箱,通过对MATtAB优化工具箱中fmincon函数的语法进行分析,提出了结构优化设计的通用求解方法.首先,合理设置优化目标函数和约束条件.然后,使用MATLAB优化工具箱进行编程计算.结果显示,与其他方法相比,使用MATLAB优化工具箱进行优化,不仅可以提高计算精度,而且可以减少计算时间.因此,在结构工程设计领域有较强的实际应用价值.六、LINGO优化软件简介lingo是用来求解线性和非线性优化问题的简易工具。

相关文档
最新文档