福建农林大学计算机与信息学院(数学类课程)实验报告课程名称:数学模型姓名:系:信息与计算科学专业:信息与计算科学年级:2007级学号:071152035指导教师:姜永职称:副教授2009年12月18日实验项目列表1.实验项目名称:数学规划模型建立及其软件求解 2.实验目的和要求:了解数学规划的的基本理论和方法,并用于建立实际问题的数学规划模型;会用LINDO 和LINGO 软件解数学规划问题并对结果加以分析应用。
3.实验使用的主要仪器设备和软件:惠普微机;1.6LINDO 和0.9LINGO 版本4.实验的基本理论和方法:数学规划模型的一般形式为mi x g t s x f z Min i x,,2,1,0)(..)( =≤=其中)(x f 表示目标函数,),,2,1(0)(m i x g i =≤为约束条件。
LINDO/LINGO 是美国LINDO 系统公司开发的一套专门用于求解最优化问题的软件包。
LINDO 用于求解线性规划和二次规划问题,LINGO 除了具有LINDO 的全部功能外,还可以用于求解非线性规划问题,也可以用于一些线性和非线性方程(组)的求解,等等。
LINDO/LINGO 软件的最大特色在于可以允许优化模型中的决策变量是整数,而且执行速度很快。
线性优化求解程序通常使用单纯形算法,对LINDO/LINGO 软件,为了能解大规模问题,也可以使用内点算法。
非线性优化求解程序采用的是顺序线性规划法,即通过迭代求解一系列线性规划来达到求解非线性规划的目的。
5.实验内容与步骤: 题一:问题阐述:某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A ,B ),按照生产工艺的要求,原料甲、乙必须首先倒入混合池中混合,混合后的液体再分别与原料丙混合生产A ,B .已知原料甲,乙,丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/ t ,16千元/ t ,10千元/t ,产品A ,B 的含硫量分别不能超过2.5%,1.5%,售价分别为9千元/t ,15千元/t ,根据市场信息,原料甲、乙、丙的供应量都不能超过500t ;产品A ,B 的最大市场需求量分别为100t ,200t .(1) 应如何安排生产?(2) 如果产品A 的最大市场需求量增长为600t ,应如何安排生产? (3) 如果乙的进货价格下降为13千元/t ,应如何安排生产?分别、对(1)、(2)两种情况进行讨论. 建立模型:(1)设A 中含甲乙原料混合物1y 吨,含丙原料1z 吨;B 中含甲乙原料混合物2y 吨,含丙原料2z 吨;甲乙原料混合物中,甲原料占比例为1x ,乙原料占比例为2x (即121=+x x )。
安排生产应该让公司的利润最高,即销售价格-成本最大,得到目标函数为:22211121)1015()16615()109()1669(z y x x z y x x Max -+--+-+--=约束条件:1)A 的含硫量不能超过2.5%:%5.202.001.003.01111211≤+++z y z y x y x2)B 的含硫量不能超过1.5%:%5.102.001.003.02222221≤+++z y z y x y x3)原料甲、乙、丙的供应量都不能超过500吨:5005005002122122111≤+≤+≤+z z y x y x y x y x4)产品A 的最大市场需求量为100吨:10011≤+z y 5)产品B 的最大市场需求量为200吨:20022≤+z y 6)混合物中甲乙比例相加为1:121=+x x 7)变量全为非负数:0,,,,,212121≥z z y y x x 写出程序:model :max =(9-6*x1-16*x2)*y1+(9-10)*z1+(15-6*x1-16*x2)*y2+(15-10)*z2; 3*x1*y1+x2*y1+2*z1-2.5*(y1+z1)<=0; 3*x1*y2+x2*y2+2*z2-1.5*(y2+z2)<=0; x1*y1+x1*y2<=500; x2*y1+x2*y2<=500; z1+z2<=500; y1+z1<=100; y2+z2<=200; x1+x2=1; x1>=0; x2>=0; y1>=0; y2>=0; z1>=0; z2>=0; end结论分析:运行后得到结果。
该结果表明,在甲乙混合物中,只使用乙原料而不使用甲原料。
不生产A ,只生产B ,且B 中混合物的含量为100吨,丙原料的含量也为100吨时,该公司的利润最大,为400千元。
(2)产品A 的最大市场需求量增长为600吨。
那么(1)中的10011≤+z y 将变为60011≤+z y 。
相应的程序变更为:由之前的“y1+z1<=100”变更为“y1+z1<=600”。
设成全局最优解得到结果。
该结果表明,在甲乙混合物中,只使用甲原料而不使用乙原料。
只生产A ,不生产B ,且A 中混合物的含量为300吨,丙原料的含量也为300吨时,该公司的利润最大,为600千元。
(3)当乙的进货价格下降为13千元/吨,A 的最大需求量为100吨时,目标函数变为22211121)1015()13615()109()1369(z y x x z y x x Max -+--+-+--=相应程序如下:model :max =(9-6*x1-13*x2)*y1+(9-10)*z1+(15-6*x1-13*x2)*y2+(15-10)*z2; 3*x1*y1+x2*y1+2*z1-2.5*(y1+z1)<=0; 3*x1*y2+x2*y2+2*z2-1.5*(y2+z2)<=0; x1*y1+x1*y2<=500; x2*y1+x2*y2<=500; z1+z2<=500; y1+z1<=100; y2+z2<=200; x1+x2=1; x1>=0; x2>=0; y1>=0; y2>=0; z1>=0; z2>=0; end运行后得到结果。
该结果表明甲乙混合物比例分别为25%与75%,且不生产A 产品,不采购丙原料。
制作的甲乙混合物为200吨,且都用来生产B 产品时,公司的获利最大,为750千元。
(4)当乙的进货价格下降为13千元/吨,A 的最大需求量为600吨时,约束条件中的10011≤+z y 将变为60011≤+z y 。
相应的程序变更为:由之前的“y1+z1<=100”变更为“y1+z1<=600”。
运行后得到结果。
该结果表明甲乙混合物比例分别为25%与75%,且不生产A 产品,不采购丙原料。
制作的甲乙混合物为200吨,且都用来生产B 产品时,公司的获利最大,为750千元。
题二: 问题阐述:某造船厂需要决定下四个季度的帆船生产量。
下四个季度的帆船需求量分别是40条、60条、75条和25条,这些需求必须按时满足。
每个季度正常的生产能力是40条帆船,每条船的生产费用为4万元。
如果加班生产,每条船的生产费用为4.5万元。
每个季度末,每条船的库存为2000元。
假定生产提前期为0,初始库存为10条船。
如何安排生产可使总费用最小? 建立模型:设四个季度的帆船生产量分别为1x ,2x ,3x ,4x ;前三个季度的库存量分别为1y ,2y ,3y ;四个季度加班生产的帆船量为1z ,2z ,3z ,4z 。
为使生产费用最小,得到目标函数为:)(5.4)(2.0)(443213214321z z z z y y y x x x x Min ++++++++++=约束条件:1)第一季度帆船需求量为40条:4010111=+-+z y x ; 2)第二季度帆船需求量为60条:602212=+-+z y y x ;3)第三季度帆船需求量为75条:753323=+-+z y y x ; 4)第四季度帆船需求量为25条:25434=++z y x ;5)每季度的库存量和该季度的加班生产量必有一个为0:000332211≥≥≥z y z y z y ;6)每季度的正常生产能力是40条帆船:40,,,4321≤x x x x 7)变量全为非负数:0,,,,,,,,,,43213214321≥z z z z y y y x x x x 写出程序:model:min =4*(x1+x2+x3+x4)+0.2*(y1+y2+y3)+4.5*(z1+z2+z3+z4); 10+x1-y1+z1=40; x2+y1-y2+z2=60; x3+y2-y3+z3=75; x4+y3+z4=25; x1<=40; x2<=40; x3<=40; x4<=40; x1>=0; x2>=0; x3>=0; x4>=0; y1>=0; y2>=0; y3>=0; z1>=0; z2>=0; z3>=0; z4>=0; y1*z1>=0; y2*z2>=0; y3*z3>=0; end结论分析:运行后得到结果。
该结果表明前三个季度的帆船生产量都为40条,第四季度的帆船生产量为25条。
第一和第四季度不加班生产,第二和第三季度加班的产量分别为10条和35条。
这样导致只有第一个季度的帆船库存了10条,而其余季度都没有库存量。
这时该公司的生产费用最少,为784.5万元。
6.实验心得(质疑、建议):本次实验让我对应用软件建立数学规划模型并做出解答有更深的认识。
通过运用LINGO 软件,我对上述的两个问题进行解答。
设出了相应的变量后,进行程序书写。
其中发现运行第一题的第二小题时,我得到的不是最优解,通过老师的讲解和自己的摸索,我发现是因为在软件运行前我并没有设置为全局最优解,而是局部最优解。
所以得到的才是400的错误答案。
在更改为全局最优解后,我再运行程序,发现这次得到的是正确答案。
看来今后在处理问题的时候要注意求的是局部最优解还是全局最优解。
这将让今后的实验少走很多弯路。
1.实验项目名称:数据拟合与曲线拟合模型应用 2.实验目的和要求:了解最小二乘法与曲线拟合问题及用法;理解并掌握线性模型曲线拟合及多项式函数曲线拟合的理论和方法,掌握用MATLAB 作出曲线拟合。
3.实验使用的主要仪器设备和软件:惠普微机;MATLAB 7. 0版本4.实验的基本理论和方法:(1)曲线拟合初等函数图形及其变换。
包括基本初等函数与它们经过经过四则运算和复合运算后所得到的函数。
拟合函数为多项式函数情形,从理论上已经解决,称为拉格朗日插值多项式。