数学建模实验
数学建模实验报告

湖南城市学院数学与计算科学学院《数学建模》实验报告专业:学号:姓名:指导教师:成绩:年月日目录实验一 初等模型........................................................................ 错误!未定义书签。
实验二 优化模型........................................................................ 错误!未定义书签。
实验三 微分方程模型................................................................ 错误!未定义书签。
实验四 稳定性模型.................................................................... 错误!未定义书签。
实验五 差分方程模型................................................................ 错误!未定义书签。
实验六 离散模型........................................................................ 错误!未定义书签。
实验七 数据处理........................................................................ 错误!未定义书签。
实验八 回归分析模型................................................................ 错误!未定义书签。
实验一 初等模型实验目的:掌握数学建模的基本步骤,会用初等数学知识分析和解决实际问题。
实验内容:A 、B 两题选作一题,撰写实验报告,包括问题分析、模型假设、模型构建、模型求解和结果分析与解释五个步骤。
数学建模实验报告

数学建模实验报告一、实验目的和背景本次实验旨在运用数学建模方法,解决一个与实际生活相关的问题。
通过建立数学模型,分析问题,提出解决方案,并通过实验数据验证模型的可行性和准确性。
二、实验内容本次实验的题目是“公司送货员最优路径规划”。
公司有多名送货员需要在城市中进行货物的配送工作。
公司希望通过合理的路径规划,使得送货员能够在最短的时间内完成所有的配送任务。
在实验中,需要考虑的主要因素包括送货员之间的配送范围、道路交通状况、道路长度等。
三、实验步骤1.收集相关数据:收集城市道路网络的地理数据,包括道路长度、道路交通状况等信息。
2.确定目标函数和约束条件:由于目标是使得送货员在最短的时间内完成配送任务,因此可以将送货员的路径总长度作为目标函数,并设置配送时间限制作为约束条件。
3.建立数学模型:根据收集到的数据和确定的目标函数、约束条件,建立数学模型,将问题转化为一个最优化问题。
4.进行求解:使用数学建模常见的求解方法,如遗传算法、模拟退火算法等,对数学模型进行求解,得到最优的路径规划方案。
5.实验验证:将求解得到的路径规划方案应用于实际情境中,通过实践进行验证,观察实际效果与模型预测结果的一致性。
四、实验结果与分析通过对数学模型进行求解,得到了送货员的最优路径规划方案。
将该方案应用于实际情境中,观察实际效果与模型预测结果的一致性。
通过与其他非最优路径规划方案进行对比,可以发现,最优路径规划方案能够使得送货员在最短的时间内完成配送任务,提高工作效率。
五、结论和展望本次实验成功地运用了数学建模方法,解决了公司送货员最优路径规划问题。
通过建立数学模型,可以快速地得到最优的路径规划方案,提高了送货员的工作效率。
未来可以进一步改进模型,考虑更多实际情况,如车辆限行、路况实时变化等因素,提供更加精确和实用的路径规划方案。
总结:本次实验通过对公司送货员最优路径规划问题的建模和求解,展示了数学建模的应用价值和解决问题的能力。
数学建模实验报告

数学建模实验报告1.流⽔问题问题描述:⼀如下图所⽰的容器装满⽔,上底⾯半径为r=1m,⾼度为H=5m,在下地⾯有⼀⾯积为B0.001m2的⼩圆孔,现在让⽔从⼩孔流出,问⽔什么时候能流完?解题分析:这个问题我们可以采⽤计算机模拟,⼩孔处的⽔流速度为V=sqrt[2*g*h],单位时间从⼩孔流出的⽔的体积为V*B,再根据⼏何关系,求出⽔⾯的⾼度H,时间按每秒步进,记录点(H,t)并画出过⽔⾯⾼度随时间的变化图,当⽔⾯⾼度⼩于0.001m 时,可以近似认为⽔流完了。
程序代码:Methamatic程序代码:运⾏结果:(5)结果分析:计算机仿真可以很直观的表现出所求量之间的关系,从图中我们可以很⽅便的求出要求的值。
但在实际编写程序中,由于是初次接触methamatic 语⾔,对其并不是很熟悉,加上个⼈能⼒有限,所以结果可能不太精确,还请见谅。
2.库存问题问题描述某企业对于某种材料的⽉需求量为随机变量,具有如下表概率分布:每次订货费为500元,每⽉每吨保管费为50元,每⽉每吨货物缺货费为1500元,每吨材料的购价为1000元。
该企业欲采⽤周期性盘点的),(S s 策略来控制库存量,求最佳的s ,S 值。
(注:),(S s 策略指的是若发现存货量少于s 时⽴即订货,将存货补充到S ,使得经济效益最佳。
)问题分析:⽤10000个⽉进⾏模拟,随机产⽣每个⽉需求量的概率,利⽤计算机编程,将各种S 和s 的取值都遍历⼀遍,把每种S,s的组合对应的每⽉花费保存在数组cost数组⾥,并计算出平均⽉花费average,并⽤类answer来记录,最终求出对应的S和s。
程序代码:C++程序代码:#include#include#include#include#define Monthnumber 10000int Need(float x){int ned = 0;//求每个⽉的需求量if(x < 0.05)ned = 50;else if(x < 0.15)ned = 60;else if(x < 0.30)ned = 70;else if(x < 0.55)ned = 80;else if(x < 0.75)ned = 90;else if(x < 0.85)ned = 100;else if(x < 0.95)ned = 110;else ned = 120;return ned;}class A{public:int pS;int ps;float aver;};int main(){A answer;answer.aver=10000000;//int cost[Monthnumber+1]={0}; float average=0;int i;float x;int store[Monthnumber];//srand((int)time(0));for(int n=6;n<=12;n++){// int n=11;int S=10*n;for(int k=5;k{// int k=5;int s=k*10;average=0;int cost[Monthnumber+1]={0};for(i=1;i<=Monthnumber;i++){store[i-1]=S;srand(time(0));x=(float)rand()/RAND_MAX; //产⽣随机数//cout<<" "<//cout<int need=Need(x);if(need>=store[i-1]){cost[i]= 1000*S + (need - store[i-1])*1500 + 500;store[i]=S;}else if(need>=store[i-1]-s){cost[i]=1000*(need+S-store[i-1]) + 50*(store[i-1]-need) + 500; store[i]=S;}else{cost[i]=(store[i-1]-need)*50;store[i]=store[i-1]-need;}average=cost[i]+average;}average=average/Monthnumber;cout<<"n="<cout<<"花费最少时s应该为:"<cout<<"平均每⽉最少花费为:"<}运⾏结果:结果分析:⽤计算机模拟的结果和⽤数学分析的结果有⼀定的差异,由于计算机模拟时采⽤的是随机模型⽽我⽤time函数和rand函数产⽣真随机数,所以在每次的结果上会有所差异,但对于⼀般的⽣产要求亦可以满。
数学建模实验报告

数学建模实验报告一、实验目的1、通过具体的题目实例,使学生理解数学建模的基本思想和方法,掌握数学建模分析和解决的基本过程。
2、培养学生主动探索、努力进取的的学风,增强学生的应用意识和创新能力,为今后从事科研工作打下初步的基础。
二、实验题目(一)题目一1、题目:电梯问题有r个人在一楼进入电梯,楼上有n层。
设每个乘客在任何一层楼出电梯的概率相同,试建立一个概率模型,求直到电梯中的乘客下完时,电梯需停次数的数学期望。
2、问题分析(1)由于每位乘客在任何一层楼出电梯的概率相同,且各种可能的情况众多且复杂,难于推导。
所以选择采用计算机模拟的方法,求得近似结果。
(2)通过增加试验次数,使近似解越来越接近真实情况。
3、模型建立建立一个n*r的二维随机矩阵,该矩阵每列元素中只有一个为1,其余都为0,这代表每个乘客在对应的楼层下电梯(因为每个乘客只会在某一层下,故没列只有一个1)。
而每行中1的个数代表在该楼层下的乘客的人数。
再建立一个有n个元素的一位数组,数组中只有0和1,其中1代表该层有人下,0代表该层没人下。
例如:给定n=8;r=6(楼8层,乘了6个人),则建立的二维随机矩阵及与之相关的应建立的一维数组为:m =0 0 1 0 0 01 0 0 0 0 00 0 0 0 0 00 1 0 0 0 00 0 0 0 0 00 0 0 0 0 10 0 0 0 1 00 0 0 1 0 0c = 1 1 0 1 0 1 1 14、解决方法(MATLAB程序代码):n=10;r=10;d=1000;a=0;for l=1:dm=full(sparse(randint(1,r,[1,n]),1:r,1,n,r));c=zeros(n,1);for i=1:nfor j=1:rif m(i,j)==1c(j)=1;break;endcontinue;endends=0;for x=1:nif c(x)==1s=s+1;endcontinue;enda=a+s;enda/d5、实验结果ans = 6.5150 那么,当楼高11层,乘坐10人时,电梯需停次数的数学期望为6.5150。
数学建模基础实验报告(3篇)

第1篇一、实验目的本次实验旨在让学生掌握数学建模的基本步骤,学会运用数学知识分析和解决实际问题。
通过本次实验,培养学生主动探索、努力进取的学风,增强学生的应用意识和创新能力,为今后从事科研工作打下初步的基础。
二、实验内容本次实验选取了一道实际问题进行建模与分析,具体如下:题目:某公司想用全行业的销售额作为自变量来预测公司的销售量。
表中给出了1977—1981年公司的销售额和行业销售额的分季度数据(单位:百万元)。
1. 数据准备:将数据整理成表格形式,并输入到计算机中。
2. 数据分析:观察数据分布情况,初步判断是否适合使用线性回归模型进行拟合。
3. 模型建立:利用统计软件(如MATLAB、SPSS等)进行线性回归分析,建立公司销售额对全行业的回归模型。
4. 模型检验:对模型进行检验,包括残差分析、DW检验等,以判断模型的拟合效果。
5. 结果分析:分析模型的拟合效果,并对公司销售量的预测进行评估。
三、实验步骤1. 数据准备将数据整理成表格形式,包括年份、季度、公司销售额和行业销售额。
将数据输入到计算机中,为后续分析做准备。
2. 数据分析观察数据分布情况,绘制散点图,初步判断是否适合使用线性回归模型进行拟合。
3. 模型建立利用统计软件进行线性回归分析,建立公司销售额对全行业的回归模型。
具体步骤如下:(1)选择合适的统计软件,如MATLAB。
(2)输入数据,进行数据预处理。
(3)编写线性回归分析程序,计算回归系数。
(4)输出回归系数、截距等参数。
4. 模型检验对模型进行检验,包括残差分析、DW检验等。
(1)残差分析:计算残差,绘制残差图,观察残差的分布情况。
(2)DW检验:计算DW值,判断随机误差项是否存在自相关性。
5. 结果分析分析模型的拟合效果,并对公司销售量的预测进行评估。
四、实验结果与分析1. 数据分析通过绘制散点图,观察数据分布情况,初步判断数据适合使用线性回归模型进行拟合。
2. 模型建立利用MATLAB进行线性回归分析,得到回归模型如下:公司销售额 = 0.9656 行业销售额 + 0.01143. 模型检验(1)残差分析:绘制残差图,观察残差的分布情况,发现残差基本呈随机分布,说明模型拟合效果较好。
数学建模的实验类型

数学建模的实验类型
数学建模的实验类型可以分为以下几种:
1. 理论验证实验:通过实验验证建模过程中的假设、推导以及模型中的数学公式是否正确。
例如,通过实验验证牛顿力学中的运动定律是否成立。
2. 数据收集实验:通过实际观测或者采集数据来支持数学模型的构建和验证。
例如,利用实验仪器收集实验数据,用于构建统计模型或者回归模型。
3. 数值模拟实验:利用计算机技术和数值方法对数学模型进行求解和模拟。
例如,使用有限元方法对结构力学模型进行数值分析,得到结构的应力分布和变形情况。
4. 实物模型实验:通过制作物理或者机械模型来验证数学模型的预测结果。
例如,使用比例缩小的航天器模型进行飞行实验,验证飞行力学模型的准确性。
5. 实际应用实验:将数学模型应用到实际问题中,通过实验对模型效果进行评估和优化。
例如,在工业过程中应用控制理论模型对系统进行控制,通过实验验证控制效果是否满足需求。
这些实验类型可以根据具体的研究目的和实验条件来选择和设计。
不同类型的实验可以相互组合和补充,最终得到对数学模型的全面理解和验证。
数学建模实验二:微分方程模型Matlab求解与分析

实验二: 微分方程模型Matlab 求解与分析一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; [2] 熟悉MATLAB 软件关于微分方程求解的各种命令;[3] 通过范例学习建立微分方程方面的数学模型以及求解全过程; [4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程(组)的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
(1) 微分方程 例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2')输出:ans =tan(t+C1)(2)求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x')指定初值为1,自变量为x 输出:ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x'''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) (2)微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
数学建模的实验报告

数学建模实验报告姓名:学院:专业班级:学号:数学建模实验报告(一)——用最小二乘法进行数据拟合一.实验目的:1.学会用最小二乘法进行数据拟合。
2.熟悉掌握matlab软件的文件操作和命令环境。
3.掌握数据可视化的基本操作步骤。
4.通过matlab绘制二维图形以及三维图形。
二.实验任务:来自课本64页习题:用最小二乘法求一形如y=a+b x2的多项式,使之与下列数据拟合:三.实验过程:1.实验方法:用最小二乘法解决实际问题包含两个基本环节:先根据所给出数据点的变化趋势与问题的实际背景确定函数类;然后按照最小二乘法原则求最小二乘解来确定系数。
即要求出二次多项式: y=a+b x2的系数。
2.程序:x=[19 25 31 38 44]y=[19.0 32.3 49.0 73.3 97.8]ab=y/[ones(size(x));x.^2];a=ab(1),b=ab(2)xx=19:44;plot(xx,a+b*xx.^2,x,y,'.')3.上机调试得到结果如下:x = 19 25 31 38 44y=19.0000 32.3000 49.0000 73.3000 97.8000a = 0.9726b = 0.0500图形:四.心得体会通过本次的数学模型的建立与处理,我们学习并掌握了用最小二乘法进行数据拟合,及多项式数据拟合的方法,进一步学会了使用matlab软件,加深了我们的数学知识,提高了我们解决实际问题的能力,为以后深入学习数学建模打下了坚实的基础。
数学建模实验报告(二)——用Newton法求方程的解一.实验目的1.掌握Newton法求方程的解的原理和方法。
2.利用Matlab进行编程求近似解。
二.实验任务来自课本109页习题4-2:用Newton法求f(x)=x-cosx=0的近似解三.实验过程1.实验原理:把f(x)在x0点附近展开成泰勒级数f(x) = f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=0 设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
园钢下料
摘要:如何按照工艺要求和生产计划确定下料方案,使得原料最省。
本文通过数学规划模型和lingo软件可得最优方案。
问题重述
制造产品X,需要A,B,C,D四种轴类零件,其规格和数量如下表:
表1
各类零件都用5.5米长的圆钢下料,如果计划生产产品G 的数量900件,至多用4种切割模式情况下,问如何下料,才能使原料最省?
问题分析切割模式是按照客户需要在原料钢管安排切割的一种组合。
一个可行合理的切割模式的余料不应该大于或等于需要的圆钢的最小尺寸(本题中为0.7米),切割计划只使用可行合理的切割模式。
问题化为在满足生产计划和工艺要求的情况下,按照那些种(最多四种)合理的模式,切割多少根原料园钢,最为节省。
而原料最省,有两种标准:一是切割后剩余的总余料量最小,二是切割原料钢管的总根数最少。
下面将对这两个目标分别讨论。
模型建立
决策变量由于不同切割模式不能超过4种。
可以用x i表示按照第i种模式(i=1,2,3,4)切割的原料钢管的根数,显然它们应当是非负整数。
设所使用的第i种切割模式下每根原料原钢生产3.1米,2.3米,1.5米和0.7米的圆钢
数量分别为r1i,r2i,r3i,r4i(非负整数)。
决策目标以切割后剩余的总余料量最小,目标为
Min∑
=
-
-
-
-
4
1 1
)
4
7.0
3
5.1
2
3.2
1
1.3
5.5(i
r
i
r
i
r
i r
xi(1)
以切割原料圆钢的总根数最少,目标为
Min x1+x2+x3+x4 (2)
约束条件为满足需求,应有
r11x1+r12x2+r13x3+r14x4>=900 (3)
r21x1+r22x2+r23x3+r24x4>=1800 (4)
r31x1+r32x2+r33x3+r34x4>=1500 (5)
r41x1+r42x2+r43x3+r44x4>=8100 (6) 每种切割模式必须可行、合理,所以每根原料圆钢的成品量不能超过5.5米,也不能少于4.8米(余量不能大于0.7米),于是
4.8<=3.1r11+2.3r21+1.5r31+0.7r41<=
5.5 (7)
4.8<=3.1r12+2.3r22+1.5r32+0.7r42<=
5.5 (8)
4.8<=3.1r13+2.3r23+1.5r33+0.7r43<=
5.5
(9)
4.8<=3.1r14+2.3r24+1.5r34+0.7r44<=
5.5
(10)
模型求解
在(3)~(6)式中出现决策变量的乘积,是一个整数非线性规划模型,用lingo软件直接求解运行时间很长也难以得到最优解,为此可以增加一些显然的
约束条件,从而缩小可行解的搜索范围。
由于四种切割模式的排列顺序是无关紧要的,不妨增加以下约束
x1>=x2>=x3>=x4
又因为所需原料圆钢的总根数有着明显的上界和下界,首先,原料的圆钢总根数不可能少于(3.1*1+2.3*2+1.5*5+0.7*9)*900/5.5≈36根。
其次,考虑一种非常特殊的生产计划:第一种切割模式只生产3.1和2.3米的圆钢,为满足900根3.1米的圆钢,需900根;第二种切割模式只生产2.3和0.7米的圆钢,一根圆钢生产2根2.3米和一根0.7米的圆钢,需要450根;第三种切割模式只生产1.5米和0.7米的圆钢,一根生产3根1.5米和一根0.7米的圆钢,需1500根;第四种切割模式只生产0.7米的圆钢,一根生产7根,需879根原料圆钢,于是满足这种要求的生产计划共需900+450+1500+879=3729根原料圆钢,这样就得到最优解的一个上界。
所以增加约束
36<=x1+x2+x3+x4<=3729
(11)
将(1),(3)~(11)构成的整数规划模型(加上整数约束)输入lingo求解,可得到切割原料圆钢的总余料最少的最优解。
同样地,将(2)~(11)构成的整数规划模型(加上整数约束)输入lingo求解,可得到切割原料圆钢的总根数最少的最优解。
下面就只给出后者的求解和结果分析。
model:
Min=x1+x2+x3+x4;
r11*x1+r12*x2+r13*x3+r14*x4>=900;
r21*x1+r22*x2+r23*x3+r24*x4>=1800; r31*x1+r32*x2+r33*x3+r34*x4>=1500; r41*x1+r42*x2+r43*x3+r44*x4>=8100;
3.1*r11+2.3*r21+1.5*r31+0.7*r41<=5.5;
3.1*r12+2.3*r22+1.5*r32+0.7*r42<=5.5;
3.1*r13+2.3*r23+1.5*r33+0.7*r43<=5.5;
3.1*r14+2.3*r24+1.5*r34+0.7*r44<=5.5;
3.1*r11+2.3*r21+1.5*r31+0.7*r41>=
4.8;
3.1*r12+2.3*r22+1.5*r32+0.7*r42>=
4.8;
3.1*r13+2.3*r23+1.5*r33+0.7*r43>=
4.8;
3.1*r14+2.3*r24+1.5*r34+0.7*r44>=
4.8; x1+x2+x3+x4>=36;
x1+x2+x3+x4<=3729 ;
x1>=x2;
x2>=x3;
x3>=x4;
@gin(x1); @gin(x2); @gin(x3); @gin(x4);
@gin(r11); @gin(r12);@gin(r13);@gin(r14); @gin(r21);@gin(r22);@gin(r23);@gin(r24);
@gin(r31);@gin(r32);@gin(r33);@gin(r34); @gin(r41);@gin(r42);@gin(r43);@gin(r44);
可以得到最优解如下:
Local optimal solution found.
Objective value: 2872.000
Extended solver steps: 534
Total solver iterations: 18138
Variable Value Reduced Cost
X1 1072.000 1.000000
X2 900.0000 1.000000
X3 470.0000 1.000000
X4 430.0000 1.000000
R11 0.000000 0.000000
R12 0.000000 0.000000
R13 1.000000 0.000000
R14 1.000000 0.000000
R21 0.000000 0.000000
R22 2.000000 0.000000
R23 0.000000 0.000000
R24 0.000000 0.000000
R31 1.000000 0.000000
R32 0.000000 0.000000
R33 0.000000 0.000000
R41 5.000000 0.000000 R42 1.000000 0.000000 R43 3.000000 0.000000 R44 1.000000 0.000000
Row Slack or Surplus Dual Price
1 2872.000 -1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 2.000000 0.000000
5 0.000000 0.000000
6 0.5000000 0.000000
7 0.2000000 0.000000
8 0.3000000 0.000000
9 0.2000000 0.000000
10 0.2000000 0.000000
11 0.5000000 0.000000
12 0.4000000 0.000000
13 0.5000000 0.000000
14 2836.000 0.000000
15 857.0000 0.000000
17 430.0000 0.000000
18 40.00000 0.000000
即按照模式1,2,3,4分别切割3.1,2.3,1.5和0.7米的圆钢,使用原材料共总根数为2872根。
第一种切割模式下一根原料圆钢切割成1根1.5米圆钢和5根0.7米圆钢;第二种切割模式下一根原料圆钢切割成2根2.3米和1根0.7米的圆钢;第三种切割模式下一根圆钢切割成1根3.1米和3根0.7米的圆钢;第四种切割模式下一根圆钢切割成1根3.1米,1根1.5米和1根0.7米的圆钢。