- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机模拟方法讲述
计算机模拟方法
一.四人追逐实验模拟
如图1,在正方形ABCD的四个顶点各有一个人。设在初始时刻时,四人同时出发匀速以沿顺时针走向下一个人。如果他们始终对准下一个人为目标行进,最终结果会如何。作出各自的运动轨迹。
解:该问题可以通过计算机模拟来实现。这需要将时间离散化。设时间间隔为,时刻表示时间
设第个人时刻的位置坐标为:
对前面3个人表达式为:
其中
对第4个人表达式为:
其中
Matlab实现程序run.m如下:
%模拟运动
n=240;
x=zeros(4,n);
y=zeros(4,n);
dt=0.05; %时间间隔
v=10; %速度
x(1,1)=100; y(1,1)=0; %第1个人初始坐标
x(2,1)=0; y(2,1)=0; %第2个人初始坐标
x(3,1)=0; y(3,1)=100; %第3个人初始坐标
x(4,1)=100; y(4,1)=100; %第4个人初始坐标
for j=1:n-1
for i=1:3
d=sqrt((x(i+1,j)-x(i,j))^2+(y(i+1,j)-y(i,j))^2);
%第i个人和第i+1个人距离
cosx=(x(i+1,j)-x(i,j))/d; %求cos值
sinx=(y(i+1,j)-y(i,j))/d; %求sin值
x(i,j+1)=x(i,j)+v*dt*cosx; %求新x坐标
y(i,j+1)=y(i,j)+v*dt*sinx; %求新y坐标
end %考虑第1,2,3人运动一步
d=sqrt((x(1,j)-x(4,j))^2+(y(1,j)-y(4,j))^2);
%第4个人和第1个人距离
cosx=(x(1,j)-x(4,j))/d; %求cos值
sinx=(y(1,j)-y(4,j))/d; %求sin值
x(4,j+1)=x(4,j)+v*dt*cosx; %求第4点新x坐标
y(4,j+1)=y(4,j)+v*dt*sinx; %求第4点新y坐标
end
%plot(x,y)
for j=1:n
plot(x(1,j),y(1,j),x(2,j),y(2,j),x(3,j),y(3,j),x(4,j),y(4,j)) %作点图
hold on %保持每次作图,实现各次图行迭加
end
执行结果见图1
图1 模拟结果图形
二、电梯问题随机模拟
设有个人在一楼进入电梯,楼上共有层。设每个乘客在任何一层楼出电梯的可能性相同,求直到电梯中的人下完为止,电梯需停次数的数学期望。并对进行计算机模拟验证。
计算机模拟算法思想:
楼上层的序号记为,定义整型数组,并将其个元素的初始值置0。计算机随机产生1到的个随机整数,若该数为,则令,表示第层电梯有人要下,从而电梯在该层要停;当有多人在第层要下时,仍用表示。统计数组中为1的元素个数,即为该次模拟实验电梯要停的次数。总共模拟实验次,求平均值就是电梯所停次数的模拟值。
Matlab模拟程序dianti.m
N=5000; %模拟次数
n=28; %电梯层数
r=14; %电梯开始进的人数
s=0;
x=zeros(n,1);
for k=1:N %模拟N次
s1=0;
for i=1:n
x(i)=0;
end
for j=1:r %对每个人是否下电梯进行模拟
i=1+floor(rand(1,1)*n);
x(i)=1; %第i层有人下
end
s1=sum(x); %该次模拟中总共要下的人数
s=s+s1; %统计各次模拟中下的人数
end
eq=s/N; %模拟平均值
ei=n*(1-(1-1/n)^r);
fprintf(模拟电梯要停次数的理论值%6.2f,模拟值为%6.2f\n,ei,eq);
某两次运行结果如下:11.15,11.18。与理论数值11.17很接近。
三、 矿工选门问题模拟实验
一名矿工陷入一个有三扇门的矿井中,第一扇门通到一个隧道,走2小时可以到达安全区;第二扇门通到另一个隧道,走3小时回到矿井中;第三扇门通到又一个隧道,走5小时回到矿井中。假定矿工总是等可能的选择三扇门的任何一扇门,求到达安全区的平均时间
计算机模拟的Matlab程序:
文档评论(0)