2022年《数学建模实验》实验报告 .pdf
蚂蚁文库 数学建模实验实验报告学号:实验十四:计算机模拟1.某报童以每份 0.03元的价格买进报纸 ,以 0.05元的价格出售 . 根据长期统计 ,报纸每天的销售量及百分率为销售量200 210 220 230 240 250 百分率0.10 0.20 0.40 0.15 0.10 0.05 已知当天销售不出去的报纸, 将以每份 0.02 元的价格退还报社 .试用模拟方法确定报童每天买进报纸数量 ,使报童的平均总收入为最大? 解答:【1】模型假设:(1) 模拟时间充分大;(2) 报童购买报纸量介于销售量最小值与最大值之间;(3)不考虑有重大事件发生时卖报的高峰期,也不考虑风雨天气时卖报的低谷期. 【2】 符号假设BUYMIN :每天的最小购买量BUYMAX:每天的最大购买量SIMUDAY :模拟时间sell_amount :报童销售量buy_amount:报童购买量percentage :销售百分率ave_profit:总平均利润loop_buy :当天购买量loop_day :当天时间【3】matlab 程序如下:(1) 首先建立 m文件 Getprofit.m function re=GetProfit(a,b) if a=rand); % 产生随机数,用于决定当天的销售量 sum_profit=sum_profit+GetProfit(loop_buy,sell_amount(index(1); end buy_amount=buy_amount,loop_buy; % 循环嵌套 ave_profit=ave_profit,sum_profit/SIMUDAY; % 循环嵌套end buy_amount(1)=; % 第一个元素置空ave_profit(1)=; val,id=max(ave_profit) % 显示最大平均收入val buy=buy_amount(id) % 显示在平均收入最大情况下的每天的购买量buy xlabel=每天的购买量 ; ylabel=平均利润 ; plot(buy_amount,ave_profit,*:); 【4】运行结果:val =4.2801 id =21 buy = 220 图像如下:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 8 页 - - - - - - - - - - 蚂蚁文库 【5】结果分析:该结果说明当报童每天买进报纸数量为220,报童的平均总收入为最大,且最大为4.2801.2.某设备上安装有四只型号规格完全相同的电子管,已知电子管寿命为1000-2000小时之间的均匀分布。当电子管损坏时有两种维修方案,一是每次更换损坏的那一只;二是当其中一只损坏时四只同时更换。已知更换时间为换一只时需1 小时, 4只同时换为 2 小时。更换时机器因停止运转每小时的损失为20 元,又每只电子管价格 10 元,试用模拟方法决定哪一个方案经济合理?解答:【1】 模型分析:有两种方案 1 :ABCD 四个灯全部换 2:ABCD 四个灯不全换【2】 模型程序Matlab 程序如下x1=0; y1=0;% 第一种方法用的钱x2=0; y2=0;% 第二种方法用的钱ia=0;ib=0;ic=0;id=0;%分别为 ABCD 灯换的次数A2=0;B2=0;C2=0;D2=0;%分别为 ABCD 灯用的总时间m=50;% 试验总次数i=0;%已经进行试验次数j=0;%第一种方法占优的次数percent=0;%第一种方法占优占总次数的百分比精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 8 页 - - - - - - - - - - 蚂蚁文库 n=100000;%每次试验总时间%下面共进行m轮试验比较全部换这种办法(办法1)用 n 个小时后和不全部换这种办法(办法2)%坚持同样的时间哪个更经济while im while x1n%全部换A=unifrnd(1000,2000,1,1); B=unifrnd(1000,2000,1,1); C=unifrnd(1000,2000,1,1); D=unifrnd(1000,2000,1,1); x=min(D,min(C,min(B,A); x1=x1+x;%总时间y1=y1+2*20+4*10; if A2n ia=ia+1;A2=A2+A; end if B2n ib=ib+1;B2=B2+B; end if C2n ic=ic+1;C2=C2+C; end if D2n id=id+1;D2=D2+D; end end y1;% 输出 n 个小时后方法1 所用的钱y2=(ia+ib+ic+ic)*20+(ia+ib+ic+ic)*10;%输出 n 个小时后方法2 所用的钱if y1y2 j=j+1;%统计第一种办法占优的次数end i=i+1; end m j percent=j/m 【3】运行结果:m = 50 j = 50 percent = 1 【4】结果分析由此可以看出实验了m=50 次,第一种办法占优了j=50 次,占优率 100%改变 m 或 n精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 8 页 - - - - - - - - - - 蚂蚁文库 也可得到类似的结果所以全部更换这种办法更好3.导弹追踪问题:设位于坐标原点的甲舰向位于x 轴上点 A(1, 0)处的乙舰发射导弹,导弹头始终对准乙舰 .如果乙舰以最大的速度 (是常数 )沿平行于 y 轴的直线行驶,导弹的速度是 5,模拟导弹运行的轨迹 .又乙舰行驶多远时,导弹将它击中?解答:【1】模型建立假设导弹在 t 时刻的位置为)(),(tytxP,乙舰位于),1 (0tvQ。由于导弹头始终对准乙舰,故此时直线PQ就是导弹的轨迹曲线弧OP 在点 P 处时的切线 . 即有xytvy10,即yyxtv)1 (0 (1) 又根据题意,弧 OP 的长度为 AQ 的 5 倍,即有tvdxyx00251 (2) 由(1) , (2)消去 t 得2151 )1(yyx(3)(3) 令,121yyyy,将方程( 3)化成一阶微分方程组xyyyy115121221初始条件为0)0( ,0)0(yy【2】模型程序Matlab 程序如下:(1) 建立 m 文件 eq1.m function dy=eq1(x,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1/5*sqrt(1+y(1)2)/(1-x); (2) 建立主程序x0=0,xf=0.9999 x,y=ode15s(eq1,x0,xf,0,0); plot(x,y(:,1),b.) hold on y=0:0.01:2; plot(1,y,b+) 【3】程序结果得到图像如图所示精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 8 页 - - - - - - - - - - 蚂蚁文库 【4】结果分析:由图像知,道到大概在(1,0.2 )处击中乙舰。4.两船欲停靠同一个码头 , 设两船到达码头的时间各不相干,而且到达码头的时间在一昼夜内是等可能的 .如果两船到达码头后需在码头停留的时间分别是1 小时与 2 小 时,试求在一昼夜内,任一船到达时,需要等待空出码头的概率. 解答:【1】 模型分析设 x,y 分别为甲,乙两船到达时刻(小时) ,需等待空出码头的条件是.24,24,2, 1yxxyyx【2】模型程序Matlab 程序如下(1)建立 m 文件 liti4.m function proguji=liti4(mm)frq=0;randnum1=unifrnd(0,24,mm,1);randnum2=unifrnd(0,24,mm,1);randnum=randnum1-randnum2;proguji=0;for ii=1:mm精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 8 页 - - - - - - - - - - 蚂蚁文库 if randnum(ii,1)=-2 frq=frq+1endendproguji=frq/mm(2)再执行程序liti4(10000) 【3】运行结果p=0.1995 【4】结果分析:由运行结果得到需要等待空出码头的概率为0.2 左右精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 8 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 8 页 - - - - - - - - - -