1、论文题目:火力发电厂经营问题的研究姓 名 专业 联系电话 指导老师参赛队员 1 刘高坤 车辆 13648021782参赛队员 2 李明 工业 15882062813参赛队员 3 沈志强 信息 15198185243薛长虹火力发电厂经营问题的研究摘要本文针对火力发电厂经营问题建立了以该厂一年的燃油费用为目标函数的线性规划模型 1。首先,用插值拟合的方法对今年每月耗油量以及今年柴油月平均价格进行预测,然后根据总费用 与购油量 、油价 、手续费、存储费用和利息之间fixiy的关系,在不考虑利息的情况下建立了线性规划模型,在考虑利息的情况下建立了线性规划模型,对于模型用 MATLAB 编程求解,得到不
2、考虑利息情况下经济合理的柴油购买与库存方案:第一个月购油 3033.1 吨,第二个月购油20323.5 吨,总费用为 49616200 元;对于模型考虑利息的情况下,计算得到总费用为 52179900 元。接着,以远期合约的有限期为决策变量 ,根据决策变量与购油时间、购ki油价格及一次购油量的关系,对模型进行修正,建立总费用关于决策变量的线性规划模型。通过软件 VC+6.0 通过广度搜索对模型计算求解,得ki出:当有限期为一个月时,总费用最省,为 53554100 元。然后,改变至少保证 15 天库存这个约束条件,对模型进行修正,得到线性规划模型,通过枚举的方法,得到逐渐改变库存时间对存储费用
3、的影响,从而得到库存为十五天是比较合理的。最后,对本文建立的模型的科学性和准确性进行了讨论,并提出了模型的改进方法。关键字:线性规划模型 3 插值拟合 广度搜索 一、问题重述火力发电厂经营问题某火力发电厂负责一小城市生产与生活用电的供应,该电厂发电机以柴油为燃油。发电厂有多台发电机,可以根据用电需求决定启用多少台发电机来适应用电量的季节性和随机性的波动。正常情况下柴油可以在市场上随时买进并立即运到发电厂,但是柴油价格随市场不断地波动。政府规定:发电厂必须至少,有 15 天的满足正常用电需求的燃油储备,以应付用电需求的随机性的波动和不能按时购进燃油的偶然事件。问题 1:请你在每年年初为该厂制订一
4、个经济上尽量合理的柴油购买与库存方案(即一年购油多少次,每次购油多少吨)并据此估算出发电厂在该年购进燃油的费用。请按所用资金不支付利息与支付利息两种情况讨论。问题 2:若采用所谓“远期合约”来购进柴油,即发电厂与售油公司事先计算出一个双方认为合理的油价并签下一个和约,将来购油时就采用这个价格。这样的远期合约有期限 1 个月,2 个月,3 个月,4 个月,5 个月,6 个月,一年共 6 种。请你为发电厂选择一种最有力的远期合约使费用最省。问题 3:你认为政府规定的 15 天的最少柴油储备合理么?给出你的改进意见。你所能得到的信息如下: (1)截至去年底,该电厂前 48 个月的每月耗油量(单位:吨
5、) 1120 1180 1320 1290 1210 1350 1480 1480 1360 1190 1040 1180 1150 1260 1410 1350 1250 1490 1700 1700 1580 1330 1140 1400 1450 1500 1780 1630 1720 1780 1990 1990 1840 1260 1460 1660 1710 1800 1930 1810 1830 2180 2300 2420 2090 1910 1720 1940 (2)截至去年底前 50 个星期的市场柴油价格(包含运输费用在内,单位:元吨) 2494 2490 2499 250
6、5 2515 2490 2467 2488 2504 2507 2530 2537 2550 2562 2560 2574 2604 2600 2613 2604 2616 2608 2598 2590 2589 2574 2577 2579 2574 2573 2576 2589 2578 2577 2572 2575 2568 2575 2570 2576 2573 2575 2596 2611 2629 2633 2628 2618 2622 2627 (3)每购买一次柴油所需固定费用(手续费等)为万元,一吨柴油储存一天所花费用 0.1 元,该厂从银行贷款所用年利率(连续复利)为 5%.
7、 二、模型假设1、每年各星期柴油市场价格走势基本一致;2、用电需求随机性波动;3、该发电厂某月如需购进柴油则在当月第一天进行,并支付储存费用;4、当月耗油量在当月不产生储存费用;5、为计算方便,假设一个月为四个星期,15 天为半个月;6、远期合约的柴油价格按照交付日期的预测月平均油价 计算;iy7、所订的油能够及时到达;8、所有费用都可以通过贷款得到,却可按时得到,利率按月计算;9、远期合约 4的购油价格为购油合约生效当月月平均价格。三、符号说明:第 个月的购油量,单位:吨ix:第 个月的平均油价,单位:元/吨iy:第 个星期的油价,单位:元/ 吨ip:0-1 变量,当第 个月购油 ,否则ik
8、i1ik0ik:第 个月的耗油量,单位:吨im:第 个月月末的剩余油量,单位:吨iz1:表示银行贷款所用年利率,r 5%r:年购进燃油的费用,单位:元f:远程合约的期限, ,单位:月ki 6,.21k四、问题分析问题一的分析问题一要求制定每年年初购买与库存方案,使费用尽可能少。故本文首先应对今年每月耗油量和每个星期市场柴油价格进行预测。对今年每月耗油量的预测本文分别对前四年耗油量进行拟合分析,剔除修补奇异点后,选取前四年相同月份的平均值作为耗油量的纵坐标,通过拟合的方法得到耗油量关于月份的六次函数(1) ,然后通过平移建立今年耗油量的函数(2) ,从而可以预测出每月耗油量。而对每个星期市场柴油
9、价格的预测,本文排除其它非自然因素的影响,根据假设 1,由已知的前 50 个星期的价格数据,得到每年同一时期的价格之间相差的常数 ,从而预测出每个星期的柴油价格。然后根据费用 与购c f油量 、油价 、手续费、存储费用和利息之间的关系得到目标函数为最小总ixiy费用的函数 ,在考虑满足 15 天的燃油储备的约束条件下,考虑不支付利息的f情况下,使费用最少的柴油购买与库存方案的优化模型,求解就得到费用最少的柴油购买与库存方案和总费用。最后考虑资金支付利息的情况,建立支付利息的线性规划模型,计算得到连续复利 5情况下的总费用。问题二的分析问题二假设采用远期合约购油,选择最经济的合约期限的问题。本文
10、在问题一建立的柴油购买与库存方案的优化模型的基础上,对购油的时间进行约束,以有期限 1 个月,2 个月,3 个月,4 个月,5 个月,6 个月,共 6 种购油时间为决策变量 ,建立关于决策变量 的远期合约费用模型,用软件 VC+6.0ki ki通过广度搜索求解得到使费用最少的决策变量 的取值。ki问题三的分析问题三要科学评价政府规定火力发电厂至少 15 天柴油储备合理性的问题,本文从经济出发,在满足正常需求的情况下,使总费用最低。利用第一问建立的优化模型,使约束条件中 15 天的最低储备改为 1-30 的其它值,考虑所用资金不支付利息与支付利息两种情况,通过枚举的方法,通过比较总费用的多少来得
11、出政府规定的 15 天柴油储备是否合理的结论。五、模型的建立与求解一、 问题一模型的建立与求解1.1 问题一不考虑利息的优化模型的建立与求解1.1.1 数据的处理分别作出前四年每月耗油量数据,如图 1 所示,可以看出去年 10 月份耗油量数据与其它数据偏差极大,属于奇异点,应当剔除。0 1 2 3 4 5 6 7 8 9 10 11 12050010001500200025003000first 12 monthssecond 12 monthsthird 12 monthsforth 12 months图 1 前四年原始耗油量曲线图本文用拉格朗日插值 2的方法(拟合的系数见附录一)奇异点修补
12、,得到。修补后的结果如图 2。165234m1 2 3 4 5 6 7 8 9 10 11 12050010001500200025003000first 12 monthssecond 12 monthsthird 12 monthsforth 12 months图 2 前四年耗油量修补后折线图1.1.2 今年耗油量的预测1.1.2.1 今年耗油量函数形式的确定为得到前四年耗油量的变化规律,本文首先对前四年每年 12 各月的耗油量用 MATLAB 进行拟合,发现当拟合的形式为 2801yaxax时,拟合的效果最佳。拟合的结果(拟合系数见附录二)如图 3:图 3 前四年耗油量拟合曲线由图 3
13、的拟合曲线可以看出曲线形状走势相同,但是局部有些差异。为了得到更加准确又能同时描述前四年耗油量变化规律方程,本文选取前四年相同月份的平均值作为耗油量的纵坐标,同样,通过拟合的方法得到耗油量关于月份的六次函数形式见式(1) 、函数图像如图 4 所示。 1235678 987516782.1493.12.074.0 cxxxxy (1)这里 .561c图 4 平均值拟合图像1.1.2.2 验证耗油量函数形式的符合程度耗油量函数形式的符合程度可以从相对误差来反映,具体来说,就是通过改变 使式(1)的图形尽可能靠近前四年每一年的月耗油量的点,并且使每年c相对误差值最小。通过 MATLAB 编程(见附录
14、三) ,可以得出式(1)平移量(规定向上为正,向下为负)和相对误差如表 1 所示:x表 1 耗油量函数形式的符合程度的相对误差表平移量 最大相对误差第一年 309 6.57%第二年 205 4.34%第三年 -133 4.52%第四年 -397 5.65%由表中相对误差可以看出通过平移后的函数(1)可以非常准确的描述前四年的月耗油量,相对误差不超过 7%。1.1.2.3 今年耗油量的预测模型由于函数(1)可以精确地描述前四个年的月耗油量,因此这里也采用此函数形式预测今年耗油量,不过同样要进行平移,即改变 的值。分析一年的最1c后一个月的耗油量和第二年的第一个月的耗油量才差值平均,就可以近似得到
15、今年一月份的耗油量 3.963501940m代入函数(1)中就可以得到常数项 4.12c今年耗油量的预测模型为: 4.6192875136785.493.12.074.0 24678 xxxxy(2)将 分别代入今年耗油量的预测模型中即得到今年预测耗油量,,.x结果如表 2 所示:表 2 今年耗油量预测结果月份 1 2 3 4 5 6耗油量(t) 1963.3 2139.6 2218.7 2120 2114 2298.1月份 7 8 9 10 11 12耗油量(t) 2482.6 2491.9 2332.4 2120.8 1947 2150.4需要说明的是本文建立的关于今年耗油量的预测模型,是
16、在考虑用电需求波动的影响下经过检验,其精度也可以达到 93%以上。1.1.3 今年油价的预测由假设 1 可以知道,每年各星期柴油市场价格走势基本一致,今年与去年同期油价增长的常数 ,可以由去年和前年最后两个星期即第 49、50 个星期与c第 1、2 个星期的差值的平均值来确定,即: 2)()(14950pp得: 5.3c考虑柴油市场价格随机波动的关系,并结合实际情况,本文对 12 个平均价格进行处理,具体来说,就是加上-50,50的随机数(程序见附录 四)以考虑随机波动的影响,模拟的实际柴油市场价格波动的影响。预测今年柴油市场价格如表 3:表 3 预测今年柴油市场价格表第一星期第二星期第三星期
17、第四星期平均价格产生随机数 预测价格 iy一月 2631.5 2637.5 2647.5 2622.5 2634.75 42 2676.75二月 2608.5 2620.5 2636.5 2639.5 2626.25 -8 2618.25三月 2662.5 2669.5 2682.5 2694.5 2677.25 29 2706.25四月 2692.5 2706.5 2772.5 2732.5 2726 9 2735五月 2745.5 2736.5 2748.5 2740.5 2742.75 49 2791.75六月 2730.5 2722.5 2721.5 2706.5 2720.25 -1
18、1 2709.25七月 2709.5 2711.5 2706.5 2705.5 2708.25 13 2721.25八月 2708.5 2721.5 2710.5 2709.5 2712.5 19 2731.5九月 2704.5 2707.5 2700.5 2707.5 2705 -24 2681十月 2702.5 2708.5 2705.5 2707.5 2706 -16 2690十一月 2728.5 2743.5 2761.5 2765.5 2749.75 17 2766.75十二月 2760.5 2750.5 2754.5 2759.5 2756.25 44 2800.251.1.3 模
19、型的建立根据费用 与购油量 、油价 、手续费、存储费用和利息之间的关系得fixiy到目标函数为总费用的函数模型 1212min50-30.1ii ii mfkzs.t. 21 312111 ,.kkkiiixxmk一一一一其中11kkiiizxm1.1.2 模型的求解对上述目标函数进行处理,即将 代入原式得:kz12 12112k12 121212kmin503= 3ii ii i ki i ii ii i ki i i imfxyx 分析:由于每月的用油量 已求得,所以 的取值由前两部分决定,前两imf部分我们可以等价变化为: ,其中 为合并后的系数,由 表示,显12iiki ixy然当 全
20、为 0 时 最小,但此时 小于 0,不符合题意,当 、 ,ikff 1R2=0f通过 MATLAB 编程(程序见附录五)求得: 时 取130.,3.5xx最小,且 。49612minf1.2 考虑利息的模型的建立与求解1.2.1 模型的建立考虑资金支付利息的情况,按连续复利进行计算,只需要在模型的基础上加上利息即可得到考虑支付利息的模型: 12 13min50-30.*()22iii ii mrfxykz s.t. 1 312111 ,.kkkiiixmk一一一一其中11kkiiizx1.2.2 模型的求解将模型的求解结果 代入模型中即可解得考虑支1230.,3.5xx付利息情况下的总费用:
21、。579f二、问题二模型的建立与求解2.1 模型的建立本文这一问考虑利息的情况下进行决策,在模型的基础上,只是决策变量现在是 ,可以取 1,2,6,通过取不同的 值,购油的时间就可以确定,根ki ki据模型假设 9,购油时间确定后远期合约油价也随之确定,由于今年柴油总需求量 (吨)一定,因此每次购油量 也一定。关6.235.01.3y ix系如表 4:表 4 决策变量与购油月份及购油量的关系表决策变量 ki1 2 3 4 5 6购油月份 1,2,12 1,3,5,7,9,11 1,4,7,10 1,5,9 1,6,11 1,7购油量(吨) 1946.4 3892.8 5839.2 7785.5
22、 7785.5 11678.3由以上理解,本文建立了以远期合约有限期 为决策变量的线性规划模型ki: 12 13min50-30.*()22iii ii mrfxykz 其中:当 且 时, ,否则,.1,*nk iik0iks.t. 21 312111 ,.kkkiiixmxk一一一一其中11kkiiizx2.2 模型的求解与结果分析由 VC+编程可以求解线性规划模型,求解程序见附录六,求解结果如下:决策变量取值 1 2 3 4 5 6总费用 53554100 106400000 159150000 211134000 261358000 315670000由表格可以看出:当决策变量 时,即,
23、每个月月初购油 1946.4 吨,总1ki费用函数值最小 元。5340minf结果分析:由于模型中 项的值远大于 50000 的手续费以及存储费用项,iyx且购油价格变化不大,因此购油量变化的时候总费用函数 的值会显著增加,f而由表 4 可以看出,决策变量值变化会显著影响购油量的大小,因此一次购油量越少越好,即当每月购油时,总费用会最少,因此编程求得的结果是合理的。三、问题三模型的建立与求解3.1 模型的建立要讨论政府规定的 15 天的最少柴油储备是否合理的问题,本文模型的基础上对约束条件进行修改,就得到关于柴油储备时间为决策变量的模型:假设保证至少库存时间为 天,根据实际情况,储备不能没有也
24、不能太多,T认为 301T12 13min50-30.*()22iii ii mrfxykz s.t. 1 312111 ,5*,.5kkkiiiTxmk一一T一一其中11kkiiizx3.2 模型的求解用 VC+编程通过枚举的方法得到最少库存从 1 到 30 天变化对总费用的影响。六、模型的评价与改进6.1 模型的评价优点:本文共建立了四个线性规划模型,其中模型、均可以在模型二的基础上加以修改形成。模型充分考虑了购油量 、月平均油价 、最ixiy少库存量、购买手续费和贷款利息等因素与总费用之间的关系,同时购油量 、ix月平均油价 都考虑了随机波动的影响,使模型全面、简单、符合实际。iy缺点:
25、首先由于考虑的问题设计的因素较多,本文以月为单位建立模型,对模型进行了简化,简化的同时难免会使模型在精度上有所降低,不能具体到哪一天购油。其次没有考虑偶然因素的造成油价上涨或库存不够的情况,使模型不能看出突发事件的影响。6.2 模型的改进为使购油日期精确到天,可以选取以天为单位建立线性规划模型,得到的结果就更加贴近实际,用于指导实际中的问题。七、参考文献1姜启源 谢金星 叶俊, 数学模型(第三版) ,北京:高等教育出版社,2003。2张志涌 杨祖樱等, MATLAB 教程 ,北京:北京航空航天大学出版社,2006。3韩中庚, 数学建模方法及其运用 ,北京:高等教育出版社, 2005.6。4 远
26、期合约,http:/ 异常点拟合方程系数:1.0e+004 *Columns 1 through 60.000000845932340 -0.000046399962152 0.001065469520854 -0.013236153867888 0.095948047473379 -0.408262894021623Columns 7 through 90.973208684969743 -1.146354297328647 0.642592613608235附录二 拟合系数:average:1.0e+003 *0.0000 -0.0004 0.0095 -0.1182 0.8559 -3.
27、6176 8.5186 -9.8770 5.5868first 12 months1.0e+003 *0.0000 -0.0003 0.0066 -0.0833 0.6143 -2.6461 6.3487 -7.4792 4.3600second 12 months1.0e+003 *0.0000 -0.0004 0.0093 -0.1170 0.8507 -3.6071 8.4936 -9.8016 5.3232third 12months1.0e+004 *0.0000 -0.0000 0.0011 -0.0131 0.0952 -0.4056 0.9674 -1.1399 0.6399f
28、orth 12 months1.0e+004 *0.0000 -0.0001 0.0011 -0.0141 0.1006 -0.4161 0.9559 -1.0828 0.6265附录三 最大相对误差计算程序a=1120 1180 1320 1290 1210 1350 1480 1480 13601190 1040 1180;b=1150 1260 1410 1350 1250 1490 1700 1700 15801330 1140 1400;c=1450 1500 1780 1630 1720 1780 1990 1990 18401652.4544 1460 1660;d=1710 1
29、800 1930 1810 1830 2180 2300 2420 20901910 1720 1940;p=1357.627 1434.042 1613.08 1514.425 1509.259 1692.5741877.001 1886.294 1726.781 1515.191 1341.403 1544.823;for e=1:500f=max(abs(a+e-p)./a)eend;for e=1:500f=max(abs(b+e-p)./b)eend;for e=-500:1f=max(abs(c+e-p)./c)eend;for e=-500:1f=max(abs(d+e-p)./
30、d)eend;附录四 随机数产生程序产生 12 个随机数a=randperm(101)-51;a=a(1:12)附录五 模型求解程序:#include#includeusing namespace std;int main()double a12=2676.75,2618.25,2706.25,2735,2791.75,2709.25,2721.25,2731.5,2681,2690,2766.75,2800.25;double R12=1,1,0,0,0,0,0,0,0,0,0,0,y12=3033.1,20323.5,0,0,0,0,0,0,0,0,0,0;double x12=1963.
31、3,2139.6,2218.7,2120,2114,2298.1,2482.6,2491.9,2332.4,2120.8,1947,2150.4;double z12=0,m12=0,n12=0,f1=0,f2=0;int i,j,k1,k2;for(i=0;i#includeusing namespace std;int main()double a12=2676.75,2618.25,2706.25,2735,2791.75,2709.25,2721.25,2731.5,2681,2690,2766.75,2800.25;double R12=0,0,0,0,0,0,0,0,0,0,0,0
32、;double y612=1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,1946.4,3892.8,0,3892.8,0,3892.8,0,3892.8,0,3892.8,0,3892.8,0, 5839.15,0,0,5839.15,0,0,5839.15,0,0,5839.15,0,0, 7785.5,0,0,0,7785.5,0,0,0,7785.5,0,0,0, 7785.5,0,0,0,0,7785.5,0,0,0,0,7785.5,0,11678.3,0,0,0,0,0,11
33、678.3,0,0,0,0,0;double x12=1963.3,2139.6,2218.7,2120,2114,2298.1,2482.6,2491.9,2332.4,2120.8,1947,2150.4;double z12=0,m12=0,n12=0,f1=0,f2=0;int i,j,k1,k2,h,l6=1,2,3,4,5,6,p,q,r,s;for(h=0;h0for(i=0;i12;i+)for(k1=0;k1i;k1+)mi+=yhk1*Rk1;for(k2=0;k2i-1;k2+)ni+=xk2;zi=mi-ni;f2+=(yhi*xi+50000)*Ri+(zi-xi/2*3)*pow(1+0.05/12),13-i);for(q=0;q12;q+)Rq=0;cout“方案“h+1“: “f2endl;return 0;Excel 拟合的六次函数1 2 3 4 5 6 7 8 9 10 11 120200400600800100012001400160018002000Series 1Poly. (Series 1)Linear (Series 1)Poly. (Series 1)