计算机模拟版本课件

上传人:我*** 文档编号:144110809 上传时间:2020-09-06 格式:PPT 页数:95 大小:1.13MB
返回 下载 相关 举报
计算机模拟版本课件_第1页
第1页 / 共95页
计算机模拟版本课件_第2页
第2页 / 共95页
计算机模拟版本课件_第3页
第3页 / 共95页
计算机模拟版本课件_第4页
第4页 / 共95页
计算机模拟版本课件_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《计算机模拟版本课件》由会员分享,可在线阅读,更多相关《计算机模拟版本课件(95页珍藏版)》请在金锄头文库上搜索。

1、数学建模培训,主讲: 何仁斌,概述,计算机模拟是用计算机对系统的结构和行为进行动态演示,以评价或预测系统的行为效果,为决策者提供信息的一种方法。它是解决较复杂的实际问题的一条有效途径。 计算机模拟也可以说是用计算机程序直接建立真实系统的模型,并通过计算了解系统随时间变化的行为或特征。 应用领域:航空、机电、冶金、社会经济、交通运输、生态系统等。 计算机模拟分为连续系统模拟和离散系统模拟。,状态随时间连续变化的系统称为连续系统。通常该系统的模型一般可以用微分方程的形式表达,通过一些物理机理推导出来。模拟结果往往是近似的。 例如,追逐问题,浓度问题。,一、连续系统,1、追逐问题,AB BC CD

2、DA,状态变量 A(x(t), y(t),假设:v=1 m/s, 追逐的方向是对准追逐目标,A(0,10),B(10,10),D(0,0),C(0,10),试确定四人追逐的运动轨迹。,A(x(t+t), y(t+ t),模拟方法: 1. 建立平面直角坐标系; 2. 以时间间隔t 进行采样,并且计算各个 时刻下的状态: A: (x1(t), y1(t) (x1(t+ t ), y1(t+ t ) B: (x2(t), y2(t) (x2(t+ t ), y2(t+ t ) (x1(t+ t ), y1(t+ t ) (由几何原理) (x1(t)+v t cos(), y1(t) +v t sin

3、(),在 t时刻下,3. 选取足够小的t ,模拟到任意两人的距 离小于v t 为止。 4. 连接四人在各时刻下的位置,就得到所求的 运动轨迹。 Matlab (simu2.m),v=1; dt=0.05; d=20; % x=x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8) x=0 0 0 10 10 10 10 0; x(9)=x(1); x(10)=x(2); hold on axis(equal); axis(0 10 0 10); while(d0.1) for i=1:2:7 d=sqrt(x(i)-x(i+2)2+(x(i+1)-x(i+3)2); x

4、(i)=x(i)+v*dt*(x(i+2)-x(i)/d; x(i+1)=x(i+1)+v*dt*(x(i+3)-x(i+1)/d; plot(x(i),x(i+1),.) end x(9)=x(1);x(10)=x(2); end hold on,A,B,C,D,某军的一导弹基地发现正北方向120km处海面上有敌艇一艘以90km/h的速度向正东方向行驶。该基地立即发射导弹跟踪追击敌艇,导弹速度为450km/h,自动导航系统使导弹在任一时刻都能对准敌艇。试问导弹在何时何处击中敌艇?,2、导弹跟踪问题,P(x(t), y(t),O,x,M(vet, H),y,A(0,H),正东方向,正北方向,H

5、 =120(千米),km/h,km/h,敌 导,(xk(t), yk(t),simu1.m stest1.m huatu.m,微分方程建模,计算机模拟,消去t:,微分方程建模,1),2),x=dsolve(D2x*(120-y)/sqrt(Dx)2+1)=90/450,Dx(0)=0,x(0)=0,y),微分方程求解,simplify(x) ans=(45*120(1/5)*(y - 120)(4/5) - 1800*(-1)(4/5) + (-1)(3/5)*202500(1/5)*(y - 120)(6/5)/(72*(-(-1)(3/5)(1/2) -(45*120(1/5)*(y -

6、120)(4/5) - 1800*(-1)(4/5) + (-1)(3/5)*202500(1/5)*(y - 120)(6/5)/(72*(-(-1)(3/5)(1/2),y=120 eval(x) ans = 25.0000 + 0.0000i -25.0000 - 0.0000i,如何决定导弹位置 P2(x2, y2)?,计算机模拟,1)当t = 0时,导弹位置O(0, 0); 敌艇位置A(0, 120); 2)当t= 时,导弹位置P1(x1, y1); 敌艇位置M1(90 , 120); 3)当t=2时,导弹位置P2(x2, y2); 敌艇位置M2(902, 120);,P(x(t),

7、 y(t),O,x,M(vet, H),y,A(0,H),正东方向,正北方向,H =120(千米),km/h,km/h,敌 导,(xk(t), yk(t),function num,y_j,L,T=simu1(x,y,t,eps) k=0; while k1000 (simu1.m) p=90*k*t-x; q=120-y; d1=p/(p2+q2)0.5; d2=q/(p2+q2)0.5; x=x+450*t*d1; y=y+450*t*d2; if (abs(q)eps) break; end k=k+1; end num=k; L=x; y_j=y; T=L/90;,(stest1.m)

8、 t=0.1; x=0;y=0; num,y_j,L,T=simu1(x,y,t,eps) 计算结果: Num=2;y_j=131.2155; L=22.675(km);T=0.2519(h),导弹的位置(x(t), y(t),能否用图形描述它们的追逐运动过程?,敌艇的位置(水平方向(90*k*t, 120),x=0,0; (huatu.m) axis(equal); axis(0,140,0,140);grid on hold on t=0.001; %步长 while (abs(x(2)-120)0.1) % 终止条件() for k=1:280 p=90*k*t-x(1); q=120-

9、x(2); d1=p/(p2+q2)0.5; d2=q/(p2+q2)0.5; x(1)=x(1)+450*t*d1; x(2)=x(2)+450*t*d2; x1(1)=90*k*t; x1(2)=120; h1=line(color,0,0.2,0.4,linewidth,2); h2=line(color,0,0.6,0.9,linewidth,3); set(h1,xdata,x1(1),ydata,x1(2); set(h2,xdata,x(1),ydata,x(2); end end hold on,(2)如果当基地发射导弹的同时,敌艇立即由仪器发觉。假定敌艇为高速快艇,它即刻以1

10、35千米/小时的速度与导弹方向成垂直的方向逃逸,问导弹何时何地击中敌艇? 不停地改变逃跑策略,运动轨迹如何? 修正敌艇速度:90 135千米/小时,思考:,二、离散系统,离散系统是指系统状态只在有限的时间点或可数的时间点上发生变化的系统。并假设离散系统状态的变化是在一个时间点上瞬间完成。模型一般用流程图或网络来表示。其间可能涉及到随机事件等。,关键:模拟步骤、数据收集、模拟时钟,在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点,经过长期观察发现,我方指挥所对敌方目标的指示有50是准确的,而我方火力单位,在指示正

11、确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部消灭敌人,现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。,分析: 这是一个概率问题,可以通过理论计算得到相应的概率和期望值.但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程.,为了能显示我方20次射击的过程,现采用模拟的方式。,射击问题,需要模拟出以下两件事:,1. 问题分析,2 当指示正确时,我方火力单位的射击结果情况,1 观察所对目标的指示正确与否,模拟试验有两种结果,每一种结果出现的概率都是1/2,因此,可用投掷一枚硬币的方式予以确定,当硬币

12、出现正面时为指示正确,反之为不正确,模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能性为1/2(即3/6),这时可用投掷骰子的方法来确定: 如果出现的是、三个点:则认为没能击中敌人; 如果出现的是、点:则认为毁伤敌人一门火炮; 若出现的是点:则认为毁伤敌人两门火炮,2. 符号假设,i:要模拟的打击次数; k1:没击中敌人火炮的射击总数; k2:击中敌人一门火炮的射击总数;k3:击中敌人两门火炮的射击总数 E:有效射击比率; E1:20次射击平均每次毁伤敌人的火炮数,3. 模拟框图,4. 模拟结果,5. 理论计算,6. 结果比较,虽然模

13、拟结果与理论计算不完全一致,但它却能更加真实地表达实际战斗动态过程,蒙特卡罗方法(Monte Carlo method),蒙特卡罗方法(Monte Carlo method),或称计算机随机模拟方法,是一种基于“随机数”的计算方法。源于美国在第二次世界大战研制原子弹的“曼哈顿计划”,该计划的主持人之一数学家冯诺伊曼用驰名世界的赌城摩纳哥的Monte Carlo来命名这种方法,为它蒙上了一层神秘色彩。 蒙特卡罗方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。19世纪人们用蒲丰投针的方法来计算圆周率,上世纪40年代电子计算机的出现,特别

14、是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。,蒲丰投针实验近似计算圆周率,蒲丰投针实验: 法国科学家蒲丰(Buffon)在1777年提 出的蒲丰投针实验是早期几何概率一个 非常著名的例子。蒲丰投针实验的重要 性并非是为了求得比其它方法更精确的 值,而是它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导,由此可以领略到从“概率土壤”上开出的一朵瑰丽的鲜花蒙特卡罗方法(MC) 蒲丰投针实验可归结为下面的数学问题:平面上画有距离为a的一些平行线,向平面上任意投一根长为l(la)的针,假设针落在任意位置的可能性相同,试求针与平

15、行线相交的概率P(从而求),蒲丰投针实验近似计算圆周率,蒲丰投针实验: 如右图所示,以M 表示针落下后的中点, 以x表示M到最近一条 平行线的距离,以表示针与此线的交角: 针落地的所有可能结果满足: 其样本空间视作矩形区域, 面积是: 针与平行线相交的条件: 它是样本空间子集A,面积是: syms l phi; int(l/2*sin(phi),phi,0,pi); %ans=l 因此,针与平行线相交的概率为: 从而有: 特别当 时,蒲丰投针实验近似计算圆周率,蒲丰投针实验近似计算圆周率,蒲丰投针实验的计算机模拟: format long; %设置15位显示精度 a=1; l=0.6; %两平

16、行线间的宽度和针长 figure; axis(0,pi,0,a/2); %初始化绘图板 set(gca,nextplot,add); %初始化绘图方式为叠加 counter=0; n=2010; %初始化计数器和设定投针次数 x=unifrnd(0,a/2,1,n); phi=unifrnd(0,pi,1,n); %样本空间 for i=1:n if x(i)l*sin(phi(i)/2 %满足此条件表示针与线的相交 plot(phi(i),x(i),r.); frame(i)=getframe; %描点并取帧 counter=counter+1; %统计针与线相交的次数 end end fren=counter/n; pihat=2*l/(a*fren) %用频率近似计算,蒲丰投针实验近似计算圆周率,蒲丰投针实验的计算机模拟:,意大利数学家拉泽里尼得到了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号