:一如下图所示的容器装满水,上底面半径为r=1m,高度为H=5m,,现在让水从小孔流出,问水什么时候能流完?解题分析:这个问题我们可以采用计算机模拟,小孔处的水流速度为V=sqrt[2*g*h],单位时间从小孔流出的水的体积为V*B,再根据几何关系,求出水面的高度H,时间按每秒步进,记录点(H,t)并画出过水面高度随时间的变化图,,可以近似认为水流完了。程序代码:Methamatic程序代码:运行结果:(5)结果分析:计算机仿真可以很直观的表现出所求量之间的关系,从图中我们可以很方便的求出要求的值。但在实际编写程序中,由于是初次接触methamatic语言,对其并不是很熟悉,加上个人能力有限,所以结果可能不太精确,还请见谅。,具有如下表概率分布:每次订货费为500元,每月每吨保管费为50元,每月每吨货物缺货费为1500元,每吨材料的购价为1000元。该企业欲采用周期性盘点的),(Ss策略来控制库存量,求最佳的s,S值。(注:),(Ss策略指的是若发现存货量少于s时立即订货,将存货补充到S,使得经济效益最佳。)问题分析:需求量(吨)5060708090100110120)(jp??,随机产生每个月需求量的概率,利用计算机编程,将各种S和s的取值都遍历一遍,把每种S,s的组合对应的每月花费保存在数组cost数组里,并计算出平均月花费average,并用类answer来记录,最终求出对应的S和s。程序代码:C++程序代码:#include<>#include<>#include<>#include<>#defineMonthnumber10000intNeed(floatx){intned=0;//求每个月的需求量if(x<)ned=50;elseif(x<)ned=60;elseif(x<)ned=70;elseif(x<)ned=80;elseif(x<)ned=90;elseif(x<)ned=100;elseif(x<)ned=110;elsened=120;returnned;}classA{public:intpS;intps;floataver;};intmain(){Aanswer;=10000000;//intcost[Monthnumber+1]={0};floataverage=0;inti;floatx;intstore[Monthnumber];//srand((int)time(0));for(intn=6;n<=12;n++){//intn=11;intS=10*n;for(intk=5;k<n;k++){//intk=5;ints=k*10;average=0;intcost[Monthnumber+1]={0};for(i=1;i<=Monthnumber;i++){store[i-1]=S;srand(time(0));x=(float)rand()/RAND_MAX;//产生随机数//cout<<""<<x;//cout<<mon[i]<<"";intneed=Need(x);if(need>=store[i-1]){cost[i]=1000*S+(need-store[i-1])*1500+500;store[i]=S;}elseif(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="<<n<<"k="<<k<<"average="<<average<<endl;if(average<){=average;=S;=s;}}}cout<<"花费最少时S应该为:"<<<<endl;cout<<"花费最少时s应该为:"<<<<endl;cout<<"平均每月最少花费为:"<<<<endl;}运行结果:结果分析:用计算机模拟的结
数学建模实验报告 来自淘豆网m.daumloan.com转载请标明出处.