您所在位置: 网站首页 / 蒙特卡罗方法C.ppt / 文档详情
蒙特卡罗方法C.ppt 立即下载
2024-11-21
约3.8千字
约33页
0
230KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

蒙特卡罗方法C.ppt

蒙特卡罗方法C.ppt

预览

免费试读已结束,剩余 28 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

clearall;N=1000000;n=0;
fori=1:N
x1=rand;x2=rand;x3=rand;x4=rand;
r2=x1^2+x2^2+x3^2+x4^2;
ifr2<=1
n=n+1;
end
end
P=n/N;SigmaP=sqrt(P*(1-P))/sqrt(N);
V=P*2^4
SigmaV=SigmaP*V
V/pi/pi
SigmaV/pi/pi§5.2一维定积分计算的平均值法
§5.3半解析方法
§5.4重要抽样法
§5.5控制变量法
§5.6拟蒙特卡罗方法
超均匀随机数
范德科普特(VanderCorput)随机数产生器clearall;N=10000;n=0;Sumx=0;Sumxx=0;
fori=1:N
x1=rand;x2=rand;
ifx2<=x1
n=n+1;
end
Sumx=Sumx+x1;
Sumxx=Sumxx+x1*x1;
end
P=n/N;Ipoint=P
SigmaP=sqrt(P*(1-P))/sqrt(N);SigmaIpoint=SigmaP
Iav=Sumx/N
SigmaIav=sqrt(Sumxx/N-Iav*Iav)/sqrt(N)十进制整数§5.7分层抽样
简单分层抽样
最优分层抽样clearall;N=10000;k=10;m=N/k;deltx=1.0/k;
Sumx(1:k)=0;Sumxx(1:k)=0;
fori=1:k
forj=1:m
x=(i-1)*deltx+rand*deltx;
Sumx(i)=Sumx(i)+x;
Sumxx(i)=Sumxx(i)+x*x;
end
end
Ik=Sumx/m
SigmaIk=sqrt(Sumxx/m-Ik.*Ik)/sqrt(m)
Iav=sum(Ik)/k
SigmaIav=sqrt(sum(SigmaIk.*SigmaIk))/kclearall;N=10000;k=5;m=N/k;deltx=1.0/k;
Sumf(1:k)=0;Sumff(1:k)=0;
fori=1:k
forj=1:m
x=(i-1)*deltx+rand*deltx;f=x^4;
Sumf(i)=Sumf(i)+f;
Sumff(i)=Sumff(i)+f*f;
end
end
Ik=Sumf/m
SigmaIk=sqrt(Sumff/m-Ik.*Ik)/sqrt(m)
Iav=sum(Ik)/k
SigmaIav=sqrt(sum(SigmaIk.*SigmaIk))/k第六章分子物理学中的模拟实验设两维容器中有N个粒子,初始速率相等。
粒子与容器壁碰撞时,速度只改变方向,不改变大小(即粒子与容器壁无能量交换)。
粒子与粒子碰撞时,为弹性碰撞。(1)	设定N个粒子的初始速率;
(2)	随机选择两个粒子(粒子j和粒子k),两粒子运动方向随机;
(3)	从实验室系转换到质心系,描述入射粒子:(4)质心系中两粒子进行碰撞:clearall;
N=10000;v0=1;
v(1:N)=v0;
deltv=3*v0/20;
fori=1:20
vbin(i)=(i-0.5)*deltv;
end
subplot(3,1,1),hist(v,vbin);
xlabel('v');ylabel('N');
fori=1:10*N
j=ceil(rand*N);k=ceil(rand*N);
whilek==j
k=ceil(rand*N);
end
phij=2*pi*rand;phik=2*pi*rand;
vj=[v(j)*cos(phij);v(j)*sin(phij)];
vk=[v(k)*cos(phik);v(k)*sin(phik)];
vc=1/2*(vj+vk);
wj=vj-vc;wk=vk-vc;10000个粒子在(1)初始时刻;(2)碰撞10000次后;(3)碰撞100000次后的速率分布质量不同的两种粒子的碰撞clearall;
N=100000;v0=1;m1=1;m2=25;r=4/5;
v(1:N)=v0;m(1:N*r)=m1;m(N*r+1:N)=m2;
deltv=0.1;deltE=0.1;
fori=1:80
vbin(i)=(i-0.5)*deltv;
Ebin(i)=(i-0.5)*deltE;
end
subplot(2,2,1),hist(v,vbin);
xlabel('v');ylabel('N');
subplot(2,2,2),hist((1/2*m.*v.^2).^(1/2),Ebin);
xlabel('sqrt(E)');ylabel('N');
fori=1:50*N
j=ceil(rand*N);k=ceil(rand*N);
whilek==j
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

蒙特卡罗方法C

文档大小:230KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用