一、目的
掌握优化模型的建立方法,能够借助Matlab工具对建立的优化模型进行求解。
二、内容与设计思想
1、分析:某石油设备制造厂每月需要100套压缩机用于维护和运营石油开采设备。这些零件由工厂内部生产,每月生产500套,每批压缩机的生产费用为5万元,而每套压缩机的存储费用为每月0.2万元。我们需要建立一个不允许缺货的存贮模型,为工厂找到一个最佳的生产和存储策略,以在满足需求的同时,最大化利润并最小化成本。
假设:假设需求均匀且可预测,每月需求稳定为100套。生产时间和存储时间可以忽略不计,没有缺货情况,存储空间充足,每次生产的数量相同。
建模:使用经济订购批量(EOQ)模型来确定最佳的生产批量。EOQ模型的目标是最小化库存持有成本和订货成本之和。公式为: EOQ= 。其中:D 是年需求量(1200套/年),S 是每次生产的固定费用(5万元/批),H 是单位产品的年度存储费用(0.2万元 * 12个月 = 2.4万元/年)
求解:首先,我们在MATLAB中计算EOQ,并将其调整为最接近的整数。然后,确定每年的生产次数,计算平均库存水平,并调整为最接近的整数。最后,计算总成本。
解释:根据计算结果,最佳生产批量为 EOQ套,生产频率为每年 N 次,每次生产后平均库存水平为 Q_avg套。通过优化生产批量,可以显著降低总成本,包括生产费用和存储费用。
进一步考虑,工厂可以根据最佳生产批量和生产频率制定详细的生产计划,通过改变生产费用和存储费用,观察对最佳生产批量和总成本的影响。
2、分析:每辆车的基础利润是1500美元。每增加100美元的折扣,销售量会增加15%(假设条件)。利润的目标是最大化。我们需要建立一个模型来描述利润与折扣的关系。
假设:设折扣金额为 x 美元。每100美元的折扣可以使销售额提高15%,即每1美元的折扣可以使销售额提高0.15%。销售额的提高比例为 0.0015x。新的销售额为 1+0.0015x,新的利润为 (1500−x)(1+0.0015x)
建模:我们需要建立一个利润函数,并找到使利润最大的折扣金额x。利润函数为: P(x)=(1500−x)(1+0.0015x)
求解:定义利润函数,求导数并找到极值点,验证极值点是否为最大值,若是则求出极值点对应利润。
解释:求出当折扣金额为416.67美元时利润最大。由于二阶导数为负数,因此此点为极大值点,当提供416.67美元的折扣时,汽车制造商的利润将达到最大值,即P(416.67)=(1500−416.67)(1+0.0015×416.67) =1760.42美元。
3、分析:一个饲养场每天投入4元资金用于饲料、设备、人力,估计可使一头重80kg的生猪每天增加2kg。目前生猪的出售价格为8元/kg,但预测每天会降低0.1元。我们需要建立一个模型来确定最佳的出售时间,以最大化利润。还需要进行灵敏性分析和评估新的饲养方法。
假设:
设出售时间为 tt天。
第 t天的体重为 80+2t80+2t kg。
第 t天的售价为 8−0.1t8−0.1t 元/kg。
第 t天的销售收入为 (80+2t)(8−0.1t)(80+2t)(8−0.1t) 元。
第 t天的饲养费用为 4t4t 元。
第 t天的利润为 (80+2t)(8−0.1t)−4t(80+2t)(8−0.1t)−4t 元。
建模:
我们需要建立一个利润函数,并找到使利润最大的出售时间 t。
利润函数为: P(t)=(80+2t)(8−0.1t)−4t
求解:
定义利润函数。
求导数并找到极值点。
验证极值点是否为最大值。
绘制利润随时间变化的图形。
分析:
最佳出售时间:通过求解导数等于0的点,我们找到了使利润最大的出售时间。二阶导数为负,说明该点为极大值点。通过代入最佳出售时间,计算出最大利润。我们需要考虑饲养费用的变化对最佳出售时间和相应收益的影响。假设每天的饲养费用为 c 元,则新的利润函数为: P(t)=(80+2t)(8−0.1t)−ct,我们可以通过改变 c的值来观察最佳出售时间和最大利润的变化。
解释:
当每天的饲养费用为3元时,最佳出售时间为12.5天,最大利润为671.25元。
当每天的饲养费用为4元时,最佳出售时间为10天,最大利润为660元。
当每天的饲养费用为5元时,最佳出售时间为7.5天,最大利润为651.25元。
新的饲养方法下,最佳出售时间为22.5天,最大利润为842.5元,因此新的饲养方法值得改变。使饲养方式值得改变的最小增重率为3.20 kg/天。
三、实验使用环境(本次实验所使用的平台和相关软件)
Matlab
四、步骤和调试过程(实验步骤、测试数据设计、测试结果分析)
1、
2、
3、
五、小结
1、实验中遇到的问题及解决过程
(1)在计算EOQ模型时,初始的公式输入有误,导致计算结果不正确。
解决过程:仔细检查公式,发现是单位转换的问题。将月度费用转换为年度费用后,重新计算,得到了正确的结果。
(2)在求解利润与折扣关系模型时,求导数时出现符号变量转换错误。
解决过程:使用 subs 函数将符号变量替换为具体的数值,再进行计算,解决了符号变量转换错误的问题。
(3)在绘制利润随时间变化的图形时,图形显示不完整。
解决过程:检查数据范围和绘图参数,调整了时间范围和绘图分辨率,最终得到了完整的图形。
2、实验中产生的错误及原因分析
(1)在求解最佳出售生猪时间时,出现符号变量转换错误。
原因分析:在计算二阶导数时,直接将符号变量转换为双精度数值,导致错误。使用 subs 函数将符号变量替换为具体的数值后,再进行转换,解决了问题。
(2)在灵敏性分析中,计算新的饲养方法下的利润时,出现逻辑错误。
原因分析:在计算新的利润函数时,忘记更新饲养费用的值。通过仔细检查代码,修正了饲养费用的值,解决了逻辑错误。
3、实验体会和收获
技术能力提升:通过本次实验,我掌握了如何使用Matlab进行优化模型的建立和求解。特别是对符号变量的处理和求导数的方法有了更深入的理解。面对实验中的各种挑战,我学会了冷静思考和寻找解决方案。通过逐步排查和调试,解决了多个问题,提高了问题解决的能力。通过将所学知识应用到实际问题中,我对优化模型有了更深的理解。意识到理论与实践相结合的重要性,有助于更好地解决实际问题。通过实验中的数据处理和分析,提高了我的数据分析能力,特别是在数据可视化和结果解释方面。